writeup 30 Dec 2015 We made this new Raspberry Pi OS, check it out!
1. Inspect image
The problem contains an image file (blobberry.img
) and a link to install instruction. The instruction is about installing an OS on real Raspberry Pi device, which we don’t have. So we decided to run it on qemu. We followed this instruction.
$ file blobberry.img
blobberry.img: x86 boot sector
$ fdisk -l blobberry.img
Disk blobberry.img: 68 MB, 68157440 bytes
87 heads, 4 sectors/track, 382 cylinders, total 133120 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x2fa1ab6c
Device Boot Start End Blocks Id System
blobberry.img1 * 8192 139263 65536 c W95 FAT32 (LBA)
$ sudo mount blobberry.img -o offset=4194304 /mnt
$ ls /mnt
bootcode.bin UART.TXT
$ file /mnt/bootcode.bin
bootcode.bin: data
Everything went well until we saw that the image contains only two files. The image supposed to contain /etc/ld.so.preload
file, but it didn’t. UART.TXT
is just a funny text file explaining where is UART port. And bootcode.bin
seemed to be our task. After some googling, we’ve found that bootcode.bin
is “secondary boot loader” that runs on Raspberry Pi’s GPU.
Read more