F2fs extroot doesn't work on 3.203 GL-X750v2 Spitz

Hi there, I’ve tried following the extroot guide at [OpenWrt Wiki] Extroot configuration to configure a microSD as extroot on my new Spitz v2, but extroot on the Spitz is unable to mount the card despite it being present:

Wed Nov 17 22:55:28 2021 kern.info kernel: [   11.306588] usb-storage 1-1.1:1.0: USB Mass Storage device detected
Wed Nov 17 22:55:28 2021 kern.info kernel: [   11.472820] scsi host0: usb-storage 1-1.1:1.0
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   11.570037] random: jshn: uninitialized urandom read (4 bytes read)
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   11.706272] random: jshn: uninitialized urandom read (4 bytes read)
Wed Nov 17 22:55:28 2021 kern.info kernel: [   11.781550] usb 1-1.2: new full-speed USB device number 4 using ehci-platform
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   11.982465] random: jshn: uninitialized urandom read (4 bytes read)
Wed Nov 17 22:55:28 2021 kern.info kernel: [   12.150646] usb 1-1.2: new high-speed USB device number 5 using ehci-platform
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   12.610292] scsi 0:0:0:0: Direct-Access     Generic  STORAGE DEVICE   0233 PQ: 0 ANSI: 0
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   12.809914] sd 0:0:0:0: [sda] 62521344 512-byte logical blocks: (32.0 GB/29.8 GiB)
Wed Nov 17 22:55:28 2021 kern.info kernel: [   13.019512] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   13.089720] sd 0:0:0:0: [sda] Write Protect is off
Wed Nov 17 22:55:28 2021 kern.debug kernel: [   13.147223] sd 0:0:0:0: [sda] Mode Sense: 0b 00 00 08
Wed Nov 17 22:55:28 2021 kern.err kernel: [   13.155898] sd 0:0:0:0: [sda] No Caching mode page found
Wed Nov 17 22:55:28 2021 kern.err kernel: [   13.219670] sd 0:0:0:0: [sda] Assuming drive cache: write through
Wed Nov 17 22:55:28 2021 kern.info kernel: [   13.366648]  sda: sda1
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   13.415733] sd 0:0:0:0: [sda] Attached SCSI removable disk
Wed Nov 17 22:55:28 2021 kern.info kernel: [   14.111769] eth1: link up (1000Mbps/Full duplex)
Wed Nov 17 22:55:28 2021 kern.info kernel: [   14.167170] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
Wed Nov 17 22:55:28 2021 user.info kernel: [   16.546627] mount_root: loading kmods from internal overlay
Wed Nov 17 22:55:28 2021 user.info kernel: [   16.695141] kmodloader: loading kernel modules from //etc/modules-boot.d/*
Wed Nov 17 22:55:28 2021 user.info kernel: [   16.782677] kmodloader: done loading kernel modules from //etc/modules-boot.d/*
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   17.804285] jffs2: notice: (501) jffs2_build_xattr_subsystem: complete building xattr subsystem, 11 of xdatum (3 unchecked, 8 orphan) and 79 of xref (8 dead, 0 orphan) found.
Wed Nov 17 22:55:28 2021 user.info kernel: [   17.991744] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
Wed Nov 17 22:55:28 2021 user.info kernel: [   18.086392] block: extroot: device not present, retrying in 15 seconds
Wed Nov 17 22:55:28 2021 user.err kernel: [   33.784736] block: extroot: cannot find device sda1
Wed Nov 17 22:55:28 2021 kern.notice kernel: [   33.952365] jffs2: notice: (499) jffs2_build_xattr_subsystem: complete building xattr subsystem, 11 of xdatum (3 unchecked, 8 orphan) and 79 of xref (8 dead, 0 orphan) found.
Wed Nov 17 22:55:28 2021 user.info kernel: [   34.142502] mount_root: loading kmods from internal overlay
Wed Nov 17 22:55:28 2021 user.info kernel: [   34.376619] kmodloader: loading kernel modules from /tmp/overlay/upper/etc/modules-boot.d/*
Wed Nov 17 22:55:28 2021 user.info kernel: [   34.670957] kmodloader: done loading kernel modules from /tmp/overlay/upper/etc/modules-boot.d/*
Wed Nov 17 22:55:28 2021 user.info kernel: [   35.412877] block: attempting to load /tmp/jffs_cfg/upper/etc/config/fstab
Wed Nov 17 22:55:28 2021 user.info kernel: [   35.502508] block: extroot: device not present, retrying in 15 seconds
Wed Nov 17 22:55:28 2021 user.err kernel: [   51.195035] block: extroot: cannot find device sda1
Wed Nov 17 22:55:28 2021 user.info kernel: [   51.255408] mount_root: switching to jffs2 overlay

I notice the device also does not appear in block info and only the mtdblock devices show up there.

/dev/mtdblock5: UUID="97131531-f46aec83-1a2a507d-afe8be3e" VERSION="4.0" MOUNT="/rom" TYPE="squashfs"
/dev/mtdblock6: MOUNT="/overlay" TYPE="jffs2"

Of note, /dev/sda1 is currently formatted as f2fs so I’m not sure if that makes a difference for overlayfs with firmware 3.203. I prefer to use a filesystem specifically intended for flash memory with microsd cards when possible.

Edit: I have the following f2fs-related packages installed:

root@spitz:~# opkg list-installed | grep f2fs
f2fs-tools - 1.12.0-3
f2fsck - 1.12.0-3
kmod-fs-f2fs - 4.14.221-1
libf2fs6 - 1.12.0-3
mkf2fs - 1.12.0-3

And the kernel module appears to be loaded:

root@spitz:~# lsmod | grep f2fs
crypto_hash            10066  9 ppp_mppe,libcrc32c,sha1_generic,f2fs,crc32_generic,ext4,jbd2,crypto_null,crc32c_generic
f2fs                  273442  0

One other note, I’ve had this problem of extroot not working with an sdcard different GL-inet device recently, but I didn’t document it at the time and didn’t check to see if the log messages were the same. But it seems there are some errors in that guide in the OpenWRT wiki.