[Buildroot] [PATCH 2/3] fs/squashfs: align size to 1MiB

Peter Korsgaard peter at korsgaard.com
Tue Jul 11 21:47:37 UTC 2017


>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:

Hi,

 > Well, I also did not remeber such an issue either, but ot urns out that
 > the squashfs images that are generated with mksquashfs are not bootable
 > in a (recent-ish) kernel if their size is not a multiple of at least
 > 256KiB...

 > Steps to reproduce:
 >   - start with qemu_arm_vexpress_defconfig,
 >   - change the toolchain to external (for speed)
 >   - change the fs ro squashfs
 >   - build
 >   - boot

 > Expected results:
 >   - it boots to a login prompt

 > Actual result:
 >   - the kernel panics beacuse it can't mount the root filesystem

Are we sure this isn't just some kind of issue in the qemu sd card
emulation?

I did a test with qemu_arm_versatile_defconfig (just because that's the
defconfig I normally use), and here it works:

Booting Linux on physical CPU 0x0
Linux version 4.11.3 (peko at dell) (gcc version 4.8.3 20140320 (prerelease) (Sourcery CodeBench Lite 2014.05-29) ) #2 Tue Jul 11 23:38:39 CEST 2017
CPU: ARM926EJ-S [41069265] revision 5 (ARMv5TEJ), cr=00093177
CPU: VIVT data cache, VIVT instruction cache
OF: fdt: Machine model: ARM Versatile PB
Memory policy: Data cache writeback
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
Kernel command line: root=/dev/sda console=ttyAMA0,115200
..

sd 0:0:0:0: [sda] 4480 512-byte logical blocks: (2.29 MB/2.19 MiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
sd 0:0:0:0: [sda] Attached SCSI disk
Segment Routing with IPv6
sit: IPv6, IPv4 and MPLS over IPv4 tunneling driver
NET: Registered protocol family 17
input: AT Raw Set 2 keyboard as /devices/platform/amba/amba:fpga/10006000.kmi/serio0/input/input0
input: ImExPS/2 Generic Explorer Mouse as /devices/platform/amba/amba:fpga/10007000.kmi/serio1/input/input2
VFS: Mounted root (squashfs filesystem) readonly on device 8:0.
devtmpfs: mounted
Freeing unused kernel memory: 136K
This architecture does not have kernel memory protection.
Starting logging: OK
read-only file system detected...done
Starting network: 8139cp 0000:00:0c.0 eth0: link up, 100Mbps, full-duplex, lpa 0x05E1
udhcpc: started, v1.26.2
udhcpc: sending discover
udhcpc: sending select for 10.0.2.15
udhcpc: lease of 10.0.2.15 obtained, lease time 86400
deleting routers
adding dns 10.0.2.3
OK

Welcome to Buildroot

This is with this rootfs image:

ls -la rootfs.squashfs
-rw-r--r-- 1 peko peko 2293760 Jul 11 23:38 rootfs.squashfs

2293760 is 0x230000, so 64KB alignment.

Adding strace bumps it up to:

-rw-r--r-- 1 peko peko 2457600 Jul 11 23:46 rootfs.squashfs

2457600 is 0x258000, so 32KB alignment.

And this rootfs also works.

-- 
Bye, Peter Korsgaard


More information about the buildroot mailing list