If you are putting the extroot on a non-USB device such as a mmc card all modules needed acccess the device should be in appropriate file in /etc/modules-boot.d. For example using a sdhci card on a mt7688/mt7628 device /etc/modules-boot.d/mmc needs have two lines added:
As wulfy23 states, if you follow those instructions you will be able to use the SD card for storage, as if it was "the" root file system.
As wulfy23 also points out, you're not really booting from SD, but just using it for storage.
If you actually want to boot from SD, you probably either need to change the boot loader args passed to the kernel or, more likely, build an image with the root partition specified as being on the SD card and appropriate drivers built into the kernel.
Unlike an x86 system with a BIOS, embedded systems generally can't "auto-detect" where the root file system resides and magically mount it.
You need to build the drivers into the kernel because if, for example, you need the ext4 driver to mount the root file system and the ext4 driver is on the root file system, you're stuck.
Typically one needs the file system kernel module (such as kmod-fs-ext4) and block-mount. If mounting a USB-connected device, then the appropriate USB drivers are needed, such as kmod-usb-storage and perhaps a couple others (kmod-usb-storage-uas for higher speed connectivity with USB 3, for example).
the kmod-fs-ext4, block-mount, kmod-usb-storage & kmod-usb-storage-uas are already installed. I installed kmod-usb-storage-uas just to check as i didn't think that a 2015 device has a USB3 SD-Card controller and nothing changed.
I then connected a USB thumb drive to the USB-Host-Port and for that i get immediately a serial line:
[10091.983803] usb 1-1: new high-speed USB device number 2 using ehci-platform
[10092.199439] usb-storage 1-1:1.0: USB Mass Storage device detected
[10092.234647] scsi host0: usb-storage 1-1:1.0
[10093.315114] scsi 0:0:0:0: Direct-Access Kingston DataTraveler 3.0 PMAP PQ: 0 ANSI: 6
[10093.335330] sd 0:0:0:0: [sda] 60555264 512-byte logical blocks: (31.0 GB/28.9 GiB)
[10093.351169] sd 0:0:0:0: [sda] Write Protect is off
[10093.360734] sd 0:0:0:0: [sda] Mode Sense: 45 00 00 00
[10093.371909] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO or FUA
[10093.476327] sda: sda1
[10093.495920] sd 0:0:0:0: [sda] Attached SCSI removable disk
When I attach or remove the SD Card nothing happens so I think there is some other problem here.
I just had a look in to the schematics. There is no controller between the Processor and the SD card slot so i have no idea where to start debug...
I got the device to recognize the SD card by building manual on a Linux system.
It now works with no need of additional installations of other packages. All through added some packages in the make configmenu and I don't exactly know which one is responsible for this nice behavour because there are many possibilities.
It seams that the official config does not have any spi packages installed that may break te usage of the SPI based SD cardreader, but the mmc packages are maybe related as well...
Can somebody determine the packages that are not responsible for SD Card recognicion and I/O, so i can make only one or two new builds to determine the exact package.
I think it would make sense to insert the related package in the official build as soon as I find it.
For better or for worse, changing a kernel for one board on a target changes it for all. That would all the "weight" of the kernel module to all firmware, painful for devices with limited flash space for the kernel.
A package is probably "too late" if you want it to mount root as the module you need to load to mount root is on root.
You could use an initramfs for initial boot to load the module, or add it to your local build config. I believe target/linux/ramips/mt76x8/config-4.14 would be the proper place for a local build.
I found this in the manual but it does not describe how to write the script... (it confuses me.)
I have seen that config.seed is a list of some information and packets i chosen in make menuconfig can i somehow create a list of build dependencies and copy that in to my buildpath before starting the compilation with make?
Thanks i read that and somehow found out how to use ./scripts/env new linkit-smart-7688 and I configured it and checked the ./scripts/env diff that showed >7000 new lines. But i do not see any changes in the folder: / < buildroot > /env/files/.
I expected to find a bunch of files that configures my build and that i can copy to another build in the future...
Where are those configurations saved?