Been powering through Embedded Linux Primer. A few high-level things I’ve learned:

  • initrd is old, initramfs is new
  • initramfs uses a CPIO image (a type of archive that was new to me) to hold the initial filesystem contents
  • Using TFTP to boot from a remote kernel and ramdisk sounds like fun, not to mention provides great flexibility for debugging.
  • It’s not so hard to add extra items to the kernel config menu
  • Learned some ins and outs of Das U-boot, and that support for using RAM has to be initialized by the bootloader otherwise you can only use stack memory.
  • JFFS2 can help increase the lifetime of flash memory
  • The kernel boot process … through hardware-specific assembly files, common files, to the kernel C code, kernel subsystems, init.