LinuxPack

LinuxPack.Net
Linux软件网——精选每一篇高品质的技术干货
  1. 首页
  2. 正文

如何进行Linux内核的编译过程(1)先确认Makefile

2022年12月27日 87点热度

如何进行Linux内核的编译过程

(1)先确认Makefile 1.1、主要确认检查交叉编译工具链 1.2、确认arch == arm:确认我们的架构是否为arm体系架构。 主要目的是为了编译时能够找到arch/arm目录。

PS? 你在工作的时候,是否有时候会觉得很奇怪,为什么人家说在别人的电脑上面编译时没有问题的,但是在你的电脑一用就是各种问题。 (当然你从事单片机开发,这样的问题会少很多,因为IDE已经帮助你干了很多事情了,所以单片机开发能够专心的干自己开发的事情) 其实这样的事情,很多时候,都是因为你的电脑和Makefile没有形成一个“沟通”,你Makefile想用的是4412的gcc,然后他就直接用2440的gcc帮你编译了,所以就出现一大堆的问题出来。

(2)手工配置:make x210iiqt_defconfig 最后需要出现这么一句话:configuration written to .config 就证明我们的操作是正确的,如果没有出现这句话的话,那么就是错误的。

为什么我们需要手工配置这句话: 我可以保证的是,当你从一个方案商或者供应商中得到东西的时候,应该已经有原厂的人,帮你配置好了绝大部分的东西了,可能有时候你的公司,说我不用三星的触摸屏,我要用某某的台湾的,为啥,因为便宜啊,所以这时候,你做完这部分之后,你还要进行下一步,就是改动驱动,这里就不用改了。进入下一部分,图形化配置(可能有大牛觉得说错了,是的linux移植时需要编译设备树文件吗,因为很多时候也需要改动Kconfig文件)。

这里就是为什么嵌入式的Linux开发比别的单片机开发难的地方,单片机一个IDE帮助你解决99%的问题。

(3)第三步:make menuconfig:进行图形化配置。 很多时候,如果我们的硬件跟开发板是一样的话,我们就不需要进行这一步了,因为你硬件没有改动,直接沿用上面的手工配置文件即可make.

一般如果你用的电脑啥都没有的话: 需要安装图形文件化库: apt-get install libncurses5-dev

2、Linux内核源码树目录

2.1、initrd.img.cpio这个东西是跟设备树的传参是有关系的,你也可以把这个东西删除。

2.2、Kbuild,Kbuild是kernel build:就是内核编译的意思,这个文件就是Linux内核编译体系需要用到的文件。

2.3、MAINTAINERS:内核的维护者,各路大神

2.4、Makefile:这个是Linux内核的总Makefile的管理

2.5、mk,是九鼎公司在移植的自己添加的,不是Linux内核本身的东西,九鼎添加这个文件的作用就是用这个文件来整体管理kernel目录的配置和编译。可能直接source mk,就完成整个编译的过程。

2.6、README:简述Linux内核是个什么鬼

2.7、REPORTING-BUGS:上报BUG,里面没有关系的

Linux内核源码树的文件夹的作用 3.1、(arch),arch是architecture的缩写,意思就是架构,arch目录下面是好多个不同的CPU的子目录,比如arm这种CPU的所有文件都在arch/arm。

3.2、block,英文是块的意思:在Linux内核中block表示块设备,块就是多个字节组成的整体,类似于扇区,为单位的整体访问,比如说我们的SD卡,inand,硬盘和块设备,。

3.3、crypto:这个文件夹应该是加密相关的,这些东西就是一些加密的算法,这个目录下放了一些各种常见加密算法的C语言代码实现了,比如crc32,md5,shal等。

3.4、documentation:里面放了一些文档,内核的特点。

3.5、drivers:驱动目录,里面分门别类的列出了Linux内核支持的所有的硬件设备: char:就是我们的字符设备驱动 hid:人机交互的部分。

3.6、firmware:固件,什么是固件,固件其实就是软件,不过这个软件是固话到我们的CPU里面运行的叫做固件,就像S5PV210的IROM代码。

3.7、fs:就是filesystem,文件系统,里面列出Linux系统中的常用的文件系统。

3.8、includes:头文件目录,公共的头文件都在这里面。每种CPU里面的特有的架构在arch/arm/include 这里面存放的就是CPU的架构里面特有的文件夹及其文件夹子目录。

3.9、init:就是初始化的意思,这个目录下面的代码就是Linux内核启动时初始化内核的代码、

3.10、IPC,进程间通信,里面都是Linux支持的IPC的代码

3.11、kernel:kernel就是内核,就是Linux内核,所以这个文件夹是Linux本身的kernel,利用内核干活的人,所以这个文件夹放的就是内核本身需要的一些代码文件。

3.12、lib:lib是库的意思,这里面都是一些公用的有用的库函数,注意这里面的库函数,和C语言的库函数的不一样的,在内核编程中是不能用C语言标准库函数。

3.13、mm,mm是memory management,内存管理,Linux的内存管理的diamante

3.14、net:网络:该目录下是网络相关的代码,比如TCP、IP协议栈。

3.15、scripts:脚本:shell编程linux移植时需要编译设备树文件吗,这个目录下面放的全部都是脚本文件。 这些脚本文件不是Linux内核工作时使用的。而是用来辅助对Linux内核 配置的支持文件。可以配置也可以编译

我们并不会详细的分析这个目录下的脚本,而是通过外围来重点学会配置 和编译Linux内核即可。

3.16、security:这是一些安全相关的代码linux命令ls,不用去管他。

3.17、sound:音频处理相关的。

3.18、tools:Linux中用到的一些有用的工具。

3.19、usr:目录下initramfs:相关的,和Linux内核的启动有关的,暂时不用去管。

3.20、virt:就是内核虚拟机的意思,暂时不用管。

总结:这么多目录跟我们关系紧密的就是arch,drivers,然后就是include blockqq for linux,mm,net,lib等目录。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 6
最后更新:2022年12月27日

Linux软件网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞

Linux软件网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
linux内核完全注释pdf修正版相信这些操作经常使用阅读器的人都会用到 centos 查看opencl CentOS轻松查看OpenCL!(含教程) Linux下用过的端口重定向,和NAT也是差不多的概念 下载联想Linux系统,快速上手! suse linux 桌面 快速掌握SUSE Linux桌面,轻松上手! 英特尔Agilex7R-tileFPGA批量交付,支持硬化知识产权解决方案 (柠檬班)怎么备份工作文档的版本控制管理工具 解决Linux查看版本信息失败的10个技巧 Linuxrm命令解读Linux删掉文件目录的操作方式(2023年) CentOS Shell编程:高效自动化运维 AIX:类Unix系统的10年发展史 Linux实验环境搭建方法(卓越工程师班)招生简章 嵌入式Linux系统的几种套接口类型及流程介绍 CentOS7下LNMP搭建网站的攻略文章,轻松搭建自己的网站 Linux网络配置:10方面详解! Linux与Windows之间的区别之一源代码4.1Linux和Windows区别 2021年英特尔MID支持将从Linux内核中被挖走 Ubuntu网卡文件配置教程,Linux必备! Linux编译出可执行文件的方法 Ubuntu.3.0实战测试:安装虚拟机准备
Linux中有专用的环境变量配置文件来记录变量信息查看内存,Linux必备!如何在Linux系统中配置全局环境变量和局部环境环境Unix操作命令大全,快速掌握Unix技能!linux卸载驱动命令 二Makefile文件有两种写法:elseKERNELDIR-C$定时执行脚本的在线计算方法linux rpm是什么意思 深入解析Linux RPM,轻松掌握!如何在Linux系统中列出和设置环境变量?Linux内存使用情况怎么查看?Linux将本地文件上传Linux服务器,即ssh命令上传Linux设备驱动:第一部分linuxLiveCD、LiveDVD、BinDVD和BinDVD区别扩展知识:live版本Unix进程管理:程序执行的基本单位(含高级编程PDF)定时调用与使用Linux安装版本信息查询:命令行实现!Linux系统中环境变量的配置文件将影响所有用户使用的bashshellLinux内核延时,你知道吗?Linux启动Oracle11g服务,10步教程Python脚本后台运行在服务器端一直运行魅族Flyme9系统怎么样?好不好用?有必要升级吗?
iOS手游deb文件是什么?文件安装方法介绍 java中执行控制台命令需要输入sudo密码密码系列 一个是织梦内容管理系统dedecms 二进制分发软件包的安装与卸载Linux软件的区别 显示工作路径3.ls命令查看文件与目录的命令 eBPF是天使,亦或恶魔?越来越严峻的Linux安全形势 :Linux通用java程序启动代码实例- bio linux 生物信息学家的必备操作系统——Bio Linux -rc3的补丁列表可以在10月初发布,但没有什么看起来那么可怕 (Linux基础知识)Linux查看内存使用情况 使用U盘安装和运行Linux操作系统的简易步骤! 智能家居:Linux+Zigbee系统原理图,有何可能? 基于Linux内核修改的实时操作系统与物联网应用系统介绍 掌握Linux文件时间戳,解密九个知识! MBR分区结构MBR分区表硬盘主导记录硬盘记录 Windows11系统支持安卓和Linux子系统设置重点下载 unix操作系统是 UNIX的坎坷历史的历史(图) 探寻Linux与Unix系统的历史、功能和应用价值 信号量和SystemV信号量的一点区别:线程间同步 查看内存,Linux必备!
标签聚合
6
书籍
课程
技术群
技术干货大合集↓
  • 2023年5月 / 107篇
  • 2023年4月 / 116篇
  • 2023年3月 / 110篇
  • 2023年2月 / 83篇
  • 2023年1月 / 160篇
  • 2022年12月 / 176篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 LinuxPack.net ALL RIGHTS RESERVED.

京ICP备16058923号-4