All Projects → hypriot → Rpi Kernel

hypriot / Rpi Kernel

Licence: mit
Build a Linux kernel for Raspberry Pi 0/1/2/3/3B+

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Rpi Kernel

Raspberry Pi Os
Learning operating system development using Linux kernel and Raspberry Pi
Stars: ✭ 11,000 (+8170.68%)
Mutual labels:  raspberry-pi, linux-kernel
Ubuntu64 Rpi
适用于树莓派3b/3b+的64位系统.
Stars: ✭ 652 (+390.23%)
Mutual labels:  raspberry-pi, linux-kernel
Balena Minecraft Server
Build a Minecraft Server using a Raspberry Pi 4! Supports common Servers, SCP, RCON and Wifi Connect.
Stars: ✭ 125 (-6.02%)
Mutual labels:  raspberry-pi
Sshdeploy
A command-line tool that enables quick build and run deployments over SSH.
Stars: ✭ 131 (-1.5%)
Mutual labels:  raspberry-pi
Raspisecurity
Home Surveillance for Raspberry
Stars: ✭ 128 (-3.76%)
Mutual labels:  raspberry-pi
Pihole Panel
Python/GTK3 based Pi-hole (network-level adblocker) dashboard for stats and more
Stars: ✭ 125 (-6.02%)
Mutual labels:  raspberry-pi
Delta5 race timer
Multi-node video transmitter race timer for drone racing
Stars: ✭ 129 (-3.01%)
Mutual labels:  raspberry-pi
Luma.lcd
Python module to drive PCD8544, HT1621, ST7735, ST7567 and UC1701X-based LCDs
Stars: ✭ 124 (-6.77%)
Mutual labels:  raspberry-pi
Ipfs Rpi
IPFS installer for the Raspberry Pi and other ARM-based devices.
Stars: ✭ 130 (-2.26%)
Mutual labels:  raspberry-pi
Tpmgenie
TPM Genie is an I2C bus interposer for discrete Trusted Platform Modules
Stars: ✭ 124 (-6.77%)
Mutual labels:  raspberry-pi
Ansible Rpi K8s Cluster
Deploy Raspberry Pi Kubernetes cluster using Ansible
Stars: ✭ 131 (-1.5%)
Mutual labels:  raspberry-pi
R2cloud
Decode satellite signals on Raspberry PI or any other 64-bit intel.
Stars: ✭ 125 (-6.02%)
Mutual labels:  raspberry-pi
Gumcp
Web Control Panel for Raspberry Pi
Stars: ✭ 124 (-6.77%)
Mutual labels:  raspberry-pi
Periph
Go·Hardware·Lean
Stars: ✭ 1,700 (+1178.2%)
Mutual labels:  raspberry-pi
Tina
Tina is a teeny tiny, header only, coroutine and job library.
Stars: ✭ 125 (-6.02%)
Mutual labels:  raspberry-pi
Treehouses.github.io
A Markdown Wiki for treehouses 🏡
Stars: ✭ 132 (-0.75%)
Mutual labels:  raspberry-pi
Amplipi
Whole House Audio System 🔊
Stars: ✭ 125 (-6.02%)
Mutual labels:  raspberry-pi
Python Nsenter
Enter kernel namespaces from Python
Stars: ✭ 125 (-6.02%)
Mutual labels:  linux-kernel
Phantomjs On Raspberry
Phantomjs for raspberry pi (armv6/armv7) and aarch64/arm64
Stars: ✭ 128 (-3.76%)
Mutual labels:  raspberry-pi
Yolo Powered robot vision
Stars: ✭ 133 (+0%)
Mutual labels:  raspberry-pi

rpi-kernel Circle CI

Build a Raspberry Pi 0/1 and 2/3/3+ kernel with all kernel modules running Docker.

Build inputs

Kernel git commit

In the build script scripts/compile_kernel.sh there is a git commit hash to pin the build to this exact commit to make it reproducible.

If you want to build another kernel version, have a look at the upstream repo https://github.com/raspberrypi/linux and check for a good git commit hash and change the line

LINUX_KERNEL_COMMIT="c8baa9702cc99de9614367d0b96de560944e7ccd"

Kernel configs

In the local directory kernel_configs/ are two configuration files for Pi 0/1 and Pi 2/3/3+.

  • rpi1_docker_defconfig
  • rpi2_3_docker_defconfig

These configuration files are created from an initial make menuconfig and activating all kernel modules we need to run docker on the Raspberry Pi.

The differences to the upstream Raspberry Pi kernel is

$ diff kernel_configs/rpi1_docker_defconfig /var/kernel_build/cache/linux-kernel/arch/arm/configs/bcmrpi_defconfig
16d15
< CONFIG_MEMCG_SWAP=y
18,20d16
< CONFIG_CFS_BANDWIDTH=y
< CONFIG_RT_GROUP_SCHED=y
< CONFIG_CGROUP_PIDS=y
25d20
< CONFIG_CGROUP_PERF=y
354,355d348
< CONFIG_NET_L3_MASTER_DEV=y
< CONFIG_CGROUP_NET_PRIO=y
461d453
< CONFIG_IPVLAN=m

Build outputs

Kernel deb packages

The two relevant kernel deb packages are copied to build_results/kernel/${KERNEL_DATETIME}/.

  • kernel-commit.txt
  • raspberrypi-kernel_${KERNEL_VERSION}_armhf.deb
  • raspberrypi-kernel-headers_${KERNEL_VERSION}_armhf.deb

Build with Vagrant

To build the SD card image locally with Vagrant and VirtualBox, enter

vagrant up

Recompile kernel

Only on first boot the kernel will be compiled automatically. If you want to compile again, use these steps:

vagrant up
vagrant ssh
sudo su
/vagrant/scripts/compile_kernel.sh

Update kernel configs

To update the two kernel config files you can use this steps.

vagrant up
vagrant ssh
sudo su
MENUCONFIG=1 /vagrant/scripts/compile_kernel.sh

This will only call the make menuconfig inside the toolchain and copies the updated kernel configs back to kernel_configs/ folder to be committed to the GitHub repo.

Test kernel

To test the new kernel, copy all DEB packages to your Pi and login as root. Then install the following packages:

dpkg -i raspberrypi-kernel_${KERNEL_DATETIME}_armhf.deb

dpkg -i raspberrypi-kernel-headers_${KERNEL_DATETIME}_armhf.deb

Reboot your Pi.

Buy us a beer!

This FLOSS software is funded by donations only. Please support us to maintain and further improve it!

Donate using Liberapay

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].