[LEDE-DEV] initramfs kernel using the wrong rootfs filesystem

Thomas Reifferscheid thomas at reifferscheid.org
Tue Mar 21 13:34:52 PDT 2017


Hello,

I'm on ipq8064, R7500 and netbooting the initramfs kernel gets me
a rootfs / mount using the wrong filesystem. As a result opkg refuses
to install packages, claiming that there is not enough space on /

rootfs however was mounted using *ramfs* which according to
Documentation/filesystems/ramfs-rootfs-initramfs.txt [0] should have 
been *tmpfs* instead.

Adjusting the bootargs argument in the .dts file fixes the initramfs 
kernel while keeping everything alright when booting from nand/flash.

-               bootargs = "rootfstype=squashfs noinitrd";
+               bootargs = "rootfstype=squashfs,tmpfs noinitrd";

Please see my questions below.

Console output, current situation:

root at LEDE:/# opkg install coreutils-stat
Installing coreutils-stat (8.23-2) to root...
Collected errors:
  * verify_pkg_installable: Only have 0kb available on filesystem 
/overlay, pkg coreutils-stat needs 33
  * opkg_install_cmd: Cannot install package coreutils-stat.
root at LEDE:/# stat -f /
   File: "/"
     ID: 0        Namelen: 255     Type: ramfs <------------------
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 0          Free: 0          Available: 0
Inodes: Total: 0          Free: 0
root at LEDE:/# df -h
Filesystem                Size      Used Available Use% Mounted on
# rootfs or / is missing here
tmpfs                   108.2M    508.0K    107.7M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
root at LEDE:/# df -h /
Filesystem                Size      Used Available Use% Mounted on
rootfs                       0         0         0   0% /
root at LEDE:/#




Console output, with the bootargs adjustment:

root at LEDE:/# opkg install coreutils-stat
Installing coreutils-stat (8.23-2) to root...
Downloading 
http://downloads.lede-project.org/snapshots/packages/arm_cortex-a15_neon-vfpv4/packages/coreutils-stat_8.23-2_arm_cortex-a15_neon-vfpv4.ipk
Installing coreutils (8.23-2) to root...
Downloading 
http://downloads.lede-project.org/snapshots/packages/arm_cortex-a15_neon-vfpv4/packages/coreutils_8.23-2_arm_cortex-a15_neon-vfpv4.ipk
Configuring coreutils.
Configuring coreutils-stat.
root at LEDE:/# stat -f /
   File: "/"
     ID: 0        Namelen: 255     Type: tmpfs<-------------------
Block size: 4096       Fundamental block size: 4096
Blocks: Total: 27411      Free: 25475      Available: 25475
Inodes: Total: 27411      Free: 26625
root at LEDE:/# df -h
Filesystem                Size      Used Available Use% Mounted on
rootfs                  107.1M      7.6M     99.5M   7% /
tmpfs                   108.2M    504.0K    107.7M   0% /tmp
tmpfs                   512.0K         0    512.0K   0% /dev
root at LEDE:/#



The patch would simplify general debugging using initramfs kernels and
would let you install whatever packages are necessary for further debugging
just out of the box.
It also would make use of the better filesystem tmpfs, see kernel docs 
[0] and [1].



Please let me know what you think:

What would be the best way of fixing all targets on initramfs for
mounting rootfs as tmpfs rather than ramfs?

Would be patching the bootargs for the related ipq8064 devices (3 in 
total) be enough for now?

Or just apply the patch against the ipq8064-R7500?


Thank you
Thomas



[0]: 
http://lxr.free-electrons.com/source/Documentation/filesystems/ramfs-rootfs-initramfs.txt?v=4.9#L60
[1]: 
http://lxr.free-electrons.com/source/Documentation/filesystems/tmpfs.txt?v=4.9#L13






More information about the Lede-dev mailing list