e5dfe17ae60aad22f2ab9f631be64fce018a645e4ed30169aff9c7cbab3be8ef
monok8s
Kubernetes node firmware (built with Linux) for Mono Gateway Development Kit
https://docs.mono.si/gateway-development-kit/getting-started
DISCLAIMER
USE AT YOUR OWN RISKS. I leverage ChatGPT heavily for this. I am testing them all by myself right now.
Build
Find the latest package versions and update build.env
Then run
make release
Then run, follow the instructions
make cluster-config
Flashing
USB Drive
make release- Format the USB in vfat
- Copy out/[RELEASE].img.gz and out/board.itb to your usb drive's root
- Run
usb start
usb tree
fatls usb 0:1 # For fat
ext4ls usb 0:1 # For ext4 if you insist
fatload usb 0 0x80000000 board.itb
setenv bootargs "console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=/dev/ram0 rootwait rw"
bootm 0x80000000
- Inside initramfs, run
flash-emmc.sh
- If it boots, create the A/B deployment scheme
- (WORK IN PROGRESS)
tftp (network is required)
- Put out/[RELEASE].img.gz and out/board.itb into your ftp server
setenv ipaddr 10.0.0.153
setenv serverip 10.0.0.129
tftp 0x80000000 board.itb
setenv bootargs "console=ttyS0,115200 earlycon=uart8250,mmio,0x21c0500 root=/dev/ram0 rootwait rw"
bootm 0x80000000
- Inside initramfs, run
flash-emmc.sh
Making sub stages
make build-base # The image the builds kernel and everything
make kernel # Builds our kernel from NXP
make initramfs
make itb # Builds out/board.itb (contains the kernel and the initramfs)
Architecture
- A/B deployment
- Read-only OS
Upgrade process
Rough idea
./configure
# - asks for some config for kubelet
# - Join a cluster? Start a cluster?
make release
# Copy the new image to the upgrade-scheduler
kubectl cp -n kube-system upgrade-scheduler:/tmp/upgrade.img
# Upgrade scheduler reads the file that issue a self-reboot
reboot
# uboot to boot into partition B
PENDING
NOTES
The device's dts files are located at here
- We need both
mono-gateway-dk-sdk.dtsandmono-gateway-dk.dtssince the sdk one includes the non-sdk one. - The actual dts being used is the
mono-gateway-dk-sdk.dts
Description
Kubernetes image for Mono Gateway Development Kit
https://docs.mono.si/gateway-development-kit/getting-started
Languages
Go
66.7%
Shell
23.1%
Makefile
6%
Dockerfile
4.2%