集团主站
欢迎来到成都达内官方网站!达内—美国上市公司 亿元级外企IT培训企业!
成都it培训哪家好
成都it培训哪家好
全国服务监督电话:15023458194  |   联系客服   |
当前位置:主页 > 培训课程 > Linux >

Linux系统中该怎样编译Linux内核

发布者: 成都达内     浏览次数:     发布时间:2018-05-28 09:54:27

今天成都linux培训小编要跟大家分享的文章是关于在Linux系统中如何编译Linux内核,对Linux感兴趣的小伙伴们来看一看吧,希望你能从中获得一些知识。...

今天成都linux培训小编要跟大家分享的文章是关于在Linux系统中如何编译Linux内核,对Linux感兴趣的小伙伴们来看一看吧,希望你能从中获得一些知识。


曾经有一段时间,升级Linux内核让很多用户打心里有所畏惧。在那个时候,升级内核包含了很多步骤,也需要很多时间。现在,内核的安装可以轻易地通过像 apt 这样的包管理器来处理。通过添加特定的仓库,你能很轻易地安装实验版本的或者指定版本的内核(比如针对音频产品的实时内核)。


考虑一下,既然升级内核如此容易,为什么你不愿意自行编译一个呢?这里列举一些可能的原因:


你想要简单了解编译内核的过程? 你需要启用或者禁用内核中特定的选项,因为它们没有出现在标准选项里? 你想要启用标准内核中可能没有添加的硬件支持? 你使用的发行版需要你编译内核? 你是一个学生,而编译内核是你的任务


不管出于什么原因,懂得如何编译内核是非常有用的,而且可以被视作一个通行权。当我第一次编译一个新的Linux内核(那是很久以前了),然后尝试从它启动,我从中(系统马上就崩溃了,然后不断地尝试和失败)感受到一种特定的兴奋。


既然这样,让我们来实验一下编译内核的过程。我将使用Ubuntu 16.04 Server来进行演示。在运行了一次常规的 sudo apt upgrade 之后,当前安装的内核版本是 4.4.0-121。我想要升级内核版本到 4.17, 让我们小心地开始吧。


有一个警告:强烈建议你在虚拟机里实验这个过程。基于虚拟机,你总能创建一个快照,然后轻松地从任何问题中回退出来。不要在产品机器上使用这种方式升级内核,除非你知道你在做什么。


1.下载内核


我们要做的第一件事是下载内核源码。在 Kernel.org[1] 找到你要下载的所需内核的URL。找到URL之后,使用如下命令(我以 4.17 RC2 内核为例) 来下载源码文件:


1.wgethttps://git.kernel.org/torvalds/t/linux-4.17-rc2.tar.gz


在下载期间,有一些事需要去考虑。


2.安装需要的环境


为了编译内核,我们首先得安装一些需要的环境。这可以通过一个命令来完成:


1.sudoapt-getinstallgitfakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison


务必注意:你将需要至少128GB的本地可用磁盘空间来完成内核的编译过程。因此你必须确保有足够的空间。


3.解压源码


在新下载的内核所在的文件夹下,使用该命令来解压内核:


1.tarxvzf linux-4.17-rc2.tar.gz


使用命令 cd linux-4.17-rc2 进入新生成的文件夹。


4.配置内核


在正式编译内核之前,我们首先必须配置需要包含哪些模块。实际上,有一些非常简单的方式来配置。使用一个命令,你能拷贝当前内核的配置文件,然后使用可靠的 menuconfig 命令来做任何必要的更改。使用如下命令来完成:


1.cp/boot/config-$(uname-r) .config


现在你有一个配置文件了,输入命令 make menuconfig。该命令将打开一个配置工具(图1),它可以让你遍历每个可用模块,然后启用或者禁用你需要或者不需要的模块。


在Linux系统中如何编译 Linux 内核


图1:运行中的 make menuconfig


很有可能你会禁用掉内核中的一个重要部分,所以在 menuconfig 期间小心地一步步进行。如果你对某个选项不确定,不要去管它。或者更好的方法是使用我们拷贝的当前运行的内核的配置文件(因为我们知道它可以工作)。一旦你已经遍历了整个配置列表(它非常长),你就准备好开始编译了。


5.编译和安装


现在是时候去实际地编译内核了。第一步是使用 make 命令去编译。调用 make 命令然后回答必要的问题(图2)。这些问题取决于你将升级的现有内核以及升级后的内核。相信我,将会有非常多的问题要回答,因此你得预留大量的时间。


在Linux系统中如何编译 Linux 内核


图2:回答 make 命令的问题


回答了长篇累牍的问题之后,你就可以用如下的命令安装那些之前启用的模块:


1.makemodules_install


又来了,这个命令将耗费一些时间,所以要么坐下来看着编译输出,或者去做些其他事(因为编译期间不需要你的输入)。可能的情况是,你想要去进行别的任务(除非你真的喜欢看着终端界面上飞舞而过的输出)。


现在我们使用这个命令来安装内核:


1.sudomakeinstall


又一次,另一个将要耗费大量可观时间的命令。事实上,make install 命令将比 make modules_install 命令花费更多的时间。去享用午餐,配置一个路由器,将Linux安装在一些服务器上,或者小睡一会吧。


6.启用内核作为引导


一旦 make install 命令完成了,就是时候将内核启用来作为引导。使用这个命令来实现:


1.sudoupdate-initramfs -c -k4.17-rc2


当然,你需要将上述内核版本号替换成你编译完的。当命令执行完毕后,使用如下命令来更新grub:


1.sudoupdate-grub


现在你可以重启系统并且选择新安装的内核了。


7.恭喜!


你已经编译了一个Linux内核!它是一项耗费时间的活动;但是,最终你的Linux发行版将拥有一个定制的内核,同时你也将拥有一项被许多Linux管理员所倾向忽视的重要技能。


以上就是小编今天跟大家分享的关于在Linux系统中如何编译Linux内核,希望本篇文章能够对你有所帮助。想了解更多Linux相关信息欢迎关注达内Linux官网,这里有丰富的Linux信息和专业的Linux培训课程。
(责任编辑:陈老师)
最新开班
  • 成都Java培训班
    免费试听名额发放中...
  • 成都C++培训班
    免费试听名额发放中...
  • 成都PHP培训班
    免费试听名额发放中...
  • 成都网络工程培训班
    免费试听名额发放中...
  • 成都Unity3D培训班
    免费试听名额发放中...
  • 成都大数据培训班
    免费试听名额发放中...
  • 成都uid培训班
    免费试听名额发放中...
  • 成都会计培训班
    免费试听名额发放中...
  • 成都Python培训班
    免费试听名额发放中...
  • 成都嵌入式培训班
    免费试听名额发放中...
  • 成都web培训班
    免费试听名额发放中...
  • 成都软件测试培训班
    免费试听名额发放中...
在线留言
提交

校区地址:绵阳市涪城区临园路东段68号富临大都会7栋3单元9层12号

联系电话:15023458194

公交路线:富乐路口凯德广场(10路;29路;3路;15路;11路;15a路;71路)

校区地址:成都市锦江区东大街紫东楼段35号明宇金融广场19楼1903室

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市高新区奥克斯广场蜀锦路209号一楼商铺

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都锦江区东大街芷泉街229号东方广场C座3楼303

联系电话:15023458194

公交路线:芷泉街(188路;115路;515路;236路;505路;501路;84路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:成都市武侯区佳灵路3号红牌楼广场2号写字楼11楼1115号

联系电话:15023458194

公交路线:红牌楼东(11路;92路;100路;111路;139路;g28路;快速公交K1/K2) 地铁路线:红牌楼站(地铁3号线)

校区地址:成都市锦江区红星路二段70号四川日报大厦502-2

联系电话:15023458194

公交路线:市二医院站(6路;49路;102路;5路;37路;g92路;) 地铁路线:地铁市二医院(地铁3号线)

校区地址:成都市锦江区东大街紫东段35号明宇广场2306

联系电话:15023458194

公交路线:芷泉街(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:东门大桥站(地铁2号线)

校区地址:四川省成都市武侯区高新科技孵化园9号园区E座7楼

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

校区地址:成都市成华区建设路10号万科钻石广场B座5楼

联系电话:15023458194

公交路线:建设路中(6路;14路;42路;72路;76路;1010路;)

校区地址:成都市高新区奥克斯广场B座1708

联系电话:15023458194

公交路线:益州大道锦城大道口(18路;21路;43路;48路;104路;152路;335路 ) 地铁路线:孵化园(地铁1号线)

了解达内动态
关注成都达内教育公众号

首页 | 关于达内 | 课程中心 | 专家师资 | 视频教程 | 学员空间 | 校企合作 | 新闻资讯 | 就业指导 | 网站地图

20016-2025 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56