What's a "rpikernelhack"?

When running updates on Charlie, one of the things that happens is a whole bunch of “rpikernelhack” and “diversion” statements.

I figured it had to do with trying to fit the square peg of a FAT file system into the round hole of Linux-style filesystems.

Fussing around today, I found the canonical answer over at the Raspberry Pi Stack Exchange forum, written by a gentleman named Peter Green, who claims to have developed this “hack” to allow the Raspberry Pi to install updates.

He wrote:

An interesting insight!

What say ye?


Thank you for solving this years old mystery; seeing the word “hack” scrolling by was always discomforting.

I had presumed it was to allow updating the kernel while the kernel was running, but could never figure out why the kernel on the disk could not be updated since the running kernel was in memory. I further presumed it might be to not actually update the disk kernel until it was absolutely clear the update had succeeded.

Only to find out the hack is related to that ancient 8-inch floppy drive my buddies and I were allowed to take home from HP around 1978 time frame for our “g-job” 8080 computers. HP supported a personalized education program with the latest Intel and Motorola computers. We had taped up all the printed circuit cards, including a disk drive interface card and figured out how to read and write the File Allocation Table.

Some technologies seem to survive long after they should.

Mystery solved - wow. Thanks.


If you really want to be picky, any disk file system is FAT-like in it’s structure, since every disk file system needs to know which parts are allocated and which are free.

The FAT filesystem uses the File Allocation Table as the volume bitmap and directories are linked lists of files and/or other directories.

The various Linix filesystems also have a volume bitmap that is stored in each superblock if I remember correctly.

The difference between these filesystems and FAT is in its complexity and error recovery mechanisms.

FAT, (and FAT-32), are popular because they are, (comparitively) simple.  Since a file in a FAT filesystem is represented by a linked list of sectors, it’s easy to traverse.


Yes, simple for a serial logic processor. I have rarely been able to imagine or understand structures that simplify multi-processing.

I am simply a serial logic bot in a parallel event world.