After that, the script successfully loads the DTB file from
two possible paths and overlays. If the file does not exist,
then the default file will be uploaded.
Use the DTB name from the u-boot default for the third
iteration if the provided DTB name was not found. Also
delete the duplicate of the previous iteration.
In the second iteration, we check the path that does not
contain the vendor folder. But this will also be done if
the real path contains the vendor's folder and the vendor's
name is contained in the DTB file name as
fdtfile=allwinner/sun50i-*-bananapi-*.dtb.
However, overlays will not be available.
Remove "allwinner/" from all board configurations that
use the boot script mechanism so that the script works
correctly.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
Inform the user about the actual file that will be uploaded
on the first iteration. Inform the user that it cannot be
downloaded only once if the first iteration was unsuccessful.
Set the expected default path to /boot/dtb/allwinner and
start analyzing if the DTB file is not found in this path.
The folder with the vendor's name is now part of the path,
not part of the file name. This greatly facilitates the analysis
of various possible options in a simple u-boot shell.
Device tree files and overlay files are interconnected
and always located in the same place, separated by
the overlay subdirectory.
${fdtdir}/${fdtfile}
${fdtdir}/overlay/${overlay_prefix}-${overlay_file}.dtbo
By default, we are trying to download a dtb file from
the /boot/dtb folder, which is a link to the real folder.
Depending on the time and type of build, this link may
point directly to the target folder or to a subdirectory,
i.e. possible path options:
/boot/dtb/overlay
/boot/dtb/allwinner/overlay
In the file armbianEnv.txt we can also see:
fdtfile=sun8i-*.dtb
or
fdtfile=allwinner/sun8i-*.dtb
Thus, when the user has frozen the kernel and updated
the BSP package, or vice versa, updated only the kernel,
the following options are possible in the paths after
their concatenation in the script:
/boot/dtb/sun8i-*.dtb
/boot/dtb/allwinner/sun8i-*.dtb
/boot/dtb/allwinner/allwinner/sun8i-*.dtb
Define and remember default path variables.
Provide the user with the ability to specify the path
to the target folder as:
fdtdir=/path/to/dir
Check the existence of the dtb file in all reasonable
paths and set the path to it.
If not found, download the default file from the default path.
Signed-off-by: The-going <48602507+The-going@users.noreply.github.com>
The "swapaccount=" option has been deprecated in 6.1. Disable it in almost all boot scripts except "boot-sun50iw9.cmd" since that one is used in sun50iw9 legacy kernel, which is version 4.9.
Link to kernel commit:
b25806dcd3
* Add plymouth-theme-armbian package
* Adjust all bootscripts to adapt plymouth
* Auto show logo accroding to BOOT_LOGO
* Enable plymouth detail mode when bootlogo=false
* Add a new board config var - HAS_VIDEO_OUTPUT
This var is used to indicate whether device has a HW video output.
If it's set to "no", we will disable kernel bootsplash, plymouth and BUILD_DESKTOP
* Rename package to be aligned with others
* Disable kernel bootloader, but keep the code for it
* Rather keep bootlogo in the kernel for a while, otherwise kernel upgrade will turn bootup into the darkness
Co-authored-by: Igor Pečovnik <igorpecovnik@users.noreply.github.com>
Co-authored-by: Igor <igor@armbian.com>
* Initial commit for kernel boot splash
* Add startup files to disable bootlog when system is up / down
* Update logo, remove deprecated one
* Introduce new u-boot variable bootlogo
* Adjust kernel config
* Make logo possible on Odroid XU4
- add legacy and current upstream patches
- delete xu4 environment since its not used
* Cleanup C2,C4, both tested, logo works on mainline,
- adding legacy upstream patches for c4
* Enable bootlogo by default on Odroid N2
* Enable logo on RK3399 desktop images
* Cleanup the rest of the environment files
* Add initrd hook that copy splash file to initrd.
* Missing logo bits for one boot scripts
* Enable boot logo on Pinebook A64
* Enable bootlogo on Teres
* Update config
when there are some reasons which board failed to boot, eg rootfs crashes.
/init will fail to panic().
panic()
{
local console rest IFS
if command -v chvt >/dev/null 2>&1; then
chvt 1
fi
echo "$@"
# Disallow console access
if [ -n "${panic?}" ]; then
echo "Rebooting automatically due to panic= boot argument"
sleep "${panic}"
reboot
exit # in case reboot fails, force kernel panic
fi
...
}
when panic is set, there is no chance to fail into a shell, to debug what happens.
and device just keep reboot.
remove panic from bootargs to make it possible for users to find out why their boards fail to boot.
Signed-off-by: Zhang Ning <832666+zhangn1985@users.noreply.github.com>