自己定制树莓派Linux内核的步骤
2018-02-07 本文已影响162人
阿群1986
(文/阿群)
此篇文章是自己编译树莓派内核的备忘录.
#!/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.img
和 bcm2710-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