Bug#494027: more info
More info plus a possible patch.
/sys/devices/platform/orion-ehci.0/modalias exists which contains
the string platform:orion-ehci
And:
$ modprobe --show-depends platform:orion-ehci
insmod /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/core/usbcore.ko
insmod /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko
So maybe all we have to do is take all modalias files into account.
This patch does this:
--- /usr/share/initramfs-tools/hook-functions~ 2008-08-07 20:07:01.000000000 +0200
+++ /usr/share/initramfs-tools/hook-functions 2008-08-07 20:09:13.000000000 +0200
@@ -185,10 +185,17 @@
# walk /sys for relevant modules
sys_walk_mod_add()
{
- local driver_path module
+ local driver_path modalias module
device_path="$1"
while [ "${device_path}" != "/sys" ]; do
+ modalias="${device_path}/modalias"
+ if [ -e "$modalias" ]; then
+ module="$(cat $modalias)"
+ if [ -n "${module}" ]; then
+ force_load "${module}"
+ fi
+ fi
driver_path="$(readlink -f ${device_path}/driver)"
if [ -e "$driver_path" ]; then
module="$(basename $(readlink -f $driver_path))"
With this patch, there are two differences in the initramfs:
1) the correct module (ehci_hcd) is included.
and
2) conf/modules contains some more stuff:
diff -urN 1/conf/modules 2/conf/modules
--- 1/conf/modules 2008-08-07 20:13:15.000000000 +0200
+++ 2/conf/modules 2008-08-07 20:12:58.000000000 +0200
@@ -1,8 +1,11 @@
+scsi:t-0x00
sd
+usb:v13FEp1D00d0110dc00dsc00dp00ic08isc06ip50
usb-storage
usb
usb
usb
+platform:orion-ehci
orion-ehci
unix
I'm not sure if it's a problem that these modules are followed by so
much garbarge. But the initramfs boots.
The new log from the modalias parsing (with all the non-modalias stuff
removed):
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/target0:0:0/0:0:0:0/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/target0:0:0/0:0:0:0/modalias ']'
+++ cat /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/target0:0:0/0:0:0:0/modalias
++ module=scsi:t-0x00
++ '[' -n scsi:t-0x00 ']'
++ force_load scsi:t-0x00
++ manual_add_modules scsi:t-0x00
++ local mam_x firmwares firmware
+++ modprobe --set-version=2.6.26-1-orion5x --ignore-install --show-depends scsi:t-0x00
+++ awk '/^insmod/ { print $2 }'
++ for mam_x in '$(modprobe --set-version="${version}" --ignore-install --show-depends "${1}" 2>/dev/null | awk '\''/^insmod/ { print $2 }'\'')'
++ '[' -e /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/scsi_mod.ko ']'
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/scsi_mod.ko
++ mkdir -p /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/scsi_mod.ko
++ ln -s /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/scsi_mod.ko /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi
++ '[' n = y ']'
+++ modinfo -F firmware /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/scsi_mod.ko
++ firmwares=
++ '[' -z '' ']'
++ continue
++ for mam_x in '$(modprobe --set-version="${version}" --ignore-install --show-depends "${1}" 2>/dev/null | awk '\''/^insmod/ { print $2 }'\'')'
++ '[' -e /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/sd_mod.ko ']'
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/sd_mod.ko
++ mkdir -p /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/sd_mod.ko
++ ln -s /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/sd_mod.ko /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi
++ '[' n = y ']'
+++ modinfo -F firmware /lib/modules/2.6.26-1-orion5x/kernel/drivers/scsi/sd_mod.ko
++ firmwares=
++ '[' -z '' ']'
++ continue
++ echo scsi:t-0x00
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/target0:0:0/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/target0:0:0/modalias ']'
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/host0/modalias ']'
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/modalias ']'
+++ cat /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1:1.0/modalias
++ module=usb:v13FEp1D00d0110dc00dsc00dp00ic08isc06ip50
++ '[' -n usb:v13FEp1D00d0110dc00dsc00dp00ic08isc06ip50 ']'
++ force_load usb:v13FEp1D00d0110dc00dsc00dp00ic08isc06ip50
++ manual_add_modules usb:v13FEp1D00d0110dc00dsc00dp00ic08isc06ip50
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/1-1.1/modalias ']'
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/1-1/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/1-1/modalias ']'
++ modalias=/sys/devices/platform/orion-ehci.0/usb1/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/usb1/modalias ']'
++ modalias=/sys/devices/platform/orion-ehci.0/modalias
++ '[' -e /sys/devices/platform/orion-ehci.0/modalias ']'
+++ cat /sys/devices/platform/orion-ehci.0/modalias
++ module=platform:orion-ehci
++ '[' -n platform:orion-ehci ']'
++ force_load platform:orion-ehci
++ manual_add_modules platform:orion-ehci
++ local mam_x firmwares firmware
+++ modprobe --set-version=2.6.26-1-orion5x --ignore-install --show-depends platform:orion-ehci
+++ awk '/^insmod/ { print $2 }'
++ for mam_x in '$(modprobe --set-version="${version}" --ignore-install --show-depends "${1}" 2>/dev/null | awk '\''/^insmod/ { print $2 }'\'')'
++ '[' -e /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/core/usbcore.ko ']'
++ continue
++ for mam_x in '$(modprobe --set-version="${version}" --ignore-install --show-depends "${1}" 2>/dev/null | awk '\''/^insmod/ { print $2 }'\'')'
++ '[' -e /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko ']'
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko
++ mkdir -p /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host
+++ dirname /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko
++ ln -s /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko /tmp/mkinitramfs_Ep2918//lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host
++ '[' n = y ']'
+++ modinfo -F firmware /lib/modules/2.6.26-1-orion5x/kernel/drivers/usb/host/ehci-hcd.ko
++ firmwares=
++ '[' -z '' ']'
++ continue
++ echo platform:orion-ehci
++ modalias=/sys/devices/platform/modalias
++ '[' -e /sys/devices/platform/modalias ']'
++ modalias=/sys/devices/modalias
++ '[' -e /sys/devices/modalias ']'
Anyway, the new initramfs with this patch works for me. But I've no
idea if the modalias parsing has any side effects.
--
Martin Michlmayr
http://www.cyrius.com/
Reply to: