Re: How do I get udev to replay coldplug events for devices that did not load?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel]     [Linux DVB]     [Asterisk Internet PBX]     [DCCP]     [Netdev]     [X.org]     [Util Linux NG]     [Fedora Women]     [ALSA Devel]     [Linux USB]

  Powered by Linux