get rid of vesamenu/livemode

from now on create_livestick.* will create pure installer
sticks. (TODO: cosmetics. rename to create_installstick)

- syslinux/vesamenu is pain with some boards. syslinux 4.x is even more pain
- now we provide images which have the shiny menu/live thingie. make image.
- initramfs/init: FILE=xxx is not needed anymore. images have two ext4 partitions

side note: be very careful when adding features to installer / installer scripts,
This commit is contained in:
Stefan Saraev 2013-11-03 16:45:49 +02:00
parent ea9f92953b
commit 309b3d7dce
6 changed files with 7 additions and 270 deletions

View File

@ -300,9 +300,6 @@
NFS=*)
MOUNT_CMD="mount_nfs"
;;
FILE=*)
MOUNT_CMD="mount_common"
;;
*)
error "mount_part" "Unknown filesystem $1"
;;
@ -417,55 +414,6 @@
progress "Mounting storage"
if [ -n "$disk" ]; then
if [ "${disk%%=*}" = "FILE" ]; then
target="${disk%%,*}"
storage_loop_file="/flash/${target#*=}"
mount -o remount,rw /flash
if [ ! -f "$storage_loop_file" ]; then
echo "Creating storage loopback file: $storage_loop_file..."
STORAGE_USE=$(df /flash/ | awk '/[0-9]%/{print $4}')
STORAGE_USE=$(($STORAGE_USE / 1024 - $LIVE_FLASH_FREE_MIN))
options="${disk#*,}"
if [ "$options" = "$disk" ]; then
echo "No size specified, using all available space..."
if [ $STORAGE_USE -gt 0 ]; then
echo "Size obtain: $STORAGE_USE MB..."
else
error "size check" "Not enough free space (at least $LIVE_FLASH_FREE_MIN MB)..."
fi
else
if [ $options -le $STORAGE_USE ]; then
STORAGE_USE=$options
echo "Size specified: $STORAGE_USE MB..."
else
echo "Incorrect specified size: $options MB > $STORAGE_USE MB..."
if [ $STORAGE_USE -gt 0 ]; then
echo "Size trimmed: $STORAGE_USE MB..."
else
error "size check" "Not enough free space (at least $LIVE_FLASH_FREE_MIN MB)..."
fi
fi
fi
mount_part "/flash/$IMAGE_SYSTEM" "/sysroot" "ro,loop"
echo "Creating empty file, this can take a long time..."
dd if=/dev/zero of="$storage_loop_file" bs=1M count=$STORAGE_USE &>/dev/null
echo "Formating to EXT4 filesystem, this can take a long time..."
# use mkfs.ext4 from SYSTEM
LD_LIBRARY_PATH=/sysroot/usr/lib /sysroot/sbin/mkfs.ext4 -F -L StorageLive "$storage_loop_file" &>/dev/null
sync
umount /sysroot
echo "Done..."
usleep 2000000
fi
mount_part "FILE=$storage_loop_file" "/storage" "loop,rw,noatime"
return
fi
if [ -n "$OVERLAY" ]; then
OVERLAY_DIR=`cat /sys/class/net/eth0/address | tr -d :`

View File

@ -198,44 +198,12 @@ echo "#########################################################"
echo "creating bootloader configuration..."
cat >/tmp/usb_install/syslinux.cfg << EOF
UI vesamenu.c32
PROMPT 0
MENU TITLE Boot Menu
MENU BACKGROUND splash.png
TIMEOUT 50
DEFAULT live
MENU WIDTH 70
MENU MARGIN 15
MENU ROWS 2
MENU HSHIFT 4
MENU VSHIFT 13
MENU TIMEOUTROW 10
MENU TABMSGROW 8
MENU CMDLINEROW 8
MENU HELPMSGROW 13
MENU HELPMSGENDROW 26
MENU CLEAR
MENU COLOR border 30;44 #40ffffff #00000000 std
MENU COLOR title 1;36;44 #ff8bbfe3 #00000000 std
MENU COLOR sel 7;37;40 #80f0f0f0 #ff606060 all
MENU COLOR unsel 37;44 #50ffffff #00000000 std
MENU COLOR help 37;40 #c0ffffff #a0000000 std
MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std
MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std
MENU COLOR msg07 37;40 #90ffffff #a0000000 std
MENU COLOR tabmsg 31;40 #ff868787 #00000000 std
DEFAULT installer
LABEL installer
MENU LABEL Run OpenELEC Installer
KERNEL /KERNEL
APPEND boot=UUID=$UUID installer quiet vga=current
LABEL live
MENU LABEL Run OpenELEC Live
KERNEL /KERNEL
APPEND boot=UUID=$UUID disk=FILE=STORAGE,512 quiet vga=current
APPEND boot=UUID=$UUID installer quiet tty
EOF
@ -252,35 +220,6 @@ EOF
cp README.md /tmp/usb_install
cp RELEASE /tmp/usb_install
cp splash.png /tmp/usb_install
if [ -f /usr/lib/syslinux/vesamenu.c32 ]; then
cp /usr/lib/syslinux/vesamenu.c32 /tmp/usb_install
elif [ -f /usr/share/syslinux/vesamenu.c32 ]; then
cp /usr/share/syslinux/vesamenu.c32 /tmp/usb_install
elif [ -f /usr/lib/syslinux/bios/vesamenu.c32 ]; then
cp /usr/lib/syslinux/bios/vesamenu.c32 /tmp/usb_install
else
echo "ERROR: Can't find syslinux's vesamenu.c32 on Host OS" >&2
sed 's|^UI vesamenu.c32|#UI vesamenu.c32|g' /tmp/usb_install/syslinux.cfg
fi
if [ -f /usr/lib/syslinux/libcom32.c32 ]; then
cp /usr/lib/syslinux/libcom32.c32 /tmp/usb_install
elif [ -f /usr/share/syslinux/libcom32.c32 ]; then
cp /usr/share/syslinux/libcom32.c32 /tmp/usb_install
elif [ -f /usr/lib/syslinux/bios/libcom32.c32 ]; then
cp /usr/lib/syslinux/bios/libcom32.c32 /tmp/usb_install
fi
if [ -f /usr/lib/syslinux/libutil.c32 ]; then
cp /usr/lib/syslinux/libutil.c32 /tmp/usb_install
elif [ -f /usr/share/syslinux/libutil.c32 ]; then
cp /usr/share/syslinux/libutil.c32 /tmp/usb_install
elif [ -f /usr/lib/syslinux/bios/libutil.c32 ]; then
cp /usr/lib/syslinux/bios/libutil.c32 /tmp/usb_install
fi
# sync disk
echo "syncing disk..."
sync

View File

@ -97,50 +97,15 @@ IF ERRORLEVEL 1 goto InvalidDrive
>NUL copy README.md %DRIVE%
>NUL copy RELEASE %DRIVE%
>NUL copy openelec.ico %DRIVE%
>NUL copy 3rdparty\syslinux\vesamenu.c32 %DRIVE%
>NUL copy 3rdparty\syslinux\libcom32.c32 %DRIVE%
>NUL copy 3rdparty\syslinux\libutil.c32 %DRIVE%
>NUL copy splash.png %DRIVE%
FOR /F "tokens=5" %%G IN ('vol %DRIVE% ^|find "-"') DO SET DRIVEUUID=%%G
ECHO UI vesamenu.c32 > %DRIVE%\syslinux.cfg
ECHO PROMPT 0 >> %DRIVE%\syslinux.cfg
ECHO MENU TITLE Boot Menu >> %DRIVE%\syslinux.cfg
ECHO MENU BACKGROUND splash.png >> %DRIVE%\syslinux.cfg
ECHO TIMEOUT 50 >> %DRIVE%\syslinux.cfg
ECHO DEFAULT live >> %DRIVE%\syslinux.cfg
ECHO DEFAULT installer >> %DRIVE%\syslinux.cfg
ECHO. >> %DRIVE%\syslinux.cfg
ECHO MENU WIDTH 70 >> %DRIVE%\syslinux.cfg
ECHO MENU MARGIN 15 >> %DRIVE%\syslinux.cfg
ECHO MENU ROWS 2 >> %DRIVE%\syslinux.cfg
ECHO MENU HSHIFT 4 >> %DRIVE%\syslinux.cfg
ECHO MENU VSHIFT 13 >> %DRIVE%\syslinux.cfg
ECHO MENU TIMEOUTROW 10 >> %DRIVE%\syslinux.cfg
ECHO MENU TABMSGROW 8 >> %DRIVE%\syslinux.cfg
ECHO MENU CMDLINEROW 8 >> %DRIVE%\syslinux.cfg
ECHO MENU HELPMSGROW 13 >> %DRIVE%\syslinux.cfg
ECHO MENU HELPMSGENDROW 26 >> %DRIVE%\syslinux.cfg
ECHO MENU CLEAR >> %DRIVE%\syslinux.cfg
ECHO. >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR border 30;44 #40ffffff #00000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR title 1;36;44 #ff8bbfe3 #00000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR sel 7;37;40 #80f0f0f0 #ff606060 all >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR unsel 37;44 #50ffffff #00000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR help 37;40 #c0ffffff #a0000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR msg07 37;40 #90ffffff #a0000000 std >> %DRIVE%\syslinux.cfg
ECHO MENU COLOR tabmsg 31;40 #ff868787 #00000000 std >> %DRIVE%\syslinux.cfg
ECHO. >> %DRIVE%\syslinux.cfg
ECHO LABEL installer >> %DRIVE%\syslinux.cfg
ECHO MENU LABEL Run OpenELEC Installer >> %DRIVE%\syslinux.cfg
ECHO KERNEL /KERNEL >> %DRIVE%\syslinux.cfg
ECHO APPEND boot=LABEL=OPENELEC installer quiet vga=current >> %DRIVE%\syslinux.cfg
ECHO APPEND boot=LABEL=OPENELEC installer quiet tty >> %DRIVE%\syslinux.cfg
ECHO. >> %DRIVE%\syslinux.cfg
ECHO LABEL live >> %DRIVE%\syslinux.cfg
ECHO MENU LABEL Run OpenELEC Live >> %DRIVE%\syslinux.cfg
ECHO KERNEL /KERNEL >> %DRIVE%\syslinux.cfg
ECHO APPEND boot=LABEL=OPENELEC disk=FILE=STORAGE,512 quiet vga=current >> %DRIVE%\syslinux.cfg
GOTO END
:InvalidDrive

View File

@ -25,16 +25,10 @@
mkdir -p $RELEASE_DIR/3rdparty/syslinux
cp -PR $BUILD/syslinux-*/NEWS $RELEASE_DIR/3rdparty/syslinux
cp -PR $BUILD/syslinux-*/README $RELEASE_DIR/3rdparty/syslinux
cp -PR $BUILD/syslinux-*/com32/menu/vesamenu.c32 $RELEASE_DIR/3rdparty/syslinux
cp -PR $BUILD/syslinux-*/com32/lib/libcom32.c32 $RELEASE_DIR/3rdparty/syslinux
cp -PR $BUILD/syslinux-*/com32/libutil/libutil.c32 $RELEASE_DIR/3rdparty/syslinux
mkdir -p $RELEASE_DIR/3rdparty/syslinux/doc
cp -PR $BUILD/syslinux-*/doc/* $RELEASE_DIR/3rdparty/syslinux/doc
mkdir -p $RELEASE_DIR/3rdparty/syslinux/dos
cp -PR $BUILD/syslinux-*/dos/syslinux.com $RELEASE_DIR/3rdparty/syslinux/dos
mkdir -p $RELEASE_DIR/3rdparty/syslinux/win32
cp -PR $BUILD/syslinux-*/win32/syslinux.exe $RELEASE_DIR/3rdparty/syslinux/win32

View File

@ -15,9 +15,6 @@ VIAddVersionKey InternalName "OpenELEC USB Stick Creator"
BrandingText " "
Var "DRIVE_LETTER"
Var "STORAGE_SIZE"
Var "BOOT_TIME"
Var "SSH_PARAM"
!include "MUI.nsh"
!include LogicLib.nsh
@ -49,7 +46,7 @@ Var "SSH_PARAM"
!insertmacro MUI_PAGE_LICENSE "gpl-2.0.txt"
Name "${PRODUCT_NAME}"
OutFile 'create_livestick.exe'
OutFile 'create_installerstick.exe'
ShowInstDetails show
AllowRootDirInstall true
RequestExecutionLevel admin
@ -107,58 +104,16 @@ Section "oeusbstart"
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 3rdparty\syslinux\libcom32.c32 $DRIVE_LETTER`
nsExec::Exec `"$0" /c copy 3rdparty\syslinux\libutil.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 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 live'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'DEFAULT installer'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ''
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU WIDTH 70'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU MARGIN 15'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU ROWS 2'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU HSHIFT 4'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU VSHIFT 13'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU TIMEOUTROW 10'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU TABMSGROW 8'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU CMDLINEROW 8'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU HELPMSGROW 13'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU HELPMSGENDROW 26'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU CLEAR'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ''
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR border 30;44 #40ffffff #00000000 std'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR title 1;36;44 #ff8bbfe3 #00000000 std'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR sel 7;37;40 #80f0f0f0 #ff606060 all'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'MENU COLOR unsel 37;44 #50ffffff #00000000 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 #ff868787 #00000000 std'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ''
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'LABEL installer'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' MENU LABEL Run OpenELEC Installer'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' KERNEL /KERNEL'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC installer quiet vga=current'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ''
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' 'LABEL live'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' MENU LABEL Run OpenELEC Live'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' KERNEL /KERNEL'
${If} $STORAGE_SIZE == "0"
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC disk=FILE=STORAGE quiet vga=current $SSH_PARAM'
${Else}
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC disk=FILE=STORAGE,$STORAGE_SIZE quiet vga=current $SSH_PARAM'
${EndIf}
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ' APPEND boot=LABEL=OPENELEC installer quiet tty'
${WriteToFile} '$DRIVE_LETTER\syslinux.cfg' ''
DetailPrint ""
SectionEnd
@ -194,46 +149,6 @@ Function CustomCreate
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
@ -244,30 +159,6 @@ Function CustomLeave
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