diff options
Diffstat (limited to 'data/stage3.1/init')
-rwxr-xr-x | data/stage3.1/init | 78 |
1 files changed, 37 insertions, 41 deletions
diff --git a/data/stage3.1/init b/data/stage3.1/init index affae622..bc3ce113 100755 --- a/data/stage3.1/init +++ b/data/stage3.1/init @@ -21,40 +21,57 @@ mount -n -t tmpfs -o 'mode=755' run "/run" [ ! -d /sys/class ] && mount -n -t sysfs sysfs /sys # read primary graphic adaptor configuration (without proprietary drivers yet) -( hwinfo --gfxcard >/etc/hwinfo.gfxcard - case $(cat /etc/hwinfo.gfxcard) in - *i915*) - modprobe -a i915 2>/dev/null - ;; +hwinfo --gfxcard --netcard --usb-ctrl >/etc/hwinfo & + +# load local file systems +insmod /lib/modules.0/aufs.ko +insmod /lib/modules.0/squashfs.ko + +mkdir -p /dev/shm/union /dev/shm/uniontmp /rorootfs +mount -n /mnt/openslx.sqfs /rorootfs +mount -n -t tmpfs none /dev/shm/uniontmp + +mount -n -t aufs -o br:/dev/shm/uniontmp:/rorootfs=ro none /mnt +mkdir -p /mnt/uniontmp +mount -n --move /dev/shm/uniontmp /mnt/uniontmp + +ln -s /mnt/lib/modules /lib/ + +while ps | grep -v grep | grep -q " hwinfo" ; do usleep 10 ; done + +case $(cat /etc/hwinfo) in + *i915*) + modprobe -a i915 2>/dev/null + ;; *intel*|*Intel*) - modprobe -a i810 i830 i915 2>/dev/null - ;; + modprobe -a i810 i830 i915 2>/dev/null + ;; *nvidia*|*NVidia*|*nouveau*) - modprobe -q nouveau 2>/dev/null - ;; + modprobe -q nouveau 2>/dev/null + ;; *radeon*|*Radeon*) - modprobe -q radeon 2>/dev/null - ;; + modprobe -q radeon 2>/dev/null + ;; *mga*|*matrox*|*Matrox*) - modprobe -q mga 2>/dev/null - ;; + modprobe -q mga 2>/dev/null + ;; *) - modprobe -qa r128 savage sis tdfx ttm via viafb - ;; - esac - modprobe -a drm fbcon; mdev -s ) & + modprobe -qa r128 savage sis tdfx ttm via viafb + ;; +esac +( modprobe -a drm fbcon; mdev -s ) & # load required network and usb controller drivers, filter out wireless adaptors nwcardlist="forcedeth e1000e e1000 e100 tg3 via-rhine r8169 pcnet32" echo "modprobe -qa usbhid hid-bright" >/etc/modprobe.base -grep modprobe /etc/hwinfo.netcard-usbctrl | grep -E "$nwcardlist|hcd" \ +grep modprobe /etc/hwinfo | grep -E "$nwcardlist|hcd" \ | grep -v ehci | sed 's/.* Cmd: "//;s/"//;s/modprobe/modprobe -qb/' \ | sort -u >>/etc/modprobe.base # virtio hack if [ $(grep -ic "virtio_pci" /etc/modprobe.base) -ge 1 ]; then echo "modprobe -q virtio_net" >>/etc/modprobe.base fi -sh /etc/modprobe.base; mdev -s +/bin/sh /etc/modprobe.base; mdev -s # read kernel command line for debugging switch read KCL < /proc/cmdline @@ -69,11 +86,8 @@ for opts in ${KCL}; do esac done - -modprobe usbhid -modprobe pcnet32 +# setup network nwif="eth0" - # set up loopback networking [ $DEBUGLEVEL -eq 20 ] && echo "** starting ip config at $(sysup)" ip link set dev lo up 2>/dev/null @@ -109,24 +123,6 @@ else noipyet="yes" fi -for MOD in aufs squashfs sunrpc lockd fscache auth_rpcgss nfs_acl nfs; do - insmod /lib/modules/${MOD}.ko -done - -# load basic filesystem modules -#modprobe -qa aufs squashfs nfs - - -mkdir -p /dev/shm/union /dev/shm/uniontmp /rorootfs -mount -n /mnt/openslx.sqfs /rorootfs -mount -n -t tmpfs none /dev/shm/uniontmp - -mount -n -t aufs -o br:/dev/shm/uniontmp:/rorootfs=ro none /mnt -mkdir -p /mnt/uniontmp -mount -n --move /dev/shm/uniontmp /mnt/uniontmp - - - if [ $DEBUG -ge 1 ]; then echo "Starting debug shell, CTRL + D will start Stage 3.2." |