linux源码升级编译内核

内核源码更新内核(以linux内核4.11.7为例子)

1. 内核更新前的工作准备

  a. 系统:ubuntu16.04的Desktop版本,内核为linux-4.8.0;

  b. 虚拟机VMware Workstation Pro 12,并安装上述的ubuntu版本系统;

  c. 配置好相应的ubuntu16.04的基本操作,包括安装vim,nfs等必要包;

  d. 在http://www.kernel.org上下载最新的内核源码包,本文使用的为当时最新的内核源码包linux-4.11.7.tar.xz。

 

2. 解压内核源码包

  a. 在ubuntu16.04中的/usr/src中建立目录linux-kernel-4.11:

    sudo mkdir /usr/src/linux-kernel-4.11

  b. 解压内核源码

    sudo xz –d linux-4.11.7.tar.xz,得到 linux-4.11.7.tar的tar包;

    sudo tar –xvf linux-4.11.7.tar,得到linux-4.11.7解压源码包。

 

3. 获取内核源码包的相关说明和配置编译内核的最小要求的文档

  a. 进入linux-4.11.7目录中,打开README文档说明,查看到相关的文档说明信息

   在Documentation/admin-guide/README.rst中,然后打开它

  b. 在README.rst文档中,我们看到了对内核编译的两种方式,其中一种就是使用打

   补丁的方式,另外一种就是现在我们在做的,使用源码内核包来进行内核升级(

     查看到144行,有教导我们如何编译内核的方式)

   

  c. 按照上述的文档的方法,我们在自己的家目录中建立相应的文件夹来进行编译内核

   本文使用的是host用户名,建立目录为    

    sudo mkdir –p /home/host/build/kernel  

     (这个目录是随自己建立的,但是不能建立在ubuntu和windowns共享的文件目录下,因为有些链接文件是共享目录无法建立的)

 

4. 获取编译内核的要求说明文档

  a. 进入Documentation目录找到Changes这个文件,就是我们编译内核的环境要求;

  b. 打开Documentation/Changes这个文件,获取重要信息;

    

  c. 上述的信息中,第一列代表需要安装的库包,第二列表示第一列库包的最小版本信息,第三列表示查询当前系统这个包的命令,

   没有的添加之,版本不够的就升级;

  d. 可以在查询之前升级当前系统的信息:

    sudo apt-get update   升级当前新安装的包信息;

    sudo apt-get upgrade  升级系统附带的最新包

 

5. 安装编译之前需要安装另外一些库文件和lib:

  a.  sudo apt-get install automake autoconf libtool  进行make和库连接的关键

  b.  sudo apt-get install libssl-dev                            防止出现openssl/ioensslv.h找不到

  c.  sudo apt-get install libncureses5-dev                防止出现curses.h没有找到

  d.  sudo apt-get install build-essential                    防止出现系统建立build时候出错

 

6. 进行编译:

  a. 按照Documentation/admin-guide/README.rst的所说,第一步先去掉linux-kernel-4.11源码包中的所有.o文件(在文档的112行);

    sudo make mrproper

  b. 转到141行的内容,按照相应的步骤进行编译;

    i. 配置内核,生成.config文件:

      sudo make O=/home/host/build/kernel menuconfig

      在里面我们不需要修改任何东西,然后点击Save,然后确定保存的名字为.config不变,

           这样就会在我们的/home/host/build/kernel/中出现了.config这个配置文件;

        

    ii. 编译内核(这里一次性编译bzImage和modules):

      sudo make O=/home/host/build/kernel –j4

      其中,-j4表示以4线程的方式进行编译内核,这样会比较快,因此笔者的电脑vmwere配置成2核的,

      所以使用4线程的方式编译,节省编译的时间;

    iii: 安装内核和模块到现有的内核中:

       sudo make O=/home/host/build/kernel modules_install install      

          其中 modules_install为安装模块,install为安装内核

    iv. 到此,如果没有出现任何问题的话,内核的编译就已经完成了。

 

7. 替换当前系统

  a. 找到4.11.07在/lib的位置,并进行mkinitramfs操作:

    sudo find /lib -iname "4.11.7",得到路径为:/lib/modules/4.11.7,那么执行

    mkinitramfs /lib/modules/4.11.7 /boot/initrd.img-4.5.0  

    (注意这时候还是在源码目录中的)

  b. 修改启动的grub

    安装grub:       sudo apt-get install grub2

    更改启动:        update-grub2

    重启系统:           reboot

    查询内核版本: uname -r

   

 

时间: 2024-10-26 00:14:34

linux源码升级编译内核的相关文章

linux源码升级内核

 当前环境: [[email protected] ~]# uname -r 2.6.18-348.el5 配置流程: 1.准备yum库安装g++ gcc [[email protected] ~]# cat /etc/yum.repos.d/rh_5.9.repo [rhel-server] name=Red server baseurl=file:///misc/cd/Server enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM

Linux 源码升级 Openssh

# yum install pam-devel Zlib# tar xzvf zlib-1.2.3.tar.gz# cd zlib-1.2.3# ./configure --prefix=/usr/local/zlib# make# make install OpenSSL# tar xzvf openssl-0.9.8d.tar.gz# cd openssl-0.9.8d# ./Configure # ./conifg --prefix=/usr/local/openssl# make# ma

【转】Linux CentOS内核编译:下载CentOS源码、编译2.6.32-220的错误(apic.c:819 error 'numi_watchdog' undeclared)

一.下载CentOS源码 1.1 查看CentOS版本 cat /etc/issue 1.2 查看Linux内核版本 uname -r 1.3 下载 文件名:kernel-2.6.32-220.el6.src.rpm 下载地址:http://vault.centos.org/6.2/os/Source/SPackages/ 官网:http://vault.centos.org/ 1.4 从kernel-2.6.32-220.el6.src.rpm获取源码 1. rpm -i kernel-2.6

centos6.5源码升级内核

centos6.5源码升级内核 http://www.centoscn.com/CentOS/config/2014/1124/4170.html 2014-04-18 07:11 作者: sularry 来源: 本站 浏览: 0 views 我要评论 字号: 大 中 小 摘要: 1.下载源码包 网址:http://www.kernel.org 在首页可以看到有 stable,longterm 等版本,一般选择下载 longterm 版本,因为此版本为提供长期支持的稳定版,因此我选择 3.12.

linux源码编译安装php出现 cannot find -lltdl

原因: 在编辑php时添加的“–with-mcrypt”选项造成. 解决方法: 1.如果不需要mcrypt,那么编辑php时去掉该选项,然后再make.make install. 2.如果需要mcrypt,那么需要安装libltdl libltdl在libmcrypt软件包中就有,具体过程: #cd /software/libmcrypt-2.5.8/libltdl #./configure –enable-ltdl-install #make #make install 这个时候再回到php的

iTOP-3399开发板Linux系统编译烧写-获取/安装/编译Linux源码

6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图: 然后使用解压工具解压得到的源码,如下图: 解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图: 拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图: 解压完

[Android编译(二)] 从谷歌官网下载android 6.0源码、编译并刷入nexus 6p手机

1 前言 经过一周的奋战,终于从谷歌官网上下载最新的android 6.0.1_r62源码,编译成功,并成功的刷入nexus6p,接着root完毕,现写下这篇博客记录一下实践过程. 2 简介 自己下载android系统源码,修改定制,然后编译刷入安卓手机,想想还有点小激动呢.简单点说一句话--定制我们自己的MIUI,这就是android的魅力,这篇博客博主就来教大家实现自己的定制系统. 首先,要明白下面的基础知识: (1) 什么是aosp? aosp就是android open source p

【Android 系统开发】CyanogenMod 13.0 源码下载 编译 ROM 制作 ( 手机平台 : 小米4 | 编译平台 : Ubuntu 14.04 LTS 虚拟机)

作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/51592930 手机的两种模式 : 在下面有详细的图片示例; -- Recovery 模式 : 音量键增加 + 电源键, 长按上述组合键, 看到 "MI" 的 LOGO 后即进入 Recovery 模式; -- Fastboot 模式 : 音量键减小 + 电源键, 长按上述组合键, 看到 "FASTBOOT" 后, 即 进入 FA

用linux源码构建xen的domU

linux源码版本linux-3.14,可以从https://www.kernel.org/获取. 由于已经有了dom0(fedora19),现在需要安装domU,domU可以用xen源码自带的miniOS,这个os是xen客户机的最小系统,有机会一定安装一下试试.这次我配置安装的是linux. 参考xen的wiki页 http://wiki.xenproject.org/wiki/Mainline_Linux_Kernel_Configs Configuring the Kernel for