autodetect arm64 in the build script
This commit is contained in:
parent
f647a9f733
commit
73ff47a6b7
|
@ -9,7 +9,7 @@ jobs:
|
|||
|
||||
strategy:
|
||||
matrix:
|
||||
board: [dedede, octopus, coral, grunt, nissa, zork]
|
||||
board: [dedede, octopus, coral, grunt, nissa, zork, corsola, jacuzzi]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
|
||||
Shimboot is a collection of scripts for patching a Chrome OS RMA shim to serve as a bootloader for a standard Linux distribution. It allows you to boot a full desktop Debian install on a Chromebook, without needing to unenroll it or modify the firmware.
|
||||
|
||||
| <img src="https://raw.githubusercontent.com/ading2210/shimboot/main/website/assets/shimboot_demo_1.jpg" alt="Shimboot running on a HP Chromebook 11 G9 EE." width="400"/> | <img src="https://raw.githubusercontent.com/ading2210/shimboot/main/website/assets/shimboot_demo_2.jpg" alt="Shimboot running on an Acer Chromebook 311 C722." width="400"/> |
|
||||
| ----- | ----- |
|
||||
| Shimboot with KDE on a HP Chromebook 11 G9 EE | Shimboot with XFCE on an Acer Chromebook 311 C722 |
|
||||
|
||||
## Features:
|
||||
- Run a full Debian installation on a Chromebook
|
||||
- Does not modify the firmware
|
||||
|
@ -62,7 +66,6 @@ On all devices, the following features will not work:
|
|||
- Transparent disk compression
|
||||
- Full disk encryption
|
||||
- Support for more distros (Ubuntu and Arch maybe)
|
||||
- Support for ARM based Chromebooks (see [issue #8](https://github.com/ading2210/shimboot/issues/8))
|
||||
- Eliminate binwalk dependency
|
||||
- Get audio to work on dedede
|
||||
- Get kexec working
|
||||
|
@ -76,6 +79,7 @@ PRs and contributions are welcome to help implement these features.
|
|||
- WSL2 is supported if you are on Windows
|
||||
- Github Codespaces is not supported at the moment
|
||||
- A USB drive that is at least 8GB in size
|
||||
- Cheap USB 2.0 drives typically won't work well due to their slow speeds
|
||||
- At least 20GB of free disk space
|
||||
|
||||
### Build Instructions:
|
||||
|
@ -139,6 +143,8 @@ echo "MESA_LOADER_DRIVER_OVERRIDE=i965" | sudo tee -a /etc/environment
|
|||
```
|
||||
You may need to change `i965` to `i915` (or `r100`/`r200` for AMD hardware), depending on what GPU you have.
|
||||
|
||||
For ARM Chromebooks, you may have to tweak the [Xorg configuration](https://xkcd.com/963/) instead.
|
||||
|
||||
#### Can the rootfs be compressed to save space?
|
||||
Compressing the Debian rootfs with a squashfs is supported, and you can do this by running the regular Debian rootfs through `./build_squashfs.sh`. For example:
|
||||
```bash
|
||||
|
|
|
@ -94,7 +94,7 @@ move_mounts() {
|
|||
|
||||
print_license() {
|
||||
cat << EOF
|
||||
Shimboot v1.0.2
|
||||
Shimboot v1.1.0
|
||||
|
||||
ading2210/shimboot: Boot desktop Linux from a Chrome OS RMA shim.
|
||||
Copyright (C) 2023 ading2210
|
||||
|
|
|
@ -19,19 +19,35 @@ assert_root
|
|||
assert_args "$1"
|
||||
parse_args "$@"
|
||||
|
||||
base_dir="$(realpath -m $(dirname "$0"))"
|
||||
board="$1"
|
||||
|
||||
compress_img="${args['compress_img']}"
|
||||
rootfs_dir="${args['rootfs_dir']}"
|
||||
quiet="${args['quiet']}"
|
||||
desktop="${args['desktop']-'xfce'}"
|
||||
data_dir="${args['data_dir']}"
|
||||
arch="${args['arch']-'amd64'}"
|
||||
arch="${args['arch']-amd64}"
|
||||
|
||||
arm_boards="
|
||||
corsola hana jacuzzi kukui strongbad nyan-big kevin bob
|
||||
veyron-speedy veyron-jerry veyron-minnie scarlet elm
|
||||
kukui peach-pi peach-pit stumpy daisy-spring
|
||||
"
|
||||
if grep -q "$board" <<< "$arm_boards"; then
|
||||
echo "automatically detected arm64 device name"
|
||||
arch="arm64"
|
||||
fi
|
||||
|
||||
needed_deps="wget python3 unzip zip git debootstrap cpio binwalk pcregrep cgpt mkfs.ext4 mkfs.ext2 fdisk rsync depmod findmnt lz4"
|
||||
if [ "$(check_deps "$needed_deps")" ]; then
|
||||
#install deps automatically on debian and ubuntu
|
||||
if [ -f "/etc/debian_version" ]; then
|
||||
echo "attempting to install build deps"
|
||||
apt-get install wget python3-all unzip zip debootstrap cpio binwalk pcregrep cgpt rsync kmod pv -y
|
||||
apt-get install wget python3-all unzip zip debootstrap cpio binwalk pcregrep cgpt rsync kmod pv lz4 -y
|
||||
if [ "$arch" = "arm64" ]; then
|
||||
apt-get install qemu-user-static binfmt-support -y
|
||||
fi
|
||||
fi
|
||||
assert_deps "$needed_deps"
|
||||
fi
|
||||
|
@ -45,8 +61,6 @@ sigint_handler() {
|
|||
}
|
||||
trap sigint_handler SIGINT
|
||||
|
||||
base_dir="$(realpath -m $(dirname "$0"))"
|
||||
board="$1"
|
||||
shim_url="https://dl.darkn.bio/api/raw/?path=/SH1mmer/$board.zip"
|
||||
boards_url="https://chromiumdash.appspot.com/cros/fetch_serving_builds?deviceCategory=ChromeOS"
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ parse_args "$@"
|
|||
rootfs_dir=$(realpath -m "${1}")
|
||||
release_name="${2}"
|
||||
packages="${args['custom_packages']-'task-xfce-desktop'}"
|
||||
arch="${args['arch']-'amd64'}"
|
||||
arch="${args['arch']-amd64}"
|
||||
chroot_mounts="proc sys dev run"
|
||||
|
||||
mkdir -p $rootfs_dir
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 1.8 MiB |
Binary file not shown.
After Width: | Height: | Size: 5.2 MiB |
Loading…
Reference in New Issue