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

Bug#332824: missing ide-generic



please try the attached patch,
should load ide-generic even if udev didn't yet bring it up:
patch -p1  /usr/share/initramfs-tools/scripts/init-premount/udev < ide-generic.udev.patch

for this trial please remove any ide-generic or ide-disk 
out of /etc/mkinitramfs/modules, then update-initramfs -u
and reboot,
if it doesn't work out you still need to modprobe manually
ide-generic and disc..

thanks for your feedback.

-- 
maks
--- udev-0.076/extra/initramfs.premount	2005-12-23 12:36:04.000000000 +0100
+++ udev-0.076-ma/extra/initramfs.premount	2005-12-23 12:35:52.000000000 +0100
@@ -21,6 +21,38 @@ mkdir /dev/.udev/ /dev/.udev/db/ /dev/.u
 udevd --daemon
 
 udevsynthesize
+
+# Our job now is to make the block device for the root filesystem available.
+# This is actually a bit trickier than it first appears because we first need
+# to figure out which driver needs it, and to do that, we need to know what
+# type of bus it's on.  Fortunately we have all that information, this still
+# feels like an ungodly hack though.
+. /conf/initramfs.conf
+. /scripts/functions
+case "${BOOT}" in
+	local)
+	case "${ROOT}" in
+		/dev/root)
+		# An interesting case, this root device was specified as a
+		# major/minor pair.  Fortunately we have that information
+			case "${major}" in
+				3|22|33|34|56|57|88|89|90|91)
+					# traditional ide
+					root_type=ide
+					;;
+				80|81|82|83|84|85|86|87)
+					# ide on i2o
+					root_type=ide
+					;;
+			esac
+			;;
+		/dev/hd*)
+			# Ahh, plain-old traditional ide
+			root_type=ide
+			;;
+	esac
+esac
+
 while [ -d /dev/.udev/queue/ ]; do
     sleep 1
     udevd_timeout=$(($udevd_timeout - 1))
@@ -29,5 +61,13 @@ while [ -d /dev/.udev/queue/ ]; do
     fi
 done
 
+# If we're booting from IDE, we may need to load ide-generic.
+case "${root_type}" in
+	ide)
+		if [ ! -e "${ROOT}" -o "${ROOT}" = "/dev/root" ]; then
+			modprobe -q ide-generic
+		fi
+esac
+
 # Leave udev running to process events that come in out-of-band (like USB
 # connections)

Reply to: