some trouble with udev and busybox modprobe

Davide louigi600 at yahoo.it
Mon May 9 13:59:38 UTC 2011


I'm putting up a busybox based embedded system for an ARM architecture (seagate dosckstar).
I'm using kernel 2.6.34.rc8, busybox v1.18.4 and udev 165 all built native on dockstar.

What's happening is that udev is not correctly loading some modules.
I copied a normal modprobe from an equivalent full system and modules started getting loaded properly bu udev.

I started udevd with --debug and dumped stderr to somewhere I could read it. This is what came out (the intresting part):
5584.430610 [1032] udev_rules_apply_to_event: RUN '/sbin/modprobe -bv $env{MODA
LIAS}' /lib/udev/rules.d/80-drivers.rules:5
5584.430746 [1032] util_run_program: '/sbin/modprobe -bv usb:vFFEEp0100d0100dc0
0dsc00dp00ic08isc06ip50' started
5584.435842 [1032] util_run_program: '/sbin/modprobe' (stderr) '/sbin/modprobe:
invalid option -- 'b''
5584.459928 [1032] util_run_program: '/sbin/modprobe' (stderr) 'BusyBox v1.18.4
(2011-04-20 14:04:26 BST)'
5584.460090 [1032] util_run_program: '/sbin/modprobe' (stderr) ' multi-call bin
ary.'
5584.460178 [1032] util_run_program: '/sbin/modprobe' (stderr) ''
5584.460204 [1032] util_run_program: '/sbin/modprobe' (stderr) 'Usage: '
5584.460278 [1032] util_run_program: '/sbin/modprobe' (stderr) 'modprobe'
5584.460379 [1032] util_run_program: '/sbin/modprobe' (stderr) ' '
5584.460464 [1032] util_run_program: '/sbin/modprobe' (stderr) '[-qfwrsv] MODUL
E [symbol=value]...'
5584.460489 [1032] util_run_program: '/sbin/modprobe' (stderr) ''
5584.460509 [1032] util_run_program: '/sbin/modprobe' (stderr) 'Options:'
5584.460530 [1032] util_run_program: '/sbin/modprobe' (stderr) '        -r
        Remove MODULE (stacks) or do autoclean'
5584.460550 [1032] util_run_program: '/sbin/modprobe' (stderr) '        -q

It looks like udev is modprobing with options busybox modprobe does not understand. I then changed the roles to only use options supprted by musybox modprobe.

What started happening then is that some things started to work but not all.
Loking with more care at the verbose outout of udevd, while inserting the usb stuff that was not working, I found that things start to go wrong when this is issued:
util_run_program: '/sbin/modprobe -v usb:v4586p1026d0050dc00dsc00dp00ic08isc06ip50'

I tried at a command prompt and I get no error but also no module is loaded.

I'm not actually sure what this should load because there is no module named just "usb" and I can't find any alias with that either. Mu suspect is that it should load usb-storage for a specific device.

I copied over the normal modprobe from an equivalent full system and things started to work correctly.

Can this be fixed without having to carry around the ordinary modprobe ?
Could this be a busybox bug or is there some workaround ?
I really need udev for some other stuff that I use for doing automounting and 3G connection upon device plugging.

Regards
David


More information about the busybox mailing list