I am investigating the pimoroni keybow little keyboard. The system is powered by a raspberry pi zero, and pimoroni provides an sdcard system, available on github at https://github.com/pimoroni/keybow-firmware

What I am trying to understand is how the system performs the boot process and in particular how the control is trasferred to the keybow executable. This executable is compiled C code that hooks into a lua interpreter. However, it's not clear to me how the system transfer the execution to it. I tried grepping, but I could find no explicit mention of the "keybow" executable anywhere.


Relevant scripts / config files are hidden inside the boot ramdisk image, initrd. This file is XZ-compressed, this is why grepping it doesn't reveal anything.

Once extracted and mounted, you'll find /etc/systemd/system/keybow.service which starts /usr/bin/keybow

  • Thank you. I'll check tonight. On the topic, is there some part of the documentation that gives this information? I am sure if it exists, there's plenty of other information I'd love to learn. Aug 16 '19 at 9:47
  • @StefanoBorini The main hint was that keybow is said to be based on stripped-down Raspbian. You could read about Linux boot process and program autostart mechanisms to have an overview of what could be done. Aug 16 '19 at 10:21
  • Well, yes, as an old dog, my all-understood linux startup process involves LILO and /sbin/init. I might have to get a bit fresher on that, because all I have right now are scattered information that don't really give me the overall picture anymore. Aug 16 '19 at 11:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.