美文网首页
为Ubuntu换颗“心”

为Ubuntu换颗“心”

作者: 网路元素 | 来源:发表于2019-09-30 07:09 被阅读0次

        对于现在的Linux发行版操作系统,都默认配置好相应的Kernel,但其版本远比最新的要旧,而最新的Kernel除了会修复已发现的BUG,有时还会更新部分框架以及新增功能模块代码,为了确保系统的稳定,还有体验下新功能,我们只好对操作系统的进行换“心”手术,这手术可不简单,首先要获得制作“心”的原材料和工具(即GNU/Linux Kernel源码和编译工具),然后将这些原材料加工成可用的“心”(即可执行的Kernel文件),最后再将这颗“心”更换到操作系统上。经过这么看似简单的3步,就完成了操作系统的核心更换大动作。下面让我们一一体验这些惊心动魄的大动作吧。

0.现有环境

    Ubuntu13.10(3.11.0-12-generic),64位。

1.获取原材料和工具

    刚装好的Ubuntu13.10系统默认使用的GNU/Linux Kernel版本是3.11.0-12-generic,而现在(2014-3-10)从https://www.kernel.org/网站查看到最新的版本为3.13.6,那么就下载它了:

    cd ~
    wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.13.6.tar.xz

    上面步骤从Kernel官网下载了最新的稳定源码包,由于安装好的Ubuntu发行版系统里默认安装好了编译Kernel所需要的编译链接等加工工具(GCC、LD等),我们仅需确认安装进行menuconfig时需要的包(后面的步骤暂不需要,但会讲述到,使用sudo apt-get install libncurses5-dev安装)。

2.加工制作可用的“心”

    获得源码后,我们先将源码包解压:

    tar xvf linux-3.13.6.tar.xz

    解压后需要配置下Kernel,首先进入解压后的源码目录:

    cd linux-3.13.6

    然后执行make help命令来了解我们有哪些配置模式可使用,执行该命令后有如下内容:

Configuration targets:
config - Update current config utilising a line-oriented program
nconfig - Update current config utilising a ncurses menu based program
menuconfig - Update current config utilising a menu based program
xconfig - Update current config utilising a QT based front-end
gconfig - Update current config utilising a GTK based front-end
oldconfig - Update current config utilising a provided .config as base
localmodconfig - Update current config disabling modules not loaded
localyesconfig - Update current config converting local mods to core
silentoldconfig - Same as oldconfig, but quietly, additionally update deps
defconfig - New config with default from ARCH supplied defconfig
savedefconfig - Save current config as ./defconfig (minimal config)
allnoconfig - New config where all options are answered with no
allyesconfig - New config where all options are accepted with yes
allmodconfig - New config selecting modules when possible
alldefconfig - New config with all symbols set to default
randconfig - New config with random answer to all options
listnewconfig - List new options 
olddefconfig - Same as silentoldconfig but sets new symbols to their default value

    从上面的提示,我们需要用到的配置模式是silentoldconfig,接下来我们将现有的Ubuntu里的内核配置文件复制到当前的Kernel源码目录下:

    cp /boot/config-3.11.0-12-generic .config

    接下来执行make silentoldconfig命令更新.config文件,此时有些重要项还是会提示我们进行配置,我们全部按Eenter键默认配置即可,最终会有如下提示已更新.config文件:

#
# configuration written to .config

    更新配置文件后,我们需要开始编译生成目标文件了,此时执行make -j4命令进行编译生成即可(-j后面的数字表示开启4个线程来编译,一般是CPU核心数的2倍)。

3.更换制作好的新“心”

    上面编译好目标文件后,先执行如下命令将生成的模块(驱动KO文件、固件FW和BIN文件)安装到相应目录下:

    sudo make modules_install

    安装好后再安装Kernel:

    sudo make install

    此时会生成相应的Ram Disk镜像文件并更新GRUB的配置,有如下内容输出:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.13.6
Found initrd image: /boot/initrd.img-3.13.6
Found linux image: /boot/vmlinuz-3.11.0-12-generic
Found initrd image: /boot/initrd.img-3.11.0-12-generic
Found memtest86+ image: /boot/memtest86+.bin
done 

4.体验新“心”

    上面已完成了换“心”的全部工作,接下来是开始试用了,将电脑重启后不操作,会默认以最新的Kernel启动进入Ubuntu。

    在原配Kernel的Ubuntu运行uname -a命令有如下输出:

    xinu@slam:~$ uname -a
    Linux slam 3.11.0-12-generic #19-Ubuntu SMP Wed Oct 9 16:20:46 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux 

    在更换新“心”的Ubuntu里运行相同命令有如下输出:

    xinu@slam:~$ uname -a
    Linux slam 3.13.6 #1 SMP Thu Mar 27 19:44:58 CST 2014 x86_64 x86_64 x86_64 GNU/Linux

    至此,换“心”工程实施很顺利,接下来是好好的体验和处理发现的新问题了。

5.后记

    本文是在Ubuntu这一Linux发行版操作系统环境下进行,其他的发行版系统环境也可参考实施。

6.参考网址

    http://lesca.me/archives/config-and-install-kernel.html

相关文章

  • 为Ubuntu换颗“心”

    对于现在的Linux发行版操作系统,都默认配置好相应的Kernel,但其版本远比最新的要旧,而最新的Ker...

  • 书写首个内核模块

    在《为Ubuntu换颗“心”》一文中,我们已经了解到了如何去编译安装新的Kernel,编译过程也生成了相应的内核树...

  • 交换

    用一颗种子换一朵花 用一朵花换一颗心 用一颗心换一颗心 用一份感情换一滴眼泪 用一滴眼泪换一句成全 用一句成全换两...

  • 2019-06-18

    想要脱胎换骨,先换一颗心。

  • 从0开始的昇腾计算环境的安装配置

    首先安装一个Ubuntu系统 换源 参考镜像网站指导为系统换源 清华源[https://mirrors.tuna....

  • win10偷偷 更新导致无法开机怎么办!

    换 Ubuntu 16.04 ...

  • 为Liunx-Ubuntu换源

    本文转载自:win10创建Ubuntu16.04子系统,安装常用软件以及图形界面(包括win10远程桌面连接Ubu...

  • 真情难寻

    珍惜,可以暖一颗心, 无视,可以凉一颗心。 虚情假意,换不来真心实意, 逢场作戏,换不来始终如一。 不懂得珍惜,再...

  • 脑海中的橡皮擦

    用一颗撩人的心去认识一个人 用一颗真心去选择跟他在一起 用一颗永恒的爱心去保护好她 用一颗坚定的心默默为她守候 换...

  • ubuntu16.04 的lamp安装

    安装apache 安装php 当ubuntu14.0时 默认安装php5.5.9 ,可以换源为5.6命令为: 当u...

网友评论

      本文标题:为Ubuntu换颗“心”

      本文链接:https://www.haomeiwen.com/subject/rjylyctx.html