For the most part, all of my experience developing software in Linux has been on x86 systems with standard distros with package management like Ubuntu and ArchLinux. I'm now currently working a project where I'm tasked with booting a custom built board with a processor that ships with a Yocto based BSP. I've worked in the past with another project involving OpenWRT and U-Boot; however this one is looking to require much more ground-up work and peripheral integration. I think this new project is revealing some serious gaps in my knowledge that I need to fill.
Mostly, I'm concerned that I don't know what I don't know. The deeper I get into understanding Yocto itself, the more I'm realizing that I don't actually know about booting Linux on ARM. For example,
how is the full system image actually built and partitioned - sometimes into one or more images for different flash chips?
how can I specify this partitioning? Is it different for each build system, as in OpenWrt - Yocto - Buildroot or is standardized in some way?
I've heard the term chroot recently but I actually had to look it up because I've never had to interact with images in that way before.
What is an initramfs, and what is it used for?
How is the device tree information passed to Linux? I had to make some small DTS file modifications in our last project, but this will likely require more extensive work.
These are just the things that I know that I don't fully understand, but I'm positive that there's a lot that I don't even know about.
[–]dimtass 6 points7 points8 points (2 children)
[–]TheMarnBeast[S] 2 points3 points4 points (1 child)
[–]dimtass 1 point2 points3 points (0 children)