Ramdisk booting: EXT4-fs (ram0): bad geometry error.


Yusuf <yusufalti1997@...>
 

Hello

With t1042d4rdb-64b and yocto 2.7 ( https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/tree/readme?h=warrior ) 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


Mike Donahoe
 

What is BLK_DEV_RAM_SIZE set to in the kernel?

Michael Donahoe
Senior Developer
Systematic Consulting Group
p: 314-558-6271 ext. 106  m: 815-904-4337
a: 345 Marshall Avenue, Suite 103
  St louis, MO 63119
e: michael.donahoe@...


From: meta-freescale@... <meta-freescale@...> on behalf of Yusuf <yusufalti1997@...>
Sent: Tuesday, January 14, 2020 11:31 PM
To: u-boot@... <u-boot@...>; meta-freescale@... <meta-freescale@...>
Subject: [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/readme?h=warrior ) 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


Yusuf <yusufalti1997@...>
 

 


Hello

With t1042d4rdb-64b and yocto 2.7 ( https://source.codeaurora.org/external/qoriq/qoriq-components/yocto-sdk/tree/readme?h=warrior ) 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

 


Mike Donahoe
 




From: Yusuf Altıparmak <yusufalti1997@...>
Sent: Thursday, January 16, 2020 12:09 AM
To: Michael Donahoe <michael.donahoe@...>; meta-freescale@... <meta-freescale@...>; u-boot@... <u-boot@...>
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/readme?h=warrior ) 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'




 


Yusuf <yusufalti1997@...>
 

Increasing BLK_DEV_RAM_SIZE  to 435752 and higher number in kernel config has solved the problem. Thanks.