I will need to study the evolution of the uevent/udev mechanism to fully understand this. I have been relying upon the existence of 'modalias' files in /sys for replaying kernel uevents. In /etc/rc.d/rc.sysinit there is code that locates the modalias files, then looks for a 'uevent' file at the same location then sends a "replay" message to it.
The problem is that it doesn't always work. I don't know if the problem is due to an evolution in the mechanism in recent kernels, or not. I'm currently running 22.214.171.124, I would need to check this on older kernels.
For USB interfaces, see this:
# cat /sys/bus/usb/devices/*/uevent | grep 'MODALIAS'
# cat /sys/bus/usb/devices/*/modalias
That is,the MODALIAS information is to be found in both the 'modalias' file and the 'uevent' file.
The problem arises with some newer interfaces, there is no 'modalias' file, only a 'uevent' file, and the MODALIAS variable is only to be found in the 'uevent' file.
This is the situation that trio has reported:
There is no modalias anywhere. But found two uevent(s)
/sys/bus/ssb/devices/ssb0:1/uevent and /sys/bus/ssb/devices/ssb0:0/uevent
Inside the uevent file:
I have modified /etc/rc.d/rc.sysinit accordingly. It should now successfully replay the uevent for the network hardware that requires the b43 module, and the firmware should get installed.
No comments posted yet.