This is the builder repo for AGNOS, our Ubuntu based OS. AGNOS runs on the comma three devkit and comma 3X.
Note
Use https://flash.comma.ai if you're looking to reflash your device to a clean factory state.
AGNOS includes all the software to boot and run a comma 3/3X. This repo builds the two main parts of that (system and kernel) and packages it all up into a "release".
Any system that supports a recent Docker should work.
Note
docker buildx version >0.15.0 is required
Run once to set things up:
git clone https://github.com/commaai/agnos-builder.git
cd agnos-builder
git submodule update --init agnos-kernel-sdm845
./tools/extract_tools.sh
Building
./build_kernel.sh
./build_system.sh
Flashing to a comma 3/3X (Be sure to set your device in QDL mode before flashing. Refer to QDL MODE Section for more information.):
./flash_kernel.sh
./flash_system.sh
Note
If flashing on M-series Macs, you may need to run brew install libusb
and then sudo mkdir -p /usr/local/lib && sudo ln -s /opt/homebrew/lib/libusb-1.0.0.dylib /usr/local/lib/libusb.dylib
if getting "No backend available".
Validating changes:
- Running openpilot is a good smoketest for general AGNOS functionality
- CI ensures the kernel and system builds work (and pushes the images for you to download)
- this is the checklist we go through before shipping new AGNOS releases to openpilot
Building the kernel on macOS requires agnos-builder
to be in a Case-sensitive filesystem.
Use this to set it up:
diskutil apfs addVolume <disk> "Case-sensitive APFS" agnos
- replace
<disk>
with thesynthesized
disk indiskutil list
that includes your main volume (e.g. Macintosh HD) - usuallydisk3
on M-series Macs,disk1
on Intel Macs agnos
is the name of the new volume - can be replaced with an arbitrary name- the volume is mounted automatically in
/Volumes/agnos
Join us in the #dev-agnos
channel on Discord.
A comma 3/3X is helpful for working on AGNOS, but there's still lots of interesting work to do without one.
AGNOS's main priority is to provide a stable platform to openpilot. The second priority is to be a good platform for all sorts of robotics development.
Now that AGNOS is good at running openpilot, the next things up are:
- speedups: build system, CI, boot time, etc.
- cleanups: Android kernel to mainline kernel, simplify the build system, etc.
- open source: AGNOS started with a bunch blobs for various things, like the bootloaders and weston. We want to move everything we can to open source versions built in this repo.
Some concrete things on the roadmap:
- <10s boot time #110, commaai/openpilot#30894
- make the image tiny, for fast updating and flashing #225
- update to Ubuntu 24.04 commaai/openpilot#32386
- mainline Linux kernel commaai/openpilot#32386
- fully open source
- anything from firmware.json: XBL, ABL, etc.
- Weston #16