From 3b6d0f3e7c6123a98b1d0f36196e19d2debb0fda Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Fri, 15 Mar 2013 22:48:17 +0200 Subject: [PATCH 1/2] oeinstaller: do not use diskpart diskpart does not work as should on usb drives so we just format the target drive now if a user, for some reason, has a 'partitioned' usb stick, it is not our job to clean up the mess. in this case using "HP USB Disk Storage Format Tool" is recommended, people should do it anyway when using create_installstick.bat on sticks with partitions --- tools/nsis-installer/oeinstaller.nsi | 65 +--------------------------- 1 file changed, 1 insertion(+), 64 deletions(-) diff --git a/tools/nsis-installer/oeinstaller.nsi b/tools/nsis-installer/oeinstaller.nsi index a0b42cf23f..c7e968f31b 100644 --- a/tools/nsis-installer/oeinstaller.nsi +++ b/tools/nsis-installer/oeinstaller.nsi @@ -15,7 +15,6 @@ VIAddVersionKey InternalName "OpenELEC USB Stick Creator" BrandingText " " Var "SLET" -Var "SNUM" !include "MUI.nsh" !include LogicLib.nsh @@ -59,20 +58,9 @@ Page Custom CustomCreate CustomLeave Section "oeusbstart" StrCpy $1 "$INSTDIR\" - Push $1 - Call DISKNO ExpandEnvStrings $0 %COMSPEC% - DetailPrint "- Creating Configuration Files ..." - FileOpen $4 "$TEMP\oedp.txt" w - FileWrite $4 "select disk $SNUM$\r$\n" - FileWrite $4 "clean$\r$\n" - FileWrite $4 "create partition primary$\r$\n" - FileWrite $4 "format FS=FAT32 LABEL=OPENELEC QUICK OVERRIDE$\r$\n" - FileWrite $4 "rescan$\r$\n" - FileWrite $4 "exit$\r$\n" - FileClose $4 DetailPrint "- Formatting USB Device ($SLET) ..." - nsExec::Exec '"%SystemRoot%\system32\diskpart.exe" /s "$TEMP\oedp.txt"' + nsExec::Exec `"$0" /c format $SLET /V:OPENELEC /Q /FS:FAT32 /X` DetailPrint "- Mounting USB Device ..." sleep 3000 DetailPrint "- Making Device Bootable ..." @@ -142,57 +130,6 @@ Function GetDrivesCallBack Push $0 FunctionEnd -Function DISKNO - Exch $1 - Push $2 - Push $3 - Push $4 - Push $5 - Push $6 - Push $7 - - System::Call "kernel32::GetVolumeNameForVolumeMountPoint(t r1, t r3r3, i ${MAXLEN_VOLUME_GUID}) i.r2" - ${If} $2 != 0 - StrCpy $3 $3 -1 - System::Call "kernel32::CreateFile(t r3, \\ - i ${GENERIC_READ}|${GENERIC_WRITE}, \\ - i ${FILE_SHARE_READ}|${FILE_SHARE_WRITE}, \\ - i 0, i ${OPEN_EXISTING}, i 0, i 0) i.r2" - ${If} $2 != ${INVALID_HANDLE_VALUE} - System::Alloc ${EXTENTS_BUFFER_SIZE} - Pop $4 - IntOp $5 0 + 0 - System::Call "kernel32::DeviceIoControl(i r2, \\ - i ${IOCTL_VOLUME_GET_VOLUME_DISK_EXTENTS}, \\ - i 0, i 0, \\ - i r4, i ${EXTENTS_BUFFER_SIZE}, \\ - *i r5r5, i 0) i.r3" - ${If} $3 != 0 - System::Call "*$4(i .r5, i, i .r0)" - ${If} $5 == 0 - StrCpy $0 "Error: Invalid DISK_EXTENT data" - ${EndIf} - ${Else} - StrCpy $0 "Error: DeviceIoControl failed" - ${EndIf} - System::Free $4 - System::Call "kernel32::CloseHandle(i r2) i.r3" - ${Else} - StrCpy $0 "Error: CreateFile failed for $3" - ${EndIf} - ${Else} - StrCpy $0 "Error: GetVolumeNameForVolumeMountPoint failed for $1" - ${EndIf} - StrCpy $SNUM $0 - - Pop $7 - Pop $6 - Pop $5 - Pop $4 - Pop $3 - Pop $2 - Pop $1 -FunctionEnd !define MUI_FINISHPAGE_TITLE "OpenELEC USB Stick Successfully Created" !define MUI_FINISHPAGE_TEXT "An OpenELEC USB Installer Stick has been created on the device $SLET\n\nPlease boot your HTPC off this USB stick and follow the on-screen instructions." From 4a6592e6352b7f3d904ff81041f3c6c4d5162144 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Fri, 15 Mar 2013 23:22:03 +0200 Subject: [PATCH 2/2] tools: add updated create_installstick.exe --- .../syslinux/files/create_installstick.exe | Bin 110430 -> 109953 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/packages/tools/syslinux/files/create_installstick.exe b/packages/tools/syslinux/files/create_installstick.exe index 826794d6026b00be84b2368cde4156f1f13b7814..b1505b568177aaf2580dc2de82f0f22a11a35495 100644 GIT binary patch delta 10979 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 delta 11460 zcmYk?V{qoZ`vCg8?zX#ax7e+1+gsb_*0#09x3*0NC*N!fZ#zT@c(V%?gZlhT_Ypo{})37fnwiJAYeevwg?bKaDY)J2&9_@ z0^!que9ygsNZe)bZQR0=hZg4qPDMH@=HZ{x9m)@CZsJOL5@AzYoAJ#H4wnt>6zNpT zp0;imwga1K_Y<@+87q^T4p!|%3k6Y8tYH~%0AV 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