自己定制树莓派Linux内核的步骤

(文/阿群)
此篇文章是自己编译树莓派内核的备忘录.

#!/bin/sh

# 取回自己为树莓派定制的Linux内核源码树
git clone --branch rpi-4.9.y-devel3 --depth=1 https://github.com/liuqun/linux.git
pushd linux

# 载入树莓派默认内核配置模板 bcm2709_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

# 进入 menuconfig 菜单 
# 进入子菜单Device Drivers--->Character Devices--->TPM Hardware support--->
# 选中模块 TPM Interface Spectification 1.3 Interface / TPM 2.0 FIFO Interface (SPI)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig

make ARCH=arm \
    CROSS_COMPILE=arm-linux-gnueabihf- \
    -j $(nproc)\
    bzImage dtbs modules


scripts/mkknlimg arch/arm/boot/zImage kernel7.img
mkdir -p dtb-files/overlays
cp arch/arm/boot/dts/*.dtb dtb-files
cp arch/arm/boot/dts/overlays/*.dtb* dtb-files/overlays

## 驱动模块 
# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=`pwd`/rootfs
#

popd

以上为树莓派内核编译过程

引导新内核

把树莓派SD卡/boot分区下的两个文件 kernel7.imgbcm2710-rpi-3-b.dtb 替换成我们自己编译的:

  • 复制 linux/kernel7.img 到树莓派 /boot 分区
  • 复制 linux/dtb-files/bcm2710-rpi-3-b.dtb 到树莓派 /boot 分区
  • 复制 linux/rootfs/lib/modules/4.9.70-v7+整个目录到树莓派根分区同名目录/lib/modules/4.9.70-v7+
ls /lib/modules/4.9.70-v7+/kernel/driver/char/tpm/

sudo raspi-config

选择菜单5-->然后选择菜单4, 启用SPI接口, 如下图:


raspi-config

重启树莓派后, 检查加载的驱动

uname -r
find /lib/modules/$(uname -r)/kernel/drivers/char/tpm/

/lib/modules/4.9.70-v7+/kernel/drivers/char/tpm/
/lib/modules/4.9.70-v7+/kernel/drivers/char/tpm/tpm_tis_core.ko
/lib/modules/4.9.70-v7+/kernel/drivers/char/tpm/tpm_tis_spi.ko
/lib/modules/4.9.70-v7+/kernel/drivers/char/tpm/tpm.ko

查询内核模块加载日志

dmesg | grep tpm
stat /dev/tpm0

你可能感兴趣的:(自己定制树莓派Linux内核的步骤)