wok diff syslinux/stuff/iso2exe/init @ rev 23992

linld: skip xmm_alloc
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Dec 12 10:41:29 2020 +0000 (2020-12-12)
parents a1fa13454a0c
children 8eaf1d9eb640
line diff
     1.1 --- a/syslinux/stuff/iso2exe/init	Sun Dec 06 10:04:52 2020 +0000
     1.2 +++ b/syslinux/stuff/iso2exe/init	Sat Dec 12 10:41:29 2020 +0000
     1.3 @@ -5,31 +5,6 @@
     1.4  	sed "/$1=/!d;s/.*$1=\\([^ ]*\\).*/\\1/" /proc/cmdline
     1.5  }
     1.6  
     1.7 -myget()
     1.8 -{
     1.9 -	hexdump -v -s $1 -n ${4:-${3:-2}} -e "\"\" 1/${3:-2} \" %u\n\"" $2
    1.10 -}
    1.11 -
    1.12 -mount_proc()
    1.13 -{
    1.14 -	mount -t proc /proc /proc
    1.15 -	mount -t sysfs /sys /sys
    1.16 -	udevd --daemon 2>/dev/null && udevadm trigger && sleep 5
    1.17 -}
    1.18 -
    1.19 -umount_proc()
    1.20 -{
    1.21 -	killall udevd 2>/dev/null
    1.22 -	umount /sys/fs/fuse/connections 2>/dev/null
    1.23 -	umount /sys
    1.24 -	umount /proc
    1.25 -}
    1.26 -
    1.27 -checkmagic()
    1.28 -{
    1.29 -	[ -s $1 ] && [ $(getarg magic) = $(myget 18 $1 2) ]
    1.30 -}
    1.31 -
    1.32  media=/media/cdrom
    1.33  mnt=/mnt
    1.34  getiso()
    1.35 @@ -39,16 +14,16 @@
    1.36  		for dev in $(ls -d $dev/$(basename $dev)*); do
    1.37  			[ "$dev" ] || continue 2
    1.38  			mount /dev/$(basename $dev) $mnt
    1.39 -			if checkmagic $mnt/$ISO; then
    1.40 +			if [ -s $mnt/$ISO ] && [ $(getarg magic) = $(hexdump -v -s  18 -n 2 -e "\"\" 1/2 \" %u\n\"" $mnt/$ISO) ]; then
    1.41  				echo "Found $ISO on $(basename $dev)"
    1.42  				ISO=$mnt/$ISO
    1.43  				mount -o loop,ro $ISO $media
    1.44 -				return 0
    1.45 +				return
    1.46  			fi
    1.47  			umount $mnt
    1.48  		done
    1.49  	done
    1.50 -	return 1
    1.51 +	text
    1.52  }
    1.53  
    1.54  uncpio=uncpio64
    1.55 @@ -78,46 +53,22 @@
    1.56  	echo -en "\"$1\"	\"$2\""
    1.57  }
    1.58  
    1.59 -myis_loram()                                                                   
    1.60 -{                                                                            
    1.61 -	[ -s /lib/modules/squashfs.ko* ]                                     
    1.62 -}                                                                            
    1.63 -
    1.64 -mount_loram()
    1.65 -{
    1.66 -	myis_loram || return
    1.67 -	insmod /lib/modules/squashfs.ko* 2>/dev/null
    1.68 -	if [ -d $media/fs ]; then
    1.69 -		ln -s $media/fs /sqfs
    1.70 -	else
    1.71 -		mkdir /sqfs
    1.72 -		losetup -o 124 /dev/loop6 $(ls -r $media/boot/rootfs?*.* | sed q)
    1.73 -		mount -r /dev/loop6 /sqfs
    1.74 -	fi
    1.75 -	cp -a /sqfs/dev/fuse /sqfs/dev/tty[12] /dev
    1.76 -	for i in /sqfs/dev/* ; do [ -b $i ] && cp -a $i /dev ; done
    1.77 -	ln -s /sqfs/lib/* lib 2>/dev/null
    1.78 -	ln -fs /sqfs/usr /sqfs/var /
    1.79 -	mkdir /etc && cp /sqfs/etc/dialogrc /etc 2>/dev/null
    1.80 -}
    1.81 -
    1.82 -umount_loram()
    1.83 -{
    1.84 -	myis_loram || return
    1.85 -	rm /var /usr
    1.86 -	umount -d /sqfs
    1.87 -	rmdir /sqfs 2>/dev/null || rm -f /sqfs
    1.88 -	rm -rf /etc
    1.89 -}
    1.90 -
    1.91  dosync()
    1.92  {
    1.93  	sync
    1.94 -	umount_loram
    1.95 +	if [ -s /lib/modules/squashfs.ko* ]; then
    1.96 +		rm /var /usr
    1.97 +		umount -d /sqfs
    1.98 +		rmdir /sqfs 2>/dev/null || rm -f /sqfs
    1.99 +		rm -rf /etc
   1.100 +	fi
   1.101  	umount -d $media
   1.102  	rm -f /dev/cdrom
   1.103  	umount $mnt
   1.104 -	umount_proc
   1.105 +	killall udevd 2>/dev/null
   1.106 +	umount /sys/fs/fuse/connections 2>/dev/null
   1.107 +	umount /sys
   1.108 +	umount /proc
   1.109  }
   1.110  
   1.111  xhascustomconf=false
   1.112 @@ -130,11 +81,11 @@
   1.113  		getcustomconf /tmp > /dev/null
   1.114  		[ -s /tmp/cmdline ] &&
   1.115  			cmdline="$cmdline $(cat /tmp/cmdline)" &&
   1.116 -			init="$(sed '/rdinit=/!d;s/.*rdinit=\([^ ]*\).*/\1/' < /tmp/cmdline)"
   1.117 +			init="$(sed '/rdinit=/!d;s/.*rdinit=\([^ ]*\).*/\1/' /tmp/cmdline)"
   1.118  		[ -s /tmp/initrd ] && $uncpio /tmp/initrd
   1.119  	fi
   1.120  	dosync
   1.121 -	sed -i 's/ || exit//' /init
   1.122 +	sed 's/ || exit//' -i /init
   1.123  	exec ${init:-/init} $cmdline
   1.124  }
   1.125  
   1.126 @@ -176,9 +127,10 @@
   1.127  }
   1.128  
   1.129  BIN=bin/mount.posixovl
   1.130 -[ -x /usr/s$BIN ] || mv /bin/mount.posixovl.iso2exe \
   1.131 -/usr/s$BIN 2>/dev/null || mv /bin/mount.posixovl.iso2exe /$BIN 2>/dev/null
   1.132 -mount_proc
   1.133 +[ -x /usr/s$BIN ] || mv /$BIN.iso2exe /usr/s$BIN 2>/dev/null || mv /$BIN.iso2exe /$BIN 2>/dev/null
   1.134 +mount -t proc /proc /proc
   1.135 +mount -t sysfs /sys /sys
   1.136 +udevd --daemon 2>/dev/null && udevadm trigger && sleep 5
   1.137  mdev -s 2> /dev/null ||
   1.138  for i in /sys/block/*/dev /sys/block/*/*/dev; do
   1.139  	[ -s "$i" ] || continue
   1.140 @@ -187,8 +139,22 @@
   1.141  	[ -e $n ] && continue
   1.142  	mknod $n b $(sed 's/:/ /' < $i)
   1.143  done 2>/dev/null
   1.144 -ISO="$(getarg bootfrom | sed 's/.://;s|\\|/|g')"
   1.145 +ISO="$(getarg iso | sed 's/.://;s|\\|/|g')"
   1.146  getiso 2>/dev/null || text
   1.147 -mount_loram
   1.148 +if [ -s /lib/modules/squashfs.ko* ]; then
   1.149 +	insmod /lib/modules/squashfs.ko* 2>/dev/null
   1.150 +	if [ -d $media/fs ]; then
   1.151 +		ln -s $media/fs /sqfs
   1.152 +	else
   1.153 +		mkdir /sqfs
   1.154 +		losetup -o 124 /dev/loop6 $(ls -r $media/boot/rootfs?*.* | sed q)
   1.155 +		mount -r /dev/loop6 /sqfs
   1.156 +	fi
   1.157 +	cp -a /sqfs/dev/fuse /sqfs/dev/tty[12] /dev
   1.158 +	for i in /sqfs/dev/* ; do [ -b $i ] && cp -a $i /dev ; done
   1.159 +	ln -s /sqfs/lib/* lib 2>/dev/null
   1.160 +	ln -fs /sqfs/usr /sqfs/var /
   1.161 +	mkdir /etc && cp /sqfs/etc/dialogrc /etc 2>/dev/null
   1.162 +fi
   1.163  [ -s /usr/bin/taziso ] || live
   1.164  . /usr/bin/taziso