| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 树莓派开发—内核源码配置、编译 -> 正文阅读 |
|
[系统运维]树莓派开发—内核源码配置、编译 |
文章目录一、树莓派等芯片带操作系统的启动过程在进行内核源码分析之前,我们先了解一下各种设备的启动过程: ① C51,STM32(裸机)等——C直接操控底层寄存器实现相关业务, 业务流程型的裸机代码,如 ② X86,Intel,windows平台 ③ 嵌入式产品: 树莓派,mini2440, mini6410,nanopi,海思,RK(瑞芯微)------人脸识别打卡器,智能家居主控等 ④ 安卓 BootLoader作用: 二、树莓派Linux源码目录树分析在官网上https://github.com/raspberrypi/linux下载树莓派内核镜像,放在Ubuntu下,具体选择哪个版本的Linux内核源码取决于树莓派已经跑起来Linux内核版本,比如我当前树莓派Linux内核版本如下: 补充知识:关于Linux内核的一些基本概念 Linux系统非常庞大,但是通常Linux内核编译出来一般就几M(如:树莓派4M),这是因为我们编译出来的是适合该平台的内核代码,很多代码实际上是不参与编译的。 因为支持多平台,多架构,所以编译之前要配置,配置成适合的目标平台来用 接下来我们来看一下我们下载的这个Linux内核源码(未编译)包含哪些文件?也就是Linux内核源码目录结构。 三、树莓派Linux源码配置1.为什么要进行Linux内核源码配置?实际工作中,尤其是驱动工程师,负责驱动代码的编写,而驱动的编译需要一个提前编译好的内核,编译内核就必须先进行配置,配置的最终目标会生成 .config文件,该文件指导Makefile去把有用东西组织成内核。 通常我们购买芯片,厂家会配Linux内核源码,比如说买了树莓派,会送树莓派Linux内核源码。 2.配置内核的三种方式注: 配置内核需要用到交叉编译工具链,因此,交叉编译工具链要提前安装好。 第一种方式: 将厂家给的.config文件直接拿过来用。 命令解释:
执行结果: 第二种方式: 基于厂家的.config文件一项项配置。 配置之前需要安装一些必要的库: 配置命令: 结果如下: 注: [ ] :表示略过的,不参与编译,也就是需要裁剪的东西。 第三种方式: 完全自己来,这个可能就需要中级或者高级工程师来做了。 四、树莓派Linux内核编译1.编译内核配置Linux内核之后就可以进行内核编译了。 编译命令: 命令解释: 编译完成后,内核源码树目录中多出vmlinux文件,说明编译成功。 2.树莓派挂载新的Linux内核打包 zImage 文件成树莓派上可用的xxx.img: 注意:SD卡插入Ubuntu,并没有挂载到ubuntu下,下面将两个分区挂载到Ubuntu。 /dev/sdb1(fat 分区)挂载到了 data1 此时data1和data2里面就都有数据了 执行命令: 接下来安装更新kernel.img文件 原来镜像名字是kernel7.img(树莓派镜像规定必须要定义成这个名字),因为原来的这个kernel7.img将要被覆盖,为了防止刷机失败,或者拷贝过程中文件损坏,我们可以提前备份。 ①备份kernel7.img(在原目录备份即可,令起名字)(此文件在 fat 分区,也就是data1文件里) ③拷贝完成后,查看文件编码检查拷贝是否完整 另外需要拷贝其它的一些配置文件到fat分区中 大功告成,接下来将SD卡重新插入在树莓派中,就可以以新的内核重新启动树莓派了。 为了能看到树莓派的启动过程,我们采用串口登录树莓派,这个就需要在Windows下提前配置一下了:
这样就停止了蓝牙,解除了对串口的占用。(这一步之前肯定做过,可以省略) ②修改根目录的"cmdline.txt",将里面的内容全部替换成以下内容
接好线后,将SD卡插回树莓派上电,开机后可以用 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 16:53:30- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |