当前位置: 首页 > news >正文

Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试

1、采用程序配置关闭“内核模块验证”

默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs;

使用VSCode打开默认配置文件“stm32mp1_atk_defconfg”,然后将下面的4条语句屏蔽掉,如下:

CONFIG_MODULE_SIG=y

CONFIG_MODULE_SIG_ALL=y

CONFIG_MODULE_SIG_SHA256=y

CONFIG_MODULE_SIG_HASH="sha256"

见下图:

屏蔽后见下图:

2、采用linux图形配置界面关闭“内核模块验证”

1)、打开终端

输入“ls回车

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd atk-mp1/回车”,切换到“atk-mp1”目录

输入“ls回车”,列出“atk-mp1”目录下的文件和文件夹

输入“cd linux/回车”,切换到“linux”目录

输入“ls回车”,列出“linux”目录下的文件和文件夹

输入“cd my_linux/回车”,切换到“my_linux”目录

输入“ls回车”,列出“my_linux”目录下的文件和文件夹

输入“cd linux-5.4.31/回车”,切换到“linux-5.4.31”目录

输入“ls回车”,列出“linux-5.4.31”目录下的文件和文件夹

2)、输入“make menuconfig回车”,打开linux的图形化配置界面;

见下图:

3)、移动向下光标键至“Enable loadable module support”

4)、按下“回车”,然后移动向下光标键至“Module signature verification”;

见下图:

5)、按“N”,见下图:

6)、按“ESC键”直至出现下面的界面:

7)、按“Y”,保存配置。

输入“vi  .config回车”,打开“.config”文件,查看配置是否正确;

8)、输入“/CONFIG_MODULE_SIG”,搜索“CONFIG_MODULE_SIG

见下图:

9)、按“ESC键”,按“:q!回车”,不保存退出;

10)、将“.config”文件保存到“arch/arm/configs/stm32mp1_atk_defconfig”中;

输入“make menuconfig回车”,打开linux的图形化配置界面;

移动向右光标键至“Save”,然后按下“回车”

11)、删除“.config”,改为“./arch/arm/configs/stm32mp1_atk_defconfig

见下图:

12)、移动向下光标键至“Ok”,按“O”,执行保存。

检查有没有保存错误,输入“vi  arch/arm/configs/stm32mp1_atk_defconfig回车

输入“/CONFIG_MODULE_SIG”,搜索“CONFIG_MODULE_SIG

13)、保存正确,按“ESC键”,按“:q!回车”,不保存退出;

注意:

后续试验中,只要通过“图形化界面”修改了Linux内核配置,最好及时将其保存到“stm32mp1_atk_defconfig”文件。因为图形化界面修改的配置只是暂时保存到“.confg” 文件里面,旦使用“make clean”清理工程,那么“.confg”文件就会被删除掉,所有的配置也就丢失了。

3、关闭内核log信息时间戳

1)、输入“make menuconfig回车”,打开linux的图形化配置界面;

移动向下光标键至“Kernel hacking

2)、按下“回车”,移动向下光标键至“printk and dmesg options”,见下图:

3)、按下“回车”,移动向下光标键至“Show timing information on printks”,见下图:

4)、按“N”,见下图:

5)、按“ESC键”直至出现下面的界面

6)、按下“Y

输入“make menuconfig回车”,打开linux的图形化配置界面;

移动向右光标键至“Save”,然后按下“回车”

7)、删除“.config”,改为“./arch/arm/configs/stm32mp1_atk_defconfig

见下图:

8)、移动向下光标键至“Ok”,按“O”,执行保存。

4、编译

1)、输入“make  uImage dtbs LOADADDR=0XC2000040 -j8回车

#编译镜像文件和设备树,linux内核在DDR中的加载地址为0XC2000040,-j8表示采用8线程编译

2)、输入“cp arch/arm/boot/uImage /home/zgq/linux/tftpboot/ -f回车”,执行文件拷贝;

输入“cp arch/arm/boot/dts/stm32mp157d-atk.dtb /home/zgq/linux/tftpboot/ -f回车”,执行文件拷贝

3)、将开发板通过网线连接到路由器,同时开启虚拟机,然后给开发板上电。

至此,初步实现了linux移植。

相关文章:

  • 关于Build Your Own Botnet的尝试
  • 如何用 ChatGPT 做项目管理?
  • 吴恩达机器学习全课程笔记第一篇
  • 第十五章 以编程方式使用 SQL 网关 - %SQLGatewayConnection 方法和属性
  • C# CAD SelectionFilter下TypedValue数组
  • N叉树的层序遍历
  • borb,一个好用的 Python 库!
  • Vue 新版 脚手架 初始化 笔记
  • 安卓版本与鸿蒙不再兼容,鸿蒙开发工程师招疯抢
  • 【探索Linux】—— 强大的命令行工具 P.22(POSIX信号量)
  • 【Linux系统化学习】缓冲区
  • 一篇文章入门postmain接口测试
  • 算法||实现典型数据结构的查找、添加和删除数据 并分析其时间和空间复杂度
  • 修改SpringBoot中默认依赖版本
  • Java 和 JavaScript 的奇妙协同:语法结构的对比与探索(下)
  • 自己简单写的 事件订阅机制
  • [case10]使用RSQL实现端到端的动态查询
  • 78. Subsets
  •  D - 粉碎叛乱F - 其他起义
  • express + mock 让前后台并行开发
  • Java的Interrupt与线程中断
  • k8s如何管理Pod
  • Less 日常用法
  • Making An Indicator With Pure CSS
  • PermissionScope Swift4 兼容问题
  • Python爬虫--- 1.3 BS4库的解析器
  • Unix命令
  • 近期前端发展计划
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 项目实战-Api的解决方案
  • FaaS 的简单实践
  • 如何在招聘中考核.NET架构师
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #NOIP 2014# day.1 生活大爆炸版 石头剪刀布
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (Java)【深基9.例1】选举学生会
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (附源码)spring boot建达集团公司平台 毕业设计 141538
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (三维重建学习)已有位姿放入colmap和3D Gaussian Splatting训练
  • (四)汇编语言——简单程序
  • (一)Neo4j下载安装以及初次使用
  • .equals()到底是什么意思?
  • .Net core 6.0 升8.0
  • .Net FrameWork总结
  • .NET 中让 Task 支持带超时的异步等待
  • .NET/C# 中设置当发生某个特定异常时进入断点(不借助 Visual Studio 的纯代码实现)
  • .NET中使用Redis (二)
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...
  • @RestController注解的使用
  • [2]十道算法题【Java实现】
  • [BetterExplained]书写是为了更好的思考(转载)
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C语言]——分支和循环(4)
  • [Hadoop in China 2011] Hadoop之上 中国移动“大云”系统解析