Sample Header Ad - 728x90

Booting kernel (FIT image) with no rootfs

2 votes
2 answers
4374 views
An embedded Linux device I am working with has the following kernel parameter: root=/dev/ram0 Additionally, the kernel image is bundled together with an initrd and device tree to make a *flattened image tree*, or FIT image. When fully booted the device does not have persistent storage. That is, anything written to the file system is completely volatile. Considering the root= parameter passed to the kernel, this is not surprising. My questions is: How does this work? - I do know that Uboot copies the kernel into ram and executes it with a bootm command, but where do the filesystem files come from? Are they contained within the initrd? My understanding of an initrd is that it is a temporary construct. If so, it would be an offset into FIT image blob. So, how is just passing root=/dev/ram0 sufficient for the kernel to know where its file system is? - Does the kernel perform introspection and read the FIT image's header to determine placement of constituent components? - How are file system changes supported inside a FIT image considering it will be packed together with both the kernel and device tree blob?
Asked by sherrellbc (2601 rep)
Jun 28, 2016, 05:49 PM
Last activity: Apr 27, 2025, 02:04 PM