diff --git a/files/board/arpl/overlayfs/opt/arpl/init.sh b/files/board/arpl/overlayfs/opt/arpl/init.sh index cfb0ffa0..fec5a868 100755 --- a/files/board/arpl/overlayfs/opt/arpl/init.sh +++ b/files/board/arpl/overlayfs/opt/arpl/init.sh @@ -50,6 +50,7 @@ ln -s "${CACHE_PATH}/ssh" "/etc/ssh" # Link bash history to cache volume rm -rf ~/.bash_history ln -s ${CACHE_PATH}/.bash_history ~/.bash_history +touch ~/.bash_history if ! grep -q "menu.sh" ~/.bash_history; then echo "menu.sh " >> ~/.bash_history fi diff --git a/files/board/arpl/p1/grub/grub.cfg b/files/board/arpl/p1/grub/grub.cfg index 54cbb2ea..3e8f48f0 100644 --- a/files/board/arpl/p1/grub/grub.cfg +++ b/files/board/arpl/p1/grub/grub.cfg @@ -14,6 +14,19 @@ insmod ext2 set default="boot" set timeout="5" set timeout_style="menu" +set vesa_mode=1 + +if [ -s $prefix/grubenv ]; then + load_env +fi +if [ "${next_entry}" ]; then + set default="${next_entry}" + unset next_entry + save_env next_entry +fi +if [ "${vesa_mode}" ]; then + set vesa_mode=${vesa_mode} +fi function load_video { if [ x$feature_all_video_module = xy ]; then @@ -33,7 +46,6 @@ load_video if loadfont unicode; then set gfxmode=auto insmod gfxterm - set gfxpayload=keep terminal_output gfxterm fi @@ -45,30 +57,22 @@ if serial --unit=0 --speed=115200; then terminal_output --append serial_com0 fi -if [ -s $prefix/grubenv ]; then - load_env -fi -if [ "${default}" ]; then - set default="${default}" -fi -if [ "${next_entry}" ]; then - set default="${next_entry}" - set next_entry= - save_env next_entry -fi - -if serial --unit=0 --speed=115200; then - terminal_input --append serial_com0 - terminal_output --append serial_com0 -fi +function set_gfxpayload { + if [ ${vesa_mode} -eq 1 ]; then + set gfxpayload=keep + else + set gfxpayload=text + fi +} set TERM=tty2 + search --set=root --label "ARPL3" if [ -s /zImage-dsm -a -s /initrd-dsm ]; then if [ "${default}" = "direct" ]; then set timeout="1" menuentry 'Boot DSM kernel directly' --id direct { - load_video + set_gfxpayload echo "Loading DSM kernel..." linux /zImage-dsm console=ttyS0,115200n8 earlyprintk log_buf_len=32M earlycon=uart8250,io,0x3f8,115200n8 root=/dev/md0 loglevel=15 ${dsm_cmdline} echo "Loading DSM initramfs..." @@ -77,7 +81,7 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then } fi menuentry 'Boot DSM' --id boot { - load_video + set_gfxpayload echo "Loading kernel..." linux /bzImage-arpl console=${TERM} net.ifnames=0 echo "Loading initramfs..." @@ -85,22 +89,35 @@ if [ -s /zImage-dsm -a -s /initrd-dsm ]; then echo "Booting..." } menuentry 'Force re-install DSM' --id junior { - load_video + set_gfxpayload echo "Loading kernel..." linux /bzImage-arpl console=${TERM} net.ifnames=0 force_junior echo "Loading initramfs..." initrd /initrd-arpl echo "Booting..." } -else - set timeout="1" fi menuentry 'Configure loader' --id config { - load_video + set_gfxpayload echo "Loading kernel..." linux /bzImage-arpl console=${TERM} net.ifnames=0 IWANTTOCHANGETHECONFIG echo "Loading initramfs..." initrd /initrd-arpl echo "Booting..." } + +if [ ${vesa_mode} = 1 ]; then + menuentry 'Change vesa to text video mode' --id videomode { + set vesa_mode=0 + save_env vesa_mode + configfile ${prefix}/grub.cfg + } +else + menuentry 'Change text to vesa video mode' --id videomode { + set vesa_mode=1 + save_env vesa_mode + reboot + configfile ${prefix}/grub.cfg + } +fi