Turning an Ultimate64 into a multi-platform DevOps machine.
-
Stock hardware:
- Commodore 64
- 1541 Ultimate2 or 1541 Ultimate 2+ cartridge cartridge, sporting firmware 3.x
- USB2LAN adapter, based on the ASIX AX88772/-A/-B chip
-
FPGA implementation of the C64:
-
Optional: Waveshare 2.13" e-Paper Hat
- Raspbian PI OS Lite
- GitHub repository
- GitHub - self hosted runner
- GitHub Desktop
- KickAssembler
- 1541 Ultimate II Remote Tool
- Visual Studio Code
You need to use the 64-bit version of the Raspberry PI OS Lite on the ARMv7 Rpi otherwise the .NET the GitHub Action Runner won't install.
Also the single-core Raspberry Pi Zero renders a 6312 Segmentation fault
error while running config.sh
as the ARMv6 CPU isn't supported for the .NET components.
The most convenient way of writing the RPi OS to a SD card is by using the Raspberry Pi Imager.
While pressing Ctrl+Shift+X
the Advanced options
-menu appears. This allows you to configure the settings before writing the image to a SD card.
Alternatively, you can also write some files to the OS manually after you have written the stock image to the SD card.
Add your wpa_supplicant.conf
file to the boot
partition of the already written
Open a plaintext editor such as Notepad (Windows) or TextEdit (Mac) and create a new file. Add the following to the file for Raspberry Pi OS, Raspbian Stretch, or Raspbian Buster:
country=US # Your 2-digit country code
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_PASSWORD"
key_mgmt=WPA-PSK
}
If you're using Raspbian Jessie or older, use this instead:
network={
ssid="YOUR_NETWORK_NAME"
psk="YOUR_PASSWORD"
key_mgmt=WPA-PSK
}
Finally, save the file. If you're using TextEdit on Mac, you'll need to go to Format > Make Plain Text
in the menu bar before saving. Make sure the filename is exactly wpa_supplicant.conf
.
Place an empty file named ssh
in the boot
partition of the SD card.
Insert the SD card into the Raspberry Pi and power the Pi up.
Log on using a SSH client and execute the following commands to upgrade the freshly installed image
sudo apt update && sudo apt --yes full-upgrade
To install a GitHub self-hosted runner
you need to follow the docs on Github. As wyou are running a 64-bit OS, make sure that you choose the ARM64 runner.
The default values can be set by pressing enter
a few times.
To install the runner as a service you need to give the install
parameter to the svc.sh
command
sudo ./svc.sh install
Starting the service is easy
sudo ./svc.sh start
For more information on the service, see; Configuring the self-hosted runner application as a service
When starting the CI workflow for the first time the workflow installs the software prerequisites. These files are installed and cached on the SD card for future usage.
Combining and mounting the Raspberry Pi Zero W next to the Ultimate 64 into the Commodore 64 casing has a few benefits;
- The RPi is only powered on when the Ultimate64 is powered on.
- Everything inside the Commodore 64 case.
The source/variables.env
file contains all the variables you need to have a successful workflow run and targetting your Ultimate device.