技术标签: linux内核编译最详细
Linux内核编译详细教程,linux内核编译
尝试编译下Linux-kernel 4.14.14,使用Ubuntu 16.04 64位 系统。
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
配置完结果
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
我用的屏幕分辨率是1280x800,原来主板适配的屏幕分辨率为1024x768,所以需要更改安卓系统的分辨率和dpi值1.修改系统的dpi值根据参考资料,找到“touch device/softwinner/tulip-t1/tulip_t1.mk”文件,修改dpi参数值"ro.sf.lcd_density=213"注意:修改一些配置项,重新编译安卓源码有可能会忽略而不编译,用touch更新配置文
apache lucene 无可估量的高贵的Apache软件基金会(Apache Software Foundation)产生了许多巨大的产品(Ant,CouchDB,Hadoop,JMeter,Maven,OpenOffice,Subversion等),这些产品有助于构建我们的数字世界。 Lucene也许是一个鲜为人知的瑰宝,“……提供基于Java的索引和搜索技术,以及拼写检查,命中突出显示...
【TCP四次挥手过程】1.第一次挥手:客户端发送一个FIN,用来关闭客户端到服务器的数据传送,客户端进入fin_wait_1状态2.第二次挥手:服务端收到FIN后,发送一个ACK给客户端,确认序号为收到序号+1,服务端进入Close_wait状态。此时TCP连接处于半关闭状态,即客户端已经没有要发送的数据了,但服务端若发送数据,则客户端仍要接受3.第三次挥手:服务端发送一个FIN,用来关闭服务端到客户端的数据传送,服务端进入Last_ack状态4.第四次挥手:客户端收到FIN后,客户端进入Time_
说到linux系统可能很多人都不是特别的了解,因为在我们接触电脑用的最多的还是Windows系统。linux系统是一个基于POSIX多用户和多任务的一种CPU操作系统。但是一般人在选择的时候,还是会倾向于Windows系统,那么对于电脑安装的是linux系统的用户又该在这基础上如何安装Windows7系统的。下面小编就来为大家介绍一下linux系统装win7系统安装教程。一、Linux系统安装XP...
主实体类:[Table("Restaurant_Table_Base")] public class Restaurant_Table_Base { public string id { get; set; } public int glsort { get; set; } public string cm...
手机支付、网络支付已经非常成熟,消费者已经习惯了使用手机支付宝进行支付,用手机银行进行消费和转账。但是,整个线上支付流程中,还存在一个关键的步骤:输入绑定银行卡卡号。于是对于商业移动应用服务商来说,个人银行卡账户识别成为了移动互联网时代新的需求。 在支付宝、微信支付的带动下,越来越多的行业用户希望在其业务系统中集成手机拍移动端银行卡识别接口,进而简化用户操作,提升用户体验。比如:证券公司为股民开户时需要绑定银行卡账号;保险公司为车险用户赔付时需要登记用户的银行卡账号等等。在传统情况下,...
最近准备找工作了,想从智联上爬一下青岛和上海的python和java相关岗位信息,所以决定写个爬虫,记录一下。前戏正式开搞之前先揉捏一下要爬取的智联的搜索界面:1、动态还是静态?2、url,headers,params?1、动态还是静态?首先是第一个问题,F12找了一下需要爬取的信息在class="contentpile"的div中。源代码中看了一眼,发现里面除了有个加载中显示的图...
基于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 编码转自:http://space.itpub.net/1384/viewspace-217959自推出以来,PL/SQL 就一直是在 Oracle 数据库中编程的首选语言。经过一段时间的发展,我们看到,由于该语言可以实现越来越多需要较少编码的功能,它已经演变为一个综合的开发平台。Oracle 数据库 11g使得 PL/SQL 编码...
情况:项目中需要利用webview调用写好的java后台网页,并利用网页端的第三方通联支付。 问题一:前面的网页跳转都能支持,没有任何问题. 当跳转到支付界面的时候,点击”首次使用请安装控件“,有点击效果,但没有提示下载控件。 解决方法:webview.setDownloadListener(new MyWebViewDownLoadListener()); //在前
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
IT服务圈儿有温度、有态度的IT自媒体平台作者:程序员内点事本文经公众号:程序员内点事(ID:chengxy-nds)授权转载,如需转载请联系出处❝友情提示:插件虽好,可不要贪装哦,装多了会 卡 、卡 、卡 ~❞正经干活用的分享一点自己工作中得心应手的IDEA插件,可不是在插件商店随随便便搜的,都经过实战检验,用过的都说好。可能有一些大家用过的就快速划过就行了。1、GenerateAll...