ubuntu编译linux内核_ubuntu linux编译内核 - CSDN
精华内容
参与话题
  • Ubuntu 编译linux内核

    千次阅读 2018-03-07 14:31:27
    1、准备linux内核源码 [linux kernel](https://www.kernel.org/),下载过程中可能会出现下载失败的情况,多尝试几次即可。 2、在根目录下创建一个新目录 切换到root模式 cd / mkdir linux-4.14.6 3、把...

    1、准备linux内核源码

    [linux kernel](https://www.kernel.org/),下载过程中可能会出现下载失败的情况,多尝试几次即可。
    

    2、在根目录下创建一个新目录

    切换到root模式
    
    cd /
    mkdir linux-4.14.6

    3、把下载的压缩包复制到新目录

    cp linux-4.2.8.tar.xz /linux-4.14.6/

    4、解压内核源码包

    cd /linux-4.14.6/
    tar -xvf linux-4.2.8.tar.xz

    5、进入解压后的目录

    cd linux-4.2.8

    6、make menuconfig保存并退出

    这一步是比较容易出现各种问题的,大部分是因为没要安装好必要的工具。此步骤的最终目标是出现此界面
    如果出现In file included from scripts/kconfig/mconf.c:23:0:
    scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: 没有那个文件或目录
    #include CURSES_LOC
    可能是缺少工具。解决办 sudo apt-get install libncurses5-devmake menuconfig

    make menuconfig

    7、编译并安装

    make命令后要编译很长时间,大约几个小时

    make
    make modules
    make modules_install
    make install
    reboot

    8、重启后验证

    reboot后查看内核版本是否是安装的版本

    uname -r
    展开全文
  • Ubuntu 18.04上编译Linux内核

    万次阅读 多人点赞 2019-01-08 13:43:48
    编译环境我选择了Ubuntu 18.04的虚拟机,内核截止2018-10-14最新版为4.18.14,笔者即将编译这个版本 请确保磁盘空间足够,笔者之前20G编译到最后空间不足,还得重来 如果你想要查看您的空间大小或者扩充磁盘,请...

    一、环境说明

    编译环境我选择了Ubuntu 18.04的虚拟机,内核截止2018-10-14最新版为4.18.14,笔者即将编译这个版本

    请确保磁盘空间足够,笔者之前20G编译到最后空间不足,还得重来

    如果你想要查看您的空间大小或者扩充磁盘,请查看我的另一篇文章https://blog.csdn.net/qq_36290650/article/details/83057832

    二、编译步骤

    • 下载内核源码

    前往https://www.kernel.org/,下载内核源码

    下载到的文件存放在Ubuntu桌面上,如下图

    • 解压

    桌面上右键打开终端,执行以下命令

    sudo tar -xavf linux-4.18.14.tar.xz
    • 安装必要依赖

    此处不同的系统会有所区分,不是使用较新版本Ubuntu的用户请注意区分

    命令如下:

    sudo apt-get install gcc make libncurses5-dev openssl libssl-dev 
    sudo apt-get install build-essential 
    sudo apt-get install pkg-config
    sudo apt-get install libc6-dev
    sudo apt-get install bison
    sudo apt-get install flex
    sudo apt-get install libelf-dev
    
    • 开始准备编译

    cd ~/Desktop/linux-4.18.14/
    sudo cp /boot/config-4.15.0-20-generic .config
    sudo make menuconfig

    会出现下图

    直接上下键,跳转至"Exit",即所有都为默认选项

    然后接着输入指令

    sudo make
    sudo make modules_install

    编译过程如下图,需要很久,取决于电脑性能

    三、安装

    接着输入一下命令

    sudo mv  ~/Desktop/linux-4.18.14  /usr/src/
    cd /usr/src/linux-4.18.14/
    sudo make install
    sudo mkinitramfs -o /boot/initrd.img-4.18.14 
    sudo update-initramfs -c -k 4.18.14
    sudo update-grub2

    四、检验成果

    sudo shutdown -r now
    uname -a

     

     

    展开全文
  • 操作系统:ubuntu-16.04.6-server-amd64.iso kernel:iTop4412_Kernel_3.0_20180604.tar.gz 交叉编译环境:arm-2009q3.tar.bz2 1,首先安装镜像,在vmware中安装,具体怎么安装就不介绍了,默认就行,安装时记得...

    操作系统:ubuntu-16.04.6-server-amd64.iso

    kernel:iTop4412_Kernel_3.0_20180604.tar.gz

    交叉编译环境:arm-2009q3.tar.bz2


    1,首先安装镜像,在vmware中安装,具体怎么安装就不介绍了,默认就行,安装时记得要断网,防止安装时从网上下载东西,导致安装很慢。安装完后:

    备注:(此时如果使用apt安装软件会失败,此时提示:

    Media change: please insert the disc labeled
    'Ubuntu 7.10 _Gutsy Gibbon_ - Release i386 (20071017)'
    in the drive '/cdrom/' and press enter

    这时可以打开文件/etc/apt/sources.list文件,注释掉cdrom那一行

    deb cdrom:[Debian GNU/Linux 6.0.7 _Squeeze_ - Official amd64 DVD Binary-1 20130223-14:06]/ squeeze contrib main

    然后执行

    sudo apt install update

    此步可以省略)

    接下来修改镜像源,由于默认的镜像源,下载东西很慢,所以换到国内的。在桌面版可以直接图形化配置,此时则需要修改文件

    /etc/apt/sources.list

    由于,没法从外部粘贴复制,所以就用U盘从其他虚拟机拷贝过来,直接覆盖掉原来的。

    # deb cdrom:[Ubuntu 16.04.2 LTS _Xenial Xerus_ - Release amd64 (20170215.2)]/ xenial main restricted
    
    # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
    # newer versions of the distribution.
    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main restricted
    
    ## Major bug fix updates produced after the final release of the
    ## distribution.
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates main restricted
    
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
    ## team. Also, please note that software in universe WILL NOT receive any
    ## review or updates from the Ubuntu security team.
    deb http://mirrors.aliyun.com/ubuntu/ xenial universe
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates universe
    
    ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
    ## team, and may not be under a free licence. Please satisfy yourself as to 
    ## your rights to use the software. Also, please note that software in 
    ## multiverse WILL NOT receive any review or updates from the Ubuntu
    ## security team.
    deb http://mirrors.aliyun.com/ubuntu/ xenial multiverse
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial multiverse
    deb http://mirrors.aliyun.com/ubuntu/ xenial-updates multiverse
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-updates multiverse
    
    ## N.B. software from this repository may not have been tested as
    ## extensively as that contained in the main release, although it includes
    ## newer versions of some applications which may provide useful features.
    ## Also, please note that software in backports WILL NOT receive any review
    ## or updates from the Ubuntu security team.
    deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
    # deb-src http://us.archive.ubuntu.com/ubuntu/ xenial-backports main restricted universe multiverse
    
    ## Uncomment the following two lines to add software from Canonical's
    ## 'partner' repository.
    ## This software is not part of Ubuntu, but is offered by Canonical and the
    ## respective vendors as a service to Ubuntu users.
    # deb http://archive.canonical.com/ubuntu xenial partner
    # deb-src http://archive.canonical.com/ubuntu xenial partner
    
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted
    # deb-src http://security.ubuntu.com/ubuntu xenial-security main restricted
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
    # deb-src http://security.ubuntu.com/ubuntu xenial-security universe
    deb http://mirrors.aliyun.com/ubuntu/ xenial-security multiverse
    # deb-src http://security.ubuntu.com/ubuntu xenial-security multiverse

    这个是从ubuntu-16.04.6-desktop-amd64.iso拷贝过来的,大家在win下新建个文件,拷贝进去,再用U盘将文件拷贝进ubuntu中,覆盖掉原来的,这个镜像源是阿里的,大家也可以用其他的。


    2,安装ssh服务

    由于在ubuntu中无法粘贴复制和传输文件,所以需要安装ssh,使用xshell登录,大家也可以用其他的软件登录。

    sudo apt install openssh-server

    此时切换为了root用户权限,并将内核源码和编译器上传到了虚拟机中。

    #获取root权限
    sudo -s

    3,安装交叉编译器

    解压arm-2009q3.tar.bz2到/opt目录,并安装支持32位的lib文件

    #解压文件
    sudo tar -xvf arm-2009q3.tar.bz2 -C /opt
    
    #安装依赖文件
    sudo apt-get install lib32ncurses5 lib32z1

    此时并没有配置环境变量,大家可以自己配置。


    4,编译linux源码

    解压iTop4412_Kernel_3.0_20180604.tar.gz到当前目录,并进入itop4412_kernel_3.0/目录,打开Makefile文件,配置编译器,修改

    
     195 ARCH            ?= arm
     196 CROSS_COMPILE   ?= /opt/arm-2009q3/bin/arm-none-linux-gnueabi-

    此时执行make zImage 会出现错误

    Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.

    打开kernel/timeconst.pl文件,将373行修改为

    if (!defined(@val)) {   改为if (!@val) {

    即可编译成功。


    5,到此执行 make menuconfig仍会出错,需要安装 make和gcc

    sudo apt install make
    sudo apt install gcc

    执行make menuconfig仍会出错

    root@ubuntu:~/itop4412-src/itop4412_kernel_3.0# 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.
     *** 
    /home/kingwho/itop4412-src/itop4412_kernel_3.0/scripts/kconfig/Makefile:215: recipe for target 'scripts/kconfig/dochecklxdialog' failed
    make[1]: *** [scripts/kconfig/dochecklxdialog] Error 1
    Makefile:501: recipe for target 'menuconfig' failed
    make: *** [menuconfig] Error 2
    

    解决办法

    sudo apt install libncurses5-dev

     

    展开全文
  • ubuntu20.04编译Linux5.6.14内核

    千次阅读 2020-05-24 16:22:22
    1、下载最新的Linux内核,小版本号为偶数是稳定版本,我们选择稳定版本下载。内核官方网站 https://www.kernel.org/,点击那个屎黄色的按钮就开始下载了,现在最新的版本是5.6.14,要知道更新了什么自己去看文档吧,...

    1、下载最新的Linux内核,小版本号为偶数是稳定版本,我们选择稳定版本下载。内核官方网站 https://www.kernel.org/,点击那个屎黄色的按钮就开始下载了,现在最新的版本是5.6.14,要知道更新了什么自己去看文档吧,我也懒得看了。
    在这里插入图片描述
    2、下载完是一个.tar.xz的压缩包,使用下面这个解压吧。

    tar xf linux-5.6.14.tar.xz 
    

    解压完进入目录

    cd linux-5.6.14/
    

    偷偷去看一下就是下面这样的,Ubuntu20暗黑模式可以吧!
    在这里插入图片描述
    3、直接配置会出现好多奇葩问题,都是些依赖问题,需要看具体打印,比如说下面这样的
    在这里插入图片描述
    那就安装一下依赖解决吧,如果下面这些还解决不了你的问题,那就请你去找度娘了,毕竟我也忘了我之前有没有安装其他的,哈哈哈。

    sudo apt-get install libncurses5-dev flex bison libssl-dev
    

    4、启动配置

    make menuconfig
    

    终于成功了一步,配置选项非常多,感兴趣的盆友可以深入了解每个选项的含义,这里我就偷懒使用默认保存好了。不过好像默认保存就是使用当前内核的配置的,这样的话,第五条不就多余了,哈哈。
    在这里插入图片描述
    在这里插入图片描述
    5、配置编译选项,默认直接保存是可以用的,但是为了避免出现意想不到的问题,还是用你现在有的吧,可以去这个目录拷贝一个/boot/config-xxx,xxx是现在内核的配置(xxx处使用TAB补全),然后将它放到内核源码目录下,重命名为.config。

    cp /boot/config-xxx .config
    

    然后使用配置

    make oldconfig
    

    6、我们加点东西吧,这样好玩一些,比如修改init目录下的main.c的start_kernel函数中加入一条打印,这样系统启动第一条打印就是你加入的了!

    printk("JC love linux!!!");
    

    在这里插入图片描述
    7、然后就是开始编译了,这就看谁的电脑配置牛叉了,我的编译了差不多一个小时,听说还有三个小时的。为了加快编译那就多开几个线程吧,一般是CPU内核数+1,比如四核就-j5。

    make -j5
    

    在这里插入图片描述
    8、编译安装内核模块

    sudo make modules_install
    

    在这里插入图片描述
    9、安装内核

    sudo make install
    

    在这里插入图片描述
    10、清理旧内核,这一步是不需要的,你或许需要回退内核版本,以备不时之需,但是我强迫症,不想看到没有用的东东。

    sudo dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge
    

    删除/boot/目录下config-xxx.old,System.map-xxx.old,vmlinuz.old,vmlinuz-xxx.old文件

    sudo rm -f xxx.old
    

    11、查看当前内核版本

    uname -a
    

    在这里插入图片描述
    已经使用最新的版本啦!!!

    12、重启系统

    reboot
    

    13、看看我们加入的打印吧,由于Ubuntu启动屏蔽了一些启动打印,那我们去找log看看好了。

    sudo cat /var/log/kern.log
    

    好多打印呀,我们的打印在哪里?我们搜索一下,点一下小放大镜,找到了!!!容我激动一分钟!!!
    在这里插入图片描述
    咦!还有特别的发现,居然支持两个国产CPU,Hygon海光和zhaoxin兆芯,国产还需要加油哈!

    后记:通过编译内核,我们发现这个过程还得很简单的,没有想象的复杂,当然深入学习肯定会越来越复杂,但是内核编译成功运行,给了我学习Linux的极大信心和成功的满足感,希望看到此文的盆友共勉。

    展开全文
  • 文章目录使用工具及环境...有个操作系统实验,然后呢,最开始的实验内容就是编译Linux内核,这个东西有些恶心,错一个结果就错,而且你还不知道哪里错了,好久没写文章了,这次就把这个记录一下吧,顺便后排感谢某...
  • Ubuntu下的Linux内核编译及安装

    千次阅读 2019-01-24 22:21:19
    Linux的module其实可以看作是内核的插件。 在Linux系统中,可以通过文件 cat /proc/modules xxxxxxxxxx1 1cat /proc/modules 查看相关的驱动模块。 也可以通过命令 lsmod xxxxxxxxxx1 1lsmod 查看,lsmod只是将/proc...
  • 操作系统作业——Ubuntu编译linux内核

    千次阅读 2019-03-14 16:22:52
    从网上下载新的内核源代码开始,写出编译内核的具体过程,Step by step,包括每一个命令的使用。 Step 1: 查看自己的 Ubuntu 内核版本(笔者的版本为 4.15.0);并安装相关依赖 sudo apt-get install build-...
  • Ubuntu编译Linux内核

    千次阅读 2012-06-08 09:05:49
    ubuntu 10.10上构建内核树  我们平时使用的用户程序和驱动程序不一样,驱动程序作为一个模块连接到内核模块并运行在内核空间里。引用LDD上的一句话“因为2.6内核的模块要和内核源代码树中的目标文件连接,通过...
  • 如何更新/替换ubuntu16.04内核

    万次阅读 2017-01-23 22:33:20
    如何更新/替换ubuntu...下载内核代码因为kernel.org的代码和ubuntu内核的代码并不完全一致,所以直接从kernel.org下载下来的代码无法确保编译后可以成功运行于老的ubuntu平台,所以应该使用ubuntu的最新的内核代码下
  • Ubuntu16.04LTS下编译Linux-4.15.7内核

    千次阅读 2018-04-02 08:46:31
    操作系统原理-课后作业1在Ubuntu16.04LTS下编译Linux-4.15.7内核一、下载内核官网:https://www.kernel.org/我下载的是Linux-4.15.7版本。·在终端输入sudo –su切换到root账户。·输入mv linux-4.15.7.tar.gz /...
  • 查看编译linux内核所用的gcc版本

    千次阅读 2011-07-20 17:03:19
    cat /proc/version结果为Linux version 2.6.35-22-generic (buildd@yellow) (gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5) ) #35-Ubuntu SMP Sat
  • ubuntu 12.04自己编译内核方法

    千次阅读 2014-06-17 13:03:35
    1 #先获取内核源码包,这个不能直接从kernel.org上下,因为ubuntu内核ubuntu公司对其打过补丁,即定制过,所以可用如下方法下载: sudo apt-cache search linux-source 如: rebi@freedom:~$ sudo apt-cache ...
  • Ubuntu16.04编译Linux内核

    千次阅读 2018-03-15 13:30:39
    本文介绍在Ubuntu编译Linux内核并添加新的启动项信息。第一步:下载内核源码并解压内核源码可以在官网下载:点击打开链接笔者用的内核版本是4.14的。把下载好的内核源码放在/usr/src/kernel目录下,没有这个目录的...
  • ubuntu环境下重新编译内核

    万次阅读 2013-01-26 17:53:08
    由于调试内核、驱动或工作需要,有可能需要对ubuntu下的内核进行重新编译,本文对内核重新编译过程进行简单分析,在进行重新编译内核前你可以通过uname -a来确认你的linux系统的当前版本。 1.根据你的需要获取内核...
  • Ubuntu14.04编译安装Kernel(上)

    千次阅读 2017-01-01 14:44:35
    在一个Linux系统中, 可以同时存在多个内核, 启动时可选其中之一来运行. 启动之后, 不管使用的是哪个内核, 表现是一样的. 下面, 我们就尝试着在Ubuntu16.04中安装新的内核. ...[2]编译安装linux内核步骤
  • 删除Ubuntu中不用的内核

    万次阅读 2018-03-20 19:42:37
    最近在学习Linux相关的知识,免不了查看Linux源代码和修改源代码,并且编译Linux内核。下面简单介绍一下如何删除Ubuntu中不用的内核。1、查看Linux中当前使用的内核:使用 uname -a 或者 uname -r 命令2、查看Linux...
  • ubuntu16.04LTS下编译linux内核

    千次阅读 2016-12-10 17:03:16
    编译linux首先要下载好linux源代码文件 点此进入linux内核源代码官网:https://www.kernel.org/ 你可以选择最新的版本进行下载,截至本文,linux内核版本已经到4.8,笔者使用的是4.5版本。 stable版的内核1...
  • 操原作业(一)之Ubuntu编译内核

    千次阅读 2018-05-13 09:31:05
    查看内核版本: 安装相关依赖: sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make等) kernel-package (Debian 系统里生成 ...
  • 1、apt-get 代码:  apt-cache search linux-source 或者在http://www.kernel.org/下载内核源码 执行用这条命令系统会提示你安装适合你内核版本的...执行这条命令就会自动下载并安装适合我系统内核Linux-sour
  • 写在前面: ...下面为编译内核流程,由于最近项目需要Ubuntu1204,因此以Ubuntu1204为例,其他版本使用同样的操作,题主在1604上也使用的同样的操作: 一、下载需要的内核 https://mirrors.edge.kerne...
1 2 3 4 5 ... 20
收藏数 40,262
精华内容 16,104
关键字:

ubuntu编译linux内核