tazlito diff 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 d3e9a97c762c
line diff
     1.1 --- a/tazlito	Sat Feb 16 20:22:18 2013 +0100
     1.2 +++ b/tazlito	Sun Feb 17 16:23:02 2013 +0100
     1.3 @@ -774,6 +774,7 @@
     1.4  		 $TMP_DIR/initfs/mnt $TMP_DIR/initfs/proc $TMP_DIR/initfs/tmp \
     1.5  		 $TMP_DIR/initfs/sys $TMP_DIR/initfs/lib/modules
     1.6  	ln -s bin $TMP_DIR/initfs/sbin
     1.7 +	ln -s . $TMP_DIR/initfs/usr
     1.8  	while [ ! -f /lib/modules/$version/kernel/fs/aufs/aufs.ko.?z ]; do
     1.9  		install_package aufs $version || return 1
    1.10  	done
    1.11 @@ -784,14 +785,18 @@
    1.12  	cp -a /dev/tty0 /dev/fd0 $TMP_DIR/initfs/dev 2> /dev/null
    1.13  	cp /lib/modules/$version/kernel/fs/aufs/aufs.ko.?z \
    1.14  		$TMP_DIR/initfs/lib/modules
    1.15 -	[ ! -f /usr/sbin/mksquashfs ] && ! install_package squashfs && return 1
    1.16 -	while [ ! -f /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z ]; do
    1.17 -		install_package linux-squashfs $version || return 1
    1.18 -	done
    1.19 -	cp /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z \
    1.20 -		 $TMP_DIR/initfs/lib/modules
    1.21 -	ls /sbin/unsquashfs /usr/lib/liblzma.so* $INSTALLED/squashfs/* | \
    1.22 -	cpio -o -H newc > $TMP_DIR/initfs/extractfs.cpio
    1.23 +	if [ "$1" == "cdrom" ]; then
    1.24 +		sed -i 's/mod squashfs//' $TMP_DIR/initfs/init
    1.25 +	else
    1.26 +		[ ! -f /usr/sbin/mksquashfs ] && ! install_package squashfs && return 1
    1.27 +		while [ ! -f /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z ]; do
    1.28 +			install_package linux-squashfs $version || return 1
    1.29 +		done
    1.30 +		cp /lib/modules/$version/kernel/fs/squashfs/squashfs.ko.?z \
    1.31 +			 $TMP_DIR/initfs/lib/modules
    1.32 +		ls /sbin/unsquashfs /usr/lib/liblzma.so* $INSTALLED/squashfs/* | \
    1.33 +		cpio -o -H newc > $TMP_DIR/initfs/extractfs.cpio
    1.34 +	fi
    1.35  	for i in $(ls /dev/[hs]d[a-f]*); do
    1.36  		cp -a $i $TMP_DIR/initfs/dev
    1.37  	done
    1.38 @@ -834,7 +839,7 @@
    1.39  	fi
    1.40  	if ! $need_lib && [ -x /usr/share/boot/busybox-static ]; then
    1.41  		cp /usr/share/boot/busybox-static $TMP_DIR/initfs/bin/busybox
    1.42 -		sed -i 's/LD_T.*ot/echo ""/;s/".*ld-.) /"/' $TMP_DIR/initfs/init
    1.43 +		sed -i 's/LD_T.*ot/echo ""/;s/".*ld-.*) /"/' $TMP_DIR/initfs/init
    1.44  	else
    1.45  		cp /bin/busybox $TMP_DIR/initfs/bin
    1.46  		need_lib=true
    1.47 @@ -850,7 +855,7 @@
    1.48  	$need_lib && for i in /lib/ld-* /lib/lib[cm].so* /lib/lib[cm]-* ; do
    1.49  		cp -a $i $TMP_DIR/initfs/lib
    1.50  	done
    1.51 -	false && cat > $TMP_DIR/initfs/init <<EOTEOT
    1.52 +	[ "$1" == "http" ] && cat > $TMP_DIR/initfs/init <<EOTEOT
    1.53  #!/bin/sh
    1.54  
    1.55  getarg()
    1.56 @@ -880,8 +885,6 @@
    1.57  	sed 's/.*rootfssize=\\([0-9]*[kmg%]\\).*/-o size=\\1/')"
    1.58  [ -n "\$size" ] || size="-o size=90%"
    1.59  
    1.60 -if [ -x /bin/httpfs ]; then	# loram-http
    1.61 -
    1.62  while read var default; do
    1.63  	eval \$var=\$default
    1.64  	getarg \$var \$var
    1.65 @@ -921,53 +924,6 @@
    1.66  	done
    1.67  	mount -o loop,ro -t iso9660 \$path2/*.iso \$path
    1.68  done
    1.69 -#copy_rootfs && umount -d \$path && umount -d \$path2
    1.70 -
    1.71 -elif [ -f \$(echo /rootfs*.gz | cut -f1 -d' ') ]; then	# loram-ram
    1.72 -
    1.73 -total=\$(grep MemTotal /proc/meminfo | sed 's/[^0-9]//g')
    1.74 -free=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
    1.75 -if [ \$(( \$total/\$free )) -gt 1 ] || ! mount -t tmpfs \$size tmpfs /mnt; then
    1.76 -	echo "No tmpfs for /mnt"
    1.77 -	mkdir -p /mnt/.rw
    1.78 -	mount -t tmpfs tmpfs /mnt/.rw
    1.79 -	mkdir -p /mnt/.rw/mnt/.rw
    1.80 -	path=/
    1.81 -else
    1.82 -	mkdir -p /mnt/.rw
    1.83 -	path=/mnt/.
    1.84 -	for i in rootfs* ; do
    1.85 -		mv /\$i \$path\$i
    1.86 -	done
    1.87 -fi
    1.88 -
    1.89 -else				# loram-cdrom
    1.90 -
    1.91 -getarg cdrom DRIVE_NAME ||
    1.92 -DRIVE_NAME=\$(grep "drive name" < /proc/sys/dev/cdrom/info | cut -f 3)
    1.93 -DEVICE=/dev/\$DRIVE_NAME
    1.94 -DIR=fs
    1.95 -if getarg loram DIR; then
    1.96 -	DEVICE=\${DIR%,*}
    1.97 -	DIR=/\${DIR#*,}
    1.98 -fi
    1.99 -mount -t tmpfs \$size tmpfs /mnt
   1.100 -mkdir -p /mnt/.rw /mnt/.cdrom /mnt/mnt/.cdrom
   1.101 -i=0
   1.102 -while [ \$i -lt 5 ] && ! mount -r \$DEVICE /mnt/.cdrom; do
   1.103 -	case "\$DEVICE" in
   1.104 -	/dev/sd*|UUID=*|LABEL=*)
   1.105 -		mount -t sysfs sysfs /sys
   1.106 -		USBDELAY=\$(cat /sys/module/usb_storage/parameters/delay_use)
   1.107 -		umount /sys
   1.108 -		sleep \$((1+\$USBDELAY)) ;;
   1.109 -	esac
   1.110 -	i=\$((i+1))
   1.111 -done
   1.112 -path=/mnt/.cdrom/
   1.113 -copy_rootfs && umount -d /mnt/.cdrom
   1.114 -
   1.115 -fi
   1.116  
   1.117  memfree=\$(grep MemFree /proc/meminfo | sed 's/[^0-9]//g')
   1.118  umount /proc
   1.119 @@ -1025,20 +981,6 @@
   1.120  	done
   1.121  }
   1.122  
   1.123 -# Move each initramfs to squashfs
   1.124 -build_loram_rootfs_cdrom()
   1.125 -{
   1.126 -	mkdir -p $TMP_DIR/fs
   1.127 -	cd $TMP_DIR/fs
   1.128 -	for i in $(ls -r $TMP_DIR/iso/boot/rootfs*.gz); do
   1.129 -		( zcat $i 2> /dev/null || unlzma -c $i) | cpio -idmu
   1.130 -	done
   1.131 -	rootfs=$TMP_DIR/rootfs.gz
   1.132 -	/usr/sbin/mksquashfs $TMP_DIR/fs $rootfs -comp xz -Xbcj x86
   1.133 -	rm -rf $TMP_DIR/fs
   1.134 -	cd - > /dev/null
   1.135 -}
   1.136 -
   1.137  # Move meta boot configuration files to basic configuration files
   1.138  # because meta loram flavor is useless when rootfs is not loaded in ram
   1.139  unmeta_boot()
   1.140 @@ -1066,25 +1008,19 @@
   1.141  build_loram_cdrom()
   1.142  {
   1.143  	build_initfs cdrom || return 1
   1.144 -	build_loram_rootfs_cdrom
   1.145  	cp -a $TMP_DIR/iso $TMP_DIR/loramiso
   1.146 -	if [ "$1" == "small" ]; then
   1.147 -		rm -f $TMP_DIR/loramiso/boot/root*
   1.148 -	else
   1.149 -		mkdir $TMP_DIR/loramiso/fs
   1.150 -		cd $TMP_DIR/loramiso/fs
   1.151 -		for i in $( ls ../boot/root* | sort -r ) ; do
   1.152 -			( zcat $i 2> /dev/null || unlzma -c $i ) | cpio -idmu
   1.153 -			rm -f $i
   1.154 -		done
   1.155 -		mkdir -p $TMP_DIR/loramiso/fs/mnt/.cdrom
   1.156 -		cd - > /dev/null
   1.157 -	fi
   1.158 +	mkdir $TMP_DIR/loramiso/fs
   1.159 +	cd $TMP_DIR/loramiso/fs
   1.160 +	for i in $( ls ../boot/root* | sort -r ) ; do
   1.161 +		( zcat $i 2> /dev/null || unlzma -c $i ) | cpio -idmu
   1.162 +		rm -f $i
   1.163 +	done
   1.164 +	mkdir -p $TMP_DIR/loramiso/fs/mnt/.cdrom
   1.165 +	cd - > /dev/null
   1.166  	mv $TMP_DIR/initfs.gz $TMP_DIR/loramiso/boot/rootfs.gz
   1.167 -	mv $TMP_DIR/rootfs*.gz $TMP_DIR/loramiso
   1.168  	unmeta_boot
   1.169  	VOLUM_NAME="SliTaz_LoRAM_CDROM"
   1.170 -	sed -i "s/root=/loram=LABEL=$VOLUM_NAME,fs &/" \
   1.171 +	sed -i "s|root=|isofs= rodev=/dev/cdrom/fs &|;s/.ive/cdrom/" \
   1.172  		$TMP_DIR/loramiso/boot/isolinux/*.cfg
   1.173  	create_iso $OUTPUT $TMP_DIR/loramiso
   1.174  }
   1.175 @@ -2549,7 +2485,6 @@
   1.176  
   1.177  		case "$4" in
   1.178  		cdrom)		build_loram_cdrom ;;
   1.179 -		smallcdrom)	build_loram_cdrom small ;;
   1.180  		http)		build_loram_http ;;
   1.181  		*)		build_loram_ram ;;
   1.182  		esac