Magellan Linux

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

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

revision 564 by niro, Sun Sep 2 00:44:12 2007 UTC revision 897 by niro, Wed Aug 5 17:50:57 2009 UTC
# Line 1  Line 1 
1  #!/bin/bash  #!/bin/bash
2  # $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd-magellan/mkinitrd.in,v 1.1 2007-09-02 00:44:05 niro Exp $  # $Header: /home/cvsd/magellan-cvs/magellan-src/mkinitrd-magellan/mkinitrd.in,v 1.4 2008-06-11 22:11:40 niro Exp $
3    
4  # mkinitrd  # mkinitrd
5  #  #
# Line 93  moduledep() Line 93  moduledep()
93   deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \   deps=$(awk 'BEGIN { searched=ARGV[2]; ARGV[2]=""; rc=1 } \
94   function modname(filename) { match(filename, /\/([^\/]+)\.k?o:?$/, ret); return ret[1] } \   function modname(filename) { match(filename, /\/([^\/]+)\.k?o:?$/, ret); return ret[1] } \
95   function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \   function show() { if (orig == searched) { print dep; orig=""; rc=0; exit } } \
96   /^\/lib/ { show(); \   /^.*kernel/ { show(); \
97   orig=modname($1); dep=""; \   orig=modname($1); dep=""; \
98   if ($2) { for (i = 2; i <= NF; i++) { dep=sprintf("%s %s", dep, modname($i)); } } } \   if ($2) { for (i = 2; i <= NF; i++) { dep=sprintf("%s %s", dep, modname($i)); } } } \
99   /^ / { dep=sprintf("%s %s", dep, modname($1));  } \   /^ / { dep=sprintf("%s %s", dep, modname($1));  } \
# Line 319  handlelvordev() Line 319  handlelvordev()
319   fi   fi
320  }  }
321    
322    get_blkid()
323    {
324     local UUID
325     local SEC_TYPE
326     local TYPE
327    
328     local dev="$1"
329     [[ -z ${dev} ]] && die "no dev given"
330    
331     eval $(busybox.mkinitrd blkid ${dev} | grep "${dev}:" | sed 's/.*:\ //')
332     echo ${UUID}
333    }
334    
335  # need r00t privs  # need r00t privs
336  [[ $(id -u) != 0 ]] && die "you must be r00t."  [[ $(id -u) != 0 ]] && die "you must be r00t."
337    
# Line 649  echo "Using modules:${MODULES}" Line 662  echo "Using modules:${MODULES}"
662    
663    
664  # create basic filesystem layout  # create basic filesystem layout
665  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
666    
667  # install busybox  # install busybox
668  echo "$(which busybox.mkinitrd)"  echo "$(which busybox.mkinitrd)"
# Line 669  done Line 682  done
682  # sbin related  # sbin related
683  for i in chroot init losetup modprobe pivot_root  for i in chroot init losetup modprobe pivot_root
684  do  do
685   # static links   ln -s ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}"
  ln ${DEST}/bin/busybox ${DEST}/sbin/${i} || die "${i}"  
686  done  done
687    
688  # install run-init  # install run-init
# Line 678  echo "$(which run-init.mkinitrd)" Line 690  echo "$(which run-init.mkinitrd)"
690  install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die  install -m0755 $(which run-init.mkinitrd) ${DEST}/sbin/run-init || die
691    
692  # install insmod.static  # install insmod.static
693  echo "$(which insmod.static)"  #echo "$(which insmod.static)"
694  install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die  #install -m0755 $(which insmod.static) ${DEST}/sbin/insmod || die
695    
696    # install v86d for uvesafb support if installed
697    if which v86d &> /dev/null
698    then
699     echo "$(which v86d)"
700     install -m0755 $(which v86d) ${DEST}/sbin/v86d || die
701    fi
702    
703  # install lvm  # install lvm
704  if [ -n "${vg_list}" ]  if [ -n "${vg_list}" ]
# Line 720  add_initrd '#!/bin/sh' Line 739  add_initrd '#!/bin/sh'
739    
740  add_initrd 'mount -t proc proc /proc'  add_initrd 'mount -t proc proc /proc'
741  add_initrd 'mount -t sysfs sysfs /sys'  add_initrd 'mount -t sysfs sysfs /sys'
742    add_initrd 'mount -t tmpfs tmpfs /dev -o rw,mode=0644,size=1024'
743    
744  [[ ${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 /'
745    
746    # install all busybox applets
747    add_initrd 'busybox --install -s'
748    
749  # silencio  # silencio
750  add_initrd 'echo 0 > /proc/sys/kernel/printk'  add_initrd 'echo 0 > /proc/sys/kernel/printk'
751    
752  add_initrd 'echo "-- Creating inital device nodes ..."'  add_initrd 'echo "-- Creating initial device nodes ..."'
753  add_initrd 'mount -o exec,nosuid,mode=0755,size=10M -t tmpfs udev /dev'  # populate dev
754  add_initrd 'mkdir /dev/pts'  add_initrd 'mdev -s'
755  add_initrd 'mkdir /dev/shm'  # handle hotplug events properly
756  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'  
757    
758  # loading detected modules with options  # loading detected modules with options
759  for MODULE in ${MODULES}  for MODULE in ${MODULES}
# Line 836  add_initrd 'echo "-- Mounting sysroot .. Line 836  add_initrd 'echo "-- Mounting sysroot ..
836  add_initrd '. /etc/rootdev'  add_initrd '. /etc/rootdev'
837  add_initrd '[ ! -e ${device} ] && mknod ${device} b ${major} ${minor}'  add_initrd '[ ! -e ${device} ] && mknod ${device} b ${major} ${minor}'
838  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'  add_initrd 'echo "${device} /sysroot ${rootfs} defaults,ro 0 0" > /etc/fstab'
839  add_initrd 'mount /sysroot'  add_initrd 'mount /sysroot || ash'
840    
841    # unset hotplug event-manager
842    add_initrd 'echo > /proc/sys/kernel/hotplug'
843    
844  # de-silencio  # de-silencio
845  add_initrd 'echo 3 > /proc/sys/kernel/printk'  add_initrd 'echo 3 > /proc/sys/kernel/printk'
846    
847  add_initrd 'echo "-- Switching to real sysroot ..."'  add_initrd 'echo "-- Switching to real sysroot ..."'
848    add_initrd 'umount /dev'
849  add_initrd 'umount /sys'  add_initrd 'umount /sys'
850  add_initrd 'umount /proc'  add_initrd 'umount /proc'
 add_initrd 'umount /dev'  
851    
852  [[ ${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'
853  if [[ ${IMAGE_TYPE} = loopback ]]  if [[ ${IMAGE_TYPE} = loopback ]]
# Line 858  chmod +x ${DEST}/init || die Line 861  chmod +x ${DEST}/init || die
861    
862  # setup root block device  # setup root block device
863  [[ -z ${rootdev} ]] && die "no known rootdev found."  [[ -z ${rootdev} ]] && die "no known rootdev found."
864  echo "device=${rootdev}" > ${DEST}/etc/rootdev || die  echo "device='UUID=$(get_blkid ${rootdev})'" > ${DEST}/etc/rootdev || die
865  echo "major=$(stat -c %t ${rootdev})" >> ${DEST}/etc/rootdev || die  echo "major=$(stat -c %t ${rootdev})" >> ${DEST}/etc/rootdev || die
866  echo "minor=$(stat -c %T ${rootdev})" >> ${DEST}/etc/rootdev || die  echo "minor=$(stat -c %T ${rootdev})" >> ${DEST}/etc/rootdev || die
867  echo "rootfs=${rootfs}" >> ${DEST}/etc/rootdev || die  echo "rootfs='${rootfs}'" >> ${DEST}/etc/rootdev || die
868    
869  # install detected modules  # install detected modules
870  echo "Coping your modules to '${DEST}/lib' ..."  echo "Coping your modules to '${DEST}/lib' ..."

Legend:
Removed from v.564  
changed lines
  Added in v.897