|
| 1 | +# Raspberry Pi 4B |
| 2 | + |
| 3 | +The intent of this platform is to be a driver for CI, that is, run a self-hosted GitHub Actions runner. |
| 4 | + |
| 5 | +The firmware would then be compiled on GitHub's usual Ubuntu CI servers, and just the built artifact |
| 6 | +transfered for functional HIL testing. |
| 7 | + |
| 8 | +We use Arch Linux for its wide collection of up-to-date packages, and the ease of building one's one |
| 9 | +(e.g., we'll want to package up our own `lpc55-host`). |
| 10 | + |
| 11 | +- [Install Arch on a MicroSD card](https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-4) |
| 12 | +(AArch64 works fine, don't forget the last `sed` step, make sure you're not in the RPi3 section). |
| 13 | +- If network doesn't come up reliably (`networkctl` shows `eth0` as `Configuring`), you can fix manually |
| 14 | +with `networkctl down eth0`, `networkctl up eth0`, but |
| 15 | +[this change to mkinitcpio.conf](https://github.com/raspberrypi/linux/issues/3108#issuecomment-723580334) |
| 16 | +also seems to work (early `systemd-networkd` journal entries indicate `eth0` can't be found). |
| 17 | +- No need to try to compile `ncurses5` to `arm-none-eabi-gdb` from <https://developer.arm.com/> to work: just use `gdb`! |
| 18 | +- For `jlink-software-and-documentation`, if it's not merged yet, apply a patch like |
| 19 | +<https://aur.archlinux.org/packages/jlink-software-and-documentation#comment-786082>. It seems like not |
| 20 | +having a GUI suppresses `JLinkGDBServer`'s pop-up and confirmation attempts. |
| 21 | + |
| 22 | +## The Runner |
| 23 | +Install it as described in the Settings > Actions tab, then keep it running with: |
| 24 | + |
| 25 | +``` |
| 26 | +[Unit] |
| 27 | +Description=GitHub Actions runner |
| 28 | +
|
| 29 | +[Service] |
| 30 | +Type=simple |
| 31 | +ExecStart=/home/alarm/actions-runner/run.sh |
| 32 | +WorkingDirectory=/home/alarm/actions-runner |
| 33 | +
|
| 34 | +[Install] |
| 35 | +WantedBy=default.target |
| 36 | +``` |
0 commit comments