You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm trying to install servo blaster on a RPi 4B 8 GB, newest Buster release.
make servod gives the following output:
mailbox.c: In function 'mapmem':
mailbox.c:69:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
69 | printf("mmap error %d\n", (int)mem);
| ^
/usr/bin/ld: skipping incompatible /opt/vc/lib/libbcm_host.so when searching for -lbcm_host
but servod seems to be built fine. But it doesn't seem to start correctly - no matter what I try (make install or sudo ./servod), no errors seem to be generated, but there will be no /dev/servoblaster.
"sudo /etc/init.d/servoblaster status" gives the error "/dev/servoblaster does not exist".
I would be happy for every help!
Thanks, Stefan
The text was updated successfully, but these errors were encountered:
Hi,
This post is just to share that i have the same issue on a Raspberry Pi 4B 8Gb rev 1.5 with bullseye 64bits and bookworm 64bits. I have no issue with buster 32bits on Raspberry Pi 4B 4Gb rev 1.1.
It seems that servod crashes silently immediately after we run it. That is why the files /dev/servoblaster and /dev/servoblaster-cfg don't exist, since it is servod which creates them on startup. You can check with the command ps -u root | grep servod that the daemon is not running at all.
So I ran the program through gdb inside the build directory with sudo gdb ./servod, defined a break point on go_go_go in the main() function and it finally appears that the program crashes with the following error : "Program received signal SIGBUS, Bus error."
Here is the gdb output :
(gdb) break go_go_go
Breakpoint at 0x25x0: file servod.c, line 865.
(gdb) run
Starting program: /home/astroberry/Projects/Pibits/Servoblaster/user/servod
[Thread debugging using libthread_db enabled]
Using host libthread_db libraby "/lib/aarch64-linux-gnu/libthread_db.so.1".
Program received signal SIGBUS, Bus error.
init_ctrl_data () at servod.c:667
(gdb)
Finally i compiled the file servodebug.c and ran it and i get the following output :
astroberry@astroberry:~/Projects/PiBits/ServoBlaster $ gcc -Wall -O2 -o servodebug servodebug.c
astroberry@astroberry:~/Projects/PiBits/ServoBlaster $ sudo chrt 1 ./servodebug
This code should be compiled with the command:
gcc -Wall -O2 -o servodebug servodebug.c
It should be run with the command:
sudo chrt 1 ./servodebug
DMA controller is not running - is the module loaded?
it looks like the DMA access used by servod has changed in recent RaspberryPi OS releases. The other possibility is that 32bits or 64bits version don't handle the DMA access the same way but would be surprising.
I'm trying to install servo blaster on a RPi 4B 8 GB, newest Buster release.
make servod gives the following output:
mailbox.c: In function 'mapmem':
mailbox.c:69:33: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
69 | printf("mmap error %d\n", (int)mem);
| ^
/usr/bin/ld: skipping incompatible /opt/vc/lib/libbcm_host.so when searching for -lbcm_host
but servod seems to be built fine. But it doesn't seem to start correctly - no matter what I try (make install or sudo ./servod), no errors seem to be generated, but there will be no /dev/servoblaster.
"sudo /etc/init.d/servoblaster status" gives the error "/dev/servoblaster does not exist".
I would be happy for every help!
Thanks, Stefan
The text was updated successfully, but these errors were encountered: