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.

1 Answer 1


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. Commented Aug 16, 2019 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. Commented Aug 16, 2019 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. Commented Aug 16, 2019 at 11:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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