mirror of
https://github.com/MiyooCFW/buildroot.git
synced 2025-09-27 22:24:19 +03:00
[FIRSTBOOT/MAIN] refactor fatresize -s max / LOGs
*) FIRSTBOOT:
- calculate manually "size=max" of MAIN partition (workaround for know bug in libparted ``max_size`` class)
- add debug: write LOG to /mnt/log_firstboot.txt
- ditch "/boot/resize" file method
*)MAIN
- add debug: write LOGS to /mnt/log.txt
- cleanup & use tabs for indendent
- use ${HOME} variable often
*) GENIMAGE
- rm "resize" file (no use)
This commit is contained in:
@@ -7,20 +7,20 @@ START="${HOME}/autoexec.sh"
|
||||
|
||||
BOOTDIR=/boot # we expect /dev/mmcblk0p1 has been mounted here read only, from inittab
|
||||
LOGS=/dev/null
|
||||
#LOGS=/mnt/log.txt
|
||||
# can use /mnt/log.txt here, but note that this prevents clean shutdowns - so only use this for debugging
|
||||
export LOGS # so that subshells can use this as well
|
||||
|
||||
# check if it's first boot and turn on messages if yes
|
||||
if test -r "${BOOTDIR}/firstboot"; then
|
||||
DEBUG_MSG="yes"
|
||||
if ((test -r "${BOOTDIR}/firstboot") || (test -r "${HOME}/firstboot.completed")); then
|
||||
DEBUG_MSG="yes"
|
||||
LOGS=$(mktemp)
|
||||
fi
|
||||
|
||||
export LOGS # so that subshells can use this as well
|
||||
|
||||
if test "x${DEBUG_MSG}" == "xyes"; then
|
||||
echo -e "\e[0m" # normal foreground color
|
||||
export DEBUG_MSG # set it globally for further programs
|
||||
echo -e "\e[0m" # normal foreground color
|
||||
export DEBUG_MSG # set it globally for further programs
|
||||
else
|
||||
echo -e "\e[30m" # black foreground color
|
||||
echo -e "\e[30m" # black foreground color
|
||||
fi
|
||||
|
||||
# load kernel modules
|
||||
@@ -30,69 +30,68 @@ mount -t configfs none /sys/kernel/config >> "${LOGS}" 2>&1
|
||||
gadget-ms /dev/mmcblk0p1 /dev/mmcblk0p4 >> "${LOGS}" 2>&1
|
||||
|
||||
|
||||
# just load the expected ones (screen driver) from here
|
||||
# do it directly and not rely on modprobe trying to find them
|
||||
# automatically in rootfs/lib/modules/VERSION
|
||||
# (also because with custom kernels the VERSION will be different.
|
||||
#
|
||||
# the uEnv.txt is autogenerated by u-boot from HW which outputs
|
||||
# environmental variables needed for ID of screen type
|
||||
video=`cat ${BOOTDIR}/uEnv.txt |grep -a "CONSOLE_VIDEO" | cut -d "=" -f 2 | cut -d "." -f 1`
|
||||
params=`cat ${BOOTDIR}/uEnv.txt |grep -a "CONSOLE_PARAMETERS" | cut -d "=" -f 2-`
|
||||
# Load the expected one screen driver from here with modprobe
|
||||
## automatically from rootfs/lib/modules/VERSION
|
||||
# The uEnv.txt is autogenerated by u-boot from HW which outputs
|
||||
## environmental variables needed for ID of screen type
|
||||
video=`cat ${BOOTDIR}/uEnv.txt |grep -a "CONSOLE_VIDEO" | cut -d "=" -f 2 | cut -d "." -f 1`
|
||||
params=`cat ${BOOTDIR}/uEnv.txt |grep -a "CONSOLE_PARAMETERS" | cut -d "=" -f 2-`
|
||||
|
||||
# TVout scripting backend
|
||||
tvout=`cat ${HOME}/tvout`
|
||||
if ((test -r "${HOME}/tvout")); then
|
||||
echo 0 > /sys/class/backlight/backlight/brightness
|
||||
echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||
cp /mnt/.backlight.conf /mnt/.backlight.bak
|
||||
echo 0 > ${HOME}/.backlight.conf
|
||||
modprobe -r $video
|
||||
#TVMODE options.cfg setting
|
||||
export tvmode=$(grep -o TVMODE=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
modprobe miyoo-tvout $tvmode
|
||||
echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||
modprobe -r $video
|
||||
else
|
||||
if ((test -r "${HOME}/.backlight.bak")); then
|
||||
mv ${HOME}/.backlight.bak ${HOME}/.backlight.conf
|
||||
fi
|
||||
# MODULES_CUSTOM scripting
|
||||
if (!(test -r "${BOOTDIR}/modules.custom.sh") || !(grep -q MODULES_CUSTOM\=\1 "${HOME}/options.cfg")); then
|
||||
# Load video module read from uEnv.txt & defined by variant in console.cfg
|
||||
#FLIP & INVERT options.cfg setting
|
||||
export flip=$(grep -o FLIP=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
export invert=$(grep -o INVERT=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
modprobe $video $params $flip $invert
|
||||
else
|
||||
(cd "${BOOTDIR}" && sh modules.custom.sh ) >> "${LOGS}" 2>&1
|
||||
fi
|
||||
fi
|
||||
# TVout scripting backend
|
||||
tvout=`cat ${HOME}/tvout`
|
||||
if ((test -r "${HOME}/tvout")); then
|
||||
echo 0 > /sys/class/backlight/backlight/brightness
|
||||
echo 0 > /sys/class/vtconsole/vtcon1/bind
|
||||
cp ${HOME}/.backlight.conf ${HOME}/.backlight.bak
|
||||
echo 0 > ${HOME}/.backlight.conf
|
||||
modprobe -r $video
|
||||
#TVMODE options.cfg setting
|
||||
export tvmode=$(grep -o TVMODE=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
modprobe miyoo-tvout $tvmode
|
||||
echo 1 > /sys/class/vtconsole/vtcon1/bind
|
||||
modprobe -r $video
|
||||
else
|
||||
if ((test -r "${HOME}/.backlight.bak")); then
|
||||
mv ${HOME}/.backlight.bak ${HOME}/.backlight.conf
|
||||
fi
|
||||
# MODULES_CUSTOM scripting
|
||||
if (!(test -r "${BOOTDIR}/modules.custom.sh") || !(grep -q MODULES_CUSTOM\=\1 "${HOME}/options.cfg")); then
|
||||
# Load video module read from uEnv.txt & defined by variant in console.cfg
|
||||
#FLIP & INVERT options.cfg setting
|
||||
export flip=$(grep -o FLIP=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
export invert=$(grep -o INVERT=[0-1] "${HOME}/options.cfg" | tr '[:upper:]' '[:lower:]')
|
||||
modprobe $video $params $flip $invert
|
||||
else
|
||||
(cd "${BOOTDIR}" && sh modules.custom.sh ) >> "${LOGS}" 2>&1
|
||||
fi
|
||||
fi
|
||||
|
||||
# check if it's first boot and defer to the firstboot script if yes
|
||||
if test -r "${BOOTDIR}/firstboot"; then
|
||||
exec sh "${BOOTDIR}/firstboot"
|
||||
exec sh "${BOOTDIR}/firstboot"
|
||||
elif test -r "${HOME}/firstboot.completed"; then
|
||||
rm "${HOME}/firstboot.completed"
|
||||
fi
|
||||
|
||||
if !(grep -q FAT_CHECK\=\0 "${HOME}/options.cfg"); then
|
||||
##Check if fat32 is flagged as "dirty", and if so unmount, repair, remount
|
||||
if dmesg | grep "mmcblk0p4" > /dev/null; then
|
||||
echo -e "\e[31mUnclean shutdown detected.\e[0m"
|
||||
echo -e "\e[32mChecking FAT32 partition...\e[0m"
|
||||
umount /dev/mmcblk0p4
|
||||
fsck.vfat -y /dev/mmcblk0p4 > /dev/null;
|
||||
mount /dev/mmcblk0p4 "${HOME}" -t vfat -o rw,sync,utf8
|
||||
echo -e "\e[32mCheck complete.\e[0m"
|
||||
fi
|
||||
if dmesg | grep "mmcblk0p4" > /dev/null; then
|
||||
echo -e "\e[31mUnclean shutdown detected.\e[0m"
|
||||
echo -e "\e[32mChecking FAT32 partition...\e[0m"
|
||||
umount /dev/mmcblk0p4
|
||||
fsck.vfat -y /dev/mmcblk0p4 > /dev/null;
|
||||
mount /dev/mmcblk0p4 "${HOME}" -t vfat -o rw,sync,utf8
|
||||
echo -e "\e[32mCheck complete.\e[0m"
|
||||
fi
|
||||
fi
|
||||
|
||||
clear
|
||||
|
||||
# try to read what handheld we're on
|
||||
if test -r "${BOOTDIR}/console.cfg"; then
|
||||
source "${BOOTDIR}/console.cfg"
|
||||
source "${BOOTDIR}/console.cfg"
|
||||
else
|
||||
export CONSOLE_VARIANT="unknown"
|
||||
export CONSOLE_VARIANT="unknown"
|
||||
fi
|
||||
|
||||
echo "Boot!" >> "${LOGS}"
|
||||
@@ -100,15 +99,15 @@ echo "Handheld type is ${CONSOLE_VARIANT}" >> "${LOGS}"
|
||||
|
||||
# run any custom commands ('daemon' expected to be run from there)
|
||||
if test -r "${BOOTDIR}/normalboot.custom.sh" ; then
|
||||
(cd "${BOOTDIR}" && sh normalboot.custom.sh) # don't redirect, want output on screen
|
||||
(cd "${BOOTDIR}" && sh normalboot.custom.sh) # don't redirect, want output on screen
|
||||
else
|
||||
# at least run 'daemon'
|
||||
daemon >> "${LOGS}" 2>&1
|
||||
# at least run 'daemon'
|
||||
daemon >> "${LOGS}" 2>&1
|
||||
fi
|
||||
|
||||
# run boot logo animation
|
||||
if (!(grep -q BOOT_LOGO\=\0 "${HOME}/options.cfg")); then
|
||||
${BOOTLOGO} >> "${LOGS}" 2>&1
|
||||
${BOOTLOGO} >> "${LOGS}" 2>&1
|
||||
fi
|
||||
|
||||
# can't unmount boot because 'daemon' runs from it - but it's mounted read-only
|
||||
@@ -117,18 +116,18 @@ fi
|
||||
|
||||
# Writes dmesg after firstboot procedure or if DEBUG_MSG=yes
|
||||
if test "x${DEBUG_MSG}" == "xyes"; then
|
||||
sleep 1
|
||||
dmesg > /mnt/dmesg.txt
|
||||
sleep 1
|
||||
dmesg > ${HOME}/dmesg.txt
|
||||
mv ${LOGS} ${HOME}/log.txt
|
||||
fi
|
||||
|
||||
while [ 1 ]
|
||||
do
|
||||
if test -f "${START}"; then
|
||||
source "${START}"
|
||||
else
|
||||
|
||||
cd "${HOME}"/gmenu2x;
|
||||
./gmenu2x >> "${LOGS}" 2>&1;
|
||||
fi
|
||||
clear
|
||||
if test -f "${START}"; then
|
||||
source "${START}"
|
||||
else
|
||||
cd "${HOME}"/gmenu2x;
|
||||
./gmenu2x >> /dev/null 2>&1;
|
||||
fi
|
||||
clear
|
||||
done
|
||||
|
||||
Reference in New Issue
Block a user