Booting processes of computers are opaque. When a board boots, it setups internal resources and peripherals. One such peripheral can be a display. And surprisingly, there is not much documantation out there about what is important.
Some examples can be found in talking to a display on an Raspberry Pi. First, some reading about “framebuffers” is needed. To use a display on the Raspberry Pi, you must build a framebuffer device first. There is a nice write-up here, and I arrived quickly at a working device:
To then show an image on the display requires a command “fbi”. First, we must install the program:
# apt-get install fbi
# fbi -T 2 IMAGE.jpg
I played with some scripts to change the image, but the processor on the RPi B was not fast enough (or my images were too large) to make it really fun.
In my second project this week, I explored a new Linux image for the Intel Galileo. This was harder than expected.
My main idea is: Build an SD Card with Node.js and some libraries pre-installed. Following the manuals, I formatted the SD card with an FAT32 filesystem. But booting that one was difficult. Formatting the card with an ext3 filesystem made the content readable, but the SD Card was neither bootable.
Exploring this problem, let me to play with the Grub bootloader and Grub from the command line. Also, UEFI might open new doors and I discvered a wiki dedicated to development of operating systems.
Why bother? We usually pay money for this (to Apple or Microsoft) because we have better things to do, then learing about the boot process of an OS. But if we want to build embedded devices that have constrained resources, understanding an operating system becomes important again.