jeffsf
4
I don’t know the X750 under ath79 as well as ipq40xx, but my first thoughts would be not to modify U-Boot and its environment unless you absolutely have to. Leaving it alone means you can always flash “stock” firmware and get something running again. Modifying the U-Boot environment can be dicey as I’ve seen U-Boot rewrite its environment to some in-built default, which could leave you soft-bricked. I also know that the public source for the GL-AR750S U-Boot is not current.
Looking at target/linux/ath79/dts/qca9531_glinet_gl-x750.dts shows that there is plenty of space for a kernel there, at least up to what U-Boot can load and decompress.
You can change the kernel command line and the root device with DTS, at least on the ipq40xx target.
Some targets have a “munge” or full override possible also. I haven’t looked into this on the ath79 target.
From target/linux/ipq40xx/files-4.19/arch/arm/boot/dts/qcom-ipq4019-linksys_ea8300.dts, the following code overrides the U-Boot command argument (early init effectively takes the “last” value for a command-line argument):
//
// OEM U-Boot provides either
// init=/sbin/init rootfstype=ubifs ubi.mtd=11,2048 \
// root=ubi0:ubifs rootwait rw
// or the same with ubi.mtd=13,2048
//
chosen {
bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro";
};
Assuming that your kernel has the proper drivers for the SD card and its file system built in, you should be able to mount root directly off of it. I’m guessing that it would be the USB drivers, mass-storage access, and either ext4 or perhaps UBIFS. (I’ve read that F2FS has some reliability problems.)