Skip to content

Build AGNOS, the operating system for your comma 3/3X

Notifications You must be signed in to change notification settings

commaai/agnos-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

agnos-builder

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".

Development

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

macOS

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 the synthesized disk in diskutil list that includes your main volume (e.g. Macintosh HD) - usually disk3 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

Contributing

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.

Roadmap

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:

About

Build AGNOS, the operating system for your comma 3/3X

Resources

Stars

Watchers

Forks

Languages