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

ERROR: /dev/servoblaster does not exist #131

Open
HamOP opened this issue Dec 21, 2023 · 1 comment
Open

ERROR: /dev/servoblaster does not exist #131

HamOP opened this issue Dec 21, 2023 · 1 comment

Comments

@HamOP
Copy link

HamOP commented Dec 21, 2023

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

@scorot
Copy link

scorot commented Aug 21, 2024

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.

Hope this help.
Sebastien

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