Ubuntu 16.04 (x64)下從原始碼為Raspberry Pi Zero W編譯實時核心
首先參考ofollow,noindex" target="_blank">Ubuntu 16.04 (x64)樹莓派B+ (Raspberry Pi B+)原始碼編譯 保證能夠成功編譯標準核心的原始碼,然後切換到實時核心分支,並執行如下編譯命令:
$ export PATH=$PATH:~/rpi/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin $ cd ~/rpi/rpi-linux/ $ git checkout rpi-4.14.y-rt $ git reset --hard $ KERNEL=kernel $ make clean $ make mrproper $ rm -rf .config #調整核心切換頻率,增加實時性 $ sed -i '$a\CONFIG_HZ_1000=y' arch/arm/configs/bcmrpi_defconfig #Raspberry Pi Zero W的CPU是BCM2835 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcmrpi_defconfig $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs -j8 $ mkdir rt_kernel $ make modules_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=./rt_kernel -j8 $ make dtbs_install ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_DTBS_PATH=./rt_kernel -j8 $ ./scripts/mkknlimg ./arch/arm/boot/zImage ./rt_kernel/kernel.img
安裝編譯好的核心
Ubuntu
下面,SD
卡會自動掛載,預設掛載到了/media/
目錄下面,如果是使用NOOBS
安裝的話,系統目錄是固定的,執行如下命令拷貝到目標SD
卡上面
$ cd ~/rpi/rpi-linux #備份需要修改的檔案 $ mv /media/`whoami`/boot/kernel.img /media/`whoami`/boot/kernel_old.img $ mv /media/`whoami`/boot/overlays /media/`whoami`/boot/overlays.old #拷貝核心 $ cp rt_kernel/kernel.img /media/`whoami`/boot/kernel.img #拷貝硬體配置 $ cp rt_kernel/bcm2835*.dtb /media/`whoami`/boot/ #拷貝overlays $ cp -r rt_kernel/overlays /media/`whoami`/boot/ #拷貝核心模組 $ sudo cp -r rt_kernel/lib/modules/* /media/`whoami`/rootfs/lib/modules/ #解除安裝裝置 $ sudo umount -A -R -a /media/`whoami`/boot
參考連結