ubuntu命令安装内核源码及升级内核源码
Ubuntu编译安装Linux内核过程(整理版)

Ubuntu编译Linux内核过程一、首先解决Ubuntu代理上网的问题1、这种方法要用到/etc/apt/文件夹下的apt.conf文件。
如果您希望apt-get(而不是其他应用程序)一直使用http代理,您可以使用这种方式。
注意:某些情况下,系统安装过程中没有建立apt配置文件。
下面的操作将视情况修改现有的配置文件或者新建配置文件。
sudo gedit /etc/apt/apt.conf在您的apt.conf文件中加入下面这行(根据你的实际情况替换yourproxyaddress和proxyport)。
Acquire::http::Proxy "http://yourproxyaddress:proxyport";保存apt.conf文件。
如果代理服务器需要登录,那么可以在指定代理服务器地址的时候,用如下格式(根据情况把username,password, yourproxyaddress 和proxyport替换为相应内容):http_proxy=http://username:password@yourproxyaddress:proxyp ort2、然后在新立得设置http代理,在系统--系统管理--新立得软件包管理器--设置--首选项--网络里也要设置http的代理二、下载源代码和编译软件的准备下载内核源代码:/注意,点击2.6.39.3内核的F版,即完整版。
如果你懒得去网站点联接,运行下列命令:代码:$cd ~$wget/pub/linux/kernel/v2.6/linux-2.6.39.3. tar.bz2安装有关编译程序。
安装make ,gcc, make-kpkg,运行menuconfig 等等和编译内核相关的工具。
安装不了,请检查/etc/apt/sources.list 文件。
安装所需工具包有关命令:代码:$sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot三、解压源代码注意,网上很多教程上说应该解压到 /usr/src,纯属以讹传讹,linux掌门人linus说解压到任何目录上都可以。
Ubuntu下构建内核源码树的方法

Ubuntu 下构建内核源码树网上好多文章,他大爷的都是转来转去,每一篇中用的。
索性还是自己整理一篇吧。
网上牛人多,但是小白问题更多,更何况咱们这号不入门的,因为最近学内核,要写模块,模块要在源码树下编译安装,又习惯了Ubuntu的OS,不忍转向他方,还是好好摆置摆置它吧,找的几篇文章不怎么好用,下边开始吧。
PS:当前系统是上一篇配置SSH博文里Jun从Ubuntu9.04更新到Ubuntu 10.04的系统。
这个网上都这么装,就这样来吧。
1.安装编译内核所需要的软件build-essential、autoconf、automake、cvs、subversion$ sudo apt-get install build-essential kernel-package libncurses5-devlibncurses5这个软件包在使用menuconfig配置内核的时候会用到。
2.进入/usr/src ,在这里构建源码树,我们用下面指令查看可用的源码包:$ sudo apt-cache search linux-source我的提示是:linux-source - Linux kernel source with Ubuntu patcheslinux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches3.那么就让我们来下载2.6.32版的kernel,通过下边命令:$ sudo apt-get install linux-source-2.6.32等待下载完成。
4.下载完成后,我们进入/usr/src ,默认会在这里,看看他的目录结构:(ls 一下)我的显示可以看到有两对儿Linux-header-2.6.* 的目录,你的应该是只有一对儿,之所以这样是以为我的是从9.04更新到10.4,Ubuntu会保留历史版本,不用管它,记住,这里linux-headers-2.6.32-34-generic 、linux-headers-2.6.32-34、linux-source-2.6.32.tar.bz2 ,这才是我们用到的。
Ubuntu 14.04.1 LTS上编译安装新的kernel

Ubuntu 14.04.1 LTS上编译安装新的kernel1、kernel配置这里就不想自己一个一个地配了,故直接将当前Ubuntu 14.04.1 LTS的kernel配置copy 过来用。
先cd到欲编译的kernel source code的根目录linux-3.15.8,然后copy当前ubuntu系统中的内核配置为新的kernel的内核配置cp /boot/config-3.13.0-32-generic ./.configsudo make oldconfig呵呵,结果发现没有偷太多的懒,还是蹦出来一大堆新的配置选项出来让我选了,估计是新的kernel版本确实是高了不少的原因。
不过基本都选n就完了,因为老的kernel配置项已经够让我的机器工作了。
2、编译和安装sudo make -----不加任何参数直接make,就是make all,它包含make modules了。
sudo make modules_install -----安装modules到/lib/modules下sudo make install -----安装bzimage到/boot下,并且会它会根据/boot下的kernel版本信息自动将新安装的kernel的启动项加到/boot/grub/grub.cfg中。
至此,编译安装就完成了,你只需要restart下你的电脑就会发现启动时Ubuntu有两个版本的kernel可选了。
尽情享受吧!重启后,选择新版本的kernel,然后查看kernel版本信息,cat /proc/versionLinux version 3.15.8 (root@jack) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #1 SMP Mon Aug 4 01:51:38 CST 2014瞧,当前kernel是新编译安装的了吧。
3、删除kernel启动项如果要在GRUB启动项中删除之前自己编译安装的kernel版本,则只需要将/lib/modules 和/boot目录下的安装时copy过来的相关东西删除。
【IT专家】Ubuntu 编译安装 Linux 4.0.5 内核,并修复 vmware 网络内核模块编译错误

Ubuntu 编译安装Linux 4.0.5 内核,并修复vmware 网络内核模块编译错误2015/06/14 1341 . 今天把Ubuntu 14.04 升级到了最新的 4.0.5 的内核版本,本来不打算记录下来的,但是升级的过程中确实遇到了一些问题,因此还是记录下来,分享给遇到同样问题的猿友。
先去官网下载最新的内核压缩包:https://kernel/ 网速不给力,只能用虚拟机里的迅雷下载,然后再拷贝出来。
LZ 把源码包拷贝到/usr/src 下面,直接就在这里编译安装了: # 切换到root 身份$ su# 解压缩源码,得到文件夹/usr/src/linux-4.0.5 # tar xvf linux-4.0.5.tar.xz # cd linux-4.0.5# make mrproper 命令用来清理以前编译时留下的临时文件,# 因为LZ 是解压缩的新包,因此不需要这步# make mrproper# 把当前正在使用的内核编译配置文件拷过来作为模板# cp /boot/config-`uname -r` .config# 启动基于ncurse库绘制的图形配置界面,已经按照当前正在使用的内核的配置选好相关选项了,再启用一些新特性即可# 如果出现如下错误,那么可能是没有安装ncurse 库,执行apt-get install libncurses5-dev 命令安装。
# In file included from scripts/kconfig/mconf.c:23:0:# scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory# #include CURSES_LOC # make menuconfig# 正常是要执行下面这三条命令的,但是Ubuntu 上不用这么麻烦# make install # make modules # make modules_install# Ubuntu 上用包管理器可以把内核和相关模块编译成deb 包,熟悉Ubuntu 的童鞋这下觉得好办多了吧?# 如果提示没有make-kpkg 命令的话,可以先用apt-get 安装# apt-get install kernel-package # make-kpkg clean# 与make 命令一样,j8 参数可以指定8 个线程同时编译# make-kpkg --initrd kernel-image kernel-headers -j8# 坐等编译完成吧,会在上一级目录中生成两个deb 包,接下来安装它们:# dpkg -i linux-image-4.0.5_4.0.5-10.00.Custom_amd64.deb # dpkg -ilinux-headers-4.0.5_4.0.5-10.00.Custom_amd64.deb# grub 貌似不用更新也可以,安装deb 的时候会自动更新# update-grub# 重启系统,进入新的内核吧# reboot 编译、安装、重启都很顺利,但是发现在新内核中启动vmware 的时候提示必须更新内核模块,可是在编译网络模块的时候死活过不去,LZ 猜测可能是由于内核中某些API 被修改了,而vmware 的驱动源码跟最新的内核中的API 不匹配了,因此才报了一些语法错误,没办法,只能手工修改了。
Ubuntu编译安装Linux内核过程

Ubuntu编译安装Linux内核过程编译安装Linux内核是Ubuntu系统用户进行内核优化、定制和个性化的重要方式之一、本文将介绍Ubuntu编译安装Linux内核的过程,帮助用户完成编译安装。
## 1. 获取Linux内核源代码##2.安装必要的工具和依赖项在编译安装Linux内核之前,需要安装一些必要的工具和依赖项,以确保编译过程的顺利进行。
你可以通过以下命令来安装它们:```sudo apt updatesudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev```##3.解压源代码```tar -xf linux-x.x.x.tar.xz```##4.进入源代码目录进入解压后的源代码目录:```cd linux-x.x.x```##5.配置内核在继续编译之前,需要对内核进行配置。
你可以使用以下命令打开配置窗口:```make menuconfig```这个命令会打开一个文本界面的配置窗口,你可以在其中选择和配置不同的内核选项。
根据你的需求进行自定义配置。
##6.编译内核完成内核配置后,可以执行以下命令来开始编译内核:```make -j4```这个命令中的“-j4”表示使用4个线程进行编译。
你可以根据你的系统硬件配置自定义线程数量。
编译内核的时间会根据你的系统配置和编译选项的不同而有所不同。
请耐心等待编译过程完成。
##7.安装内核完成编译后,可以执行以下命令来安装编译得到的内核:```sudo make modules_install install```这个命令将编译得到的内核模块和内核文件安装到系统中。
安装完成后,你需要更新系统的引导加载程序(grub)以使用新的内核。
##8.更新引导加载程序执行以下命令来更新引导加载程序(grub):```sudo update-grub```这个命令会自动检测并添加新安装的内核到引导菜单中。
ubuntu12.04 升级内核实战

ubuntu12.04 升级内核实战ubuntu 12.04内核是linux 3.2.0-24,其实升级到最新版本3.3.4也没什么很大意义,主要是集成了一些新的驱动和一些普通用户用不到的功能,所以基本上本文纯属折腾,但不要随便升级当班设备啊!好了,不废话了,我们开始...........首先是准备条件:①、有一台装有ubuntu 12.04的机器②、先移步到/下载linux稳定版内核③、拥有root权限④、并将下载好的内核解压到/usr/src下,使用命令如下:#tar jxvf linux-3.3.4.tar.bz2这样你就可以得到一个名叫linux-3.3.4好,现在一切都准备好了,接下来就开始配置,编译,安装新内核吧!1,进入刚才的文件夹/usr/src/linux-3.3.4,输入命令:$ make mrproper该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。
而对于第一次编译的代码来说,不存在这些残留文件,所以可以略过此步,但是如果该源代码以前被编译过,那么强烈建议执行此命令,否则后面可能会出现未知的问题。
2,配置编译选项作为操作系统的内核,其内容和功能必然非常繁杂,包括处理器调度,内存管理,文件系统管理,进程通讯以及设备管理等等,而对于不同的硬件,其配置选项也不相同,所以在编译源代码之前必须设置编译选项。
其实我觉得这一步是升级内核整个过程中最有技术含量的,因为要根据自己的需要正确选择yes or no需要对计算机方方面面的知识都有所了解。
但是这里的选项实在是太多了,大概有几百项之多,我以前曾尝试着一项一项的选,但是最后还是放弃了,因为有很多选项不是很明白。
既然这样,难道没有什么简便的方法么?当然有!那就是make menuconfig 或者make xconfig。
我使用的是make menuconfig,但是前提条件是要装ncurses。
ubuntu16.04升级内核的方法步骤

ubuntu16.04升级内核的⽅法步骤⼀、环境在虚拟机上运⾏的ubuntu16.04 , 使⽤命令uname -r查看当前系统内核版本当前版本为4.15.0-45-generic要升级的内核为4.20.2⼆、准备需要的材料选择对应的⽂件,我的是amd64使⽤命令下载(也可以⽹页下载)wget https:///~kernel-ppa/mainline/v4.20.2/linux-headers-4.20.2-042002_4.20.2-042002.201901171620_all.debwget https:///~kernel-ppa/mainline/v4.20.2/linux-headers-4.20.2-042002-generic_4.20.2-042002.201901171620_amd64.debwget https:///~kernel-ppa/mainline/v4.20.2/linux-image-unsigned-4.20.2-042002-generic_4.20.2-042002.201901171620_amd64.deb wget https:///~kernel-ppa/mainline/v4.20.2/linux-modules-4.20.2-042002-generic_4.20.2-042002.201901171620_amd64.deb三、安装使⽤命令sudo dpkg -i *.deb安装完成后,重启ubuntu系统使⽤命令uname -r查看当前版本号内核升级成功。
四、遇到问题及解决⽅案在安装过程中出现使⽤命令打开该⽂件sudo vi /etc/apt/sources.list保存退出,更新源sudo apt-get update,接下来就可以安装 libssl1.1 了,在终端输⼊命令sudo apt-get install libssl1.1再次执⾏sudo dpkg -i *.deb就可安装成功。
Ubuntu手动更新内核终极教程

Ubuntu手动更新内核终极教程说明:本人使用的是vmware9.0 + Ubuntu12.04+linux-3.2.35,如果怕出错最好使用这种组合。
(本教程大概半个小时能搞定)1、首先在vmware中新建一个虚拟机至此虚拟机创建完毕。
2、安装Ubuntu系统,安装过程略,可以参考我的另一份vmware安装ubuntu的文档。
3、安装好系统之后,进入系统打开ubuntu软件中心,在菜单中选择编辑然后选择软件源,接着就会打开一个软件源的配置对话框。
在下方的源下拉列表中选择other(其它),然后找到china(中国),在中国的镜像站点中选择,然后点击对话框的选择服务器按钮,关闭退出即可。
4、打开ubuntu终端,快捷键是“ctrl+alt+t”,输入sudo apt-get update更新软件仓库。
更新完之后再输入sudo apt-get upgrade升级系统,若有提示语言支持不完整可以根据提示安装缺省的语言包。
操作完成之后需要重启系统。
5、安装更新内核过程中需要的一些软件,输入以下命令即可sudo apt-get install build-essentialsudo apt-get install kernel-packagesudo apt-get install libncurses5-dev6、去下载需要的内核,本人下载的是linux-3.2.35。
7、打开终端,进入到下载的linux内核目录,执行tar -xvf linux-3.2.35.tar.bz2 -C /usr/src将内核解压到/usr/src目录。
8、在终端输入cd /usr/src/lnux-3.2.35进入解压后的内核文件夹9、执行sudo make localmodconfig 自动使用系统原有内核配置文件进行内核精简,快速可靠。
10、如果之前编译过内核,先执行以下命令清除以下编译的垃圾文件,头一次编译就不需要了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
sudo apt-get install linux-source 会自动安装当前版本内核的源代码到/usr/src
升级内核源码:
1.将下载过来linux源代码包(tar.bz2包)解压到/usr/src下。
如果你还不知道怎么解压,请google之~解压完毕后可以在/usr/src目录下看到一个linux-
2.6.31.6的文件夹
2.转移目录至linux-2.6.31.6用如下命令:
cd /usr/src/linux-2.6.31.6
3.先配置Ubuntu内核:
make menuconfig
具体怎么配置我不清楚,不过这个基本上不用怎么配置的,直接选最后一项,save,exit 就OK了
4.接着开始编译Ubuntu内核:make
这是一个漫长的过程,慢慢等吧~~这个花了我将近一个半小时的时间
5.加入模块:
make modules_install
6.生成可执行的Ubuntu内核引导文件:
make bzImage (注意i字母要大写)
7.将bzImage复制至/boot下:
cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32Ubuntu内核的bzImage目录为arch/x86/boot/bzImage
8.清除多余的创建文件:
make clean //这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译
9.将System.map复制至/boot下:
cp System.map /boot/System.map-2.6.31.6
10.生成initrd.img 这个很重要,我开始弄错了这个,害的我白重启了一次。
命令:
cd /lib/modules/2.6.31.6
sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 //2.6.32可以为sudo update-initramfs -c - k 2.6.32
11.自动查找新Ubuntu内核,并添加至grub引导:
sudo update-grub
这个过程也可以手动完成,方法是更改/boot/grub目录下menu.lst文件。
这个文件引导系统的启动,结构很简单,就是指定引导文件而已,可以参考已有的启动项修改,我的是在该文件中添加如下内容:
title Ubuntu 9.04, kernel 2.6.31
uuid 753efade-04e8-4e2c-8bbb-965e9792b2f5
kernel /boot/vmlinuz-2.6.31.6 root=UUID=753efade-04e8-4e2c-8bbb-965e9792b2f5 ro quiet splash
initrd /boot/initrd.img-2.6.31.6
//9.10采用的是Grub2 启动文件用grub.cfg代替该文件所在目录为/boot/grub 若手动添加为可参考如下:
menuentry "Ubuntu, Linux 2.6.32" {
recordfail=1
if [ -n ${have_grubenv} ]; then save_env recordfail; fi
set quiet=1
insmod ext2
set root=(hd0,3)
search --no-floppy --fs-uuid --set 3c611c5f-f941-4970-956f-fe4c7bf75714
linux/boot/vmlinuz-2.6.32 root=UUID=3c611c5f-f941-4970-956f-fe4c7bf75714 ro quiet splash
initrd/boot/initrd.img-2.6.32
12.重启电脑:reboot 你会发现启动项里多了一个Ubuntu 9.04, kernel 2.6.31(Ubuntu, Linux 2.6.32)的选项,选择这个,进入系统。
以上介绍Ubuntu内核更新。
转载自: 。