1

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 Answers1

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

Dmitry Grigoryev
  • 27,928
  • 6
  • 53
  • 144
  • 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. – Stefano Borini Aug 16 '19 at 09: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. – Dmitry Grigoryev 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. – Stefano Borini Aug 16 '19 at 11:41