| 1 | Crux-arm RaspberryPi2 Linux Kernel |
| 2 | |
| 3 | NOTE: This README is wip. Some instructions are either vague or missing. |
| 4 | |
| 5 | upstream sources: |
| 6 | https://www.kernel.org/pub/linux/kernel/v4.x |
| 7 | git://git.kernel.org/pub/scm/linux/kernel/git/statble/linux-stable.git |
| 8 | https://github.com/raspberrypi/linux |
| 9 | |
| 10 | Type make or make all to build kernel image, the device tree files/overlays, |
| 11 | modules and related files. You may also find some of the other targets useful; |
| 12 | either for rebuilding only a certain target or possibly downloading files for |
| 13 | later offline build. These currently include: |
| 14 | |
| 15 | all: build all targets |
| 16 | clean: clean out built files/directories |
| 17 | distclean: clean, plus remove even downloaded files also |
| 18 | files: download all remote files |
| 19 | config: unpatch the kernel and copy the default config into the kernel tree |
| 20 | image: build zImage and rpi2 prep'd kernel image files |
| 21 | dtb: build device tree database/overlay files, tarball |
| 22 | modules: build kernel modules, tarball |
| 23 | menuconfig: run menuconfig for kernel, starting with default kernel config |
| 24 | |
| 25 | For booting the kernel, you will also need to download these addition files: |
| 26 | bootcode.bin: https://github.com/raspberrypi/firmware/raw/master/boot/bootcode.bin |
| 27 | start.elf: https://github.com/raspberrypi/firmware/raw/master/boot/start.elf |
| 28 | fixup.dat: https://github.com/raspberrypi/firmware/raw/master/boot/start.elf |
| 29 | |
| 30 | (Two other files are needed in the boot partition: config.txt and cmdline.txt. |
| 31 | I will add more about these files next edit, as well as provide links to |
| 32 | existing official/semi-official documentation for this files) |
| 33 | |
| 34 | Sd card layout: |
| 35 | |
| 36 | first partition, boot (fat32): |
| 37 | kernel-$version.img, System.map-$version, bootcode.bin, start.elf, config.txt, cmdline.txt |
| 38 | Untar the dtb tarball (dtb-$version.tar.*) to the boot partition. |
| 39 | |
| 40 | second partition, root (ext{2,3,4}, xfs, btrfs, etc): |
| 41 | Untar the modules tarball (modules-$version.tar.*) to the root partition. |
| 42 | Untar all the package files created by crossrootfs and raspberrypi2-arm to |
| 43 | the root partition. |
| 44 | |
| 45 | Generating the kernel patch: |
| 46 | |
| 47 | This is a stripped down description of how I generated the kernel patch. |
| 48 | It is based on how I thought it might have been done by Alpine Linux for |
| 49 | there raspberrypi kernel. |
| 50 | |
| 51 | git clone -b rpi-4.5.y https://github.com/raspberrypi/linux.git linux-rpi |
| 52 | cd linux-rpi |
| 53 | git remote add -b linux-4.5.y stable-4.5 \ |
| 54 | git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git |
| 55 | git pull stable-4.5 |
| 56 | git diff linux-4.5.y..rpi-4.5.y > ../linux-4.5.y-rpi-$(date +%Y%m%d).patch |