给ubuntu换内核

本文为原创,转载请注明:http://www.cnblogs.com/tolimit/

下载内核源码

  有两种方式,一种方式是直接从官网:https://www.kernel.org/直接下载,另一种方式是通过git进行下载。

  首先,在官网内核版本分为三种:

  • mainline:主线版本,最新的
  • stable:稳定版本
  • longterm:长期支持版本

  对于内核版本后面有个rc的,表示这个版本开始不会往里面添加新的功能和内容,只会在其基础上解决bug(有些驱动除外)。

  如果你搞不懂这几个版本区别,就下载一个stable版本准没错。

  现在我们着重说说如何通过git进行下载内核源码:

  没有安装git的先安装git,命令如下

sudo apt-get install git

  之后新建一个目录用于存放获取的linux内核源码,进入到该目录下,执行如下命令来获取最新的linux内核版本

git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git

  这样就可以直接把内核源码下载到所在目录下,很方便。

注:

  如果需要下载的不是当前最新版本的内核,也可以通过git进行下载其他版本的内核源码,不过在下载其他版本的内核源码的前提是已经通过以上git命令下载过内核源码。

  首先,当通过以上git命令下载好内核源码后,应该会有个linux-stable目录,先进入此目录中,然后执行如下命令查看其他内核源码版本列表

git branch -a

  然后通过以下命令切换到其他内核源码版本的分支

git checkout 版本名称(在git branch中的列表中的名称)

  这样就可以切换到其他版本的linux内核源码了。切换后就直接是目标版本的源码了,也就是说,当执行上面的命令时,git会把其他版本中内容不同的文件替换到本地上,就不用再重新下载一次内核源码了。

配置内核

  下载完成后,通过如下命令可以将当前系统使用的内核配置文件复制到我们下载的最新内核源码目录中,我们要使用这个配置文件进行编译内核

cp /boot/config-x.xx.xxxx-generic  下载的源码目录/.config

  如果需要修改配置,可通过

make menuconfig

  进行修改配置,不过对于menuconfig,好像还会需要其他的库,我印象是ncurses库,如果需要则通过apt-get libncurses5-dev安装这个库即可。

注:

  如果不想使用当前系统使用的配置文件,内核中也提供了不同平台默认的配置文件,这些配置文件放在:

内核源码目录/arch/目标平台类型/configs/

  如果你编译的是arm版本的内核,那目标平台类型就是arm,如果编译的是x86版本的内核,目标平台类型就是x86。在这个目录里,那些默认的配置文件格式一般为XXXXX_defconfig,找到对应的默认配置后,使用命令将其放到内核源码目录下并改名为.config

cp XXXXX_defconfig 内核源码目录/.config

  内核源码目录下的.config是内核编译的基础,其注明了哪些模块需要编译哪些模块不需要编译,又有哪些模块需要编译成模块(以模块进行加载,并不加入到内核镜像中),编译时就是按照里面的列表进行编译的。

编译内核

  先安装必要的工具:

sudo apt-get install build-essential

  在内核源码目录中依次执行以下命令:

make -jx(x是编译时使用的线程数量,如-j2或-j3等。使用线程能加快编译速度)
make modules_install (把安装modules到/lib/modules/目录中)
make bzImage (将内核编译成bzImage类型的内核)
make install (安装内核)

  整个过程会比较久,我大概编译了2,3个小时(虚拟机只配了一个CPU。。。),在编译过程中有可能使用旧的配置文件会导致编译失败,这时可以使用内核源码中默认的配置文件试试。

  make install帮我们做了引导所需要做的工作,基本上make install后重启就直接进入到最新的内核中了,当然,这部分工作我们也可以手动去做,接下来我们说说如何去做引导这部分所需要的工作。

  

  第一步,我们要将编译完成的bzImage复制到/boot/中,并改个名字,比如我的内核版本是4.2.0-rc1,我执行的命令就是

cp 内核源码目录/arch/x86/boot/bzImage /boot/vmlinuz-4.2.0-rc1

  注意编译好的bzImage保存的位置是在内核源码目录/arch/目标平台类型/boot/中,我这里的目标平台类型是x86。

  第二步,将内核源码目录下的System.map文件复制到/boot/中,同样需要改个名字:

cp 内核源码目录/System.map /boot/System.map-4.2.0-rc1

  

  第三步,生成新版本的initrd.img文件

cd /lib/modules/4.2.0-rc1/
update-initramfs -c -k 4.2.0-rc1

  第四步,让grub引导自动查找新内核

update-grub

  最后重启一下,选择自己的新内核进入就可以了,如果希望系统自动进入最新编译的内核,则需要修改grub的配置文件,其配置文件是/boot/grub/grub.cfg,修改此文件中的set default="X"(X是最新内核对应在grub中的编号)。

时间: 2024-10-10 07:17:13

给ubuntu换内核的相关文章

删除ubuntu旧内核

ubuntu的内核经常升级,而老内核并不自动卸载.时间长了,就有一大堆内核垃圾,需要我们手动去清理. 先用uname -a 查看当前内核版本: [email protected]:~$ uname -a Linux xzc-HP-ProBook-4446s 3.13.0-46-generic #77-Ubuntu SMP Mon Mar 2 18:23:39 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux 可见当前版本为3.13.0-46 用dpkg --get-

【Linux学习】Ubuntu下内核编译(一)

(1)当要执行内核配置时,输入make menuconfig时出现错误 遇到这个问题,主要是以为没有ncurses库,而make menconfig 需要这个库,因此需要安装ncurses或者ncurses-devel即可.输入命令:sudo  apt-get  install ncurses或者sudo apt-get  install ncurses-devel. (2)错误 drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_

ubuntu 换源过程中遇到的坑(一):Could not resolve 'mirrors.aliyun.com'

执行更新数据(sudo apt-get update)提示: Err http://mirrors.aliyun.com trusty Release.gpg Could not resolve 'mirrors.aliyun.com' Err http://mirrors.aliyun.com trusty-updates Release.gpg Could not resolve 'mirrors.aliyun.com' Err http://mirrors.aliyun.com trust

ubuntu换最新内核

去https://www.kernel.org查看最新稳定内核版本 打开https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.4.6/ (假设此时最新版是5.4.6) Build for amd64 succeeded (see BUILD.LOG.amd64): linux-headers-5.4.6-050406_5.4.6-050406.201912211140_all.deb linux-headers-5.4.6-050406-generi

ubuntu 更新内核切换内核启动

1. 查看需要更新的内核命令: apt-cache search linux 该命令将会显示所有可以获取的内核 2. 安装内核,假设你要安装的内核为2.6.39-0,则使用下面的命令 sudo apt-get install linux-headers-2.6.39-0-generic linux-image-2.6.39-0-generic 安装后,reboot即可,重启后,既是以新内核启动 ===================================================

ubuntu慢?如何给 ubuntu 换源 提速

新手在使用Ubuntu的时候可能在升级时感觉很慢,如果这样他就需要换一个适合自己的源了. 下面我就简单的说一下怎样换源. 在终端里输入 sudo cp /etc/apt/sources.list /etc/apt/sources.list_backup (表示备份列表) 再输入 sudo gedit /etc/apt/sources.list 你就能看到源列表了,把你看到的都删除然后粘贴上适合你的源 源,自己找一个适合自己的 Raring(13.04)版本 Ubuntu 官方更新服务器(欧洲,此

Ubuntu 更新内核操作

一.只要使用apt-get update && apt-get upgrade就好 当然上面那个命令不会改变你Ubuntu的版本,如果你还要升级Ubuntu的版本(比如从13.10升级到14.04),那你要敲:sudo dist-upgrade 更新列表 apt-get update 更新软件包 apt-get upgrade 查看软件源内核信息 apt-cache search linux-image-xxxx 查看某一版本内核有哪些包 [email protected]:~# apt-

Ubuntu升级内核

看到微软开源.兼容.豁达,很高兴,今天研究一下Docker,查看Ubuntu内核版本,发现2.3有点低,不符合当前版本. 最低内核版本要求3.10. 升级Ubuntu内核. 首先 下载内核 网站https://www.kernel.org/ 复制下载地址https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.43.tar.xz 你可以任意选择适合你的版本. 在Linux中/usr/src/kernels/ 下 #wget https://w

ubuntu换系统下载路径源

ubuntn默认下载路径的源是国外的下载很慢换成国内的下载路径会好很多 在ubuntu应用搜索框(左上脚那个)中输入software 1.software&Updates 应用点击software 2.在弹出的界面中的download中选择other 3.在之后弹出的框中选到china 4.在里面选个源 我选的是阿里云的源 5.然后点击Choose server 就可以了  在弹出的框中输入你的root密码点击authenticate 之后点击close 在reload就可以了