Magellan Linux

Diff of /trunk/mkinitrd-magellan/mkinitrd.in

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

revision 1188 by niro, Thu Dec 16 01:24:51 2010 UTC revision 1793 by niro, Mon Apr 2 11:40:49 2012 UTC
# Line 94  moduledep() Line 94  moduledep()
94    
95   echo "Looking for deps of module $1"   echo "Looking for deps of module $1"
96   deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \   deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \
97   function modname(filename) { match(filename, /\/([^\/]+)\.k?o:?$/, ret); return ret[1] } \   function modname(filename) { match(filename, /\/([^\/]+)\.k?o.?g?z?:?$/, ret); return ret[1] } \
98   function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \   function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \
99   /^.*kernel/ { show(); \   /^.*kernel/ { show(); \
100   orig=modname($1); dep=""; \   orig=modname($1); dep=""; \
# Line 132  findmodule() Line 132  findmodule()
132    
133   case "${MODULES} " in   case "${MODULES} " in
134   *"/${modName}.ko "*) return ;;   *"/${modName}.ko "*) return ;;
135     *"/${modName}.ko.gz "*) return ;;
136   esac   esac
137    
138   if echo ${builtins} | egrep -q '(^| )'${modName}'( |$)'   if echo ${builtins} | egrep -q '(^| )'${modName}'( |$)'
# Line 164  findmodule() Line 165  findmodule()
165   done   done
166   fi   fi
167    
168   for modExt in o.gz o ko   for modExt in o.gz o ko ko.gz
169   do   do
170   for modDir in /lib/modules/${kernel}/updates /lib/modules/${kernel}   for modDir in /lib/modules/${kernel}/updates /lib/modules/${kernel}
171   do   do
# Line 252  findstoragedriver() Line 253  findstoragedriver()
253   modalias=$(cat modalias)   modalias=$(cat modalias)
254   for driver in $(modprobe --set-version ${kernel} --show-depends ${modalias} 2>/dev/null| awk '{ print gensub(".*/","","g",$2) }')   for driver in $(modprobe --set-version ${kernel} --show-depends ${modalias} 2>/dev/null| awk '{ print gensub(".*/","","g",$2) }')
255   do   do
256   findmodule ${driver%%.ko}   findmodule ${driver%%.*}
257   done   done
258   popd >/dev/null 2>&1   popd >/dev/null 2>&1
259   done   done
# Line 753  add_initrd '#!/bin/sh' Line 754  add_initrd '#!/bin/sh'
754    
755  add_initrd 'mount -t proc proc /proc'  add_initrd 'mount -t proc proc /proc'
756  add_initrd 'mount -t sysfs sysfs /sys'  add_initrd 'mount -t sysfs sysfs /sys'
757  add_initrd 'mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024'  add_initrd "if [[ -z \$(grep '[[:space:]]/dev[[:space:]]' /proc/mounts | cut -d ' ' -f2) ]]"
758    add_initrd 'then'
759    add_initrd ' # many video drivers needed exec access'
760    add_initrd ' fstype=ramfs'
761    add_initrd ' # tmpfs was suggested by Greg Kroah-Hartman'
762    add_initrd " [[ \$(grep '[[:space:]]tmpfs' /proc/filesystems | cut -d \$'\\t' -f2) = tmpfs ]] && fstype=tmpfs"
763    add_initrd ' # mount devtmpfs if supported'
764    add_initrd " [[ \$(grep '[[:space:]]devtmpfs' /proc/filesystems | cut -d \$'\\t' -f2) = devtmpfs ]] && fstype=devtmpfs"
765    add_initrd ' mount -t ${fstype} dev /dev -o exec,nosuid,mode=0755,size=10M'
766    add_initrd 'fi'
767    
768  [[ ${IMAGE_TYPE} = loopback ]] && add_initrd 'mount -t ramfs -o remount,rw /dev/ram /'  [[ ${IMAGE_TYPE} = loopback ]] && add_initrd 'mount -t ramfs -o remount,rw /dev/ram /'
769    
# Line 773  add_initrd 'echo /sbin/mdev > /proc/sys/ Line 783  add_initrd 'echo /sbin/mdev > /proc/sys/
783  for MODULE in ${MODULES}  for MODULE in ${MODULES}
784  do  do
785   text=""   text=""
786   module=$(echo ${MODULE} | sed "s|.*/||" | sed "s/.k\?o$//")   module=$(echo ${MODULE} | sed "s|.*/||" | sed -e "s/.k\?o.\?g\?z\?$//" -e "s/.gz//")
787   fullmodule=$(echo ${MODULE} | sed "s|.*/||")   fullmodule=$(echo ${MODULE} | sed -e "s|.*/||" -e "s/.gz//")
788    
789   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modprobeconf} 2>/dev/null)   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modprobeconf} 2>/dev/null)
790    
# Line 808  do Line 818  do
818   fi   fi
819  done  done
820    
821    # respect rootdelay kernel param
822    add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in rootdelay=*) ROOTDELAY="${i#*=}";; esac; done'
823    add_initrd 'if [ ! -z "${ROOTDELAY}" ]; then echo "-- Requested a rootdelay of ${ROOTDELAY} seconds ..."; sleep ${ROOTDELAY};fi'
824    
825  # lvm support  # lvm support
826  if [ -n "${vg_list}" ]  if [ -n "${vg_list}" ]
827  then  then
# Line 849  fi Line 863  fi
863  # get the right initexec  # get the right initexec
864  add_initrd "INITEXEC=\"${INITEXEC}\""  add_initrd "INITEXEC=\"${INITEXEC}\""
865  # support init=* from cmdline  # support init=* from cmdline
866  add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = init=* ]]; then INITEXEC=${i/init=}; fi; done'  add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in init=*) INITEXEC="${i#*=}";; esac; done'
867    
868  add_initrd 'echo "-- Mounting sysroot ..."'  add_initrd 'echo "-- Mounting sysroot ..."'
869  add_initrd '. /etc/rootdev'  add_initrd '. /etc/rootdev'
870  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'
871  add_initrd 'mount /sysroot || ash'  add_initrd 'mount /sysroot || ash'
872    
873    # use devtmpfs if supported
874    add_initrd "if [ \"\$(grep devtmpfs /proc/filesystems | cut -d$'\t' -f2)\" = \"devtmpfs\" ]; then mount -t devtmpfs dev /sysroot/dev;fi"
875    
876  # unset hotplug event-manager  # unset hotplug event-manager
877  add_initrd 'echo > /proc/sys/kernel/hotplug'  add_initrd 'echo > /proc/sys/kernel/hotplug'
878    
# Line 863  add_initrd 'echo > /proc/sys/kernel/hotp Line 880  add_initrd 'echo > /proc/sys/kernel/hotp
880  add_initrd 'echo 3 > /proc/sys/kernel/printk'  add_initrd 'echo 3 > /proc/sys/kernel/printk'
881    
882  add_initrd 'BREAK_ENABLED=no'  add_initrd 'BREAK_ENABLED=no'
883  add_initrd 'for i in $(cat /proc/cmdline); do if [[ ${i} = break ]]; then BREAK_ENABLED=yes; fi; done'  add_initrd 'for i in $(cat /proc/cmdline); do case ${i} in break) BREAK_ENABLED=yes;; esac; done'
884  add_initrd 'if [[ ${BREAK_ENABLED} = yes ]]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi'  add_initrd 'if [ "${BREAK_ENABLED}" = "yes" ]; then echo "-- Break requested, type 'exit' to resume operation ..."; ash; fi'
885    
886  add_initrd 'echo "-- Switching to real sysroot ..."'  add_initrd 'echo "-- Switching to real sysroot ..."'
887  add_initrd 'umount /dev'  add_initrd 'mount --move /dev /sysroot/dev'
888  add_initrd 'umount /sys'  add_initrd 'mount --move /sys /sysroot/sys'
889  add_initrd 'umount /proc'  add_initrd 'mount --move /proc /sysroot/proc'
890    
891  [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console'  [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot ${INITEXEC} $@ </sysroot/dev/console >/sysroot/dev/console'
892  if [[ ${IMAGE_TYPE} = loopback ]]  if [[ ${IMAGE_TYPE} = loopback ]]
# Line 893  do Line 910  do
910   if [ -x /usr/bin/strip ] && [[ ${NOSTRIP} = false ]]   if [ -x /usr/bin/strip ] && [[ ${NOSTRIP} = false ]]
911   then   then
912   /usr/bin/strip -g ${verbose} ${MODULE} -o ${DEST}/lib/$(basename ${MODULE}) || die   /usr/bin/strip -g ${verbose} ${MODULE} -o ${DEST}/lib/$(basename ${MODULE}) || die
913     # handle gzip compressed modules right
914     elif [[ ${MODULE##*.} = gz ]]
915     then
916     zcat ${verbose} ${MODULE} > ${DEST}/lib/$(basename ${MODULE} .gz) || die
917   else   else
918   cp ${verbose} -a ${MODULE} ${DEST}/lib || die   cp ${verbose} -a ${MODULE} ${DEST}/lib || die
919   fi   fi

Legend:
Removed from v.1188  
changed lines
  Added in v.1793