Skip to content

Releases

potad os release v1

Choose a tag to compare

@swedishsplidney swedishsplidney released this 09 Nov 04:54
7269a1b

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


first full release!!!!!!!


whats new from last release?

  • lots of bugfixes and optimizations
  • windows instructions to run it

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services
  • unix control socket
  • kernel log routing
  • root remounting
  • persistent home partition

quickest way to try it (any os, no compiling, but will be much less reliable)

download Image, rootfs.ext4, and home.img from the assets below into one folder, install qemu, and run the command for your os. this is also the recommended route on windows.

install qemu

  • windows: winget install SoftwareFreedomConservancy.QEMU (or the installer from qemu.org), then reopen your terminal. if qemu-system-aarch64 isn't found, add C:\Program Files\qemu to your PATH
  • ubuntu / debian: sudo apt install qemu-system-arm
  • arch: sudo pacman -S qemu-system-aarch64
  • fedora: sudo dnf install qemu-system-aarch64
  • macos: brew install qemu

run it

windows (powershell):

qemu-system-aarch64 -M virt -smp 4 -m 2048M -cpu cortex-a53 `
  -drive file=rootfs.ext4,if=none,format=raw,id=rootdisk -device virtio-blk-pci,drive=rootdisk `
  -drive file=home.img,if=none,format=raw,id=homedisk -device virtio-blk-pci,drive=homedisk `
  -netdev user,id=net0 -device virtio-net-pci,netdev=net0 `
  -kernel Image -append "console=ttyAMA0 root=/dev/vda rw rootwait earlycon init=/sbin/potad_init" `
  -nographic

linux / mac: same command, with \ instead of the backticks.

it runs emulated on windows (no hardware acceleration for arm64 guests on x86), so expect a slower boot than on an arm machine.
to exit qemu: press Ctrl+A, then X. or just type poweroff inside potad.

if it doesnt work:

  • build from source, its a lot more likely to work

build from source

building needs linux. on windows, use WSL2 (wsl --install -d Ubuntu in an admin powershell, then reboot).

prereqs (linux / wsl2 / mac)

  • windows users: do everything below inside the WSL terminal, and clone into your linux home (~/), not /mnt/c/.... building on the windows filesystem is painfully slow and breaks in odd ways
  • build dependencies (ubuntu / debian / wsl):
    sudo apt install build-essential git rsync flex bison bc cpio unzip file wget python3 e2fsprogs libssl-dev libgnutls28-dev uuid-dev qemu-system-arm
  • other distros: install the equivalents, plus qemu from the list above
  • the build script will tell you exactly which tool is missing if you skipped one

note: make sure your path doesn't have spaces in it (buildroot will explode)

build and run:

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while! (especially if you have low thread cpu, has been known to take 30+ minutes)

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot:
    ./scripts/run-qemu.sh --uboot
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      
  • for the weston desktop, add --gui (linux / mac; untested on windows)

attached files

Image, rootfs.ext4, home.img, and u-boot.bin are attached so you can skip compiling if you want, they're built by the same script

potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v1.6.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 03 Nov 04:16
7d23509

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • persistent home partition
  • config.hpp so you can adjust stuff
  • overall fixes

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services
  • unix control socket
  • kernel log routing
  • root remounting
  • persistent home partition

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, home.img, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v.1.5.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 26 Oct 04:43
1586758

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • root remounting and /etc/fstab automounting
    • because allwinner h616 (and a lot of socs) dont play well with read only roots, so it can be rw now :)

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services
  • unix control socket
  • kernel log routing
  • root remounting

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v1.4.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 16 Oct 11:03
ebb1375

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • kernel log routing
    • route messages through dmesg

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services
  • unix control socket
  • kernel log routing

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v1.3.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 12 Oct 22:22
24dfc3b

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • unix control socket:
    • talking directly to pid 1 is insecure and slow, so now you can talk to it over a local control socket

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services
  • unix control socket

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


if you want to see my progress but not have to deal with qemu (understandable), then i've also attached a demo.webm video file so you can see what ive done :)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v1.2.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 05 Oct 00:51

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • service supervisor:
    • supervised services can now be automatically created, monitored, and automatically respawned :)

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown
  • create and restart supervised services

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


if you want to see my progress but not have to deal with qemu (understandable), then i've also attached a demo.webm video file so you can see what ive done :)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad OS release v.1.1.0-alpha

Choose a tag to compare

@swedishsplidney swedishsplidney released this 27 Sep 23:07

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what's new with this release?

  • u-boot stuff:
    • it now has a working u-boot bootloader setup, so that it is feasible to run on actual hardware :)
  • lazyvim setup:
    • it is now supporting lazyvim, not just plain neovim!!

what can this release do?

  • boot into a busybox shell through qemu
  • working and configured u-boot boot manager
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

note: make sure your parent directory doesn't have spaces in it (buildroot will freak out)

  • clone the repo:

    git clone https://github.com/swedishsplidney/potad.git
    cd potad
  • build the os image:

    ./scripts/build-app.sh

note: setting up buildroot can take a while!

  • run in qemu:
    ./scripts/run-qemu.sh
  • or, if you want to test u-boot you can run:
    ./scripts/run-qemu-uboot.sh
    • then to boot into potadOS, run the following inside the u-boot terminal:
      setenv bootcmd "ext4load virtio 0:0 0x40400000 /boot/Image; booti 0x40400000 - ${fdtcontroladdr}"
      setenv bootargs "console=ttyAMA0 root=/dev/vda rw earlycon init=/sbin/potad_init"
      boot
      

there is also an Image, rootfs.ext4, and u-boot.bin file attached if you dont feel like compiling from scratch (but it will be much less reliable)


if you want to see my progress but not have to deal with qemu (understandable), then i've also attached a demo.webm video file so you can see what ive done :)


potadOS built with C₈H₁₀N₄O₂ by SwedishSplidney

potad os release v1.0.2-alpha

Pre-release

Choose a tag to compare

@swedishsplidney swedishsplidney released this 23 Sep 01:48

potad os is a minimal, arm64 linux system made with buildroot, designed to run on allwinner h616 or qemu aarch64!!!


what can this release do?

  • boot into a busybox shell through qemu
  • run nvim and git directly cli
  • weston / drm composited desktop environment that can run doom
  • dhcp networking
  • pid-1 process management
  • zombie process reaping
  • graceful shutdown

build and run locally:

prereqs:

  • for now, please use linux, mac, or figure this out on your own, i really don't feel like figuring out how to do all this on windows lol
  • install qemu:
    • ubuntu / debian: sudo apt install qemu-system-arm
    • arch: sudo pacman -S qemu-system-aarch64
    • fedora: sudo dnf install qemu-system-aarch64
    • macos: brew install qemu

build and run:

  • clone the repo:
git clone https://github.com/swedishsplidney/potad.git
cd potad
  • build the os image:
./scripts/build-app.sh
make -C buildroot

(note: setting up buildroot can take a while!)

  • run in qemu:
./scripts/run-qemu.sh

there is also an Image, rootfs.ext4, and run-qemu.sh file attached if you dont feel like compiling from scratch (but it will be much less reliable)


if you want to see my progress but not have to deal with qemu (understandable), then i've also attached a demo.webm video file so you can see what ive done :)