热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

(文阿群)此篇文章是自己编译树莓派内核的备忘录.#!binsh#取回自己为树莓派定制的Linux内核源码树gitclone--branchrpi-4.

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

1458798-b51ceab0d1548fa9.png

#!/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- menuconfigmake ARCH=arm \CROSS_COMPILE=arm-linux-gnueabihf- \-j $(nproc)\bzImage dtbs modulesscripts/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接口, 如下图:


1458798-486afda66d420e3e.png
raspi-config
1458798-963240f311317dc2.png

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

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

1458798-e1d34fdc893cdb0c.png

stat /dev/tpm0


推荐阅读
  • 在 CentOS 6.4 上安装 QT5 并启动 Qt Creator 时,可能会遇到缺少 GLIBCXX_3.4.15 的问题。这是由于系统中的 libstdc++.so.6 版本过低。本文将详细介绍如何通过更新 GCC 版本来解决这一问题。 ... [详细]
  • 本文将详细介绍如何注册码云账号、配置SSH公钥、安装必要的开发工具,并逐步讲解如何下载、编译 HarmonyOS 2.0 源码。通过本文,您将能够顺利完成 HarmonyOS 2.0 的环境搭建和源码编译。 ... [详细]
  • 在Linux系统中避免安装MySQL的简易指南
    在Linux系统中避免安装MySQL的简易指南 ... [详细]
  • SecureCRT是一款功能强大的终端仿真软件,支持SSH1和SSH2协议,适用于在Windows环境下高效连接和管理Linux服务器。该工具不仅提供了稳定的连接性能,还具备丰富的配置选项,能够满足不同用户的需求。通过SecureCRT,用户可以轻松实现对远程Linux系统的安全访问和操作。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本文深入解析了 FCEUX 源码,并详细介绍了两种制作 DEB 包的方法及其技术细节。首先,DEB 包通常由两部分组成:控制信息(位于 DEBIAN 目录)和安装内容(模拟目录)。通过解压现有的 DEB 包,可以查看其内部结构,进而理解其工作原理。具体操作包括将安装内容释放到指定目录中,以便进行进一步的修改和定制。此外,文章还探讨了如何修改现有的 DEB 包,以满足特定需求,提供了实用的步骤和技巧。 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 基于Linux开源VOIP系统LinPhone[四]
    ****************************************************************************************** ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
  • 对于希望在未越狱的iOS设备上修改Hosts文件的苹果用户来说,了解文件的具体位置和操作步骤至关重要。本文将详细介绍如何通过安装最新版本的iTunes来实现这一目标,并提供实用的操作指南,帮助用户轻松完成Hosts文件的编辑。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
  • 使用 `git stash` 可以将当前未提交的修改保存到一个临时存储区,以便在后续恢复工作目录时使用。例如,在处理中间状态时,可以通过 `git stash` 命令将当前的所有未提交更改推送到一个新的储藏中,从而保持工作目录的整洁。此外,本文还将详细介绍如何解决 `git stash pop` 时可能出现的冲突问题,帮助用户高效地管理代码变更。 ... [详细]
author-avatar
手机用户2602884231
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有