diff options
author | Dirk von Suchodoletz | 2009-11-14 01:33:23 +0100 |
---|---|---|
committer | Dirk von Suchodoletz | 2009-11-14 01:33:23 +0100 |
commit | 4d0b301db88bfafda70e336a7851d48d804f6831 (patch) | |
tree | e98853877a7525292c6db74297778466f63e3553 | |
parent | let vmware-include in vmware path (diff) | |
download | core-4d0b301db88bfafda70e336a7851d48d804f6831.tar.gz core-4d0b301db88bfafda70e336a7851d48d804f6831.tar.xz core-4d0b301db88bfafda70e336a7851d48d804f6831.zip |
Might be fix for the after fs mounted module loading (problems reported
for specific wlan cards requiring firmware). Untested yet.
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@3204 95ad53e4-c205-0410-b2fa-d234c58c8868
-rw-r--r-- | initramfs/stage3-stuff/etc/messages | 10 | ||||
-rw-r--r-- | initramfs/stage3-stuff/etc/messages.de | 8 | ||||
-rwxr-xr-x | initramfs/stage3-stuff/init | 12 |
3 files changed, 20 insertions, 10 deletions
diff --git a/initramfs/stage3-stuff/etc/messages b/initramfs/stage3-stuff/etc/messages index c72008e9..734414c7 100644 --- a/initramfs/stage3-stuff/etc/messages +++ b/initramfs/stage3-stuff/etc/messages @@ -57,11 +57,12 @@ files." init_dnbd2s=" After 100 retries, it was not possible to start the dnbd2 \ service. Please\n check that at least one server is available. You might \ use the\n /sys/block/vnbd0 interface for this." -init_moddir=" The requested modules directory does not exist. That could \ -mean:\n * The kernel was updated but the demuxer was not run afterwards.\n\ +init_moddir=" The requested modules or firmware directory does not exist. \ +That could mean:\n\ + * The kernel was updated but the demuxer was not run afterwards.\n\ * The mounted filesystem does not contain the modules directory at all.\n\ You might want to check the list of mounted filesystems and if /mnt is\n\ - not empty run 'ls /mnt/lib/modules' to check." + not empty run 'ls /mnt/lib/modules; ls /mnt/lib/firmware' to check." init_loadaufs=" Loading of AUFS and/or UnionFS failed - Either the module(s) \ are not\n present or do not match the running kernel. If you do not want to \ see\n this message add the token(s) 'noaufs'/'nounionfs' to your kernel \ @@ -107,7 +108,8 @@ process list and list the modules loaded until\n now." init_errhw=" For some reason the hardware autoconfig $init_errcfg" init_errxorg=" For some reason no xorg.conf appeared, check xconfig!" init_errsw=" For some reason the software configuration $init_errcfg" -init_wait=" Waited $ticks ticks to unmount kernel module directory ..." +init_wait=" Waited $ticks ticks to unmount kernel module or firmware \ +directory ..." init_errumnt=" Unmount of the kernel modules directory \ failed for some reason. Some\n modprobe process still active!?" init_erritab=" The file /etc/inittab does not exist or is no regular one. It \ diff --git a/initramfs/stage3-stuff/etc/messages.de b/initramfs/stage3-stuff/etc/messages.de index 1fcf9743..dee39590 100644 --- a/initramfs/stage3-stuff/etc/messages.de +++ b/initramfs/stage3-stuff/etc/messages.de @@ -57,8 +57,9 @@ init_nbddev=" Aus irgendeinem Grund ist /dev/${NBD}0 nie erschienen. Sie \ sollten ihr udev-System\n nach Listen von statischen Geraeten untersuchen." init_dnbd2s=" Nach 100 Versuchen konnte das dnbd2 Blockdevice keinen laufenden \ Server finden.\n Bitte ueberpruefen Sie die Erreichbarkeit." -init_moddir=" Das angeforderte Modul-Verzeichnis existiert nicht. Das koennte \ -bedeuten:\n * Der Kernel wurde ausgetauscht/erneuert ohne einen neuen Aufruf \ +init_moddir=" Das angeforderte Modul- bzw. Firmware-Verzeichnis existiert \ +nicht. Das\n koennte bedeuten:\n\ + * Der Kernel wurde ausgetauscht/erneuert ohne einen neuen Aufruf \ von slxmkramfs oder\n mkdxsinitrd.\n * Das eingehaengte Dateisystem \ beinhaltet das Modul-Verzeichnis ueberhaupt nicht.\n Sie sollten die Liste \ der eingehaengten Dateisysteme pruefen und wenn /mnt\n nicht leer ist, \ @@ -116,7 +117,8 @@ Liste pruefen und die Module, die bis zum jetzigen Zeitpunkt geladen wurden." init_errhw=" Aus irgendeinem Grund wurde die Hardware Auto-Konfiguration \ $init_errcfg" init_errsw=" Aus irgendeinem Grund wurde die Software Konfiguration $init_errcfg" -init_wait=" Wartete $i Schlaege das Kernel Modul Verzeichnis auszuhaengen ..." +init_wait=" Wartete $i Zeiteinheiten das Kernel-Modul- bzw. Firmware-Verzeichnis \ +auszuhaengen ..." init_errumnt=" Das Kernel Modul Verzeichnis auszuhaengen \ scheiterte aus irgendeinem Grund. Sind einige\n ,,modprobe'' noch aktiv!?" init_erritab=" Die Datei /etc/inittab existiert nicht oder \ diff --git a/initramfs/stage3-stuff/init b/initramfs/stage3-stuff/init index 16d0494e..535b3e02 100755 --- a/initramfs/stage3-stuff/init +++ b/initramfs/stage3-stuff/init @@ -689,8 +689,9 @@ fi runinithook '35-have-network-root' -# get the complete collection of kernel modules available -mount -n --bind /mnt/lib/modules /lib/modules || error "$init_moddir" +# get the complete collection of kernel modules and firmwares available +mount -n --bind /mnt/lib/modules /lib/modules && \ +mount -n --bind /mnt/lib/firmware /lib/firmware || error "$init_moddir" # start hardware configuration as background process if not a special # debuglevel (21) is used for the option of manual hwautocfg start if [ ${DEBUGLEVEL} = 21 ] ; then @@ -950,12 +951,17 @@ postinit runinithook '90-postinit-done' -# unmount the bind mounted modules directory and nfs /tmp/scratch (if present) +# unmount the bind mounted modules, firmware directories and nfs /tmp/scratch +# (if present) export ticks for ticks in 0 1 2 5 10 20 30; do sleep $ticks && umount -n /lib/modules 2>/dev/null && break error "$init_wait" nonfatal done +for ticks in 0 1 2 5 10 20 30; do + sleep $ticks && umount -n /lib/modules 2>/dev/null && break + error "$init_wait" nonfatal +done mount 2>/dev/null | grep -q "/tmp/scratch type nfs" && \ for ticks in 0 1 2 5 10 20 30; do sleep $ticks && umount -n /tmp/scratch 2>/dev/null && break |