
________________________________ From: Yusuf Altıparmak yusufalti1997@gmail.com Sent: Thursday, January 16, 2020 12:09 AM To: Michael Donahoe michael.donahoe@systematicgroup.com; meta-freescale@lists.yoctoproject.org meta-freescale@lists.yoctoproject.org; u-boot@lists.denx.de u-boot@lists.denx.de Subject: Re: [meta-freescale] Ramdisk booting: EXT4-fs (ram0): bad geometry error.
________________________________
Hello
With t1042d4rdb-64b and yocto 2.7 ( https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/tree... ) I am having bad geometry error while booting and U-boot is freezing. I declared "setenv intrd_high=0xffffffff" to use large rootfs but I am unable to reach root login. Can anyone help me about this situation ?
Full error console log is here:
RAMDISK: gzip image found at block 0 RAMDISK: incomplete write (17195 != 32768) write error EXT4-fs (ram0): bad geometry: block count 435752 exceeds size of device (131072 blocks) VFS: Mounted root (ext2 filesystem) on device 1:0. devtmpfs: mounted Freeing unused kernel memory: 536K This architecture does not have kernel memory protection. Run /sbin/init as init process attempt to access beyond end of device ram0: rw=0, want=450632, limit=262144 Buffer I/O error on dev ram0, logical block 225315, async page read attempt to access beyond end of device ram0: rw=0, want=454376, limit=262144 Buffer I/O error on dev ram0, logical block 227187, async page read attempt to access beyond end of device ram0: rw=0, want=458082, limit=262144 Buffer I/O error on dev ram0, logical block 229040, async page read attempt to access beyond end of device ram0: rw=0, want=458084, limit=262144 Buffer I/O error on dev ram0, logical block 229041, async page read Run /etc/init as init process attempt to access beyond end of device ram0: rw=0, want=456378, limit=262144 Buffer I/O error on dev ram0, logical block 228188, async page read attempt to access beyond end of device ram0: rw=0, want=457688, limit=262144 Buffer I/O error on dev ram0, logical block 228843, async page read attempt to access beyond end of device ram0: rw=0, want=458086, limit=262144 Buffer I/O error on dev ram0, logical block 229042, async page read Run /bin/init as init process attempt to access beyond end of device ram0: rw=0, want=457942, limit=262144 Buffer I/O error on dev ram0, logical block 228970, async page read Run /bin/sh as init process attempt to access beyond end of device ram0: rw=0, want=457942, limit=262144 Buffer I/O error on dev ram0, logical block 228970, async page read Kernel panic - not syncing: No working init found. Try passing init= option to kernel. See Linux Documentation/admin. CPU: 3 PID: 1 Comm: swapper/0 Not tainted 4.19.26+gc0c2141 #1 Call Trace: [c0000001f3107c70] [c000000000a69bf4] .dump_stack+0xa8/0xec (unreliable) [c0000001f3107d00] [c00000000004b580] .panic+0x12c/0x2e8 [c0000001f3107db0] [c000000000002464] .kernel_init+0x10c/0x128 [c0000001f3107e30] [c0000000000009f4] .ret_from_kernel_thread+0x58/0x64 Rebooting in 180 seconds..
printenv output:
baudrate=115200 bdev=sda3 bootargs=root=/dev/ram rw console=ttyS0,115200 bootcmd=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;bootm e8020000 e9300000 e8800000 bootdelay=3 bootfile=uImage c=ffe consoledev=ttyS0 eth1addr=00:04:9F:05:B7:B1 eth2addr=00:04:9F:05:B7:B2 eth3addr=00:04:9F:05:B7:B3 eth4addr=00:04:9F:05:B7:B4 eth5addr=00:04:9f:8e:7b:b4 ethact=FM1@DTSEC1 ethaddr=00:04:9F:05:B7:B0 ethprime=e1000#0 fdtaddr=2000000 fdtfile=uImage-t1042d4rdb.dtb fileaddr=2000000 filesize=9a83 fman_ucode=eff00000 gatewayip=192.168.10.4 hvboot=setenv bootargs console=$consoledev,$baudrate config-addr=0xfe8900000;bootm 0xfe8700000 - 0xfe8800000 hwconfig=fsl_ddr:bank_intlv=cs0_cs1 initrd_high=0xffffffff ipaddr=192.168.10.99 loadaddr=1000000 netdev=eth0 netmask=255.255.255.0 nfsboot=setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostnar nohvboot=tftp 1000000 $dir/$bootfile;tftp 5000000 $dir/$ramdiskfile;tftp 2000000 $dir/$fdtfile;setenv bootargs root=/; othbootargs=ramdisk_size=1000000 ramboot=setenv bootargs root=/dev/ram rw console=$consoledev,$baudrate $othbootargs;tftp $ramdiskaddr $ramdiskfile;tfr ramdisk_size=41943040 ramdiskaddr=5000000 ramdiskfile=fsl-image-core-t1042d4rdb.ext2.gz.u-boot rootpath=/opt/nfsroot serverip=192.168.10.50 tftpflash=tftpboot $loadaddr $uboot && protect off $ubootaddr +$filesize && erase $ubootaddr +$filesize && cp.b $loade uboot=u-boot.bin ubootaddr=0xeff40000
Environment size: 1871/8188 bytes
and the commands I used:
tftp 10000000 uImage--4.19-r0-t1042d4rdb-64b-20200106043637.bin tftp 1f000000 t1042d4rdb--4.19-r0-t1042d4rdb-64b-20200106043637.dtb tftp 20000000 rootfs.ext2.gz.u-boot bootm 10000000 20000000 1f000000
What is BLK_DEV_RAM_SIZE set to in the kernel?
Hello, It's set to; CONFIG_BLK_DEV_RAM_SIZE=131072
Oh, I think I see now. bootargs by default is only set to 'root=/dev/ram rw console=ttyS0,115200'. It looks like you have ramboot to update it but you are loading the ramFS to a different location and from the output you did not run it. Anyways, if you pass in a ramdisk_size that is as large as the ramFS you are loading it should work (provided you have enough RAM). Without it the kernel uses what is set in the config, resulting in this error EXT4-fs (ram0): bad geometry: block count 435752 exceeds size of device (131072 blocks). Should be able to either increase the size in the kernel or pass in a proper ramdisk_size in bootargs. Use the existing ramboot as a guide and update it. Make sure ramdisk_size is the correct size of the ramdisk you are loading. Then run 'run ramboot' prior to 'bootm 10000000 20000000 1f000000'