linux内核编译最详细,Linux内核编译详细教程,linux内核编译_weixin_39969340的博客-程序员宝宝

技术标签: linux内核编译最详细  

Linux内核编译详细教程,linux内核编译

尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统。

20180122134947637.png

kernel-4.14.14 内核文件约96MB,解压后得到linux-4.14.14目录约900MB。在终端中切换到解压后的linux-4.14.14文件目录,执行下面的命令:

1. .config

复制一份当前系统编译时的配置,在/usr/src目录下

$ ls /usr/src/

linux-headers-4.10.0-35 linux-headers-4.8.0-36

linux-headers-4.10.0-35-generic linux-headers-4.8.0-36-generic

其中,在 linux-headers-*-generic目录下存在 .config文件,复制一份到linux-4.14.14目录下

linux-4.14.14$ cp /usr/src/linux-headers-4.10.0-35-generic/.config .

2. 编译配置

可能出现的问题

$ make menuconfig

*** Unable to find the ncurses libraries or the

*** required header files.

*** 'make menuconfig' requires the ncurses libraries.

***

*** Install ncurses (ncurses-devel) and try again.

***

scripts/kconfig/Makefile:202: recipe for target 'scripts/kconfig/dochecklxdialog' failed

make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1

Makefile:543: recipe for target 'menuconfig' failed

make: *** [menuconfig] Error 2

编译出了问题,提示缺少ncurses相关的库,安装就好

# 提示找不到ncurses-devel包

# sudo apt-get install ncurses-devel

sudo apt-get install libncurses5-dev

安装好之后,重新执行,选择[load]–>[OK]–>[Save]–>[OK]–>[EXIT]–>[EXIT]

$ make menuconfig

HOSTCC scripts/kconfig/mconf.o

HOSTCC scripts/kconfig/lxdialog/checklist.o

HOSTCC scripts/kconfig/lxdialog/util.o

HOSTCC scripts/kconfig/lxdialog/inputbox.o

HOSTCC scripts/kconfig/lxdialog/textbox.o

HOSTCC scripts/kconfig/lxdialog/yesno.o

HOSTCC scripts/kconfig/lxdialog/menubox.o

HOSTLD scripts/kconfig/mconf

scripts/kconfig/mconf Kconfig

配置完结果

20180122134947638.png

3. 编译内核

编译启动映像

编译的过程比较耗时,-jN部分, N越大,编译速度越快,当然,不要超过自己机器的上限。设置为256,整个内核编译只需要花费大概10min左右。

make bzImage -j256

可能遇到的2个问题:

Makefile:942: *** "Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel". Stop.

缺少相应的库,安装即可:sudo apt-get install libelf-dev

fatal error: openssl/opensslv.h: No such file or directory

没有安装openssl的,需要先安装openssl: sudo apt-get install libssl-dev

编译模块

直接执行 make modules -j256

4. 安装内核

安装内核的过程就快的很多了,这和一般的软件安装包的安装软件 是相似的。

先安装模块

root # make modules_install

再安装内核

root # make install

完成安装之后,会在/boot内生成对应的内核相关文件,重启之后,在启动引导页面,会让我们选择启动的内核,这时我们可以选择是当前默认的4.10内核还是刚刚编译安装的更新的4.14内核。

5. 更改启动grub

grub就是管理Ubuntu系统启动的一个程序,我们编译好的内核要设置为缺省运行项,修改对应的grub,其实也很简单。

查看当前:

$ cat /proc/version

Linux version 4.10.0-35-generic ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #39~16.04.1-Ubuntu SMP Wed Sep 13 09:02:42 UTC 2017

$cat /boot/grub/grub.cfg | grep 4.10

....

[未实操]

mkinitramfs 4.14.14 -o /boot/initrd.img-4.14.14

update-grub2

update-grub2命令会帮我们自动修改grub

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39969340/article/details/116632393

智能推荐

修改android5.1系统分辨率_梦幻贝壳的博客-程序员宝宝_android 5.1系统 dpi设置

我用的屏幕分辨率是1280x800,原来主板适配的屏幕分辨率为1024x768,所以需要更改安卓系统的分辨率和dpi值1.修改系统的dpi值根据参考资料,找到“touch device/softwinner/tulip-t1/tulip_t1.mk”文件,修改dpi参数值"ro.sf.lcd_density=213"注意:修改一些配置项,重新编译安卓源码有可能会忽略而不编译,用touch更新配置文

apache lucene_Apache Lucene的结构_dnc8371的博客-程序员宝宝

apache lucene 无可估量的高贵的Apache软件基金会(Apache Software Foundation)产生了许多巨大的产品(Ant,CouchDB,Hadoop,JMeter,Maven,OpenOffice,Subversion等),这些产品有助于构建我们的数字世界。 Lucene也许是一个鲜为人知的瑰宝,“……提供基于Java的索引和搜索技术,以及拼写检查,命中突出显示...

【计算机网络】TCP四次挥手过程详解_白速龙王的回眸的博客-程序员宝宝_四次挥手过程

【TCP四次挥手过程】1.第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送,客户端进入fin_wait_1状态2.第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1,服务端进入Close_wait状态。此时TCP连接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接受3.第三次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入Last_ack状态4.第四次挥手:客户端收到FIN后,客户端进入Time_

win7安装linux子系统,linux系统装win7系统安装教程【图文教程】_如何科学养鱼的博客-程序员宝宝

说到linux系统可能很多人都不是特别的了解,因为在我们接触电脑用的最多的还是Windows系统。linux系统是一个基于POSIX多用户和多任务的一种CPU操作系统。但是一般人在选择的时候,还是会倾向于Windows系统,那么对于电脑安装的是linux系统的用户又该在这基础上如何安装Windows7系统的。下面小编就来为大家介绍一下linux系统装win7系统安装教程。一、Linux系统安装XP...

EF CodeFirst Newtonsoft.Json转换字符串报错_weixin_30873847的博客-程序员宝宝

主实体类:[Table("Restaurant_Table_Base")] public class Restaurant_Table_Base { public string id { get; set; } public int glsort { get; set; } public string cm...

应用移动端银行卡识别技术,实现APP端快捷绑定银行卡号_AI人工智能+的博客-程序员宝宝

手机支付、网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付,用手机银行进行消费和转账。但是,整个线上支付流程中,还存在一个关键的步骤:输入绑定银行卡卡号。于是对于商业移动应用服务商来说,个人银行卡账户识别成为了移动互联网时代新的需求。  在支付宝、微信支付的带动下,越来越多的行业用户希望在其业务系统中集成手机拍移动端银行卡识别接口,进而简化用户操作,提升用户体验。比如:证券公司为股民开户时需要绑定银行卡账号;保险公司为车险用户赔付时需要登记用户的银行卡账号等等。在传统情况下,...

随便推点

记录-爬取智联招聘_DDua_CN的博客-程序员宝宝_爬取智联搜索人才画面

最近准备找工作了,想从智联上爬一下青岛和上海的python和java相关岗位信息,所以决定写个爬虫,记录一下。前戏正式开搞之前先揉捏一下要爬取的智联的搜索界面:1、动态还是静态?2、url,headers,params?1、动态还是静态?首先是第一个问题,F12找了一下需要爬取的信息在class="contentpile"的div中。源代码中看了一眼,发现里面除了有个加载中显示的图...

Mac基于Docker方式实现Elasticsearch集群搭建_//wilburnWang的博客-程序员宝宝

基于Docker方式实现Elasticsearch集群搭建1、拉取Elasticsearch2、创建es挂载目录创建3个文件夹用于存放es挂载地址:es01、es02、es033、创建配置文件及数据存放目录我们以es01 为例,cd es01,增加es01.yml配置文件:# es01.yml 根据自己环境修改ip地址cluster.name: elasticsearch-clusternode.name: es-node1network.bind_host: 0.0.0.0net

Oracle 数据库11g新特性之高效 PL/SQL 编码_weixin_33994429的博客-程序员宝宝

Oracle 数据库11g新特性之高效 PL/SQL 编码转自:http://space.itpub.net/1384/viewspace-217959自推出以来,PL/SQL 就一直是在 Oracle 数据库中编程的首选语言。经过一段时间的发展,我们看到,由于该语言可以实现越来越多需要较少编码的功能,它已经演变为一个综合的开发平台。Oracle 数据库 11g使得 PL/SQL 编码...

webview加载网页出现("找不到网页net:err_unknown_url_scheme")_xjbclz的博客-程序员宝宝

情况:项目中需要利用webview调用写好的java后台网页,并利用网页端的第三方通联支付。 问题一:前面的网页跳转都能支持,没有任何问题. 当跳转到支付界面的时候,点击”首次使用请安装控件“,有点击效果,但没有提示下载控件。 解决方法:webview.setDownloadListener(new MyWebViewDownLoadListener());  //在前

unshare命令详解及案例_张哲溪的博客-程序员宝宝_unshare

unshare命令详解1.名字unshare - run program with some namespaces unshared from parent(使用与父程序不共享的名称空间运行程序)2.摘要unshare [options] program [arguments]3.描述Unshares the indicated namespaces from the parent process and then executes the specified program. The n

idea jar放进本地仓库 为何依赖不了_10个 解放双手的 IDEA 插件,少些冤枉代码_weixin_39828338的博客-程序员宝宝

IT服务圈儿有温度、有态度的IT自媒体平台作者:程序员内点事本文经公众号:程序员内点事(ID:chengxy-nds)授权转载,如需转载请联系出处❝友情提示:插件虽好,可不要贪装哦,装多了会 卡 、卡 、卡 ~❞正经干活用的分享一点自己工作中得心应手的IDEA插件,可不是在插件商店随随便便搜的,都经过实战检验,用过的都说好。可能有一些大家用过的就快速划过就行了。1、GenerateAll...

推荐文章

热门文章

相关标签