Download as pdf
Download as pdf
You are on page 1of 3
Raspberry Pi Documentation - The Linux kernel hittps.//www.raspberrypi.com/documentation/computers’linux_kernel.htm| Get the Kernel Sources To download the minimal source tree for the current branch, run: git clone --depth=1 https: //github.con/raspberrypi/inux ‘See Choosing sources above for instructions on how to choose a different branch. Build sources Enter the following cornmands to build the sources and Device Tree files: 32-bit Configs For Raspberry Pi 1, Zero and Zero W, and Raspberry Pi Cornpute Module 1 cd Linux KERNEL=kernel make ARCH=arm CROSS_COMPILE=arn-linux-gnueabihf- bemrpi_defconfig For Raspberry Pi 2, 3, 3+ and Zero 2 W, and Raspberry Pi Cornpute Modules 3 and 3+; cd Linux KERNEL=kernel7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcn27@9_defconfig For Raspberry Pi 4 and 400, and Raspberry Pi Compute Module 4: cd Linux KERNEL=kerne171 make ARCH=arm CROSS_COMPILE=arm-Linux-gnueabihf- bcn2711_defconfig 64 it Configs For Raspberry Pi 3, 3+, 4, 400 and Zero 2 W, and Raspberry Pi Compute Modules 3, 3+ and 4 cd Linux KERNEL=kerne18 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- ben2711_defconfig 6 sur 12 Raspberry Pi Documentation - The Linux kernel hittps.//www.raspberrypi.com/documentation/computers’linux_kernel.htm| 7 sur 12 Build with Configs NOTE To speed up compilation on multiprocessor systems, and get sorne improvement on single processor anes, use -j , where n is the number of processors * 1.5. You can use the nproc command to see how many processors you have, Alternatively, feel free to experiment and see what works! For all 32-bit Builds make ARCH=arm CROSS_COMPILE=arn-linux-gnueabihf- zInage modules dtbs For all 64-bit Builds NOTE Note the difference between Image target between 32 and 64-bit make ARCH=armG4 CROSS COMPILE=aarch64-linux-gnu- Image modules dtbs Install Directly onto the SD Card Having built the kernel, you need to copy it onto your Raspberry Pi and install the modules; this is best done directly using an SD card reade First, use 1sb1k before and after plugging in your SD card to identify it. You should end up. with something a lot like this: sdb sdb sdb2 with sdb being the Far filesystem (boot) partition, and sdb2 being the exta filesystem (‘001) partition Mount these first, adjusting the partition letter as necessary: inkdir mot mkdir mnt/fat32 mkdir mnt/exta Raspberry Pi Documentation - The Linux kernel hittps.//www.raspberrypi.com/documentation/computers’linux_kernel.htm| 8 sur 12 sudo mount /dev/sdb1 mnt/Fat32 sudo mount /dev/sdb2 mnt/exta NOTE You should adjust the drive letter appropriately for your setup, e.g. if your SD card appears as /dev/sdc instead of /dev/sdb. Next, install the kernel modules onto the SD card: For 32-bit sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-Linux-gnueabihf- INSTALL_MO D_PATHsnnt/exta modules_install For 64-bit sudo env PATH=SPATH make ARCH=arm64 CROSS_COMPILI D_PATH=nnt/ext4 modules_install yrch64-Linux-gnu- INSTALL_MO Finally, copy the kernel and Device Tree blobs onto the SD card, making sure to back up your old kernel For 32+ sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup. img sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL. img sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/ sudo cp arch/arm/boot /dts/overlays/*.dtb* mnt /fat32/overlays/ sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/ sudo unount mnt/Fat32 sudo umount mt/exta For 64-bit sudo cp mnt/fat32/$KERNEL. img mnt/fat32/$KERNEL-backup.img sudo cp arch/arm64/boot/Tmage mnt/fat32/$KERNEL. img sudo cp arch/arm64/boot/dts/broadcon/*.dtb mnt/Fat32/ sudo cp arch/arm64/boot/dts/overlays/*.dtb* nnt/#at32/overlays/ sudo cp arch/arm64/boot /dts/overlays/README mnt/fat32/overlays/ sudo umount mnt/fat32, sudo umount mnt/exta

You might also like