slitaz-boot-scripts rev 341

init: add modprobe= support
author Pascal Bellard <pascal.bellard@slitaz.org>
date Mon Jan 27 10:09:06 2014 +0000 (2014-01-27)
parents 5930bfe98078
children ca014ab4f073
files init
line diff
     1.1 --- a/init	Wed Jan 22 17:10:32 2014 +0100
     1.2 +++ b/init	Mon Jan 27 10:09:06 2014 +0000
     1.3 @@ -1,5 +1,52 @@
     1.4  #!/bin/sh
     1.5  
     1.6 +### catched kernel parameters :
     1.7 +#
     1.8 +# modprobe=
     1.9 +#         list of modules to load, example modprobe=r8169,btrfs
    1.10 +#
    1.11 +### Frugal mode or live CD : using root ram disk
    1.12 +#
    1.13 +# tmpram= [RAMDISK]
    1.14 +#         minimum % of free RAM to build the root tmpfs, default 100
    1.15 +#         a lower value may work, such as 50
    1.16 +# rootfssize= [RAMDISK]
    1.17 +#         size of / regarding the RAM size, default 90%
    1.18 +#
    1.19 +### Indirect mode an initramfs is used to mount root from the hard disk.
    1.20 +### Any rootfs should fit, minimum required is slitaz-base
    1.21 +#
    1.22 +# mount= [MOUNT]
    1.23 +#         device with root loop file or sub directory
    1.24 +#   posixovl [MOUNT]
    1.25 +#         use posix attributes on a non posix filesystem (VFAT, NTFS...)
    1.26 +#   loopfs= [MOUNT]
    1.27 +#         loop file for root filesystem
    1.28 +#   subroot= [MOUNT]
    1.29 +#         sub directory for root filesystem
    1.30 +#     bindfs= [MOUNT]
    1.31 +#         bind out of root tree part
    1.32 +#
    1.33 +### Special disk driver mode needs extra modules/softwares form preinit flavor.
    1.34 +#
    1.35 +# dmraid= [RAID]
    1.36 +#         root semi hardware raid device name in /dev/mapper
    1.37 +# softraid= [RAID]
    1.38 +#         root software device name in /dev/mapper
    1.39 +# lvmroot= [LVM]
    1.40 +#         root logical volume name in /dev/mapper
    1.41 +# cryptoroot= [CRYPTO]
    1.42 +#         encrypted root device using luks or loop-aes
    1.43 +#
    1.44 +### Special mode used by loram flavor with aufs & squashfs
    1.45 +#
    1.46 +# rodev= [LORAM][MERGE]
    1.47 +#         device (+ optional path) for the read only aufs branch
    1.48 +# rwdev= [LORAM][MERGE]
    1.49 +#         (persitant) device for the r/w aufs branch instead of the ramfs
    1.50 +# isofs [LORAM]
    1.51 +#         do not use squashfs filesystem images, but the cdrom filesystem only
    1.52 +
    1.53  fail()
    1.54  {
    1.55  echo -e '\033[70G[ \033[1;3'${1:-1mFailed}'\033[0;39m ]'
    1.56 @@ -54,15 +101,16 @@
    1.57  
    1.58  mod()
    1.59  {
    1.60 -modprobe $1 2>/dev/null || insmod $(find /lib/modules|sed "/$1.ko/!dq") 
    1.61 +for i in $@
    1.62 +do	echo "Loading module: $i"
    1.63 +	modprobe $i 2>/dev/null || insmod $(find /lib/modules|sed "/$i.ko/!dq") 
    1.64 +done
    1.65  }
    1.66  
    1.67  try()
    1.68  {
    1.69  if [ ! -d /mnt/etc ] && got cryptoroot
    1.70 -then	mod dm-mod
    1.71 -	mod dm-crypt
    1.72 -	mod aes-i586
    1.73 +then	mod dm-mod dm-crypt aes-256
    1.74  	d=${root#/dev/}
    1.75  	l=crypto-$d
    1.76  	if cryptsetup isLuks $root 2>/dev/null; then
    1.77 @@ -118,6 +166,7 @@
    1.78  	. /run/init
    1.79  	sh
    1.80  fi
    1.81 +got modprobe && mod ${root//,/ }
    1.82  ln -s $(sed '/name/!ds/.*:[^a-z]*//' /proc/sys/dev/cdrom/info) /dev/cdrom
    1.83  if use dmraid
    1.84  then	dmraid -s|sed '/^type/!ds/.*: *//'|ldraid