SkillAgentSearch skills...

PrawnOS

Libre Mainline Kernel and Debian for arm laptops

Install / Use

/learn @SolidEva/PrawnOS
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

<p align="center"> <img src="/filesystem/resources/logo/newPrawn_transparent_high_compression.png" alt="PrawnOS" data-canonical-src="/resources/BuildResources/logo/newPrawn_transparent_high_compression.png" width="200" height="200" /></p> <h1 align="center"> PrawnOS </h1>

A build system for making blobless Debian and mainline Linux kernel with support for libre ath9k wireless, dmcrypt/LUKS root partition encryption, and graphics acceleration using panfrost

Supports the following Devices:

  • armhf cpu:
    • Asus C201 (C201P) (C201PA) (veyron-speedy)
    • Asus C100 (veyron-minnie)
    • BETA Asus Chromebit CS10 (veyron-mickey)
  • arm64 cpu:
    • BETA Samsung Chromebook Plus V1 (XE513C24) (gru-kevin)
    • ALPHA Asus C101p (gru-bob)

Build Debian filesystem with:

  • No blobs, anywhere.
  • Sources from only main, not contrib or non-free which keeps Debian libre.
  • Currently PrawnOS supports gnome for desktop environment
  • full root filesystem encryption
  • mesa with support for panfrost for graphics acceleration
  • functional sound, touchpad, keyboard mappings

Build a deblobbed mainline kernel with:

  • Patches for reliable USB on veyron devices.
  • Patches to support the custom GPT partition table required to boot on veyron devices.
  • Support for Atheros AR9271 and AR7010 WiFi dongles.
  • Support for CSR8510 (and possibly other) bluetooth dongles.

Don't want to use one of the two USB ports for the WiFi dongle? check out this

Why

Combined with Libreboot, an AR9271 or AR7010 WiFi dongle, and a libre OS (like Debian with the main repos, the one built by PrawnOS) the Asus c201 is a fully libre machine with no blobs, or microcode, or Intel Management Engine.

WARNING: flashing libreboot to asus c201 chromebooks that have recently been updated to a new version of chromeOS may leave the device in a non-functional (bricked) state.

If you do not have a way to recover your device by using an external flasher as described in the second part of this page https://libreboot.org/docs/install/c201.html it would be safest to wait until this issue is resolved. I have opened a bug with libreboot, which has been archived here https://notabug.org/libreboot/obsolete-repository-preserved-for-historical-purposes/issues/666 If you have any information that may help with debugging, please post it there.

The install process of PrawnOS does not flash your bios, so it is safe to use along with the default coreboot/depthcharge and does not risk bricking your device

What is a blob?

In the world of free and open-source software, the term is used to refer to proprietary device drivers, which are distributed without their source code, exclusively through binary code; in such use, the term binary blob is common. wikipedia

Image Download

If you don't want to or can't build the image, you can find downloads under <releases> https://github.com/SolidHal/PrawnOS/releases

Dependencies

Building PrawnOS has been tested on Debian 11 Buster

Debian Bullseye is the only build environment that is supported. These packages are required:

<!-- Please keep the packages sorted (and in sync with ./tests/build-image.sh): -->
        apt install --no-install-recommends --no-install-suggests \
        bc binfmt-support bison build-essential bzip2 ca-certificates cgpt cmake cpio debhelper \
        debootstrap device-tree-compiler devscripts file flex g++ gawk gcc gcc-aarch64-linux-gnu \
        gcc-arm-none-eabi git gpg gpg-agent kmod libc-dev libncurses-dev libssl-dev lzip make \
        parted patch pbuilder qemu-user-static quilt rsync sudo texinfo u-boot-tools udev \

Build

Clone this Git repo: git clone --recurse-submodules https://github.com/SolidHal/PrawnOS

All make commands required a TARGET=$ARCH to specify either armhf or arm64. See the top of the README for if you don't know which your device is. armhf and arm64 builds can live side by side in the same git checkout.

Build the PrawnOS-*-.img by running sudo make image TARGET=$ARCH

Write to a flash drive or SD card

Write the 2GB image to a flash drive. Make sure to replace $USB_DEVICE with the desired target flash drive or SD card device. If you're not familiar with dd, check out Debian's how to page https://www.debian.org/CD/faq/#write-usb

sudo dd if=PrawnOS-*.img of=/dev/$USB_DEVICE bs=50M status=progress; sync

Enable Developer Mode

Enabling developer mode is required to install PrawnOS. Note that enabling developer mode WILL ERASE ALL LOCALLY STORED DATA.

Shut down

First, shutdown and power off the chromebook. Once powered off, hold the 'ESCAPE' and 'REFRESH' (F3) buttons, and while continuing to hold those two buttons, press and release the 'POWER' button.

First screen

The chromebook should power on and show a white screen, with a message saying: "Chrome OS is missing or damaged. Please insert a recovery USB stick or SD card."

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode1.png" alt="screen1" data-canonical-src="/documentation/DeveloperModeResources/devmode1.png" /></p>

Press 'CTRL' + 'D' to continue.

Second screen

A second screen will appear, saying: "To turn OS verification OFF, press ENTER. Your system will reboot and local data will be cleared. To go back, press ESC."

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode2.png" alt="screen2" data-canonical-src="/documentation/DeveloperModeResources/devmode2.png" /></p>

As it says, press 'ENTER'.

Third screen

The third screen will inform you that OS verification is disabled:

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode3.png" alt="screen3" data-canonical-src="/documentation/DeveloperModeResources/devmode3.png" /></p>

Press 'CTRL' + 'D' to continue.

Fourth screen

Your system is now transitioning to developer mode. You have 30 seconds to cancel this by powering off your chromebook:

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode4.png" alt="screen4" data-canonical-src="/documentation/DeveloperModeResources/devmode4.png" /></p>

Otherwise, sit back and wait.

Fifth screen

Your chromebook is now erasing local data and preparing developer mode:

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode5.png" alt="screen5" data-canonical-src="/documentation/DeveloperModeResources/devmode5.png" /></p> This takes approximately 10 minutes. The system will reboot on its own.

Sixth screen

Your system will again show the 'OS verification is off' screen:

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode3.png" alt="screen3" data-canonical-src="/documentation/DeveloperModeResources/devmode3.png" /></p>

Press 'CTRL' + 'D' to continue.

Seventh screen

Your chromebook should now show the welcome screen. You'll notice that 'debugging features' are now possible:

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode7.png" alt="screen7" data-canonical-src="/documentation/DeveloperModeResources/devmode7.png" /></p>

Clicking 'Enable debugging features' doesn't actually work here, so don't try. Instead, press 'CTRL' + 'ALT' + 'REFRESH' (F3) to open a vtty.

Eighth screen

<p align="center"> <img src="/documentation/DeveloperModeResources/devmode8.png" alt="screen8" data-canonical-src="/documentation/DeveloperModeResources/devmode8.png" /></p>

Log in as 'root', there is no password. Finally, enable booting PrawnOS from USB/SD:

To enable booting unsigned media:

# crossystem dev_boot_signed_only=0

To enable USB booting:

# crossystem dev_boot_usb=1

Finally, reboot or shutdown the system:

# reboot

On each subsequent boot, you'll see the 'OS verification is off' screen.

Booting/Installing PrawnOS

If you haven't enabled developer mode, see Enable Developer Mode

After rebooting/powering on, at the 'OS verification is off' screen, press 'CTRL' + 'U' to boot from USB/SD. Or 'CTRL' + 'D' to boot from the internal emmc.

Installing

There are two ways to use PrawnOS.

The first and recommended option is to install it on a device other than the one you wrote the PrawnOS image to. click here

  • This lets you install PrawnOS to the internal emmc, an SD card or a USB device
  • This allows you to setup root encryption
  • Installing to an external device allows you to try PrawnOS without removing Chrome OS or whatever Linux you are running on your internal storage (emmc), but USB drives especially are a much slower experience as the c201 only has USB 2.0.
  • The internal emmc is much faster than a usb device or sd card for both reads and writes, data from some tests is available in #133
  • If you want to boot from external media, I would suggest using an SD card.

The second option is to boot from the external USB or SD device you wrote the image to, and expand the image to take up the entire device. click here

  • Expanding the PrawnOS image allows you to boot PrawnOS from the same USB or SD device that you wrote the image to
  • Expansion does NOT support root encryption. For root encryption the filesystem must be written after the encrypted root is created.

Install to internal drive (emmc) or to SD card or USB drive

Now on the C201, insert the drive you wrote the PrawnOS image to. Press control+u at boot to boot from the external drive.

If you are running stock coreboot and haven't flashed Libreboot, you will first have to enable developer mode and enable USB / external device booting:

At the prompt, login as root. The password is blank.

Now insert the other USB device or SD card you would like to install PrawnOS on. If you want to boot from the internal emmc, you have nothing to insert! Note: If you are installing to an external device, the filesystem portion may take a looo

Related Skills

View on GitHub
GitHub Stars132
CategoryDevelopment
Updated17d ago
Forks33

Languages

Shell

Security Score

100/100

Audited on Mar 15, 2026

No findings