PrawnOS
Libre Mainline Kernel and Debian for arm laptops
Install / Use
/learn @SolidEva/PrawnOSREADME
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
node-connect
344.1kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
96.8kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
344.1kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
344.1kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
