Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

oorttool.c:312: main: Assertion `ret == 0' failed. #1

Open
k1dn3y opened this issue Mar 12, 2018 · 5 comments
Open

oorttool.c:312: main: Assertion `ret == 0' failed. #1

k1dn3y opened this issue Mar 12, 2018 · 5 comments

Comments

@k1dn3y
Copy link

k1dn3y commented Mar 12, 2018

Hi,

Running newest Raspbian stretch on a Raspberry Pi 3 I get this error when trying to connect to my bulb:

pi@raspberrypi:~/hackoort/build/oorttool $ ./oorttool -d 84:EB:18:7C:51:41 STATUS
Could not read config file .oorttool.conf
oorttool: /home/pi/hackoort/oorttool/oorttool.c:312: main: Assertion `ret == 0' failed.
Aborted
pi@raspberrypi:~/hackoort/build/oorttool $ /home/pi/hackoort/build/oorttool/oorttool -d 84:EB:18:7C:51:41 ON BRIGHTNESS 100% TEMPERATURE 100% RGB FF0000
Could not read config file .oorttool.conf
oorttool: /home/pi/hackoort/oorttool/oorttool.c:312: main: Assertion `ret == 0' failed.
Aborted
pi@raspberrypi:~/hackoort/build/oorttool $ 


I have made sure to follow the prerequisites and installing libbluetooth-dev libreadline-dev libglib2.0-dev and compiling gattlib, which worked flawlessly. I also tried to update BlueZ to the newest 5.49 and then recompile everything, without getting it to work.

I really like the work you've put in into developing this and it worked fine on my previous Raspberry Jessie installation. Since I've installed Raspbian Stretch I haven't been able to connect to my OORT light bulb and I suspect it must be something to do with incompatilibity with the newer libraries.

Thank you so much for the help!

@emsi
Copy link
Owner

emsi commented Mar 13, 2018

Hi!

I'm surprised to find someone used it :) Unfortunately Oort seems to discontinued their products more or less at the same time I released this tool :)

The assertion that fails indicated that there is some issue inside gattlib but let's try to debug it. The call that fails is trying to unlock the bulb using the password. Since you didn't provide the .oorttool.conf I guess you didn't set any password (in which case the bulb uses factory default password). Or perhaps you forgot to supply a password in the configuration file? :)

Anyway, please increase the verbosity level by setting the -v to some high number and see if there are more clues.

@k1dn3y
Copy link
Author

k1dn3y commented Mar 14, 2018

Hi,

That is too bad that they discontinued it. Although the lamps aren't maybe as advanced as Philips Hue and other competitors, they are still working really more than sufficiently in a Home Assistant + Google Home setting especially in the lower price point :) (I'm using your oorttool in conjunction with Home Assistant which forwards Google Home voice commands + automatic actions to the bulb)

No I haven't set a password at all on the bulbs, and the same oorttool+Home Assistant config worked fine with my previous Raspbian installation on my Raspberry Pi. Below is the same line but just with an increased verbosity level. As that didn't really give at least me a logical clue of why it quits, I also ran a strace command. Thank you so much for helping me out with this issue! :)

pi@raspberrypi:~ $ /home/pi/hackoort/build/oorttool/oorttool -d 84:EB:18:7C:51:41 ON BRIGHTNESS 100% TEMPERATURE 100% RGB FF0000 -v 10
CMD: ON, arg[last]: FF0000, argc: 6
Could not read config file .oorttool.conf
Connecting to 84:EB:18:7C:51:41
Connected to 84:EB:18:7C:51:41
oorttool: /home/pi/hackoort/oorttool/oorttool.c:312: main: Assertion `ret == 0' failed.
Aborted
pi@raspberrypi:~ $ strace /home/pi/hackoort/build/oorttool/oorttool -d 84:EB:18:7C:51:41 ON BRIGHTNESS 100% TEMPERATURE 100% RGB FF0000 -v 10
execve("/home/pi/hackoort/build/oorttool/oorttool", ["/home/pi/hackoort/build/oorttool"..., "-d", "84:EB:18:7C:51:41", "ON", "BRIGHTNESS", "100%", "TEMPERATURE", "100%", "RGB", "FF0000", "-v", "10"], [/* 57 vars */]) = 0
brk(NULL)                               = 0x1671000
uname({sysname="Linux", nodename="raspberrypi", ...}) = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap2(NULL, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fe7000
access("/etc/ld.so.preload", R_OK)      = 0
open("/etc/ld.so.preload", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=42, ...}) = 0
mmap2(NULL, 42, PROT_READ|PROT_WRITE, MAP_PRIVATE, 3, 0) = 0x76fe6000
close(3)                                = 0
open("/usr/lib/arm-linux-gnueabihf/libarmmem.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\210\5\0\0004\0\0\0"..., 512) = 512
lseek(3, 20868, SEEK_SET)               = 20868
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1000) = 1000
lseek(3, 20540, SEEK_SET)               = 20540
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\3\f\1\22\4\24"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=21868, ...}) = 0
mmap2(NULL, 86080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76fa4000
mprotect(0x76fa9000, 61440, PROT_NONE)  = 0
mmap2(0x76fb8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x4000) = 0x76fb8000
close(3)                                = 0
munmap(0x76fe6000, 42)                  = 0
open("/home/pi/hackoort/build/tls/v7l/neon/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/v7l/neon/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/v7l/neon/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/v7l/neon", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/v7l/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/v7l/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/v7l/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/v7l", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/neon/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/neon/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/neon/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/neon", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/tls/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/tls", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/v7l/neon/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/v7l/neon/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/v7l/neon/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/v7l/neon", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/v7l/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/v7l/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/v7l/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/v7l", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/neon/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/neon/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/neon/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/neon", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/vfp/libhackoort.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
stat64("/home/pi/hackoort/build/vfp", 0x7ea77920) = -1 ENOENT (No such file or directory)
open("/home/pi/hackoort/build/libhackoort.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\320\7\0\0004\0\0\0"..., 512) = 512
lseek(3, 11628, SEEK_SET)               = 11628
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
lseek(3, 8328, SEEK_SET)                = 8328
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0755, st_size=12708, ...}) = 0
mmap2(NULL, 73864, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76f91000
mprotect(0x76f93000, 61440, PROT_NONE)  = 0
mmap2(0x76fa2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x76fa2000
close(3)                                = 0
open("/home/pi/hackoort/build/libgattlib.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=88856, ...}) = 0
mmap2(NULL, 88856, PROT_READ, MAP_PRIVATE, 3, 0) = 0x76f7b000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/libgattlib.so", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0T~\0\0004\0\0\0"..., 512) = 512
lseek(3, 219376, SEEK_SET)              = 219376
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 156688, SEEK_SET)              = 156688
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=220496, ...}) = 0
mmap2(NULL, 222316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76f44000
mprotect(0x76f69000, 65536, PROT_NONE)  = 0
mmap2(0x76f79000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x25000) = 0x76f79000
close(3)                                = 0
open("/home/pi/hackoort/build/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libglib-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0XZ\1\0004\0\0\0"..., 512) = 512
lseek(3, 1013924, SEEK_SET)             = 1013924
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
lseek(3, 1013576, SEEK_SET)             = 1013576
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=1015004, ...}) = 0
mmap2(NULL, 1080840, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76e3c000
mprotect(0x76f33000, 61440, PROT_NONE)  = 0
mmap2(0x76f42000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xf6000) = 0x76f42000
close(3)                                = 0
open("/home/pi/hackoort/build/libc.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0@h\1\0004\0\0\0"..., 512) = 512
lseek(3, 1231820, SEEK_SET)             = 1231820
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2880) = 2880
lseek(3, 1228284, SEEK_SET)             = 1228284
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=1234700, ...}) = 0
mmap2(NULL, 1303888, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76cfd000
mprotect(0x76e27000, 61440, PROT_NONE)  = 0
mmap2(0x76e36000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x129000) = 0x76e36000
mmap2(0x76e39000, 9552, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76e39000
close(3)                                = 0
open("/home/pi/hackoort/build/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/libgio-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\240\217\2\0004\0\0\0"..., 512) = 512
lseek(3, 1385416, SEEK_SET)             = 1385416
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
lseek(3, 1385072, SEEK_SET)             = 1385072
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=1386496, ...}) = 0
mmap2(NULL, 1454672, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76b99000
mprotect(0x76ce8000, 65536, PROT_NONE)  = 0
mmap2(0x76cf8000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14f000) = 0x76cf8000
mmap2(0x76cfc000, 592, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76cfc000
close(3)                                = 0
open("/home/pi/hackoort/build/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/libgobject-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\260\213\0\0004\0\0\0"..., 512) = 512
lseek(3, 301220, SEEK_SET)              = 301220
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
lseek(3, 300884, SEEK_SET)              = 300884
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=302260, ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fe5000
mmap2(NULL, 367848, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76b3f000
mprotect(0x76b88000, 61440, PROT_NONE)  = 0
mmap2(0x76b97000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x48000) = 0x76b97000
close(3)                                = 0
open("/home/pi/hackoort/build/libpcre.so.3", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libpcre.so.3", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0004\20\0\0004\0\0\0"..., 512) = 512
lseek(3, 426320, SEEK_SET)              = 426320
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1040) = 1040
lseek(3, 426012, SEEK_SET)              = 426012
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=427360, ...}) = 0
mmap2(NULL, 491604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76ac6000
mprotect(0x76b2e000, 61440, PROT_NONE)  = 0
mmap2(0x76b3d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x67000) = 0x76b3d000
close(3)                                = 0
open("/home/pi/hackoort/build/libpthread.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libpthread.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0dI\0\0004\0\0\0"..., 512) = 512
lseek(3, 125740, SEEK_SET)              = 125740
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1560) = 1560
lseek(3, 90536, SEEK_SET)               = 90536
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0755, st_size=127300, ...}) = 0
mmap2(NULL, 164432, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76a9d000
mprotect(0x76ab3000, 61440, PROT_NONE)  = 0
mmap2(0x76ac2000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x76ac2000
mmap2(0x76ac4000, 4688, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76ac4000
close(3)                                = 0
open("/home/pi/hackoort/build/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/libgmodule-2.0.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0 \r\0\0004\0\0\0"..., 512) = 512
lseek(3, 12820, SEEK_SET)               = 12820
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1000) = 1000
lseek(3, 12500, SEEK_SET)               = 12500
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=13820, ...}) = 0
mmap2(NULL, 78068, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76a89000
mprotect(0x76a8c000, 61440, PROT_NONE)  = 0
mmap2(0x76a9b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x76a9b000
close(3)                                = 0
open("/home/pi/hackoort/build/libz.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libz.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0l\30\0\0004\0\0\0"..., 512) = 512
lseek(3, 90764, SEEK_SET)               = 90764
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 90404, SEEK_SET)               = 90404
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=91884, ...}) = 0
mmap2(NULL, 155944, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76a62000
mprotect(0x76a78000, 61440, PROT_NONE)  = 0
mmap2(0x76a87000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15000) = 0x76a87000
close(3)                                = 0
open("/home/pi/hackoort/build/libselinux.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libselinux.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0hN\0\0004\0\0\0"..., 512) = 512
lseek(3, 136448, SEEK_SET)              = 136448
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 136088, SEEK_SET)              = 136088
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=137608, ...}) = 0
mmap2(NULL, 208496, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76a2f000
mprotect(0x76a4f000, 65536, PROT_NONE)  = 0
mmap2(0x76a5f000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x20000) = 0x76a5f000
mmap2(0x76a61000, 3696, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76a61000
close(3)                                = 0
open("/home/pi/hackoort/build/libresolv.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\200$\0\0004\0\0\0"..., 512) = 512
lseek(3, 74448, SEEK_SET)               = 74448
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 74084, SEEK_SET)               = 74084
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=75608, ...}) = 0
mmap2(NULL, 149408, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76a0a000
mprotect(0x76a1b000, 65536, PROT_NONE)  = 0
mmap2(0x76a2b000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x11000) = 0x76a2b000
mmap2(0x76a2d000, 6048, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76a2d000
close(3)                                = 0
open("/home/pi/hackoort/build/libmount.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libmount.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\360y\0\0004\0\0\0"..., 512) = 512
lseek(3, 268516, SEEK_SET)              = 268516
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 268148, SEEK_SET)              = 268148
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=269676, ...}) = 0
mmap2(NULL, 338540, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x769b7000
mprotect(0x769f7000, 65536, PROT_NONE)  = 0
mmap2(0x76a07000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x40000) = 0x76a07000
mmap2(0x76a09000, 2668, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x76a09000
close(3)                                = 0
open("/home/pi/hackoort/build/libffi.so.6", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/libffi.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0h\23\0\0004\0\0\0"..., 512) = 512
lseek(3, 29284, SEEK_SET)               = 29284
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 28928, SEEK_SET)               = 28928
read(3, "A*\0\0\0aeabi\0\1 \0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 43) = 43
fstat64(3, {st_mode=S_IFREG|0644, st_size=30404, ...}) = 0
mmap2(NULL, 95036, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7699f000
mprotect(0x769a6000, 61440, PROT_NONE)  = 0
mmap2(0x769b5000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x769b5000
close(3)                                = 0
open("/home/pi/hackoort/build/libdl.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libdl.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0P\t\0\0004\0\0\0"..., 512) = 512
lseek(3, 8680, SEEK_SET)                = 8680
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1120) = 1120
lseek(3, 8328, SEEK_SET)                = 8328
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=9800, ...}) = 0
mmap2(NULL, 73912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7698c000
mprotect(0x7698e000, 61440, PROT_NONE)  = 0
mmap2(0x7699d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1000) = 0x7699d000
close(3)                                = 0
open("/home/pi/hackoort/build/libblkid.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libblkid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\330P\0\0004\0\0\0"..., 512) = 512
lseek(3, 243456, SEEK_SET)              = 243456
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 243088, SEEK_SET)              = 243088
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=244616, ...}) = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fe3000
mmap2(NULL, 313492, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7693f000
mprotect(0x76978000, 65536, PROT_NONE)  = 0
mmap2(0x76988000, 12288, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x39000) = 0x76988000
mmap2(0x7698b000, 2196, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7698b000
close(3)                                = 0
open("/home/pi/hackoort/build/librt.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/librt.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\3\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0 \27\0\0004\0\0\0"..., 512) = 512
lseek(3, 25352, SEEK_SET)               = 25352
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1280) = 1280
lseek(3, 24940, SEEK_SET)               = 24940
read(3, "A.\0\0\0aeabi\0\1$\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\23\1\24"..., 47) = 47
fstat64(3, {st_mode=S_IFREG|0644, st_size=26632, ...}) = 0
mmap2(NULL, 90640, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x76928000
mprotect(0x7692e000, 61440, PROT_NONE)  = 0
mmap2(0x7693d000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x5000) = 0x7693d000
close(3)                                = 0
open("/home/pi/hackoort/build/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libgcc_s.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\200\321\0\0004\0\0\0"..., 512) = 512
lseek(3, 115292, SEEK_SET)              = 115292
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1080) = 1080
lseek(3, 114944, SEEK_SET)              = 114944
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=116372, ...}) = 0
mmap2(NULL, 180536, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x768fb000
mprotect(0x76917000, 61440, PROT_NONE)  = 0
mmap2(0x76926000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1b000) = 0x76926000
close(3)                                = 0
open("/home/pi/hackoort/build/libuuid.so.1", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/arm-linux-gnueabihf/libuuid.so.1", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0(\0\1\0\0\0\370\16\0\0004\0\0\0"..., 512) = 512
lseek(3, 12888, SEEK_SET)               = 12888
read(3, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1160) = 1160
lseek(3, 12528, SEEK_SET)               = 12528
read(3, "A,\0\0\0aeabi\0\1\"\0\0\0\0056\0\6\6\10\1\t\1\n\2\22\4\24\1\25"..., 45) = 45
fstat64(3, {st_mode=S_IFREG|0644, st_size=14048, ...}) = 0
mmap2(NULL, 78080, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x768e7000
mprotect(0x768ea000, 61440, PROT_NONE)  = 0
mmap2(0x768f9000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x2000) = 0x768f9000
close(3)                                = 0
mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fe1000
set_tls(0x76fe14c0, 0x76fe1c58, 0x76feb050, 0x76fe14c0, 0x76feb050) = 0
mprotect(0x76e36000, 8192, PROT_READ)   = 0
mprotect(0x768f9000, 4096, PROT_READ)   = 0
mprotect(0x76926000, 4096, PROT_READ)   = 0
mprotect(0x76ac2000, 4096, PROT_READ)   = 0
mprotect(0x7693d000, 4096, PROT_READ)   = 0
mprotect(0x76988000, 8192, PROT_READ)   = 0
mprotect(0x7699d000, 4096, PROT_READ)   = 0
mprotect(0x769b5000, 4096, PROT_READ)   = 0
mprotect(0x76b3d000, 4096, PROT_READ)   = 0
mprotect(0x76a5f000, 4096, PROT_READ)   = 0
mprotect(0x76a07000, 4096, PROT_READ)   = 0
mprotect(0x76a2b000, 4096, PROT_READ)   = 0
mprotect(0x76a87000, 4096, PROT_READ)   = 0
mprotect(0x76f42000, 4096, PROT_READ)   = 0
mprotect(0x76a9b000, 4096, PROT_READ)   = 0
mprotect(0x76b97000, 4096, PROT_READ)   = 0
mprotect(0x76cf8000, 8192, PROT_READ)   = 0
mprotect(0x76f79000, 4096, PROT_READ)   = 0
mprotect(0x76fa2000, 4096, PROT_READ)   = 0
mprotect(0x76fa4000, 20480, PROT_READ|PROT_WRITE) = 0
mprotect(0x76fa4000, 20480, PROT_READ|PROT_EXEC) = 0
cacheflush(0x76fa4000, 0x76fa9000, 0, 0x15, 0) = 0
mprotect(0x76fb8000, 4096, PROT_READ)   = 0
mprotect(0x22000, 4096, PROT_READ)      = 0
mprotect(0x76fea000, 4096, PROT_READ)   = 0
munmap(0x76f7b000, 88856)               = 0
set_tid_address(0x76fe1068)             = 1909
set_robust_list(0x76fe1070, 12)         = 0
rt_sigaction(SIGRTMIN, {sa_handler=0x76aa12b0, sa_mask=[], sa_flags=SA_RESTORER|SA_SIGINFO, sa_restorer=0x76d296c0}, NULL, 8) = 0
rt_sigaction(SIGRT_1, {sa_handler=0x76aa1390, sa_mask=[], sa_flags=SA_RESTORER|SA_RESTART|SA_SIGINFO, sa_restorer=0x76d296c0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0
ugetrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0
statfs("/sys/fs/selinux", 0x7ea78f0c)   = -1 ENOENT (No such file or directory)
statfs("/selinux", 0x7ea78f0c)          = -1 ENOENT (No such file or directory)
brk(NULL)                               = 0x1671000
brk(0x1692000)                          = 0x1692000
open("/proc/filesystems", O_RDONLY)     = 3
fstat64(3, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
read(3, "nodev\tsysfs\nnodev\trootfs\nnodev\tr"..., 1024) = 343
read(3, "", 1024)                       = 0
close(3)                                = 0
access("/etc/selinux/config", F_OK)     = -1 ENOENT (No such file or directory)
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 1), ...}) = 0
write(1, "CMD: ON, arg[last]: FF0000, argc"..., 36CMD: ON, arg[last]: FF0000, argc: 6
) = 36
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/usr/share/locale/locale.alias", O_RDONLY|O_LARGEFILE) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=2995, ...}) = 0
read(3, "# Locale name alias data base.\n#"..., 4096) = 2995
read(3, "", 4096)                       = 0
close(3)                                = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
open("/home/pi/.oorttool.conf", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/charset.alias", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
open("/usr/lib/arm-linux-gnueabihf/gconv/gconv-modules.cache", O_RDONLY) = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=26262, ...}) = 0
mmap2(NULL, 26262, PROT_READ, MAP_SHARED, 3, 0) = 0x76f8a000
close(3)                                = 0
futex(0x76e38ed8, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(2, "Could not read config file .oort"..., 42Could not read config file .oorttool.conf
) = 42
write(1, "Connecting to 84:EB:18:7C:51:41\n", 32Connecting to 84:EB:18:7C:51:41
) = 32
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 3
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigaction(SIGPIPE, {sa_handler=SIG_IGN, sa_mask=[PIPE], sa_flags=SA_RESTORER|SA_RESTART, sa_restorer=0x76d296b0}, {sa_handler=SIG_DFL, sa_mask=[], sa_flags=0}, 8) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
socket(AF_UNIX, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
fcntl64(4, F_GETFL)                     = 0x2 (flags O_RDWR)
fcntl64(4, F_SETFL, O_RDWR|O_NONBLOCK)  = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
connect(4, {sa_family=AF_UNIX, sun_path="/var/run/dbus/system_bus_socket"}, 110) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
getpid()                                = 1909
geteuid32()                             = 1000
getegid32()                             = 1000
getpid()                                = 1909
geteuid32()                             = 1000
getegid32()                             = 1000
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
sendmsg(4, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\0", iov_len=1}], msg_iovlen=1, msg_control=[{cmsg_len=24, cmsg_level=SOL_SOCKET, cmsg_type=SCM_CREDENTIALS, cmsg_data={pid=1909, uid=1000, gid=1000}}], msg_controllen=24, msg_flags=0}, MSG_NOSIGNAL) = 1
send(4, "AUTH\r\n", 6, MSG_NOSIGNAL)    = 6
recv(4, "REJECTED EXTERNAL DBUS_COOKIE_SH"..., 4096, 0) = 46
send(4, "AUTH EXTERNAL 31303030\r\n", 24, MSG_NOSIGNAL) = 24
recv(4, 0x1686d98, 4096, 0)             = -1 EAGAIN (Resource temporarily unavailable)
poll([{fd=4, events=POLLIN}], 1, -1)    = 1 ([{fd=4, revents=POLLIN}])
recv(4, "OK 50ad75dbd725a8d4068142635aa6e"..., 4096, 0) = 37
send(4, "NEGOTIATE_UNIX_FD\r\n", 19, MSG_NOSIGNAL) = 19
recv(4, "AGREE_UNIX_FD\r\n", 4096, 0)   = 15
send(4, "BEGIN\r\n", 7, MSG_NOSIGNAL)   = 7
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
rt_sigprocmask(SIG_SETMASK, ~[RTMIN RT_1], [], 8) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 5
mmap2(NULL, 8388608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x760e7000
mprotect(0x760e7000, 4096, PROT_NONE)   = 0
clone(child_stack=0x768e5ee8, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x768e6418, tls=0x768e6870, child_tidptr=0x768e6418) = 1910
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687110, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 6
mmap2(NULL, 8388608, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_STACK, -1, 0) = 0x75700000
mprotect(0x75700000, 4096, PROT_NONE)   = 0
clone(child_stack=0x75efeee8, flags=CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD|CLONE_SYSVSEM|CLONE_SETTLS|CLONE_PARENT_SETTID|CLONE_CHILD_CLEARTID, parent_tidptr=0x75eff418, tls=0x75eff870, child_tidptr=0x75eff418) = 1911
futex(0x76f43cb4, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76f43ccc, FUTEX_WAKE_PRIVATE, 2147483647) = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 7
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x1686e1c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}])
read(7, "\1\0\0\0\0\0\0\0", 16)         = 8
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x168790c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
close(7)                                = 0
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x1686e1c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 7
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}])
read(7, "\1\0\0\0\0\0\0\0", 16)         = 8
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x1686e1c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}])
read(7, "\1\0\0\0\0\0\0\0", 16)         = 8
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x1686e1c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x76b987f0, FUTEX_WAIT_PRIVATE, 2, NULL) = -1 EAGAIN (Resource temporarily unavailable)
futex(0x76b987f0, FUTEX_WAKE_PRIVATE, 1) = 0
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}])
read(7, "\1\0\0\0\0\0\0\0", 16)         = 8
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1689e7c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
close(7)                                = 0
eventfd2(0, EFD_CLOEXEC|EFD_NONBLOCK)   = 7
write(6, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1687528, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x1686e1c, FUTEX_WAKE_PRIVATE, 1) = 1
futex(0x168283c, FUTEX_WAKE_PRIVATE, 1) = 1
poll([{fd=7, events=POLLIN}], 1, 25000) = 1 ([{fd=7, revents=POLLIN}])
read(7, "\1\0\0\0\0\0\0\0", 16)         = 8
write(7, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x1689e7c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
close(7)                                = 0
poll([{fd=3, events=POLLIN}], 1, 4548)  = 0 (Timeout)
write(3, "\1\0\0\0\0\0\0\0", 8)         = 8
futex(0x168248c, FUTEX_WAKE_PRIVATE, 2147483647) = 0
write(1, "Connected to 84:EB:18:7C:51:41\n", 31Connected to 84:EB:18:7C:51:41
) = 31
write(2, "oorttool: /home/pi/hackoort/oort"..., 88oorttool: /home/pi/hackoort/oorttool/oorttool.c:312: main: Assertion `ret == 0' failed.
) = 88
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x76fe0000
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
getpid()                                = 1909
gettid()                                = 1909
tgkill(1909, 1909, SIGABRT)             = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=1909, si_uid=1000} ---
+++ killed by SIGABRT +++
Aborted
pi@raspberrypi:~ $ 

@emsi
Copy link
Owner

emsi commented Mar 15, 2018

That's weired. The things that come to my mind:

  1. Do you have another bulb to try? I occasionally experienced issues with bulb freezing. Turning it off and on again a couple of times and verifying that it communicates properly with the iPhone/Android Oort app before trying to communicate usually helped.
  2. Have you recompiled the oortool after the upgrade? gattlib is a naughty beast and they changed the interface in the past already. I had to rewrite oorttool once to tackle that. Make sure you can use gatttool to detect the bulb (in other means make sure that the bluetooth subsystem is working properly, try to perform the actions with root user to rule out permissions issues).

The part that makes me particularly suspicious is:

send(4, "AUTH\r\n", 6, MSG_NOSIGNAL)    = 6
recv(4, "REJECTED EXTERNAL DBUS_COOKIE_SH"..., 4096, 0) = 46
send(4, "AUTH EXTERNAL 31303030\r\n", 24, MSG_NOSIGNAL) = 24
recv(4, 0x1686d98, 4096, 0)             = -1 EAGAIN (Resource temporarily unavailable)

Looks like there is some problem with BT subsystem. Check the OS logs and make sure you have proper drivers and firmware that works with you current kernel and that other BT tools work and you can detect the bulb with them.

@k1dn3y
Copy link
Author

k1dn3y commented Mar 18, 2018

Ok great!
Thank you for the advices, I will test it and get back to you!

Unfortunately, I don't have a second light bulb to try out on. The bulb works perfectly fine with my Android app and yes I've tried to turn off and on with the app itself and restart all of it without hackoort working.

The raspbian stretch OS was a completely clean install so yes I compiled oorttool, gattlib, bluez etc all from scratch.

I will try some more and get back!
Cheers mate :)

@emsi
Copy link
Owner

emsi commented Mar 20, 2018

Please make sure your gattool is is working correctly. Try to update or downgrade it. In my instruction I advised to use the gatt code from git which occasionally might not be the best alternative. Try checking out some stable version and recompile with it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants