From 6b4e607288766eb33027b62b7949cf61a2490792 Mon Sep 17 00:00:00 2001 From: vpeter4 Date: Thu, 21 Mar 2013 21:12:20 +0100 Subject: [PATCH 1/3] oeinstaller: boot menu (Installer + Live) --- tools/nsis-installer/oeinstaller.nsi | 282 ++++++++++++++++++++------- 1 file changed, 209 insertions(+), 73 deletions(-) diff --git a/tools/nsis-installer/oeinstaller.nsi b/tools/nsis-installer/oeinstaller.nsi index 76451ad8bf..aa9ac6b893 100644 --- a/tools/nsis-installer/oeinstaller.nsi +++ b/tools/nsis-installer/oeinstaller.nsi @@ -14,7 +14,10 @@ VIAddVersionKey InternalName "OpenELEC USB Stick Creator" !define PRODUCT_WEB_SITE "http://openelec.tv" BrandingText " " -Var "SLET" +Var "DRIVE_LETTER" +Var "STORAGE_SIZE" +Var "BOOT_TIME" +Var "SSH_PARAM" !include "MUI.nsh" !include LogicLib.nsh @@ -56,103 +59,236 @@ Page Custom CustomCreate CustomLeave !define MUI_PAGE_HEADER_SUBTEXT "Please wait 45 seconds ..." !insertmacro MUI_PAGE_INSTFILES +# http://nsis.sourceforge.net/Simple_write_text_to_file +# This is a simple function to write a piece of text to a file. This will write to the end always. +Function WriteToFile + Exch $0 ;file to write to + Exch + Exch $1 ;text to write + + FileOpen $0 $0 a #open file + FileSeek $0 0 END #go to end + FileWrite $0 $1 #write to file + FileWrite $0 '$\r$\n' #write crlf + FileClose $0 + + Pop $1 + Pop $0 +FunctionEnd + +!macro WriteToFile NewLine File String + !if `${NewLine}` == true + Push `${String}$\r$\n` + !else + Push `${String}` + !endif + Push `${File}` + Call WriteToFile +!macroend +!define WriteToFile `!insertmacro WriteToFile false` +!define WriteLineToFile `!insertmacro WriteToFile true` + Section "oeusbstart" - StrCpy $1 "$INSTDIR\" - ExpandEnvStrings $0 %COMSPEC% - DetailPrint "- Formatting USB Device ($SLET) ..." - nsExec::Exec `"$0" /c format $SLET /V:OPENELEC /Q /FS:FAT32 /X` - DetailPrint "- Mounting USB Device ..." - sleep 3000 - DetailPrint "- Making Device Bootable ..." - nsExec::Exec `"3rdparty\syslinux\win32\syslinux.exe" -f -m -a $SLET` - DetailPrint "- Copying System Files ..." - nsExec::Exec `"$0" /c copy target\* $SLET` - DetailPrint "- Copying Configuration Files ..." - nsExec::Exec `"$0" /c copy Autorun.inf $SLET` - nsExec::Exec `"$0" /c copy CHANGELOG $SLET` - nsExec::Exec `"$0" /c copy INSTALL $SLET` - nsExec::Exec `"$0" /c copy README $SLET` - nsExec::Exec `"$0" /c copy RELEASE $SLET` - nsExec::Exec `"$0" /c copy openelec.ico $SLET` - nsExec::Exec `"$0" /c ECHO DEFAULT linux > $SLET\syslinux.cfg` - nsExec::Exec `"$0" /c ECHO PROMPT 0 >> $SLET\syslinux.cfg` - nsExec::Exec `"$0" /c ECHO. >> $SLET\syslinux.cfg` - nsExec::Exec `"$0" /c ECHO LABEL linux >> $SLET\syslinux.cfg` - nsExec::Exec `"$0" /c ECHO KERNEL /KERNEL >> $SLET\syslinux.cfg` - nsExec::Exec `"$0" /c ECHO APPEND boot=LABEL=OPENELEC installer quiet >> $SLET\syslinux.cfg` - DetailPrint "" + ExpandEnvStrings $0 %COMSPEC% + + DetailPrint "- Formatting USB Device ($DRIVE_LETTER) ..." + nsExec::Exec `"$0" /c format $DRIVE_LETTER /V:OPENELEC /Q /FS:FAT32 /X` + + DetailPrint "- Making Device Bootable ..." + nsExec::Exec `"3rdparty\syslinux\win32\syslinux.exe" -f -m -a $DRIVE_LETTER` + + DetailPrint "- Copying System Files ..." + nsExec::Exec `"$0" /c copy target\* $DRIVE_LETTER` + + DetailPrint "- Copying Configuration Files ..." + nsExec::Exec `"$0" /c copy Autorun.inf $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy openelec.ico $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy CHANGELOG $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy INSTALL $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy README.md $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy RELEASE $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy 3rdparty\syslinux\vesamenu.c32 $DRIVE_LETTER` + nsExec::Exec `"$0" /c copy splash.png $DRIVE_LETTER` + + DetailPrint "- Creating Bootloader configuration ..." + Delete '$DRIVE_LETTER\syslinux.cfg' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'UI vesamenu.c32' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'PROMPT 0' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU TITLE OpenELEC Boot Menu' + #${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU BACKGROUND splash.png' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'TIMEOUT $BOOT_TIME' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'DEFAULT installer' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' '' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU WIDTH 78' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU MARGIN 4' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU ROWS 5' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU VSHIFT 10' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU TIMEOUTROW 13' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU TABMSGROW 11' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU CMDLINEROW 11' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU HELPMSGROW 16' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU HELPMSGENDROW 29' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' '' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR border 30;44 #40ffffff #a0000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR title 1;36;44 #9033ccff #a0000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR unsel 37;44 #50ffffff #a0000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR help 37;40 #c0ffffff #a0000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR msg07 37;40 #90ffffff #a0000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR tabmsg 31;40 #30ffffff #00000000 std' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' '' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'LABEL installer' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' MENU LABEL Run Installer' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' KERNEL /KERNEL' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC installer quiet' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' '' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'LABEL live' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' MENU LABEL Run Live USB' + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' KERNEL /KERNEL' + ${If} $STORAGE_SIZE == "0" + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC disk=FILE=STORAGE quiet $SSH_PARAM' + ${Else} + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC disk=FILE=STORAGE,$STORAGE_SIZE quiet $SSH_PARAM' + ${EndIf} + ${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' '' + DetailPrint "" SectionEnd Function CustomCreate !insertmacro MUI_HEADER_TEXT "USB Stick Selection Screen" "Important: Make sure that the correct device is selected." + WriteIniStr '$PLUGINSDIR\custom.ini' 'Settings' 'NumFields' '7' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Settings' 'NumFields' '2' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Type' 'Label' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Left' '5' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Top' '5' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Right' '-6' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Bottom' '15' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Text' \ + 'Select drive for Installation (*** ALL DATA WILL BE REMOVED ***):' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Type' 'Label' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Left' '5' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Top' '5' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Right' '-6' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Bottom' '17' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 1' 'Text' \ - 'Select drive for Installation (*** ALL DATA WILL BE REMOVED ***):' + StrCpy $R2 0 + StrCpy $R0 '' + ${GetDrives} "FDD" GetDrivesCallBack - StrCpy $R2 0 - StrCpy $R0 '' - ${GetDrives} "FDD" GetDrivesCallBack + GetDlgItem $1 $HWNDPARENT 1 + ${If} $R0 == "" + EnableWindow $1 0 + ${Else} + EnableWindow $1 1 + ${EndIf} - GetDlgItem $1 $HWNDPARENT 1 - ${If} $R0 == "" - EnableWindow $1 0 - ${Else} - EnableWindow $1 1 - ${EndIf} - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Type' 'DropList' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Left' '30' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Top' '25' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Right' '-31' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Bottom' '105' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'State' '$R1' - WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'ListItems' '$R0' - - push $0 - InstallOptions::Dialog '$PLUGINSDIR\custom.ini' - pop $0 - pop $0 + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Type' 'DropList' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Left' '30' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Top' '20' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Right' '-31' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'Bottom' '30' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'State' '$R1' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 2' 'ListItems' '$R0' + + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Type' 'Label' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Left' '5' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Top' '45' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Right' '200' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Bottom' '55' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 3' 'Text' \ + 'Storage file size for Live USB stick (0 = all free space in MB):' + + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Type" "Text" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Left" "200" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Top" "43" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Right" "240" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Bottom" "55" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "Flags" "ONLY_NUMBERS" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 4" "State" "512" + + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Type' 'Label' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Left' '5' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Top' '65' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Right' '90' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Bottom' '75' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 5' 'Text' \ + 'Boot menu timeout (sec):' + + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Type" "Text" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Left" "90" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Top" "64" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Right" "110" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Bottom" "76" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "Flags" "ONLY_NUMBERS" + WriteIniStr "$PLUGINSDIR\custom.ini" "Field 6" "State" "5" + + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Type' 'Checkbox' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Left' '30' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Top' '85' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Right' '200' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Bottom' '95' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'Text' 'Enable SSH (only for debugging purposes)' + WriteIniStr '$PLUGINSDIR\custom.ini' 'Field 7' 'State' '0' + + push $0 + InstallOptions::Dialog '$PLUGINSDIR\custom.ini' + pop $0 + pop $0 FunctionEnd Function CustomLeave - ReadIniStr $0 '$PLUGINSDIR\custom.ini' 'Field 2' 'State' - StrCpy '$INSTDIR' '$0' - StrCpy '$SLET' '$INSTDIR' + ReadIniStr $0 '$PLUGINSDIR\custom.ini' 'Field 2' 'State' + StrCpy '$INSTDIR' '$0' + StrCpy '$DRIVE_LETTER' '$INSTDIR' + + ReadIniStr $0 '$PLUGINSDIR\custom.ini' 'Field 4' 'State' + ${If} $0 == "0" + StrCpy '$STORAGE_SIZE' '0' + ${ElseIf} $0 < 512 + StrCpy '$STORAGE_SIZE' '512' + ${Else} + StrCpy '$STORAGE_SIZE' '$0' + ${EndIf} + + ReadIniStr $0 '$PLUGINSDIR\custom.ini' 'Field 6' 'State' + ${If} $0 == "0" + StrCpy '$BOOT_TIME' '50' + ${Else} + IntOp $0 $0 * 10 + StrCpy '$BOOT_TIME' '$0' + ${EndIf} + + ReadIniStr $0 '$PLUGINSDIR\custom.ini' 'Field 7' 'State' + ${If} $0 == "1" + StrCpy '$SSH_PARAM' 'ssh' + ${Else} + StrCpy '$SSH_PARAM' '' + ${EndIf} FunctionEnd Function GetDrivesCallBack - IntCmp $R2 '0' def next next - def: - StrCpy $R1 '$9' - next: - IntOp $R2 $R2 + 1 - StrCpy $R0 '$R0$9|' - Push $0 + IntCmp $R2 '0' def next next + def: + StrCpy $R1 '$9' + next: + IntOp $R2 $R2 + 1 + StrCpy $R0 '$R0$9|' + Push $0 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." +!define MUI_FINISHPAGE_TEXT "An OpenELEC USB Installer Stick has been created on the device $DRIVE_LETTER.\n\nPlease boot your HTPC off this USB stick and follow the on-screen instructions." !define MUI_FINISHPAGE_NOREBOOTSUPPORT !define MUI_PAGE_CUSTOMFUNCTION_SHOW "FinishShow" !insertmacro MUI_PAGE_FINISH !insertmacro MUI_LANGUAGE "English" Function FinishShow - GetDlgItem $0 $HWNDPARENT 3 - ShowWindow $0 0 - GetDlgItem $0 $HWNDPARENT 1 - SendMessage $0 ${WM_SETTEXT} 0 "STR:Finish" + GetDlgItem $0 $HWNDPARENT 3 + ShowWindow $0 0 + GetDlgItem $0 $HWNDPARENT 1 + SendMessage $0 ${WM_SETTEXT} 0 "STR:Finish" FunctionEnd Function .onInit - InitPluginsDir - GetTempFileName $0 - Rename $0 '$PLUGINSDIR\custom.ini' + InitPluginsDir + GetTempFileName $0 + Rename $0 '$PLUGINSDIR\custom.ini' FunctionEnd From 6b9e43b8d6c5b44119fed568cb8d733319f2d719 Mon Sep 17 00:00:00 2001 From: Stefan Saraev Date: Thu, 21 Mar 2013 22:53:02 +0200 Subject: [PATCH 2/3] tools: add updated create_installstick.exe --- .../syslinux/files/create_installstick.exe | Bin 109988 -> 110956 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 3a53b43f3544adca87a4a06916b21e56787f9ca8..77e647cf04e3626e901e0b16170cd59384a92de9 100644 GIT binary patch delta 11993 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 delta 11017 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 Date: Thu, 21 Mar 2013 22:59:54 +0200 Subject: [PATCH 3/3] create_installstick: rename to create_livestick.exe --- ...create_installstick.exe => create_livestick.exe} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename packages/tools/syslinux/files/{create_installstick.exe => create_livestick.exe} (100%) diff --git a/packages/tools/syslinux/files/create_installstick.exe b/packages/tools/syslinux/files/create_livestick.exe similarity index 100% rename from packages/tools/syslinux/files/create_installstick.exe rename to packages/tools/syslinux/files/create_livestick.exe