[Buildroot] qemu_riscv64_virt can't boot up with large cpio initial RAM filesystem
Alistair Francis
Alistair.Francis at wdc.com
Tue Oct 15 00:53:51 UTC 2019
On Wed, 2019-10-09 at 15:26 +0800, han_mao at c-sky.com wrote:
> Hi,
> I got some troble when I tried to use init ram fs on riscv64 virt.
> The default ext2 fs works fine. If I use cpio and init ram fs to
> replace that. The kernel can boot up with small ram fs, but
> a big ram fs(>100M) doesn't work.
It's possible that your addresses are colliding. As in something is
being moved/written on top of your ramfs in memory and corrupting it.
It's also possible that you are out of memory?
It's hard to debug without more information (such as a log).
Why do you need such a large ram fs? Why not just attach the image as a
drive?
Alistair
> kernel got into panic and report "junk within compressed archive"
> static long __init flush_buffer(void *bufv, unsigned long len)
> {
> char *buf = (char *) bufv;
> long written;
> long origLen = len;
> if (message)
> return -1;
> while ((written = write_buffer(buf, len)) < len && !message)
> {
> char c = buf[written];
> if (c == '0') {
> buf += written;
> len -= written;
> state = Start;
> } else if (c == 0) {
> buf += written;
> len -= written;
> state = Reset;
> } else
> error("junk within compressed archive");
> This check failed.
> Someone knows how to solve this problem?
>
> Thanks,
> Mao Han
More information about the buildroot
mailing list