robbat2 / genkernel

Working copy of genkernel tree: OBSOLETE, please see https://github.com/gentoo/genkernel
9 stars 65 forks source link

Support for building RasperryPi kernels #33

Open petaflot opened 1 year ago

petaflot commented 1 year ago

AFAIK genkernel doesn't know how to properly build and install kernels for RaspberryPi hardware. At te moment, I'm using one of these two scripts depending on the platform:

cat /usr/src/rpi4_kernel_build.sh
#!/bin/bash

# make and install kernel for RaspberryPi 4 hardware

KERNEL=kernel8

cd linux
# I like to clean manually iif required
#make clean
#make mrproper
make -j 4 bcm2711_defconfig && make prepare && make oldconfig && make menuconfig && make -j 4
make -j 4 modules dtbs
make modules_install

#cp -v arch/arm64/boot/Image /boot/kernel8-p4.img
cp -v arch/arm64/boot/Image /boot/kernel8.img
cp -v arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /boot/

cp arch/arm64/boot/dts/broadcom/*.dtb /boot/
cp arch/arm64/boot/dts/overlays/*.dtb* /boot/overlays/
cp arch/arm64/boot/dts/overlays/README /boot/overlays/
naspi ~ # cat /usr/src/rpi_kernel_build.sh
#!/bin/bash

# make and install kernel for RaspberryPi <=3 hardware

# building rpi3 kernel (needed anyway AFAIK)
cd linux
make distclean
make bcmrpi3_defconfig

# options for Rpi3 kernel ; I usually do this by hand all the time
# make menuconfig

nice -n 19 make -j4 Image modules dtbs

# now as root
cp -v arch/arm64/boot/Image /boot/kernel8.img
cp -v arch/arm64/boot/dts/broadcom/bcm{2710,2837}-rpi-3-b.dtb /boot/
cp -v arch/arm64/boot/dts/broadcom/bcm2710-rpi-3-b-plus.dtb /boot/
cp -v arch/arm64/boot/dts/broadcom/bcm2710-rpi-cm3.dtb /boot/

cp -rv arch/arm64/boot/dts/overlays/ /boot/

make modules_install
sync

# now configure and build Rpi4 kernel
make distclean
make bcm2711_defconfig
make menuconfig

read -p "Make sure to set CONFIG_LOCALVERSION to something distinct (like "-2711") to ensure the release names of the two kernels are distinct - you don't want their modules getting co-mingled in /lib/modules/<kernel-release-name>/.... Make any other changes you want, then save and exit the configuration tool, and hit [enter]"

nice -n 19 make -j4 Image modules dtbs

cp -v arch/arm64/boot/Image /boot/kernel8-p4.img
cp -v arch/arm64/boot/dts/broadcom/bcm2711-rpi-4-b.dtb /boot/
make modules_install