diff --git a/FunKey/board/funkey/rootfs-overlay/etc/dropbear b/FunKey/board/funkey/rootfs-overlay/etc/dropbear new file mode 120000 index 0000000..cad2309 --- /dev/null +++ b/FunKey/board/funkey/rootfs-overlay/etc/dropbear @@ -0,0 +1 @@ +/tmp \ No newline at end of file diff --git a/FunKey/board/funkey/rootfs-overlay/etc/fstab b/FunKey/board/funkey/rootfs-overlay/etc/fstab index 708d1ee..47ade62 100644 --- a/FunKey/board/funkey/rootfs-overlay/etc/fstab +++ b/FunKey/board/funkey/rootfs-overlay/etc/fstab @@ -1,5 +1,5 @@ # -/dev/root / ext2 rw,noauto 0 1 +/dev/root / ext2 ro,noauto 0 1 proc /proc proc defaults 0 0 devpts /dev/pts devpts defaults,gid=5,mode=620,ptmxmode=0666 0 0 tmpfs /dev/shm tmpfs mode=0777 0 0 diff --git a/FunKey/board/funkey/rootfs-overlay/etc/inittab b/FunKey/board/funkey/rootfs-overlay/etc/inittab index 8f243ad..7bf9bcb 100644 --- a/FunKey/board/funkey/rootfs-overlay/etc/inittab +++ b/FunKey/board/funkey/rootfs-overlay/etc/inittab @@ -16,7 +16,7 @@ # Startup the system ::sysinit:/bin/cat /etc/issue ::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/mount -a ::sysinit:/sbin/swapon -a diff --git a/FunKey/board/funkey/rootfs-overlay/etc/rc.local b/FunKey/board/funkey/rootfs-overlay/etc/rc.local index baf6973..65634df 100755 --- a/FunKey/board/funkey/rootfs-overlay/etc/rc.local +++ b/FunKey/board/funkey/rootfs-overlay/etc/rc.local @@ -11,8 +11,4 @@ # # By default this script does nothing. -# Incremental upgrades, blocking process # -#notif_set 0 "upgrade" -#upgrade_fk_incremental - exit 0 diff --git a/FunKey/board/funkey/rootfs-overlay/etc/u-boot.env b/FunKey/board/funkey/rootfs-overlay/etc/u-boot.env index 3b9fa4f..cf77438 100644 --- a/FunKey/board/funkey/rootfs-overlay/etc/u-boot.env +++ b/FunKey/board/funkey/rootfs-overlay/etc/u-boot.env @@ -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 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 -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 delay=1 fdt_high=0xffffffff @@ -12,7 +12,6 @@ loadaddr=0x41000000 loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage 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 stderr=serial@01c28000 stdin=serial@01c28000 diff --git a/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt b/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt deleted file mode 100644 index 131c042..0000000 --- a/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt +++ /dev/null @@ -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" diff --git a/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt b/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt new file mode 120000 index 0000000..545a1f2 --- /dev/null +++ b/FunKey/board/funkey/rootfs-overlay/usr/games/log.txt @@ -0,0 +1 @@ +/tmp/retrofe.log \ No newline at end of file diff --git a/FunKey/board/funkey/rootfs-overlay/usr/games/settings.conf b/FunKey/board/funkey/rootfs-overlay/usr/games/settings.conf index 4092384..2ee9e53 100644 --- a/FunKey/board/funkey/rootfs-overlay/usr/games/settings.conf +++ b/FunKey/board/funkey/rootfs-overlay/usr/games/settings.conf @@ -50,7 +50,7 @@ videoLoop = 0 ####################################### fileUsbConnected = /sys/class/power_supply/axp20x-usb/present #fileBatCapacity = /sys/class/power_supply/axp20x-battery/capacity -fileBatCapacity = /etc/current_battery_percentage +fileBatCapacity = /tmp/current_battery_percentage fileBatConnected = /sys/class/power_supply/axp20x-battery/present ####################################### diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/assembly_tests b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/assembly_tests index 5ddcb8f..da3c4ac 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/assembly_tests +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/assembly_tests @@ -7,6 +7,8 @@ if [ ! -f ${RUN_FILE} ]; then exit 0 fi +rw + ## Lock file LOCK_FILE=/var/lock/assembly_tests.lock if [ -f ${LOCK_FILE} ]; then @@ -45,6 +47,7 @@ function function_magnet_detected_ok { else echo "0" > $MAGNET_DETECTED_FILE fi + ro ## Clean shutdown echo " Caught SIGUSR1 signal: magnet detected" @@ -351,6 +354,7 @@ done ## Remove lock file rm $LOCK_FILE +ro ## Exit processes if ! $test_failed; then diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get index 5f0a544..f948e0f 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get @@ -11,13 +11,17 @@ fi # Sanity check: File does not exist if [ ! -f ${BRIGHTNESS_FILE} ]; then + rw echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} + ro fi # Sanity check: Check if integer brightness=$(cat ${BRIGHTNESS_FILE}) if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then + rw echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} + ro brightness=${BRIGHTNESS_DEFAULT_VALUE} fi echo ${brightness} diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set index d0f15a0..6315245 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set @@ -23,6 +23,8 @@ echo ${value} > ${SYSTEM_BRIGHTNESS} # Set new brightness value in brightness file if [ ${?} -eq 0 ]; then + rw echo ${brightness_percentage} > ${BRIGHTNESS_FILE} + ro fi exit 0 diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/first_boot b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/first_boot index bfaa0c5..0843f6c 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/first_boot +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/first_boot @@ -63,7 +63,9 @@ reload_partition_table () { } resize_rootfs_filesystem () { + rw resize2fs ${root_part} >/dev/null 2>&1 || die 10 "cannot resize the root filesystem, aborting" + ro return 0 } @@ -160,6 +162,8 @@ notif "8/8 Format share partition" format_backing_store_partition notif "First boot setup finished!" +rw touch /.first_boot +ro sleep 1 clear_notif diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check index 142646c..37605e7 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check @@ -14,10 +14,12 @@ LOW_BAT_SECS_NOT_DISPLAYED=5 # Files and commands declaration USB_PRESENT_FILE=/sys/class/power_supply/axp20x-usb/present -#USB_PRESENT_FILE=/sys/class/power_supply/axp20x-ac/present # Cheat for no USB present simulation when debugging + +# Cheat for no USB present simulation when debugging +#USB_PRESENT_FILE=/sys/class/power_supply/axp20x-ac/present BAT_PRESENT_FILE=/sys/class/power_supply/axp20x-battery/present BAT_PERCENT_FILE=/sys/class/power_supply/axp20x-battery/capacity -BAT_PERCENT_RESCALED_FILE=/etc/current_battery_percentage +BAT_PERCENT_RESCALED_FILE=/tmp/current_battery_percentage LOW_BAT_ICON=/sys/class/graphics/fb0/low_battery SCHEDULE_SHUTDOWN_CMD=sched_shutdown SIGNAL_URS1_TO_EMULATORS_CMD=signal_usr1_to_emulators @@ -50,69 +52,71 @@ while true; do #echo "bat_percent_rescaled_maxed = ${bat_percent_rescaled_maxed}" # Save in file + rw echo ${bat_percent_rescaled_maxed} > ${BAT_PERCENT_RESCALED_FILE} + ro # Low bat status detection if [ "$(cat ${USB_PRESENT_FILE})" -eq "0" ]; then - # Value of 0 means wrong i2c reading - if [ "${cur_bat_percent}" -ne "0" ]; then + # Value of 0 means wrong i2c reading + if [ "${cur_bat_percent}" -ne "0" ]; then - # Check if we must change state - if [ ${cur_bat_percent} -le ${THRESHOLD_PERCENT_LOW_BAT} -a ${low_bat_status} -eq 0 ]; then + # Check if we must change state + if [ ${cur_bat_percent} -le ${THRESHOLD_PERCENT_LOW_BAT} -a ${low_bat_status} -eq 0 ]; then - # Set Low Bat status - low_bat_status=1 - low_bat_displayed=1 - cur_secs_disp=0 - echo 1 > ${LOW_BAT_ICON} + # Set Low Bat status + low_bat_status=1 + low_bat_displayed=1 + cur_secs_disp=0 + echo 1 > ${LOW_BAT_ICON} - elif [ ${cur_bat_percent} -gt ${THRESHOLD_PERCENT_LOW_BAT} -a ${low_bat_status} -eq 1 ]; then + elif [ ${cur_bat_percent} -gt ${THRESHOLD_PERCENT_LOW_BAT} -a ${low_bat_status} -eq 1 ]; then - # Reset status - low_bat_status=0 - cur_nb_extremely_low_bat_before_shutdown=0 - echo 0 > ${LOW_BAT_ICON} - fi - fi + # Reset status + low_bat_status=0 + cur_nb_extremely_low_bat_before_shutdown=0 + echo 0 > ${LOW_BAT_ICON} + fi + fi else - if [ ${low_bat_status} -eq 1 ]; then + if [ ${low_bat_status} -eq 1 ]; then - # Reset status - low_bat_status=0 - cur_nb_extremely_low_bat_before_shutdown=0 - echo 0 > ${LOW_BAT_ICON} - fi + # Reset status + low_bat_status=0 + cur_nb_extremely_low_bat_before_shutdown=0 + echo 0 > ${LOW_BAT_ICON} + fi fi # Low bat processing if [ ${low_bat_status} -eq 1 ]; then - # Check extremely low bat for clean shutdown - if [ ${cur_bat_percent} -le ${THRESHOLD_PERCENT_EXTREMELY_LOW_BAT} ]; then - let cur_nb_extremely_low_bat_before_shutdown++ - echo "cur_nb_extremely_low_bat_before_shutdown = ${cur_nb_extremely_low_bat_before_shutdown}" + # Check extremely low bat for clean shutdown + if [ ${cur_bat_percent} -le ${THRESHOLD_PERCENT_EXTREMELY_LOW_BAT} ]; then + let cur_nb_extremely_low_bat_before_shutdown++ + echo "cur_nb_extremely_low_bat_before_shutdown = ${cur_nb_extremely_low_bat_before_shutdown}" - # Clean shutdown - if [ ${cur_nb_extremely_low_bat_before_shutdown} -ge ${MAX_EXTREMELY_LOW_BAT_BEFORE_SHUTDOWN} ]; then - echo "Battery extremely low, shutting down now..." - sched_shutdown 1 & signal_usr1_to_emulators - exit 0 - fi - fi + # Clean shutdown + if [ ${cur_nb_extremely_low_bat_before_shutdown} -ge ${MAX_EXTREMELY_LOW_BAT_BEFORE_SHUTDOWN} ]; then + echo "Battery extremely low, shutting down now..." + sched_shutdown 1 & signal_usr1_to_emulators + exit 0 + fi + fi - # Blinking process - if [ ${BLINK_ICON} -eq 1 ]; then - if [ ${low_bat_displayed} -eq 1 -a ${cur_secs_disp} -ge ${LOW_BAT_SECS_DISPLAYED} ]; then - low_bat_displayed=0 - cur_secs_disp=0 - echo 0 > ${LOW_BAT_ICON} - elif [ ${low_bat_displayed} -eq 0 -a ${cur_secs_disp} -ge ${LOW_BAT_SECS_NOT_DISPLAYED} ]; then - low_bat_displayed=1 - cur_secs_disp=0 - echo 1 > ${LOW_BAT_ICON} - fi - fi + # Blinking process + if [ ${BLINK_ICON} -eq 1 ]; then + if [ ${low_bat_displayed} -eq 1 -a ${cur_secs_disp} -ge ${LOW_BAT_SECS_DISPLAYED} ]; then + low_bat_displayed=0 + cur_secs_disp=0 + echo 0 > ${LOW_BAT_ICON} + elif [ ${low_bat_displayed} -eq 0 -a ${cur_secs_disp} -ge ${LOW_BAT_SECS_NOT_DISPLAYED} ]; then + low_bat_displayed=1 + cur_secs_disp=0 + echo 1 > ${LOW_BAT_ICON} + fi + fi fi # Sleep before next check diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/ro b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/ro new file mode 100755 index 0000000..4501fa9 --- /dev/null +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/ro @@ -0,0 +1,3 @@ +#!/bin/sh + +mount / -o remount,ro diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/rw b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/rw new file mode 100755 index 0000000..4c33730 --- /dev/null +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/rw @@ -0,0 +1,3 @@ +#!/bin/sh + +mount / -o remount,rw diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/start_launcher b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/start_launcher index 8253557..58fa6d2 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/start_launcher +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/start_launcher @@ -16,7 +16,9 @@ if [ -f ${QUICK_LOAD_FILE} ]; then command=$(cat ${QUICK_LOAD_FILE}) echo "Found quick load file, restarting previous game with command:" echo ${command} + rw rm ${QUICK_LOAD_FILE} + ro eval ${command} termfix_all fi diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/upgrade_fk_incremental b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/upgrade_fk_incremental deleted file mode 100755 index 3b00586..0000000 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/upgrade_fk_incremental +++ /dev/null @@ -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 diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_get b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_get index 776a4a7..563d9ef 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_get +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_get @@ -11,14 +11,18 @@ fi # Sanity check: File does not exist if [ ! -f ${VOLUME_FILE} ]; then - echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} + rw + echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} + ro fi # Sanity check: Check if integer volume=$(cat "${VOLUME_FILE}") if ! [ ! "${volume}" -ne "${volume}" ] 2> /dev/null; then - echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} - volume=${VOLUME_DEFAULT_VALUE} + rw + echo ${VOLUME_DEFAULT_VALUE} > ${VOLUME_FILE} + ro + volume=${VOLUME_DEFAULT_VALUE} fi echo ${volume} exit 0 diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_set b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_set index 0581858..4b3b85a 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_set +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/volume_set @@ -35,6 +35,8 @@ amixer -q sset 'Headphone' ${volume_scaled} unmute # Change new volume value in volume file if [ ${?} -eq 0 ]; then + rw echo ${volume_percent} > ${VOLUME_FILE} + ro fi exit 0 diff --git a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/write_args_quick_load_file b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/write_args_quick_load_file index 426820a..ed2c769 100755 --- a/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/write_args_quick_load_file +++ b/FunKey/board/funkey/rootfs-overlay/usr/local/sbin/write_args_quick_load_file @@ -3,6 +3,7 @@ # Write quick load file args QUICK_LOAD_FILE=/root/quick_load_cmd +rw echo -n "" > $QUICK_LOAD_FILE for i in "$@"; do if $(echo "$i" | egrep -q '[[:space:]]'); then @@ -14,4 +15,5 @@ for i in "$@"; do fi done echo "" >> ${QUICK_LOAD_FILE} +ro exit 0 diff --git a/Recovery/board/funkey/rootfs-overlay/etc/u-boot.env b/Recovery/board/funkey/rootfs-overlay/etc/u-boot.env index 3b9fa4f..cf77438 100644 --- a/Recovery/board/funkey/rootfs-overlay/etc/u-boot.env +++ b/Recovery/board/funkey/rootfs-overlay/etc/u-boot.env @@ -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 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 -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 delay=1 fdt_high=0xffffffff @@ -12,7 +12,6 @@ loadaddr=0x41000000 loadfdt=load mmc 0:${bootpart} ${fdtaddr} /boot/sun8i-v3s-funkey.dtb loadimage=load mmc 0:${bootpart} ${loadaddr} /boot/zImage 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 stderr=serial@01c28000 stdin=serial@01c28000 diff --git a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get index 5f0a544..f948e0f 100755 --- a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get +++ b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_get @@ -11,13 +11,17 @@ fi # Sanity check: File does not exist if [ ! -f ${BRIGHTNESS_FILE} ]; then + rw echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} + ro fi # Sanity check: Check if integer brightness=$(cat ${BRIGHTNESS_FILE}) if ! [ ! "${brightness}" -ne "${brightness}" ] 2> /dev/null; then + rw echo ${BRIGHTNESS_DEFAULT_VALUE} > ${BRIGHTNESS_FILE} + ro brightness=${BRIGHTNESS_DEFAULT_VALUE} fi echo ${brightness} diff --git a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set index d0f15a0..6315245 100755 --- a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set +++ b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/brightness_set @@ -23,6 +23,8 @@ echo ${value} > ${SYSTEM_BRIGHTNESS} # Set new brightness value in brightness file if [ ${?} -eq 0 ]; then + rw echo ${brightness_percentage} > ${BRIGHTNESS_FILE} + ro fi exit 0 diff --git a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check index 142646c..b1a70da 100755 --- a/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check +++ b/Recovery/board/funkey/rootfs-overlay/usr/local/sbin/low_bat_check @@ -17,7 +17,7 @@ USB_PRESENT_FILE=/sys/class/power_supply/axp20x-usb/present #USB_PRESENT_FILE=/sys/class/power_supply/axp20x-ac/present # Cheat for no USB present simulation when debugging BAT_PRESENT_FILE=/sys/class/power_supply/axp20x-battery/present BAT_PERCENT_FILE=/sys/class/power_supply/axp20x-battery/capacity -BAT_PERCENT_RESCALED_FILE=/etc/current_battery_percentage +BAT_PERCENT_RESCALED_FILE=/tmp/current_battery_percentage LOW_BAT_ICON=/sys/class/graphics/fb0/low_battery SCHEDULE_SHUTDOWN_CMD=sched_shutdown SIGNAL_URS1_TO_EMULATORS_CMD=signal_usr1_to_emulators