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

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: