On Mon, Nov 22, 2010 at 13:44, David Goodenough <david.goodenough@xxxxxxxxxxxxx> wrote: > On Monday 22 November 2010, Kay Sievers wrote: >> On Mon, Nov 22, 2010 at 12:57, David Goodenough >> >> <david.goodenough@xxxxxxxxxxxxx> wrote: >> > Is there any way to get udev to replay coldplug events for device that it >> > could not run when it first tried to? >> > >> > My situation is that I have my kernel modules not in the rootfs (for a >> > good reason, not just for the sake of it) and they have not been > mounted >> > when udev fires off its coldplug events. ÂDoes udev notice failed device >> > creation events and keep them anywhere that can be reused? >> > >> > I could simply fix all these modules into the kernel, but some wireless >> > drivers (it happens to be these I am having problems with) seem to >> > work better when loaded as modules (or is that just an old memory that >> > is no longer true). >> >> Udev will not anything like this on its own. And I don't know any >> distro which allows/supports /lib/* to be on a non-root filesystem. >> >> You can add some custom code though that triggers all events again >> after all filesystems are mounted. That should work in usual setups. >> > My problem is that I have a mixture of distros. ÂThe kernel (and the modules > on a NAND file system) come from OpenWRT, and the root file system > comes from Debian. ÂThe NAND is large enough to hold the kernel, but not > an initramfs, and certainly not the root file system. ÂBut the board does > have a USB port, so I put the root file system on a USB stick and link to the > modules on the NAND so that I am always using the modules that the > kernel needs. > > When you say "add some custom code", any clues as to where I should > be looking to do this (I am not very familiar with the udev kernel code) > or is this simply a matter of asking for the list twice? ÂIt is only the PCI > devices (and the only things on the PCI bus are the wireless cards) > that I need to re-scan. Add a call like: udevadm trigger --subsystem-match=pci --attr-match=modalias --attr-nomatch=driver This will only run udev for devices on the PCI bus, which have a modalias file, but no current driver bound. For debuggin, you can print the device list by adding '-n -v' to command. Kay -- To unsubscribe from this list: send the line "unsubscribe linux-hotplug" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html