crawfishos: initial fork

This commit is contained in:
Austin English 2021-01-17 16:41:06 -06:00
parent e24fc245dd
commit 051cf7c938
11 changed files with 48 additions and 45 deletions

1
.github/FUNDING.yml vendored Normal file
View File

@ -0,0 +1 @@
patreon: austin987

View File

@ -18,5 +18,5 @@ jobs:
- name: publish image
uses: actions/upload-artifact@v2
with:
name: "PrawnOS-Shiba-arm64-git-${{ github.sha }}.img.xz"
path: "PrawnOS-Shiba-arm64-git-${{ github.sha }}.img.xz"
name: "CrawfishOS-Shiba-arm64-git-${{ github.sha }}.img.xz"
path: "CrawfishOS-Shiba-arm64-git-${{ github.sha }}.img.xz"

View File

@ -18,5 +18,5 @@ jobs:
- name: publish image
uses: actions/upload-artifact@v2
with:
name: "PrawnOS-Shiba-armhf-git-${{ github.sha }}.img.xz"
path: "PrawnOS-Shiba-armhf-git-${{ github.sha }}.img.xz"
name: "CrawfishOS-Shiba-armhf-git-${{ github.sha }}.img.xz"
path: "CrawfishOS-Shiba-armhf-git-${{ github.sha }}.img.xz"

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
build
CrawfishOS-Shiba-*
PrawnOS-initramfs.cpio.gz
PrawnOS-Shiba-*
.*.swp

View File

@ -1,60 +1,57 @@
<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>
<img src="/filesystem/resources/logo/newPrawn_transparent_high_compression.png" alt="CrawfishOS" data-canonical-src="/resources/BuildResources/logo/newPrawn_transparent_high_compression.png" width="200" height="200" /></p>
<h1 align="center">
PrawnOS
CrawfishOS
</h1>
### Forked from [PrawnoS](https://github.com/SolidHal/PrawnOS), which is 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
#### 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
CrawfishOS allows blobs (in particular, for onboard Broadcom wireless). Otherwise it aims to match upstream PrawnOS (aside from PRs pending upstream).
Current pending upstream work includes:
* https://github.com/SolidHal/PrawnOS/pull/267
* https://github.com/SolidHal/PrawnOS/pull/268
* https://github.com/SolidHal/PrawnOS/pull/269
* https://github.com/SolidHal/PrawnOS/pull/270
* https://github.com/SolidHal/PrawnOS/pull/271
Not PRed for misc reasons:
* keyboardhack: PrawnOS package overwrites another package's file. rm it first. Probably a bug, ignored for now.
* leave lilyterm alone for now: something later tries to pull it in, so if there's no internet connection, install fails. Need to find what's pulling it in.
* Revert "bump armhf to 5.10.1, upload package": 5.10.1 breaks booting on speedy/emmc for me. Need a dedicated issue (wanted to try newer kernel first, maybe).
* scripts/Shared/package_lists.sh: use xfce4-screensaver instead of xsecurelock on xfce: depends on other pending PRs
* scripts/InstallScripts/InstallPackages.sh: remove dead code: depends on other pending PRs
Supports the following Devices:
* armhf cpu:
* Asus C201 (C201P) (C201PA) (veyron-speedy)
* Asus C100 (veyron-minnie)
* _BETA_ Asus Chromebit CS10 (veyron-mickey)
* _UNTESTED_ Asus C100 (veyron-minnie) (untested)
* _UNTESTED_ Asus Chromebit CS10 (veyron-mickey)
* arm64 cpu:
* _BETA_ Samsung Chromebook Plus V1 (XE513C24) (gru-kevin)
* _ALPHA_ Asus C101p (gru-bob)
* _UNTESTED_ Samsung Chromebook Plus V1 (XE513C24) (gru-kevin)
* _UNTESTED_ 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 xfce and gnome as choices for desktop enviroment.
* Currently CrawfishOS supports xfce and gnome as choices for desktop enviroment.
* full root filesystem encryption
* mesa with support for panfrost for graphics acceleration
* functional sound, touchpad, keyboard mappings
Build a deblobbed mainline kernel with:
Build a blobby 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 onboard Broadcom (BCM4354) WiFi.
* 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](#build-the-wifi-dongle-into-the-laptop)
## 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 can be found here https://notabug.org/libreboot/libreboot/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](https://en.wikipedia.org/wiki/Binary_large_object)
## 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
If you don't want to or can't build the image, you can find downloads under <releases> https://github.com/austin987/CrawfishOS/releases
## Dependencies
Building PrawnOS has been tested on Debian 10 Buster (in a VM).
Building CrawfishOS has been tested on Debian 10 Buster (in a VM).
NOTE: _stretch doesn't work as the version of gcc-arm-none-eabi is too old_!

View File

@ -21,11 +21,11 @@ CONFIG_THREAD_INFO_IN_TASK=y
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION="-PrawnOS-blobby"
CONFIG_LOCALVERSION="-CrawfishOS-blobby"
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_BUILD_SALT=""
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="PrawnOS"
CONFIG_DEFAULT_HOSTNAME="CrawfishOS"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y

View File

@ -17,7 +17,7 @@ CONFIG_BUILDTIME_TABLE_SORT=y
#
CONFIG_INIT_ENV_ARG_LIMIT=32
# CONFIG_COMPILE_TEST is not set
CONFIG_LOCALVERSION="-PrawnOS-blobby"
CONFIG_LOCALVERSION="-CrawfishOS-blobby"
CONFIG_LOCALVERSION_AUTO=y
CONFIG_BUILD_SALT=""
CONFIG_HAVE_KERNEL_GZIP=y
@ -31,7 +31,7 @@ CONFIG_KERNEL_GZIP=y
# CONFIG_KERNEL_LZO is not set
# CONFIG_KERNEL_LZ4 is not set
CONFIG_DEFAULT_INIT=""
CONFIG_DEFAULT_HOSTNAME="PrawnOS"
CONFIG_DEFAULT_HOSTNAME="CrawfishOS"
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
CONFIG_SYSVIPC_SYSCTL=y

View File

@ -106,8 +106,8 @@ endif
PRAWNOS_GIT_SHA := $(shell git rev-parse HEAD)
PRAWNOS_IMAGE := $(PRAWNOS_ROOT)/PrawnOS-$(PRAWNOS_SUITE)-$(TARGET).img
PRAWNOS_IMAGE_GIT := $(PRAWNOS_ROOT)/PrawnOS-$(PRAWNOS_SUITE)-$(TARGET)-git-$(PRAWNOS_GIT_SHA).img
PRAWNOS_IMAGE := $(PRAWNOS_ROOT)/CrawfishOS-$(PRAWNOS_SUITE)-$(TARGET).img
PRAWNOS_IMAGE_GIT := $(PRAWNOS_ROOT)/CrawfishOS-$(PRAWNOS_SUITE)-$(TARGET)-git-$(PRAWNOS_GIT_SHA).img
PRAWNOS_IMAGE_GIT_GZ := $(PRAWNOS_IMAGE_GIT).gz
PRAWNOS_IMAGE_BASE := $(PRAWNOS_IMAGE)-BASE

View File

@ -198,7 +198,7 @@ qemu-debootstrap --arch $TARGET_ARCH $DEBIAN_SUITE \
--cache-dir=$PRAWNOS_BUILD/debootstrap-apt-cache/
chroot $outmnt passwd -d root
echo -n PrawnOS > $outmnt/etc/hostname
echo -n CrawfishOS > $outmnt/etc/hostname
#Setup the chroot for apt
#This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
@ -246,6 +246,10 @@ cp scripts/InstallScripts/* $install_dir/scripts/
cp $PRAWNOS_SHARED_SCRIPTS/package_lists.sh $install_dir/scripts/
ln -s $install_dir_direct/scripts/InstallPrawnOS.sh $outmnt/bin/InstallPrawnOS
# Just in case:
ln -s $install_dir_direct/scripts/InstallPrawnOS.sh $outmnt/bin/InstallCrawfishOS
ln -s $outmnt/etc/prawnos $outmnt/etc/crawfishos
#Bring in the deb.prawnos.com gpg keyring
chroot $outmnt apt-key add /etc/prawnos/install/resources/deb.prawnos.com.gpg.key
chroot $outmnt apt update
@ -321,7 +325,7 @@ cp -f $build_resources/console-font.sh $outmnt/etc/profile.d/console-font.sh
#Cleanup hosts
rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
echo -n "127.0.0.1 PrawnOS" > $outmnt/etc/hosts
echo -n "127.0.0.1 CrawfishOS" > $outmnt/etc/hosts
#Cleanup apt retry
chroot $outmnt rm -f /etc/apt/apt.conf.d/80-retries

View File

@ -376,7 +376,7 @@ setup_hostname() {
#this works fine in the expansion use as TARGET_MOUNT is simply empty
while true; do
read -r -p "Would you like to set a custom hostname (default: PrawnOS)? [y/n]" response
read -r -p "Would you like to set a custom hostname (default: CrawfishOS)? [y/n]" response
case $response in
[Yy]*)
echo "-----Enter hostname:-----"
@ -384,7 +384,7 @@ setup_hostname() {
# ensure no whitespace
case "$hostname" in *\ *) echo hostnames may not contain whitespace;; *) break;; esac
;;
[Nn]* ) hostname="PrawnOS"; break;;
[Nn]* ) hostname="CrawfishOS"; break;;
* ) echo "Please answer y or n";;
esac
done

View File

@ -24,7 +24,7 @@ TEST_TARGET="$2"
RELEASE_VERSION="$3"
BUILD_TYPE="$4"
IMG="PrawnOS-${RELEASE_VERSION}-${TEST_TARGET}"
IMG="CrawfishOS-${RELEASE_VERSION}-${TEST_TARGET}"
IMAGE="${IMG}.img"
IMAGE_GIT="${IMG}-git-${GITHUB_SHA}.img"