wok rev 19428

syslinux/isohybrid: random uuid in gpt
author Pascal Bellard <pascal.bellard@slitaz.org>
date Sat Oct 01 10:31:58 2016 +0200 (2016-10-01)
parents 15ddac901768
children 5ba4b4fd03bc
files syslinux-extra/receipt syslinux-modules/receipt syslinux/stuff/iso2exe/bootiso.S syslinux/stuff/tools/isohybrid.sh
line diff
     1.1 --- a/syslinux-extra/receipt	Sat Oct 01 09:40:12 2016 +0300
     1.2 +++ b/syslinux-extra/receipt	Sat Oct 01 10:31:58 2016 +0200
     1.3 @@ -20,9 +20,9 @@
     1.4      cp -a $src/mbr/mbr.bin $fs/usr/share/boot
     1.5      cp -a $src/mbr/gptmbr.bin $fs/usr/share/boot
     1.6      lzma e $src/core/pxelinux.0 $fs/usr/share/boot/pxelinux.0.lzma 2> /dev/null
     1.7 -    #lzma e $src/com32/menu/vesamenu.c32 $fs/usr/share/boot/vesamenu.c32.lzma
     1.8 -    #lzma e $src/com32/modules/mboot.c32 $fs/usr/share/boot/mboot.c32.lzma
     1.9 -    cp $src/com32/modules/sdi.c32 $fs/usr/share/boot/
    1.10 +    #lzma e $src/com32/menu/vesamenu.c32 $fs/usr/share/boot/vesamenu.c32
    1.11 +    #lzma e $src/com32/modules/mboot.c32 $fs/usr/share/boot/mboot.c32
    1.12 +    lzma e $src/com32/modules/sdi.c32 $fs/usr/share/boot/sdi.c32
    1.13      cp -a $src/linux/syslinux-nomtools $fs/bin/syslinux
    1.14      cp -a $src/extlinux/extlinux $fs/bin
    1.15      cp -a $src/isohybrid.sh $fs/usr/bin/isohybrid
     2.1 --- a/syslinux-modules/receipt	Sat Oct 01 09:40:12 2016 +0300
     2.2 +++ b/syslinux-modules/receipt	Sat Oct 01 10:31:58 2016 +0200
     2.3 @@ -18,7 +18,7 @@
     2.4  	case "$i" in
     2.5  	*/reboot.c32|*/ifmem.c32|*/vesamenu.c32) continue;;
     2.6  	esac
     2.7 -	lzma e $i $fs/usr/share/boot/$(basename $i).lzma 2> /dev/null
     2.8 +	lzma e $i $fs/usr/share/boot/$(basename $i) 2> /dev/null
     2.9      done
    2.10      for i in $src/modules/*.com ; do
    2.11  	case "$i" in
     3.1 --- a/syslinux/stuff/iso2exe/bootiso.S	Sat Oct 01 09:40:12 2016 +0300
     3.2 +++ b/syslinux/stuff/iso2exe/bootiso.S	Sat Oct 01 10:31:58 2016 +0200
     3.3 @@ -123,6 +123,7 @@
     3.4  
     3.5  exestart:
     3.6  	cld
     3.7 +	movw	$EXEADRS(puts), %bp	
     3.8  	movw	129, %ax
     3.9  	cmpb	$0x2F, %al
    3.10  	je	ishelp
    3.11 @@ -137,8 +138,7 @@
    3.12  	movw	$0x1000+EXESTR(noDOS3), %ax
    3.13  	jc	tst386
    3.14  abort:
    3.15 -jputs:
    3.16 -	jmp	puts
    3.17 +	jmp	%bp
    3.18  
    3.19  tst386:
    3.20  	pushfw				// save flags
    3.21 @@ -166,7 +166,7 @@
    3.22  	inc	%ax
    3.23  	//movb	$EXESTR(realmodemsg), %al
    3.24  realmode:
    3.25 -	call	jputs
    3.26 +	call	%bp
    3.27  is86:
    3.28  	movw	comstart-end_header(%di), %si		// .com address
    3.29  	pushw	%di
    3.30 @@ -175,6 +175,20 @@
    3.31  	movsw
    3.32  	ret
    3.33  
    3.34 +CallVPCI:
    3.35 +	int	$0x67
    3.36 +	testb	%ah, %ah
    3.37 +	xchgw	%ax, %cx
    3.38 +	pusw	%si
    3.39 +ScanVCPI:
    3.40 +	popw	%si
    3.41 +ChkVCPI:
    3.42 +NoVCPI:
    3.43 +	movb	$EXESTR(ERRvcpi), %al
    3.44 +	jne	abort
    3.45 +	lodsb
    3.46 +	shlw	$8, %ax
    3.47 +	jne	CallVCPI
    3.48  VersionVCPI:
    3.49  	xchgw	%ax, %si		// movb	$EXESTR(vm86modemsg), %al
    3.50  	cmpb	$0x40, %cl		// EMM386 / VCPI 4.0 mini
    3.51 @@ -189,19 +203,8 @@
    3.52  	lodsw
    3.53  	popw	%ds
    3.54  	jne	NoVCPI
    3.55 -	xorw	$0x5858, %ax		// XX(X0)
    3.56 -	movw	$EXEADRS(CmdVCPI), %si
    3.57 -ChkVCPI:
    3.58 -NoVCPI:
    3.59 -	movb	$EXESTR(ERRvcpi), %al
    3.60 -	jne	abort
    3.61 -	lodsb
    3.62 -	shlw	$8, %ax
    3.63 -	je	VersionVCPI
    3.64 -	int	$0x67
    3.65 -	testb	%ah, %ah
    3.66 -	xchgw	%ax, %cx
    3.67 -	jmp	ChkVCPI
    3.68 +	xorb	$0x58, %al		// X(XX0)
    3.69 +	call	ScanVCPI
    3.70  CmdVCPI:
    3.71  	.byte	0x40			// status
    3.72  	.byte	0xDE			// vcpi present ?
     4.1 --- a/syslinux/stuff/tools/isohybrid.sh	Sat Oct 01 09:40:12 2016 +0300
     4.2 +++ b/syslinux/stuff/tools/isohybrid.sh	Sat Oct 01 10:31:58 2016 +0200
     4.3 @@ -202,12 +202,10 @@
     4.4  		store32 $((446+16+12)) $efi_len
     4.5  		uudecode <<EOT | unlzma | ddq bs=512 seek=1 of=$iso conv=notrunc
     4.6  begin-base64 644 -
     4.7 -XQAAgAD//////////wAikYVN1N2VY3JXMnUMJn1RCdQOHHdkT27O1I77zn8t
     4.8 -AiDDPDQv3ovn0t2ksyOkm/KVCwPcaMYXgukPNUeg8Tbavo+kXx/HVFkHHHB+
     4.9 -c4gUdeTmJ31kL/btVwMG38di4lFL7bpUU61H7P0wJfcUrv0LYsPoW28D5f8s
    4.10 -kaLvWB73gnnsIUYI9VNL4S9txwz2cCL67LZYGGAqMBdtdnp8Jv9qm36wvqJZ
    4.11 -Bne0qEprzeTBrUFK74YLSrVbxK/fa6rz5pQxkLvyOVz4VfRMsVEA1G9IjF//
    4.12 -BXwoAA==
    4.13 +XQAAgAD//////////wAikYVN1N2VY3JXMnUMJn1RCdQOHN33EegtIBhrUQ7Q
    4.14 +JNaW37NYVuUAmqtISPiCdgAxPRlBS0xDlmAPPOCSZXmEFz9jEkXSzmsGn6+o
    4.15 +7SMAKMfvpMa3U1bJv/napT+/NFttJSJSx0xJA3em3KJcZsO66vaYeJC5tE+3
    4.16 +T0p9AJtSH6X8SMic3vU3hYWwHsYnsmeoGmsy4EJba9Wf/0liMQA=
    4.17  ====
    4.18  EOT
    4.19  		lastlba=$((($cylinders * $heads * $sectors) -1))
    4.20 @@ -223,6 +221,10 @@
    4.21  		store32 $((0x210)) $(crc32 0x200 $(read32 0 $((0x20C))))
    4.22  		store32sw $((0x1008)) $(($efi_ofs/4))
    4.23  		store32sw $((0x1054)) $(($efi_len/4))
    4.24 +		for i in 238 410 490 ; do
    4.25 +			ddq if=/dev/urandom count=16 bs=1 conv=notrunc \
    4.26 +			    of=$iso seek=$((0x$i))
    4.27 +		done
    4.28  	fi
    4.29  }
    4.30