tazlito rev 313

Fix loram cdrom
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sun Feb 17 16:23:02 2013 +0100 (2013-02-17)
parents babdf631b84d
children 07b0ae7de856
files COPYING tazlito
line diff
     1.1 --- a/COPYING	Sat Feb 16 20:22:18 2013 +0100
     1.2 +++ b/COPYING	Sun Feb 17 16:23:02 2013 +0100
     1.3 @@ -2,7 +2,7 @@
     1.4  ===============================================================================
     1.5  
     1.6  
     1.7 -Copyright (c)  2007-2012  SliTaz GNU/Linux
     1.8 +Copyright (c)  2007-2013  SliTaz GNU/Linux
     1.9  
    1.10  
    1.11  Français
     2.1 --- a/tazlito	Sat Feb 16 20:22:18 2013 +0100
     2.2 +++ b/tazlito	Sun Feb 17 16:23:02 2013 +0100
     2.3 @@ -774,6 +774,7 @@
     2.4  		 $TMP_DIR/initfs/mnt $TMP_DIR/initfs/proc $TMP_DIR/initfs/tmp \
     2.5  		 $TMP_DIR/initfs/sys $TMP_DIR/initfs/lib/modules
     2.6  	ln -s bin $TMP_DIR/initfs/sbin
     2.7 +	ln -s . $TMP_DIR/initfs/usr
     2.8  	while [ ! -f /lib/modules/$version/kernel/fs/aufs/aufs.ko.?z ]; do
     2.9  		install_package aufs $version || return 1
    2.10  	done
    2.11 @@ -784,14 +785,18 @@
    2.12  	cp -a /dev/tty0 /dev/fd0 $TMP_DIR/initfs/dev 2> /dev/null
    2.13  	cp /lib/modules/$version/kernel/fs/aufs/aufs.ko.?z \
    2.14  		$TMP_DIR/initfs/lib/modules
    2.15 -	[ ! -f /usr/sbin/mksquashfs ] && ! install_package squashfs && return 1
    2.16 -	while [ ! -f /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z ]; do
    2.17 -		install_package linux-squashfs $version || return 1
    2.18 -	done
    2.19 -	cp /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z \
    2.20 -		 $TMP_DIR/initfs/lib/modules
    2.21 -	ls /sbin/unsquashfs /usr/lib/liblzma.so* $INSTALLED/squashfs/* | \
    2.22 -	cpio -o -H newc > $TMP_DIR/initfs/extractfs.cpio
    2.23 +	if [ "$1" == "cdrom" ]; then
    2.24 +		sed -i 's/mod squashfs//' $TMP_DIR/initfs/init
    2.25 +	else
    2.26 +		[ ! -f /usr/sbin/mksquashfs ] && ! install_package squashfs && return 1
    2.27 +		while [ ! -f /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z ]; do
    2.28 +			install_package linux-squashfs $version || return 1
    2.29 +		done
    2.30 +		cp /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z \
    2.31 +			 $TMP_DIR/initfs/lib/modules
    2.32 +		ls /sbin/unsquashfs /usr/lib/liblzma.so* $INSTALLED/squashfs/* | \
    2.33 +		cpio -o -H newc > $TMP_DIR/initfs/extractfs.cpio
    2.34 +	fi
    2.35  	for i in $(ls /dev/[hs]d[a-f]*); do
    2.36  		cp -a $i $TMP_DIR/initfs/dev
    2.37  	done
    2.38 @@ -834,7 +839,7 @@
    2.39  	fi
    2.40  	if ! $need_lib && [ -x /usr/share/boot/busybox-static ]; then
    2.41  		cp /usr/share/boot/busybox-static $TMP_DIR/initfs/bin/busybox
    2.42 -		sed -i 's/LD_T.*ot/echo ""/;s/".*ld-.) /"/' $TMP_DIR/initfs/init
    2.43 +		sed -i 's/LD_T.*ot/echo ""/;s/".*ld-.*) /"/' $TMP_DIR/initfs/init
    2.44  	else
    2.45  		cp /bin/busybox $TMP_DIR/initfs/bin
    2.46  		need_lib=true
    2.47 @@ -850,7 +855,7 @@
    2.48  	$need_lib && for i in /lib/ld-* /lib/lib[cm].so* /lib/lib[cm]-* ; do
    2.49  		cp -a $i $TMP_DIR/initfs/lib
    2.50  	done
    2.51 -	false && cat > $TMP_DIR/initfs/init <<EOTEOT
    2.52 +	[ "$1" == "http" ] && cat > $TMP_DIR/initfs/init <<EOTEOT
    2.53  #!/bin/sh
    2.54  
    2.55  getarg()
    2.56 @@ -880,8 +885,6 @@
    2.57  	sed 's/.*rootfssize=\\([0-9]*[kmg%]\\).*/-o size=\\1/')"
    2.58  [ -n "\$size" ] || size="-o size=90%"
    2.59  
    2.60 -if [ -x /bin/httpfs ]; then	# loram-http
    2.61 -
    2.62  while read var default; do
    2.63  	eval \$var=\$default
    2.64  	getarg \$var \$var
    2.65 @@ -921,53 +924,6 @@
    2.66  	done
    2.67  	mount -o loop,ro -t iso9660 \$path2/*.iso \$path
    2.68  done
    2.69 -#copy_rootfs && umount -d \$path && umount -d \$path2
    2.70 -
    2.71 -elif [ -f \$(echo /rootfs*.gz | cut -f1 -d' ') ]; then	# loram-ram
    2.72 -
    2.73 -total=\$(grep MemTotal /proc/meminfo | sed 's/[^0-9]//g')
    2.74 -free=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
    2.75 -if [ \$(( \$total/\$free )) -gt 1 ] || ! mount -t tmpfs \$size tmpfs /mnt; then
    2.76 -	echo "No tmpfs for /mnt"
    2.77 -	mkdir -p /mnt/.rw
    2.78 -	mount -t tmpfs tmpfs /mnt/.rw
    2.79 -	mkdir -p /mnt/.rw/mnt/.rw
    2.80 -	path=/
    2.81 -else
    2.82 -	mkdir -p /mnt/.rw
    2.83 -	path=/mnt/.
    2.84 -	for i in rootfs* ; do
    2.85 -		mv /\$i \$path\$i
    2.86 -	done
    2.87 -fi
    2.88 -
    2.89 -else				# loram-cdrom
    2.90 -
    2.91 -getarg cdrom DRIVE_NAME ||
    2.92 -DRIVE_NAME=\$(grep "drive name" < /proc/sys/dev/cdrom/info | cut -f 3)
    2.93 -DEVICE=/dev/\$DRIVE_NAME
    2.94 -DIR=fs
    2.95 -if getarg loram DIR; then
    2.96 -	DEVICE=\${DIR%,*}
    2.97 -	DIR=/\${DIR#*,}
    2.98 -fi
    2.99 -mount -t tmpfs \$size tmpfs /mnt
   2.100 -mkdir -p /mnt/.rw /mnt/.cdrom /mnt/mnt/.cdrom
   2.101 -i=0
   2.102 -while [ \$i -lt 5 ] && ! mount -r \$DEVICE /mnt/.cdrom; do
   2.103 -	case "\$DEVICE" in
   2.104 -	/dev/sd*|UUID=*|LABEL=*)
   2.105 -		mount -t sysfs sysfs /sys
   2.106 -		USBDELAY=\$(cat /sys/module/usb_storage/parameters/delay_use)
   2.107 -		umount /sys
   2.108 -		sleep \$((1+\$USBDELAY)) ;;
   2.109 -	esac
   2.110 -	i=\$((i+1))
   2.111 -done
   2.112 -path=/mnt/.cdrom/
   2.113 -copy_rootfs && umount -d /mnt/.cdrom
   2.114 -
   2.115 -fi
   2.116  
   2.117  memfree=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
   2.118  umount /proc
   2.119 @@ -1025,20 +981,6 @@
   2.120  	done
   2.121  }
   2.122  
   2.123 -# Move each initramfs to squashfs
   2.124 -build_loram_rootfs_cdrom()
   2.125 -{
   2.126 -	mkdir -p $TMP_DIR/fs
   2.127 -	cd $TMP_DIR/fs
   2.128 -	for i in $(ls -r $TMP_DIR/iso/boot/rootfs*.gz); do
   2.129 -		( zcat $i 2> /dev/null || unlzma -c $i) | cpio -idmu
   2.130 -	done
   2.131 -	rootfs=$TMP_DIR/rootfs.gz
   2.132 -	/usr/sbin/mksquashfs $TMP_DIR/fs $rootfs -comp xz -Xbcj x86
   2.133 -	rm -rf $TMP_DIR/fs
   2.134 -	cd - > /dev/null
   2.135 -}
   2.136 -
   2.137  # Move meta boot configuration files to basic configuration files
   2.138  # because meta loram flavor is useless when rootfs is not loaded in ram
   2.139  unmeta_boot()
   2.140 @@ -1066,25 +1008,19 @@
   2.141  build_loram_cdrom()
   2.142  {
   2.143  	build_initfs cdrom || return 1
   2.144 -	build_loram_rootfs_cdrom
   2.145  	cp -a $TMP_DIR/iso $TMP_DIR/loramiso
   2.146 -	if [ "$1" == "small" ]; then
   2.147 -		rm -f $TMP_DIR/loramiso/boot/root*
   2.148 -	else
   2.149 -		mkdir $TMP_DIR/loramiso/fs
   2.150 -		cd $TMP_DIR/loramiso/fs
   2.151 -		for i in $( ls ../boot/root* | sort -r ) ; do
   2.152 -			( zcat $i 2> /dev/null || unlzma -c $i ) | cpio -idmu
   2.153 -			rm -f $i
   2.154 -		done
   2.155 -		mkdir -p $TMP_DIR/loramiso/fs/mnt/.cdrom
   2.156 -		cd - > /dev/null
   2.157 -	fi
   2.158 +	mkdir $TMP_DIR/loramiso/fs
   2.159 +	cd $TMP_DIR/loramiso/fs
   2.160 +	for i in $( ls ../boot/root* | sort -r ) ; do
   2.161 +		( zcat $i 2> /dev/null || unlzma -c $i ) | cpio -idmu
   2.162 +		rm -f $i
   2.163 +	done
   2.164 +	mkdir -p $TMP_DIR/loramiso/fs/mnt/.cdrom
   2.165 +	cd - > /dev/null
   2.166  	mv $TMP_DIR/initfs.gz $TMP_DIR/loramiso/boot/rootfs.gz
   2.167 -	mv $TMP_DIR/rootfs*.gz $TMP_DIR/loramiso
   2.168  	unmeta_boot
   2.169  	VOLUM_NAME="SliTaz_LoRAM_CDROM"
   2.170 -	sed -i "s/root=/loram=LABEL=$VOLUM_NAME,fs &/" \
   2.171 +	sed -i "s|root=|isofs= rodev=/dev/cdrom/fs &|;s/.ive/cdrom/" \
   2.172  		$TMP_DIR/loramiso/boot/isolinux/*.cfg
   2.173  	create_iso $OUTPUT $TMP_DIR/loramiso
   2.174  }
   2.175 @@ -2549,7 +2485,6 @@
   2.176  
   2.177  		case "$4" in
   2.178  		cdrom)		build_loram_cdrom ;;
   2.179 -		smallcdrom)	build_loram_cdrom small ;;
   2.180  		http)		build_loram_http ;;
   2.181  		*)		build_loram_ram ;;
   2.182  		esac