site  contact  subhomenews

Udev in Puppy

July 05, 2008 — BarryK
Yes, I plan for Puppy to work with either udev or my 'pup_event_backend_d' replacement for 'udevd'.

Last night and today has been very frustrating, but I am getting there and have learnt a couple of vital things about udev.

Last night I built UniPup with udev. I have it setup so that if the udev package is chosen in Unleashed, the boot script rc.sysinit will automatically use udevd. And it worked, except for usb drives ...they did not work at all. I spent most of today puzzling over it, until finally I discovered that the 'ub.ko' module messes up the 'usb-storage.ko' module. In theory, as I discovered much later, they should be able to co-exist, as "Pat" was informed:

What I have done is blacklisted the 'ub' module. Note, in Pup 4.1alpha3 you might see ub loaded, but after usb-storage I think. I don't know what affect it has in 4.1alpha3.

I will probably be recompiling the kernel tomorow morning ( and I will probably follow the advice here:
which is to avoid the ub driver and disable it when configuring the kernel.

Generating uevents
Now the second important thing I learnt today.
I was using 'udevtrigger' to make the kernel replay uevents, so that 'pup_event_backend_d' or 'udevd' can process them and load modules (etc). However I have not been entirely happy with udevtrigger ('udevadm trigger' in newer versions of the udev package). Today I found out that the kernel can be made to generate a uevent simply by doing this:
echo add > /sys/$DEVPATH/uevent
and I can easily generate any uevents in the boot script -- which is how it is now done.

While experimenting with all of the above, I have been building UniPup without /proc/bus/usb mounted. As I understand, this is a legacy thing? As long as no scripts need it I suppose we can move on and not have it.

Tags: puppy