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
Last activity: Apr 27, 2025, 02:04 PM