Package: u-boot-sunxi
Version: 2018.01+dfsg1-2
Severity: normal
Hi,
the system in question is a Banana Pi, booting off an sd card. /boot is
already on the SATA disk, and was an ext4 file system when the issue
appeared.
According to the availability of the ext4* commands, this u-boot should
be able to handle an ext4fs, I therefore used it as /boot. This has
worked until recently, when I installed the 4.15.6 kernel. Booting this
kernel failed with "file not found" for the dtb file laoded from
/dtbs/4.15.6/sun7i-a20-bananapi.dtb. Setting fk_kvers to 4.15.5 made the
system boot 4.15.5 just fine.
Examining /boot from the running system didn't show any visible
difference while u-boot still complained that there was no dtb for
4.15.6.
I then noticed that ls -l /boot/dtbs | wc -l returned 64. This made me
suspicious, and I cleaned up /boot/dtbs a bit, with the behavior
unchanged.
I then renamed /boot/dtbs to /boot/dtbs-old and did mkdir /boot/dtbs, cp
-a /boot/dtbs-old/* /boot/dtbs/. Starting with this, u-boot started
claiming that /dtbs was completely empty.
I finally solved the issue by reformatting /boot as ext2, which made the
system immediately boot even 4.15.6.
I therefore conclude that:
- u-boot has some weird issues regarding directories in /boot
- these can either be triggered by having /boot/dtbs grow over 64
entries or by
- re-creating /boot/dtbs anew from a recent kernel
The (now gone) ext4fs had the following attributes:
Filesystem features: has_journal ext_attr resize_inode dir_index filetype
needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink
extra_isize metadata_csum
Is is possible that u-boot won't handle some of the advanced ext4
features?
Greetings
Marc
-- System Information:
Debian Release: buster/sid
APT prefers unstable
APT policy: (500, 'unstable')
Architecture: armhf (armv7l)
Kernel: Linux 4.15.6-zgbpi-armmp-lpae (SMP w/2 CPU cores)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8), LANGUAGE=en
(charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
-- no debconf information