make rootfs read-only

Signed-off-by: Michel-FK <michel.stempin@funkey-project.com>
This commit is contained in:
Michel-FK 2020-11-02 22:22:05 +01:00
parent 79a7be9716
commit fd6ab2ce4c
20 changed files with 47 additions and 535 deletions

View File

@ -0,0 +1 @@
/tmp

View File

@ -1,5 +1,5 @@
# <file system> <mount pt> <type> <options> <dump> <pass> # <file system> <mount pt> <type> <options> <dump> <pass>
/dev/root / ext2 rw,noauto 0 1 /dev/root / ext2 ro,noauto 0 1
proc /proc proc defaults 0 0 proc /proc proc defaults 0 0
devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0
tmpfs /dev/shm tmpfs mode=0777 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0

View File

@ -16,7 +16,7 @@
# Startup the system # Startup the system
::sysinit:/bin/cat /etc/issue ::sysinit:/bin/cat /etc/issue
::sysinit:/bin/mount -t proc proc /proc ::sysinit:/bin/mount -t proc proc /proc
::sysinit:/bin/mount -o remount,rw / #::sysinit:/bin/mount -o remount,rw /
::sysinit:/bin/mkdir -p /dev/pts /dev/shm ::sysinit:/bin/mkdir -p /dev/pts /dev/shm
::sysinit:/bin/mount -a ::sysinit:/bin/mount -a
::sysinit:/sbin/swapon -a ::sysinit:/sbin/swapon -a

View File

@ -11,8 +11,4 @@
# #
# By default this script does nothing. # By default this script does nothing.
# Incremental upgrades, blocking process #
#notif_set 0 "upgrade"
#upgrade_fk_incremental
exit 0 exit 0

View File

@ -1,8 +1,8 @@
args_mmc=setenv bootargs console=ttyS0,115200 panic=5 rootwait fbcon=map:10 fbcon=font:VGA8x8 vt.global_cursor_default=0 root=/dev/mmcblk0p${bootpart} rootfstype=ext4 rootflags=commit=120,data=writeback,barrier=0,journal_async_commit ${rw} quiet args_mmc=setenv bootargs console=ttyS0,115200 panic=5 rootwait fbcon=map:10 fbcon=font:VGA8x8 vt.global_cursor_default=0 root=/dev/mmcblk0p${bootpart} rootfstype=ext4 rootflags=commit=120,data=writeback,barrier=0,journal_async_commit ro quiet
baudrate=115200 baudrate=115200
bootcmd=run getbootpart; run check_keys; if test ${found} = 1; then setenv bootpart 1; fi; run args_mmc; run loadfdt; run loadimage; bootz ${loadaddr} - ${fdtaddr} bootcmd=run getbootpart; run check_keys; if test ${found} = 1; then setenv bootpart 1; fi; run args_mmc; run loadfdt; run loadimage; bootz ${loadaddr} - ${fdtaddr}
bootdelay=0 bootdelay=0
check_keys=run set_pullups; setenv found 0; setenv timeout ${delay}; while test ${timeout} > 0; do run read_keys; if test ${keys} = f83f; then setenv found 1; setenv timeout 0; setenv rw ro; else setexpr timeout ${timeout} - 1; fi; done check_keys=run set_pullups; setenv found 0; setenv timeout ${delay}; while test ${timeout} > 0; do run read_keys; if test ${keys} = f83f; then setenv found 1; setenv timeout 0; else setexpr timeout ${timeout} - 1; fi; done
console=ttyS0,115200 console=ttyS0,115200
delay=1 delay=1
fdt_high=0xffffffff fdt_high=0xffffffff
@ -12,7 +12,6 @@ loadaddr=0x41000000
loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb
loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage
read_keys=i2c read 20 0 2 1c20500; setexpr.w keys *1c20500 read_keys=i2c read 20 0 2 1c20500; setexpr.w keys *1c20500
rw=rw
set_pullups=i2c mw 20 46 df; i2c mw 20 47 f8 set_pullups=i2c mw 20 46 df; i2c mw 20 47 f8
stderr=serial@01c28000 stderr=serial@01c28000
stdin=serial@01c28000 stdin=serial@01c28000

View File

@ -1,263 +0,0 @@
[1970-01-01 02:07:39] [INFO] [RetroFE] Version 0.8.18 starting
[1970-01-01 02:07:39] [INFO] [RetroFE] OS: Linux
[1970-01-01 02:07:39] [INFO] [RetroFE] Absolute path: /root/RetroFE
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "fullscreen" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "showFrame" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "horizontal" = "240"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "vertical" = "240"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "layout" = "FunKey Style"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "hideMouse" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "showParenthesis" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "showSquareBrackets" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "firstCollection" = "Main"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "autoFavorites" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "rememberMenu" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "videoEnable" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "videoLoop" = "0"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "fileUsbConnected" = "/sys/class/power_supply/axp20x-usb/present"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "fileBatCapacity" = "/etc/current_battery_percentage"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "fileBatConnected" = "/sys/class/power_supply/axp20x-battery/present"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "exitOnFirstPageBack" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "initMetaDb" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "initInBackground" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "attractModeTime" = "0"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "rememberMenu" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collectionInputClear" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "minimize_on_focus_loss" = "no"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "unloadSDL" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "baseItemPath" = "/mnt"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing layouts from "/root/RetroFE/layouts/layouts.list"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump layouts: "/root/RetroFE/layouts/FunKey Style"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump layouts: "/root/RetroFE/layouts/Classic"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing layouts from "/mnt/themes/themes.list"
[1970-01-01 02:07:39] [ERROR] [Configuration] Could not open /mnt/themes/themes.list"
[1970-01-01 02:07:39] [ERROR] [RetroFE] Could not import "/mnt/themes/themes.list"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing layouts from "/root/RetroFE/layout.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Found layout: "/root/RetroFE/layouts/Classic" in layouts list at idx 1
[1970-01-01 02:07:39] [INFO] [RetroFE] Could not read directory "/root/RetroFE/launchers.linux"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/wonderswan.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.wonderswan.executable" = "%RETROFE_PATH%/launchers/wonderswan_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.wonderswan.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/megadrive.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.megadrive.executable" = "%RETROFE_PATH%/launchers/megadrive_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.megadrive.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/mame.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.mame.executable" = "%RETROFE_PATH%/launchers/mame_launch_mednafen.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.mame.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/ngp.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.ngp.executable" = "%RETROFE_PATH%/launchers/ngp_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.ngp.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/sms.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.sms.executable" = "%RETROFE_PATH%/launchers/sms_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.sms.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/gba.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gba.executable" = "%RETROFE_PATH%/launchers/gba_launch_gpsp.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gba.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/lynx.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.lynx.executable" = "%RETROFE_PATH%/launchers/lynx_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.lynx.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/Main.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.Main.executable" = "%ITEM_FILEPATH%"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.Main.arguments" = ""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/NES.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.NES.executable" = "%RETROFE_PATH%/launchers/nes_launch_mednafen.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.NES.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/gameboy.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gameboy.executable" = "%RETROFE_PATH%/launchers/gb_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gameboy.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/gamegear.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gamegear.executable" = "%RETROFE_PATH%/launchers/gamegear_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.gamegear.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/psone.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.psone.executable" = "%RETROFE_PATH%/launchers/psone_launch_pcsx.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.psone.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/launchers/snes.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.snes.executable" = "%RETROFE_PATH%/launchers/snes_launch.sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "launchers.snes.arguments" = ""%ITEM_FILEPATH%""
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Sega Master System/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_manufacturer" = "Manufacturer"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_type" = "Type"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_generation" = "Generation"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_year" = "Year"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_media" = "Media"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.lb_cpu" = "CPU"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.manufacturer" = "Sega"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.type" = "Video Game Console"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.generation" = "Fourth Generation"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.year" = "1988 (Japan), 1989 (NA), 1990 (EU)"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.media" = "Cartridge"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.cpu" = "Motorola 68000, Zilog Z80"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Sega Master System/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.list.path" = "%BASE_ITEM_PATH%/Sega Master System"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.list.includeMissingItems" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.list.extensions" = "zip,sms"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.list.menuSort" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.launcher" = "sms"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Master System.media.artwork_front" = "%BASE_ITEM_PATH%/Sega Master System"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Gear/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Game Gear/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Gear/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.list.path" = "%BASE_ITEM_PATH%/Game Gear"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.list.extensions" = "zip,gg"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.launcher" = "gamegear"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Gear.media.artwork_front" = "%BASE_ITEM_PATH%/Game Gear"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/NES/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/NES/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/NES/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.list.path" = "%BASE_ITEM_PATH%/NES"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.list.extensions" = "nes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.launcher" = "NES"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.NES.media.artwork_front" = "%BASE_ITEM_PATH%/NES"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/WonderSwan/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/WonderSwan/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/WonderSwan/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.list.path" = "%BASE_ITEM_PATH%/WonderSwan"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.list.extensions" = "zip,wsc"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.launcher" = "wonderswan"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.WonderSwan.media.artwork_front" = "%BASE_ITEM_PATH%/WonderSwan"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Boy Advance/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Game Boy Advance/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Boy Advance/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.list.path" = "%BASE_ITEM_PATH%/Game Boy Advance"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.list.extensions" = "gba"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.launcher" = "gba"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy Advance.media.artwork_front" = "%BASE_ITEM_PATH%/Game Boy Advance"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Boy/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Game Boy/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Game Boy/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.list.path" = "%BASE_ITEM_PATH%/Game Boy"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.list.extensions" = "gb,gbc"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.launcher" = "gameboy"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Game Boy.media.artwork_front" = "%BASE_ITEM_PATH%/Game Boy"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Neo Geo Pocket/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Neo Geo Pocket/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Neo Geo Pocket/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.list.path" = "%BASE_ITEM_PATH%/Neo Geo Pocket"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.list.extensions" = "zip,ngp"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.launcher" = "ngp"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Neo Geo Pocket.media.artwork_front" = "%BASE_ITEM_PATH%/Neo Geo Pocket"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Main/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Main/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Main/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Main.list.extensions" = "exe,bat,sh"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Main.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Main.launcher" = "Main"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/SNES/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/SNES/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/SNES/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.list.path" = "%BASE_ITEM_PATH%/SNES"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.list.extensions" = "sfc"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.launcher" = "snes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.SNES.media.artwork_front" = "%BASE_ITEM_PATH%/SNES"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Sega Genesis/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_manufacturer" = "Manufacturer"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_type" = "Type"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_generation" = "Generation"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_year" = "Year"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_media" = "Media"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.lb_cpu" = "CPU"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.manufacturer" = "Sega"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.type" = "Video Game Console"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.generation" = "Fourth Generation"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.year" = "1988 (Japan), 1989 (NA), 1990 (EU)"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.media" = "Cartridge"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.cpu" = "Motorola 68000, Zilog Z80"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Sega Genesis/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.list.path" = "%BASE_ITEM_PATH%/Sega Genesis"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.list.includeMissingItems" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.list.extensions" = "zip,md"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.list.menuSort" = "true"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.launcher" = "megadrive"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Sega Genesis.media.artwork_front" = "%BASE_ITEM_PATH%/Sega Genesis"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/PS1/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/PS1/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/PS1/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.list.path" = "%BASE_ITEM_PATH%/PS1"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.list.extensions" = "bin,cue"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.launcher" = "psone"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.PS1.media.artwork_front" = "%BASE_ITEM_PATH%/PS1"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Atari lynx/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Could not open /root/RetroFE/collections/Atari lynx/info.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Importing "/root/RetroFE/collections/Atari lynx/settings.conf"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.list.path" = "%BASE_ITEM_PATH%/Atari lynx"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.list.includeMissingItems" = "false"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.list.extensions" = "zip,lnx"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.list.menuSort" = "yes"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.launcher" = "lynx"
[1970-01-01 02:07:39] [INFO] [Configuration] Dump: "collections.Atari lynx.media.artwork_front" = "%BASE_ITEM_PATH%/Atari lynx"
[1970-01-01 02:07:39] [INFO] [RetroFE] Imported configuration
[1970-01-01 02:07:39] [INFO] [SDL] Initializing
[1970-01-01 02:07:39] [INFO] [SDL] Creating 240x240 window (fullscreen: yes)
[1970-01-01 02:07:40] [INFO] [Configuration] Importing "/root/RetroFE/controls.conf"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.up" = "Up, U"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.down" = "Down, D"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.left" = "Left, L"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.right" = "Right, R"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.pageUp" = "PageDown"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.pageDown" = "PageUp"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.letterUp" = "M"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.letterDown" = "N"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.favPlaylist" = "F3"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.nextPlaylist" = "F2"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.prevPlaylist" = "F1"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.addPlaylist" = "I"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.removePlaylist" = "O"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.random" = "G"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.select" = "Return, A"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.menu" = "Q"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.back" = "B"
[1970-01-01 02:07:40] [INFO] [Configuration] Dump: "controls.quit" = "Escape"
[1970-01-01 02:07:40] [INFO] [Layout] Initializing /root/RetroFE/layouts/Classic/splash.xml
[1970-01-01 02:07:40] [INFO] [RetroFE] Initializing
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.pageDown, Key Value: 280
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.pageUp, Key Value: 281
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.letterDown, Key Value: 110
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.letterUp, Key Value: 109
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.favPlaylist, Key Value: 284
[1970-01-01 02:07:40] [INFO] [Layout] Layout resolution 240x240 (scale 1x1)
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.nextPlaylist, Key Value: 283
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.prevPlaylist, Key Value: 282
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.addPlaylist, Key Value: 105
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.removePlaylist, Key Value: 111
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.random, Key Value: 103
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.up, Key Value: 273
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.up, Key Value: 117
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.left, Key Value: 276
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.left, Key Value: 108
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.down, Key Value: 274
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.down, Key Value: 100
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.right, Key Value: 275
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.right, Key Value: 114
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.select, Key Value: 13
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.select, Key Value: 97
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.back, Key Value: 98
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.quit, Key Value: 27
[1970-01-01 02:07:40] [INFO] [Input] Binding key controls.menu, Key Value: 113
[1970-01-01 02:07:40] [INFO] [RetroFE] Initialized user controls
[1970-01-01 02:07:40] [INFO] [Database] Opened database "/root/RetroFE/meta.db"
[1970-01-01 02:07:40] [INFO] [RetroFE] Initialized database
[1970-01-01 02:07:40] [INFO] [Layout] Initialized
[1970-01-01 02:07:40] [INFO] [Layout] Initializing /root/RetroFE/layouts/Classic/layout.xml
[1970-01-01 02:07:40] [INFO] [Layout] Layout resolution 240x240 (scale 1x1)
[1970-01-01 02:07:40] [INFO] [Layout] Initialized
[1970-01-01 02:07:40] [INFO] [CollectionInfoBuilder] Checking for "/root/RetroFE/collections/Main/include.txt"
[1970-01-01 02:07:40] [INFO] [CollectionInfoBuilder] Scanning directory "/mnt/Main"
[1970-01-01 02:07:40] [INFO] [CollectionInfoBuilder] Could not read directory "/mnt/Main". Ignore if this is a menu.
[1970-01-01 02:07:40] [INFO] [Menu] Found: "/root/RetroFE/collections/Main/menu.txt"

View File

@ -0,0 +1 @@
/tmp/retrofe.log

View File

@ -7,6 +7,8 @@ if [ ! -f ${RUN_FILE} ]; then
exit 0 exit 0
fi fi
rw
## Lock file ## Lock file
LOCK_FILE=/var/lock/assembly_tests.lock LOCK_FILE=/var/lock/assembly_tests.lock
if [ -f ${LOCK_FILE} ]; then if [ -f ${LOCK_FILE} ]; then
@ -45,6 +47,7 @@ function function_magnet_detected_ok {
else else
echo "0" > $MAGNET_DETECTED_FILE echo "0" > $MAGNET_DETECTED_FILE
fi fi
ro
## Clean shutdown ## Clean shutdown
echo " Caught SIGUSR1 signal: magnet detected" echo " Caught SIGUSR1 signal: magnet detected"
@ -351,6 +354,7 @@ done
## Remove lock file ## Remove lock file
rm $LOCK_FILE rm $LOCK_FILE
ro
## Exit processes ## Exit processes
if ! $test_failed; then if ! $test_failed; then

View File

@ -11,13 +11,17 @@ fi
# Sanity check: File does not exist # Sanity check: File does not exist
if [ ! -f ${BRIGHTNESS_FILE} ]; then if [ ! -f ${BRIGHTNESS_FILE} ]; then
rw
echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE}
ro
fi fi
# Sanity check: Check if integer # Sanity check: Check if integer
brightness=$(cat ${BRIGHTNESS_FILE}) brightness=$(cat ${BRIGHTNESS_FILE})
if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then
rw
echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE}
ro
brightness=${BRIGHTNESS_DEFAULT_VALUE} brightness=${BRIGHTNESS_DEFAULT_VALUE}
fi fi
echo ${brightness} echo ${brightness}

View File

@ -23,6 +23,8 @@ echo ${value} > ${SYSTEM_BRIGHTNESS}
# Set new brightness value in brightness file # Set new brightness value in brightness file
if [ ${?} -eq 0 ]; then if [ ${?} -eq 0 ]; then
rw
echo ${brightness_percentage} > ${BRIGHTNESS_FILE} echo ${brightness_percentage} > ${BRIGHTNESS_FILE}
ro
fi fi
exit 0 exit 0

View File

@ -63,7 +63,9 @@ reload_partition_table () {
} }
resize_rootfs_filesystem () { resize_rootfs_filesystem () {
rw
resize2fs ${root_part} >/dev/null 2>&1 || die 10 "cannot resize the root filesystem, aborting" resize2fs ${root_part} >/dev/null 2>&1 || die 10 "cannot resize the root filesystem, aborting"
ro
return 0 return 0
} }
@ -160,6 +162,8 @@ notif "8/8 Format share partition"
format_backing_store_partition format_backing_store_partition
notif "First boot setup finished!" notif "First boot setup finished!"
rw
touch /.first_boot touch /.first_boot
ro
sleep 1 sleep 1
clear_notif clear_notif

View File

@ -0,0 +1,3 @@
#!/bin/sh
mount / -o remount,ro

View File

@ -0,0 +1,3 @@
#!/bin/sh
mount / -o remount,rw

View File

@ -16,7 +16,9 @@ if [ -f ${QUICK_LOAD_FILE} ]; then
command=$(cat ${QUICK_LOAD_FILE}) command=$(cat ${QUICK_LOAD_FILE})
echo "Found quick load file, restarting previous game with command:" echo "Found quick load file, restarting previous game with command:"
echo ${command} echo ${command}
rw
rm ${QUICK_LOAD_FILE} rm ${QUICK_LOAD_FILE}
ro
eval ${command} eval ${command}
termfix_all termfix_all
fi fi

View File

@ -1,257 +0,0 @@
#!/bin/sh
#########################
# Functions declaration #
#########################
notif_system_corruption () {
local time_on_screen=30
local reason=""
if [[ "$#" -ge "1" ]]; then
time_on_screen=$1
fi
if [[ "$#" -ge "2" ]]; then
reason=$2
fi
notif_set $time_on_screen "^YOUR SYSTEM IS CORRUPTED:^$reason^^PLEASE REFLASH YOUR SD CARD"
}
exit_with_reason () {
local reason=$EXIT_CODE_FAILURE
# Check args
if [[ "$#" -ge "1" ]]; then
reason=$1
fi
echo "EXIT FAILURE $EXIT_CODE_FAILURE, check log file"
# Remove extraction folder
if [[ -d $EXTRACT_DIRECTORY ]]; then
echo "Removing extraction directory: $EXTRACT_DIRECTORY" >> $LOG_FILE_UPGRADE
rm -rf $EXTRACT_DIRECTORY
fi
# Copy log file to UPGRADE_ARCHIVES_DIRECTORY
cp "$LOG_FILE_UPGRADE" "$LOG_FILE_UPGRADE_COPY"
exit $reason
}
exit_failure () {
exit_with_reason $EXIT_CODE_FAILURE
}
get_targz_uncompressed_size () {
# check arg
if [[ "$#" != "1" ]]; then
extracted_size=0
return 1
fi
extracted_size=$(tar tzvf "$1" | sed 's/ \+/ /g' | cut -f3 -d' ' | sed '2,$s/^/+ /' | paste -sd' ' | bc)
return 0
}
################
# Exit reasons #
################
EXIT_CODE_SUCCESS=0
EXIT_CODE_FAILURE=1
EXIT_CODE_FAILURE_NO_VERSION=2
EXIT_CODE_FAILURE_WRONG_VERSION=3
EXIT_CODE_FAILURE_WRONG_TAR_GZ=4
EXIT_CODE_FAILURE_WRONG_MD5=5
EXIT_CODE_FAILURE_WRONG_EXTRACT_SIZE=6
EXIT_CODE_FAILURE_NO_SPACE=7
EXIT_CODE_FAILURE_EXTRACT_FAILED=8
EXIT_CODE_FAILURE_SCRIPT_NOT_FOUND=9
#####################
# Files declaration #
#####################
FUNKEY_VERSION_FILE="/etc/funkey_version"
UPGRADE_ARCHIVES_DIRECTORY="/mnt/"
EXTRACT_DIRECTORY=$UPGRADE_ARCHIVES_DIRECTORY/update_tmp
LOG_FILES_DIRECTORY="/usr/local/etc/upgrade_logs/"
LOG_FILE_UPGRADE="$LOG_FILES_DIRECTORY/upgrade_log_$(date +%m-%d-%y_%T).txt"
LOG_FILE_UPGRADE_COPY="$UPGRADE_ARCHIVES_DIRECTORY/upgrade_log.txt"
####################
# Vars declaration #
####################
upgrade_needed=0
upgrade_error=0
extracted_size=0
###################
# Process Upgrade #
###################
# Init log files
mkdir -p $LOG_FILES_DIRECTORY
echo -e "******* Upgrade Incremental FunKey, $(date) *******\n" > $LOG_FILE_UPGRADE
test -f $LOG_FILE_UPGRADE_COPY && rm $LOG_FILE_UPGRADE_COPY
# Get current FunKey version
if [[ -f $FUNKEY_VERSION_FILE ]]; then
FUNKEY_VERSION=$(cat $FUNKEY_VERSION_FILE)
# Check if positive number (float or integer)
if [[ "$FUNKEY_VERSION" != ^[+-]?[0-9]*$ ]];then
echo "Current FunKey version = $FUNKEY_VERSION" >> $LOG_FILE_UPGRADE
elif [[ "$FUNKEY_VERSION" != ^[+-]?[0-9]+\.?[0-9]*$ ]];then
echo "Current FunKey version = $FUNKEY_VERSION" >> $LOG_FILE_UPGRADE
else
echo "WRONG FUNKEY VERSION FOUND: $FUNKEY_VERSION !" >> $LOG_FILE_UPGRADE
# Notif
notif_system_corruption 20 "WRONG VERSION: $FUNKEY_VERSION"
# Exit failure
upgrade_error=1
exit_with_reason $EXIT_CODE_FAILURE_NO_VERSION
fi
else
echo "NO FUNKEY VERSION FOUND !" >> $LOG_FILE_UPGRADE
# Notif
notif_system_corruption 20 "NO VERSION"
# Exit failure
upgrade_error=1
exit_with_reason $EXIT_CODE_FAILURE_WRONG_VERSION
fi
# Check if upgrade file is present
upgrade_archive=$(ls -v $UPGRADE_ARCHIVES_DIRECTORY/upgrade_funkey_${FUNKEY_VERSION}_to_*.tar.gz 2> /dev/null | head -1)
other_upgrade_archives=$(ls $UPGRADE_ARCHIVES_DIRECTORY/upgrade_funkey_*.tar.gz 2> /dev/null)
if [[ ! -z "$upgrade_archive" ]]; then
echo -e "Upgrade archive found:\n $upgrade_archive" >> $LOG_FILE_UPGRADE
#echo -e "Upgrade archive found:\n $upgrade_archive"
upgrade_needed=1
elif [[ ! -z "$other_upgrade_archives" ]]; then
echo -e "Other upgrades files found:\n $other_upgrade_archives" >> $LOG_FILE_UPGRADE
else
echo "No upgrade files found" >> $LOG_FILE_UPGRADE
fi
if [[ "$upgrade_needed" == "1" ]]; then
# Check if tar.gz file is valid
tar_gz_file_list=$(tar -tzf "$upgrade_archive" 2>/dev/null)
tar_gz_validity=$?
if [[ "$tar_gz_validity" != "0" ]]; then
echo "WRONG TAR.GZ FILE" >> $LOG_FILE_UPGRADE
exit_with_reason $EXIT_CODE_FAILURE_WRONG_TAR_GZ
else
echo -e "\nList of files in archive:" >> $LOG_FILE_UPGRADE
echo $tar_gz_file_list >> $LOG_FILE_UPGRADE
echo -e "\n" >> $LOG_FILE_UPGRADE
fi
# Check if archive integrity is ok
file_no_ext=${upgrade_archive%.tar.gz}
md5_read=${file_no_ext##*_}
echo "MD5 read from file: $md5_read" >> $LOG_FILE_UPGRADE
md5_computed=$(md5sum $upgrade_archive | cut -d' ' -f1)
echo "MD5 computed from file: $md5_computed" >> $LOG_FILE_UPGRADE
if [[ "$md5_read" != "$md5_computed" ]]; then
echo "WRONG MD5" >> $LOG_FILE_UPGRADE
exit_with_reason $EXIT_CODE_FAILURE_WRONG_MD5
fi
# Get size of uncompressed data
get_targz_uncompressed_size "$upgrade_archive"
if [[ $extracted_size == "0" ]]; then
echo "CANNOT COMPUTE EXTRACTED SIZE" >> $LOG_FILE_UPGRADE
exit_with_reason $EXIT_CODE_FAILURE_WRONG_EXTRACT_SIZE
fi
echo "Extracted archive size: $extracted_size" >> $LOG_FILE_UPGRADE
# Check if enough space in /mnt for extraction
free_space=$(($(stat -f --format="%a*%S" $UPGRADE_ARCHIVES_DIRECTORY)))
echo "Free space in $UPGRADE_ARCHIVES_DIRECTORY: $free_space" >> $LOG_FILE_UPGRADE
if [[ "$free_space" -le "$extracted_size" ]]; then
missing_space=$(echo "$extracted_size - $free_space" | bc )
format_missing_space=$(numfmt --to=iec --suffix=B $missing_space)
echo "NOT ENOUGH FREE SPACE FOR EXTRACTION, MISSING $format_missing_space" >> $LOG_FILE_UPGRADE
echo "NOT ENOUGH FREE SPACE FOR EXTRACTION, MISSING $format_missing_space"
notif_set 20 "^NOT ENOUGH SPACE FOR UPDATE^PLEASE FREE $format_missing_space"
exit_with_reason $EXIT_CODE_FAILURE_NO_SPACE
fi
# Remove and create extraction folder
if [[ -d $EXTRACT_DIRECTORY ]]; then
echo "Removing extraction directory: $EXTRACT_DIRECTORY" >> $LOG_FILE_UPGRADE
rm -rf $EXTRACT_DIRECTORY
fi
mkdir $EXTRACT_DIRECTORY
# Notif before achive extraction
notif_set 0 "^^^^^^^ UPGRADE IN PROGRESS... ^ EXTRACTING FILES^^DO NOT TURN OFF THE CONSOLE! ^^^^^^"
# Extract archive
echo "Extracting to directory: $EXTRACT_DIRECTORY" >> $LOG_FILE_UPGRADE
tar xzf $upgrade_archive -C $EXTRACT_DIRECTORY 2> /dev/null
if [[ "$?" != "0" ]]; then
echo "EXTRACTION FAILED" >> $LOG_FILE_UPGRADE
exit_with_reason EXIT_CODE_FAILURE_EXTRACT_FAILED
fi
echo "Extracted directory content:" >> $LOG_FILE_UPGRADE
ls $EXTRACT_DIRECTORY >> $LOG_FILE_UPGRADE
# Check for update script
upgrade_script=$(ls $EXTRACT_DIRECTORY/launch_upgrade.sh 2> /dev/null | head -1)
if [[ -z "$upgrade_script" ]]; then
echo -e "UPGRADE SCRIPT NOT FOUND" >> $LOG_FILE_UPGRADE
echo -e "UPGRADE SCRIPT NOT FOUND"
notif_set 20 "^UPDATE FAILED:^SCRIPT NOT FOUND^^WRONG UPGRADE FILE"
exit_with_reason EXIT_CODE_FAILURE_SCRIPT_NOT_FOUND
fi
# Display notif before launching script
notif_set 0 "^^^^^^^ UPGRADE IN PROGRESS... ^$(basename "$upgrade_archive")^^DO NOT TURN OFF THE CONSOLE! ^^^^^^"
# Launch upgrade script
echo -e "Launching upgrade script" >> $LOG_FILE_UPGRADE
chmod 777 $upgrade_script
$upgrade_script "$LOG_FILE_UPGRADE"
if [[ "$?" != "0" ]]; then
echo -e "UPGRADE SCRIPT FAILURE" >> $LOG_FILE_UPGRADE
exit_failure
fi
echo -e "Upgrade script successfull" >> $LOG_FILE_UPGRADE
# Remove upgrade archive
echo -e "Remove upgrade archive" >> $LOG_FILE_UPGRADE
rm $upgrade_archive
# Remove and create extraction folder
if [[ -d $EXTRACT_DIRECTORY ]]; then
echo "Removing extraction directory: $EXTRACT_DIRECTORY" >> $LOG_FILE_UPGRADE
rm -rf $EXTRACT_DIRECTORY
fi
# Notif upgrade successfull
notif_set 0 "^^^^^^^^ UPGRADE SUCCESSFUL^ REBOOTING NOW^^^^^^^"
sleep 2
notif_clear
# Reboot FunKey
reboot
fi
# If no upgrade, remove log file
if [[ "$upgrade_needed" == "0" && "$upgrade_error" == "0" ]]; then
rm $LOG_FILE_UPGRADE
fi
# Exit success
exit $EXIT_CODE_SUCCESS

View File

@ -11,14 +11,18 @@ fi
# Sanity check: File does not exist # Sanity check: File does not exist
if [ ! -f ${VOLUME_FILE} ]; then if [ ! -f ${VOLUME_FILE} ]; then
echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} rw
echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE}
ro
fi fi
# Sanity check: Check if integer # Sanity check: Check if integer
volume=$(cat "${VOLUME_FILE}") volume=$(cat "${VOLUME_FILE}")
if ! [ ! "${volume}" -ne "${volume}" ] 2> /dev/null; then if ! [ ! "${volume}" -ne "${volume}" ] 2> /dev/null; then
echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} rw
volume=${VOLUME_DEFAULT_VALUE} echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE}
ro
volume=${VOLUME_DEFAULT_VALUE}
fi fi
echo ${volume} echo ${volume}
exit 0 exit 0

View File

@ -35,6 +35,8 @@ amixer -q sset 'Headphone' ${volume_scaled} unmute
# Change new volume value in volume file # Change new volume value in volume file
if [ ${?} -eq 0 ]; then if [ ${?} -eq 0 ]; then
rw
echo ${volume_percent} > ${VOLUME_FILE} echo ${volume_percent} > ${VOLUME_FILE}
ro
fi fi
exit 0 exit 0

View File

@ -3,6 +3,7 @@
# Write quick load file args # Write quick load file args
QUICK_LOAD_FILE=/root/quick_load_cmd QUICK_LOAD_FILE=/root/quick_load_cmd
rw
echo -n "" > $QUICK_LOAD_FILE echo -n "" > $QUICK_LOAD_FILE
for i in "$@"; do for i in "$@"; do
if $(echo "$i" | egrep -q '[[:space:]]'); then if $(echo "$i" | egrep -q '[[:space:]]'); then
@ -14,4 +15,5 @@ for i in "$@"; do
fi fi
done done
echo "" >> ${QUICK_LOAD_FILE} echo "" >> ${QUICK_LOAD_FILE}
ro
exit 0 exit 0

View File

@ -1,8 +1,8 @@
args_mmc=setenv bootargs console=ttyS0,115200 panic=5 rootwait fbcon=map:10 fbcon=font:VGA8x8 vt.global_cursor_default=0 root=/dev/mmcblk0p${bootpart} rootfstype=ext4 rootflags=commit=120,data=writeback,barrier=0,journal_async_commit ${rw} quiet args_mmc=setenv bootargs console=ttyS0,115200 panic=5 rootwait fbcon=map:10 fbcon=font:VGA8x8 vt.global_cursor_default=0 root=/dev/mmcblk0p${bootpart} rootfstype=ext4 rootflags=commit=120,data=writeback,barrier=0,journal_async_commit ro quiet
baudrate=115200 baudrate=115200
bootcmd=run getbootpart; run check_keys; if test ${found} = 1; then setenv bootpart 1; fi; run args_mmc; run loadfdt; run loadimage; bootz ${loadaddr} - ${fdtaddr} bootcmd=run getbootpart; run check_keys; if test ${found} = 1; then setenv bootpart 1; fi; run args_mmc; run loadfdt; run loadimage; bootz ${loadaddr} - ${fdtaddr}
bootdelay=0 bootdelay=0
check_keys=run set_pullups; setenv found 0; setenv timeout ${delay}; while test ${timeout} > 0; do run read_keys; if test ${keys} = f83f; then setenv found 1; setenv timeout 0; setenv rw ro; else setexpr timeout ${timeout} - 1; fi; done check_keys=run set_pullups; setenv found 0; setenv timeout ${delay}; while test ${timeout} > 0; do run read_keys; if test ${keys} = f83f; then setenv found 1; setenv timeout 0; else setexpr timeout ${timeout} - 1; fi; done
console=ttyS0,115200 console=ttyS0,115200
delay=1 delay=1
fdt_high=0xffffffff fdt_high=0xffffffff
@ -12,7 +12,6 @@ loadaddr=0x41000000
loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb
loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage
read_keys=i2c read 20 0 2 1c20500; setexpr.w keys *1c20500 read_keys=i2c read 20 0 2 1c20500; setexpr.w keys *1c20500
rw=rw
set_pullups=i2c mw 20 46 df; i2c mw 20 47 f8 set_pullups=i2c mw 20 46 df; i2c mw 20 47 f8
stderr=serial@01c28000 stderr=serial@01c28000
stdin=serial@01c28000 stdin=serial@01c28000

View File

@ -11,13 +11,17 @@ fi
# Sanity check: File does not exist # Sanity check: File does not exist
if [ ! -f ${BRIGHTNESS_FILE} ]; then if [ ! -f ${BRIGHTNESS_FILE} ]; then
rw
echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE}
ro
fi fi
# Sanity check: Check if integer # Sanity check: Check if integer
brightness=$(cat ${BRIGHTNESS_FILE}) brightness=$(cat ${BRIGHTNESS_FILE})
if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then
rw
echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE}
ro
brightness=${BRIGHTNESS_DEFAULT_VALUE} brightness=${BRIGHTNESS_DEFAULT_VALUE}
fi fi
echo ${brightness} echo ${brightness}

View File

@ -23,6 +23,8 @@ echo ${value} > ${SYSTEM_BRIGHTNESS}
# Set new brightness value in brightness file # Set new brightness value in brightness file
if [ ${?} -eq 0 ]; then if [ ${?} -eq 0 ]; then
rw
echo ${brightness_percentage} > ${BRIGHTNESS_FILE} echo ${brightness_percentage} > ${BRIGHTNESS_FILE}
ro
fi fi
exit 0 exit 0