Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNO
warranty;notevenforMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.
注:arm的工具链,可以从这儿下载:回复“ARM”即可查看。
二、设置编译目标
在配置或编译内核之前,首先要确定目标CPU构架,以及编译时采用哪些工具链。这是最最基础的信息,首先要确定的。
假如你是为当前使用的PC机编译内核,则无须设置。
否则的话嵌入式linux 培训,就要明晰设置。
这儿以arm为例,来说明。
有两种设置方式():
a)更改Makefile
打开内核源码根目录下的Makefile,更改如下两个Makefile变量并保存。
ARCH:=arm
CROSS_COMPILE:=arm-linux-
注意,这儿cross_compile的设置,是假设所用的交叉工具链的gcc程序名称为arm-linux-gcc。假如实际使用的gcc名称是some-thing-else-gcc,则这儿照葫芦画瓢填some-thing-else-即可。反正,要省去名称中最后的gcc那3个字母。
b)每次执行make命令时,都通过命令行参数传入这种信息。
这似乎是通过make工具的命令行参数指定变量的值。
比如
配置内核时时,使用
makeARCH=armCROSS_COMPILE=arm-linux-menuconfig
编译内核时使用
makeARCH=armCROSS_COMPILE=arm-linux-
注意,实际上,对于编译PC机内核的情况,即使用户没有明晰设置,但并不是这两项没有配置。由于假如用户没有设置这两项,内核源码顶楼Makefile(坐落源码根目录下)会通过如下方法生成这两个变量的值。
SUBARCH:=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/
-es/arm.*/arm/-es/sa110/arm/
-es/s390x/s390/-es/parisc64/parisc/
-es/ppc.*/powerpc/-es/mips.*/mips/
-es/sh[234].*/sh/)
ARCH?=$(SUBARCH)
CROSS_COMPILE?=
经过前面的代码,ARCH弄成了PC编译机的arch,即SUBARCH。为此,假如PC机上uname-m输出的是ix86,则ARCH的值就成了i386。
而CROSS_COMPILE的值,倘若没配置,则为空字符串。这样一来所使用的工具链程序的名称,就不再有类似arm-linux-这样的前缀,就相当于使用了PC机上的gcc。
最后再多说两句,ARCH的值还须要再进一步做泛化。由于内核源码的arch目录下,不存在i386这个目录,也没有sparc64这样的目录。
因而顶楼makefile中又构造了一个SRCARCH变量,通过如下代码,生成他的值。这样一来,SRCARCH变量,才最终匹配到内核源码arch目录中的某一个构架名。
SRCARCH:=$(ARCH)
ifeq($(ARCH),i386)
SRCARCH:=x86
endif
ifeq($(ARCH),x86_64)
SRCARCH:=x86
endif
ifeq($(ARCH),sparc64)
SRCARCH:=sparc
endif
ifeq($(ARCH),sh64)
SRCARCH:=sh
endif
三、配置内核
内核的功能这么多,我们须要什么部份,每位部份编译成哪些方式(编进内核还是编成模块),每位部份的工作参数怎样,那些都是可以配置的。为此,在开始编译之前,我们须要建立出一份配置清单,放在内核源码根目录下,命名为.config文件,之后按照此.config文件,编译出我们须要的内核。
然而,内核的配置项太多了,一个一个配linux设置环境变量,太麻烦了。并且,不同的CPU构架,所能配置的配置项集合arm linux内核中arm中断实现详解,是不一样的。诸如,某种CPU的某个功能特点要不要支持的配置项arm linux内核中arm中断实现详解,就是与CPU构架有关的配置项。所以,内核提供了一种简单的配置方式。
以arm为例,具体做法如下。
a)依据我们的目标CPU构架,从内核源码arch/arm/configs目录下,找一个与目标系统最接近的配置文件(比如s3c2410_defconfig),拷贝到内核源码根目录下,命名为.config。
注意,假若你是为当前PC机编译内核,最好拷贝如下文件到内核源码根目录下,做为初始配置文件。这个文件,是PC机当前运行的内核编译时使用的配置文件。
/lib/modules/`uname-r`/build/.config
这儿顺便多说两句,PC机内核的配置文件,选择的功能真是多。不编不晓得,一编才晓得。Linux发行方这样做的目的,可能是想让所发行的Linux才能满足用户的各类需求吧。
b)执行makemenuconfig对此配置做一些须要的更改,退出时选择保存,就将新的配置更新到.config文件中了。
注
以上是PC机编译内核的设置方法和设置:设置编译的详细内容。更多信息请关注PHP中文网其他相关文章!

Linux 命令行界面提供了丰富的文本处理工具,其中最强大的工具之一是 sed 命令。sed 是 Stream EDitor 的缩写,是一个多功能工具,允许对文本文件和流进行复杂的处理。 什么是 Sed? sed 是一款非交互式文本编辑器,它操作管道输入或文本文件。通过提供指令,您可以让它修改和处理文件或流中的文本。sed 最常见的用例包括选择文本、替换文本、修改原始文件、向文本添加行或从文本中删除行等操作。它可以在 Bash 和其他命令行 shell 中从命令行使用。 Sed 命令语法 sed

有效地计数Linux中的文件和文件夹:综合指南 知道如何快速计算Linux中的文件和目录对于系统管理员和管理大型数据集的任何人至关重要。本指南使用简单命令l演示

有效管理用户帐户和组成员资格对于Linux/UNIX系统管理至关重要。 这样可以确保适当的资源和数据访问控制。 本教程详细介绍了如何将用户添加到Linux和Unix系统中的多个组中。 我们

Linux内核是GNU/Linux操作系统的核心组件。由Linus Torvalds于1991年开发,是一种免费的开源,单片,模块化和多任务Unix样核。在Linux中,可以在Sing上安装多个内核

该简短指南说明了如何在Linux操作系统中键入印度卢比符号。前几天,我想在Word文档中键入“ Indian Rupee符号(€)”。我的键盘上有一个卢比符号,但我不知道如何键入它。后

介绍 在Linux领域,命令行通常是我们导航的指南针,磁盘空间的有效管理至关重要。无论您是通过个人项目航行还是转向O
![安装Fedora Linux 41工作站[逐步指南]](https://img.php.cn/upload/article/001/242/473/174149047084567.png?x-oss-process=image/resize,p_40)
本指南为安装Fedora Linux 41 Workstation Edition提供了全面的演练。 让我们开始吧! 目录 - 步骤1:准备Fedora 41安装媒体 步骤2:启动Fedora 41安装媒体 步骤3:

Linus Torvalds已发布Linux内核6.14释放候选6(RC6),报告没有重大问题并保持发布能力。此更新中最值得注意的更改地址是AMD Microcode签名问题,而其余更新


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版
好用的JavaScript开发工具

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Atom编辑器mac版下载
最流行的的开源编辑器