Magellan Linux

Diff of /tags/mkinitrd-6_3_0/mkinitrd.in

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

revision 845 by niro, Mon May 4 18:51:02 2009 UTC revision 993 by niro, Sun May 30 11:47:04 2010 UTC
# Line 53  force="" Line 53  force=""
53  verbose=""  verbose=""
54  img_vers=""  img_vers=""
55  builtins=""  builtins=""
56  modulefile=/etc/modules.conf  modulefile="/etc/modules.conf"
57    modprobeconf="/etc/modprobe.d/*"
58  rc=0  rc=0
59    
60  IMAGESIZE=4000  IMAGESIZE=4000
# Line 319  handlelvordev() Line 320  handlelvordev()
320   fi   fi
321  }  }
322    
323    get_blkid()
324    {
325     local UUID
326     local SEC_TYPE
327     local TYPE
328    
329     local dev="$1"
330     [[ -z ${dev} ]] && die "no dev given"
331    
332     # check if given device is already an UUID
333     if [[ ${dev/UUID=/}x != ${dev}x ]]
334     then
335     eval "${dev}"
336     else
337     eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //')
338     fi
339     echo ${UUID}
340    }
341    
342  # need r00t privs  # need r00t privs
343  [[ $(id -u) != 0 ]] && die "you must be r00t."  [[ $(id -u) != 0 ]] && die "you must be r00t."
344    
# Line 453  fi Line 473  fi
473  ####### get modules ##########  ####### get modules ##########
474    
475  echo "Creating ${IMAGE_TYPE} initrd image"  echo "Creating ${IMAGE_TYPE} initrd image"
 modulefile=/etc/modprobe.conf  
476    
477  for n in ${PREMODS}  for n in ${PREMODS}
478  do  do
# Line 649  echo "Using modules:${MODULES}" Line 668  echo "Using modules:${MODULES}"
668    
669    
670  # create basic filesystem layout  # create basic filesystem layout
671  install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot} || die  install -d ${DEST}/{bin,dev,etc,lib,loopfs,proc,sbin,sys,sysroot,usr/bin,usr/sbin} || die
672    
673  # install busybox  # install busybox
674  echo "$(which busybox.mkinitrd)"  echo "$(which busybox.mkinitrd)"
# Line 669  done Line 688  done
688  # sbin related  # sbin related
689  for i in chroot init losetup modprobe pivot_root  for i in chroot init losetup modprobe pivot_root
690  do  do
691   # static links   ln -s ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}"
  ln ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}"  
692  done  done
693    
694  # install run-init  # install run-init
# Line 678  echo "$(which run-init.mkinitrd)" Line 696  echo "$(which run-init.mkinitrd)"
696  install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die  install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die
697    
698  # install insmod.static  # install insmod.static
699  echo "$(which insmod.static)"  #echo "$(which insmod.static)"
700  install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die  #install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die
701    
702  # install v86d for uvesafb support if installed  # install v86d for uvesafb support if installed
703  if which v86d &> /dev/null  if which v86d &> /dev/null
704  then  then
705   echo "$(which insmod.static)"   echo "$(which v86d)"
706   install -m0755 $(which v86d) ${DEST}/sbin/v86d || die   install -m0755 $(which v86d) ${DEST}/sbin/v86d || die
707  fi  fi
708    
# Line 727  add_initrd '#!/bin/sh' Line 745  add_initrd '#!/bin/sh'
745    
746  add_initrd 'mount -t proc proc /proc'  add_initrd 'mount -t proc proc /proc'
747  add_initrd 'mount -t sysfs sysfs /sys'  add_initrd 'mount -t sysfs sysfs /sys'
748    add_initrd 'mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024'
749    
750  [[ ${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 /'
751    
752    # install all busybox applets
753    add_initrd 'busybox --install -s'
754    
755  # silencio  # silencio
756  add_initrd 'echo 0 > /proc/sys/kernel/printk'  add_initrd 'echo 0 > /proc/sys/kernel/printk'
757    
758  add_initrd 'echo "-- Creating initial device nodes ..."'  add_initrd 'echo "-- Creating initial device nodes ..."'
759  add_initrd 'mount -o exec,nosuid,mode=0755,size=10M -t tmpfs udev /dev'  # populate dev
760  add_initrd 'mkdir /dev/pts'  add_initrd 'mdev -s'
761  add_initrd 'mkdir /dev/shm'  # handle hotplug events properly
762  add_initrd 'mkdir /dev/mapper'  add_initrd 'echo /sbin/mdev > /proc/sys/kernel/hotplug'
 add_initrd 'mkdir /dev/misc'  
 add_initrd 'mkdir /dev/fb'  
 add_initrd 'mkdir /dev/vc'  
 add_initrd 'mknod /dev/console c 5 1'  
 add_initrd 'mknod /dev/null c 1 3'  
 add_initrd 'mknod /dev/ram b 1 1'  
 add_initrd 'mknod /dev/rtc c 10 135'  
 add_initrd 'mknod /dev/systty c 4 0'  
 add_initrd 'mknod /dev/tty c 5 0'  
 add_initrd 'mknod /dev/zero c 1 5'  
 for (( i=0; i < 13; i++ )); do  
  add_initrd "mknod /dev/tty${i} c 4 ${i}"  
 done  
 for (( i=64; i < 68; i++)); do  
  add_initrd "mknod /dev/ttyS$((${i} - 64)) c 4 ${i}"  
 done  
   
 # some needed symlinks  
 add_initrd 'ln -snf /proc/self/fd /dev/fd'  
 add_initrd 'ln -snf fd/0 /dev/stdin'  
 add_initrd 'ln -snf fd/1 /dev/stdout'  
 add_initrd 'ln -snf fd/2 /dev/stderr'  
 add_initrd 'ln -snf /proc/kcore /dev/core'  
763    
764  # loading detected modules with options  # loading detected modules with options
765  for MODULE in ${MODULES}  for MODULE in ${MODULES}
# Line 769  do Line 768  do
768   module=$(echo ${MODULE} | sed "s|.*/||" | sed "s/.k\?o$//")   module=$(echo ${MODULE} | sed "s|.*/||" | sed "s/.k\?o$//")
769   fullmodule=$(echo ${MODULE} | sed "s|.*/||")   fullmodule=$(echo ${MODULE} | sed "s|.*/||")
770    
771   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modulefile} 2>/dev/null)   options=$(sed -n -e "s/^options[     ][      ]*${module}[      ][      ]*//p" ${modprobeconf} 2>/dev/null)
772    
773   if [ -n "${options}" ]   if [ -n "${options}" ]
774   then   then
# Line 841  fi Line 840  fi
840    
841  add_initrd 'echo "-- Mounting sysroot ..."'  add_initrd 'echo "-- Mounting sysroot ..."'
842  add_initrd '. /etc/rootdev'  add_initrd '. /etc/rootdev'
 add_initrd '[ ! -e ${device} ] && mknod ${device} b ${major} ${minor}'  
843  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'
844  add_initrd 'mount /sysroot || ash'  add_initrd 'mount /sysroot || ash'
845    
846    # unset hotplug event-manager
847    add_initrd 'echo > /proc/sys/kernel/hotplug'
848    
849  # de-silencio  # de-silencio
850  add_initrd 'echo 3 > /proc/sys/kernel/printk'  add_initrd 'echo 3 > /proc/sys/kernel/printk'
851    
852  add_initrd 'echo "-- Switching to real sysroot ..."'  add_initrd 'echo "-- Switching to real sysroot ..."'
853    add_initrd 'umount /dev'
854  add_initrd 'umount /sys'  add_initrd 'umount /sys'
855  add_initrd 'umount /proc'  add_initrd 'umount /proc'
 add_initrd 'umount /dev'  
856    
857  [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot /sbin/init $@ </sysroot/dev/console >/sysroot/dev/console'  [[ ${IMAGE_TYPE} = initramfs ]] && add_initrd 'exec run-init /sysroot /sbin/init $@ </sysroot/dev/console >/sysroot/dev/console'
858  if [[ ${IMAGE_TYPE} = loopback ]]  if [[ ${IMAGE_TYPE} = loopback ]]
# Line 865  chmod +x ${DEST}/init || die Line 866  chmod +x ${DEST}/init || die
866    
867  # setup root block device  # setup root block device
868  [[ -z ${rootdev} ]] && die "no known rootdev found."  [[ -z ${rootdev} ]] && die "no known rootdev found."
869  echo "device=${rootdev}" > ${DEST}/etc/rootdev || die  echo "device='UUID=$(get_blkid ${rootdev})'" > ${DEST}/etc/rootdev || die
870  echo "major=$(stat -c %t ${rootdev})" >> ${DEST}/etc/rootdev || die  echo "rootfs='${rootfs}'" >> ${DEST}/etc/rootdev || die
 echo "minor=$(stat -c %T ${rootdev})" >> ${DEST}/etc/rootdev || die  
 echo "rootfs=${rootfs}" >> ${DEST}/etc/rootdev || die  
871    
872  # install detected modules  # install detected modules
873  echo "Coping your modules to '${DEST}/lib' ..."  echo "Coping your modules to '${DEST}/lib' ..."

Legend:
Removed from v.845  
changed lines
  Added in v.993