1. Building a custom kernel
- Download the latest pre-compiled Eupnea ChromeOS kernel here
- Download the latest pre-compiled Eupnea mainline kernel here
Building the Eupnea ChromeOS kernel
- Install dependencies:
- make
- automake
- gcc
- gcc c++
- kernel development libraries
- ncurses development library
- xz utils
- OpenSSL development libraries
- GNU bc
- flex
- libelf1 development libraries
- bison
- binutils
- dracut
On debian based systems the dependencies can be installed with:
sudo apt-get update && sudo apt-get install build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison binutils dracut
- Clone the kernel repo:
git clone https://github.com/enter-dragon/chromeos-kernel.git && cd chromeos-kernel
Optional: Modify the kernel config in
kernel.conf
.Optional: Modify the kernel branch in line 12 in
kernel_build.py
.Start the build script:
python3 ./kernel_build.py
.The compiled/compressed files can be found in the root of the cloned repo:
- bzImage
- modules.tar.xz
- headers.tar.xz
Proceed to installing the kernel.
Building the Eupnea mainline kernel
- Install dependencies:
- make
- automake
- gcc
- gcc c++
- kernel development libraries
- ncurses development library
- xz utils
- OpenSSL development libraries
- GNU bc
- flex
- libelf1 development libraries
- bison
- binutils
On debian based systems the dependencies can be installed with:
sudo apt-get update && sudo apt-get install build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison binutils
- Clone the kernel repo:
git clone https://github.com/enter-dragon/mainline-kernel.git && cd mainline-kernel
- Optional: Modify the kernel config in
kernel.conf
- Optional: Modify the kernel version in line 6 in
build.sh
- Start the build script:
bash ./build.sh
- The compiled/compressed files can be found in the root of the cloned repo:
- bzImage
- modules.tar.xz
- headers.tar.xz
2. Installing the kernel
Sign the kernel and add a cmdline to it.
This process can be done automatically with the
install-kernel
script
Run/usr/lib/eupnea/install-kernel --help
to see all available script options.Extract the modules into
/usr/lib/modules/<insert_version>
and the headers into/usr/src/linux-headers-<insert_version>
. Replace insert_version with your kernel versionThe kernel version can can be read from the bzImage file with
file -bL bzImage | grep -o 'version [^ ]*' | cut -d ' ' -f 2
.Eupnea-systems only: Uninstall all other eupnea-kernel packages with your distros package manager and this wildcard:
eupnea-*-kernel
.
Warning: The kernel packages might be reinstalled by an update, which would also overwrite your custom kernel.