Magellan Linux

Diff of /trunk/mkinitrd-magellan/livecd/linuxrc.sh

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 605 by niro, Sat Nov 10 19:56:21 2007 UTC revision 894 by niro, Wed Aug 5 16:24:23 2009 UTC
# Line 1  Line 1 
1  #!/bin/sh  #!/bin/sh
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd-magellan/livecd/linuxrc.sh,v 1.2 2007-11-10 19:56:21 niro Exp $  # $Id$
3    
4  # loads given kernel modules  # loads given kernel modules
5  load_kernel_modules()  load_kernel_modules()
# Line 45  check_drives() Line 45  check_drives()
45   then   then
46   echo -e "Magellan boot device found."   echo -e "Magellan boot device found."
47   BOOT_DEVICE="${dev}"   BOOT_DEVICE="${dev}"
48   FSTYPE=${fs}   FSTYPE="${fs}"
49   break   break
50   fi   fi
51   fi   fi
# Line 55  check_drives() Line 55  check_drives()
55  ## some defaults ##  ## some defaults ##
56  DOSCSI=no  DOSCSI=no
57  DOUSB=no  DOUSB=no
58  DOSATA=no  DOSATA=yes
59  NOPATA=no  DOFB=no
60    DOPATA=yes
61    FORCED_ROOTFS=""
62    
63  ## starts here ##  ## starts here ##
64    
65  # mount essential filesystems  # mount essential filesystems
66  mount -t proc proc /proc  mount -t proc proc /proc
67  mount -t sysfs sysfs /sys  mount -t sysfs sysfs /sys
68    mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024
69    
70    # install all busybox applets
71    busybox --install -s
72    
73  # silencio  # silencio
74  echo 0 > /proc/sys/kernel/printk  echo 0 > /proc/sys/kernel/printk
# Line 71  echo 0 > /proc/sys/kernel/printk Line 77  echo 0 > /proc/sys/kernel/printk
77  for i in $(cat /proc/cmdline)  for i in $(cat /proc/cmdline)
78  do  do
79   case "${i}" in   case "${i}" in
80   doscsi)   doscsi) DOSCSI=yes;;
81   DOSCSI=yes   noscsi) DOSCSI=no;;
82   ;;   dousb) DOUSB=yes;;
83   dousb)   nousb) DOUSB=no;;
84   DOUSB=yes   dosata) DOSATA=yes ;;
85   ;;   nosata) DOSATA=no ;;
86   dosata)   dofb) DOFB=yes;;
87   DOSATA=yes   nofb) DOFB=no;;
88   ;;   dopata) DOPATA=yes;;
89   nopata)   nopata) DOPATA=no;;
90   NOPATA=yes   rootfs=*) FORCED_ROOTFS="${i#*=}";;
  ;;  
91   esac   esac
92  done  done
93    
94  # now load all needed modules  # now load all needed modules
95    [ "${DOFB}" = "yes" ] && load_kernel_modules "framebuffer"
96  load_kernel_modules "generic"  load_kernel_modules "generic"
97  [ "${NOPATA}" != "yes" ] && load_kernel_modules "pata"  [ "${DOPATA}" = "yes" ] && load_kernel_modules "pata"
98  [ "${DOSCSI}" = "yes" ] && load_kernel_modules "scsi"  [ "${DOSCSI}" = "yes" ] && load_kernel_modules "scsi"
99  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"  [ "${DOUSB}" = "yes" ] && load_kernel_modules "usb"
100  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"  [ "${DOSATA}" = "yes" ] && load_kernel_modules "sata"
101    
102    # populate dev
103    mdev -s
104    # handle hotplug events properly
105    echo /sbin/mdev > /proc/sys/kernel/hotplug
106    
107  # create newroot mount point  # create newroot mount point
108  mkdir -p /sysroot  mkdir -p /sysroot
109  # fake a new filesystem (also needed with an initramfs!!)  # fake a new filesystem (also needed with an initramfs!!)
# Line 117  echo "Searching for a boot device ..." Line 128  echo "Searching for a boot device ..."
128    
129  # searching usbstick  # searching usbstick
130  if [ "${DOUSB}" = "yes" ]; then  if [ "${DOUSB}" = "yes" ]; then
131   check_drives "/dev/sd*" "vfat"   ROOTFS="vfat"
132   check_drives "/dev/sg*" "vfat"   [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
133     check_drives "/dev/sd*" "${ROOTFS}"
134     check_drives "/dev/sg*" "${ROOTFS}"
135  fi  fi
136    
137  # for cdrom_device in $CDROM_LIST (ide)  # for cdrom_device in $CDROM_LIST (ide)
138  check_drives "/dev/cdroms/*" iso9660  ROOTFS="iso9660"
139  check_drives "/dev/hd*" iso9660  [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
140    check_drives "/dev/cdroms/*" "${ROOTFS}"
141    check_drives "/dev/hd*" "${ROOTFS}"
142    
143  # scsi cdroms  # scsi cdroms
144  if [ "${DOSCSI}" = "yes" ] || [ "${DOSATA}" = "yes" ]; then  if [ "${DOSCSI}" = "yes" ] || [ "${DOSATA}" = "yes" ]; then
145   check_drives "/dev/sr*" iso9660   ROOTFS="iso9660"
146   check_drives "/dev/sg*" iso9660   [[ ! -z ${FORCED_ROOTFS} ]] && ROOTFS="${FORCED_ROOTFS}"
147   check_drives "/dev/scd*" iso9660   check_drives "/dev/sr*" "${ROOTFS}"
148     check_drives "/dev/sg*" "${ROOTFS}"
149     check_drives "/dev/scd*" "${ROOTFS}"
150  fi  fi
151    
152  # mount our rootfs from cdrom  # mount our rootfs from cdrom
# Line 164  else Line 181  else
181   # make /sysroot/dev/console & /mnt/dev/null   # make /sysroot/dev/console & /mnt/dev/null
182   [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1   [ ! -e /sysroot/dev/console ] && mknod -m 600 /sysroot/dev/console c 5 1
183   [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3   [ ! -e /sysroot/dev/null ] && mknod -m 666 /sysroot/dev/null c 1 3
184     # only to be safe and to have a log channel
185     [ ! -e /sysroot/dev/tty ] && mknod /sysroot/dev/tty c 5 0
186     # busybox needs this one
187     [ ! -e /sysroot/dev/tty5 ] && mknod /sysroot/dev/tty5 c 4 5
188    
189   (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)   (cd /sysroot/mnt/cloop; cp -a etc root home var /sysroot)
190    
# Line 174  fi Line 195  fi
195    
196  cd /  cd /
197    
198    # unset hotplug event-manager
199    echo > /proc/sys/kernel/hotplug
200    
201  # de-silencio  # de-silencio
202  echo 3 > /proc/sys/kernel/printk  echo 3 > /proc/sys/kernel/printk
203    
204  echo "-- Switching to real sysroot ..."  echo "-- Switching to real sysroot ..."
205    umount /dev
206  umount /sys  umount /sys
207  umount /proc  umount /proc
208    

Legend:
Removed from v.605  
changed lines
  Added in v.894