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