Build custom Flatcar image with Raspberry Pi GPIO support enabled

155 views
Skip to first unread message

Paul Wallrabe

unread,
Sep 15, 2021, 11:17:10 AM9/15/21
to Flatcar Container Linux User

Hi everyone!

My idea is to run a Kubernetes Cluster with some of the nodes being Raspberry Pi's.  This approach would allow me to run a cluster of sensors while using all the benefits Kubernetes offers as a resource scheduler and manager. I managed to iPXE boot the devices with piPXE already and load a more or less customized version of Flatcar using the approach described in the official documentation. Sensors usually use GPIO pins to communicate with the Raspberry Pi but I simply can not make it work.

A famous library used to handle GPIO communication with bindings to Python is pigpio but it seems that I can not allocate a mailbox of DMA memory due to the following error:

https://github.com/joan2937/pigpio/blob/c33738a320a3e28824af7807edafda440952c05d/pigpio.c#L7714

According to the owner of the repository this is related to a Ubuntu kernel config change specific to Raspberry Pis. At this stage I am out of ideas how to fix this.

What works:

  • iPXE boot at scale (Flatcar is the only OS capable of doing this so far without a NFS server on a Raspberry Pi)
  • Running Kubernetes on top of it
What does not work:
  • GPIO
  • iPXE over WiFi
I am wondering if somebody has done or tried something similar in the past or is willing to help me with this? Do I need to enable some kernel configs or is my idea not possible at with the current state of the project?

My final vision of this is having a bunch of Raspberry Pi's (with independed power sources) deployed in the field running Flatcar Container Linux iPXE booted via WiFi acting as disposable edge sensor devices due to their great availability and comparable cheep price in the market. Ontop of them, workload can be scheduled with Lokomotive allowing it to dynamically adapt to a changing environment.

Cheers,
Paul



Reply all
Reply to author
Forward
0 new messages