天天看点

debian9升级4.9.0内核到4.19.2内核过程

更新之前,

##uname -r
4.9.0-8-amd64      

第一步,下载内核,

##firefox www.kernel.org      

打开浏览器,进入到​​www.kernel.org​​,下载你需要的,我这里是要更新最新的内核版本,所以直接点击黄色那个框“Lastest Stable Kernel 4.19.2”,然后保存到/tmp目录下,

注:longterm 是提供长期支持的版本,stable是稳定版本,不是beta测试版本,stable版本不一定是提供长期提供支持的版本,但是longterm一定是stable稳定版本。

第二步,解压内核,

## xz -d linux- linux-4.19.2.tar.xz
## tar -xvf linux-4.19.2.tar      

事实上,我下载下来之后,我debian9系统要我提取,提取的结果就是上面两步解压过程的结果,上面命令我测试过,是可以的。

解压命令参考:​​https://www.jb51.net/article/112859.htm​​

第三步,复制当前系统的内核配置文件到新内核文件下,

## cd /tmp/linux-4.19.2/
## cp /boot/config-4.9.0-8-amd64 .config      

我电脑上还有一个4.9.0-7,我选择4.9.0-8这个,

第四步,编译(这步我个人觉得是可以跳过的,我懒得去测试,编译时间太久了,谁测试了留言告诉我结果),

## make oldconfig      

结果提示,

/bin/sh 1 : bison: not found
scripts/Makefile.lib:196: recipe for target 'scripts/kconfig/zconf.tab.c' failed
...      

 那么安装bison就好,

## sudo aptitude install bison      

再编译,

## make oldconfig      

结果又发现flex没有发现,

/bin/sh 1 : flex: not found
...
...      

继续安装,

## sudo aptitude install flex      

再编译 

## make oldconfig      

结果,我这边是不动了,让我按了几十个回车,才出现

#
# configuration written to .config
#      

原因是,

通过命令界面配置内核,但是会自动载入既有的.config配置文件,并且只有在遇到先前没有设定过的选项时,才会要求你手动设定。然而,make config却会要求你手动设定所有的选项,即使你之前曾设定过。开发者通常会通过此方法将他们的配置更新为官方配置选项所做的变更,以避免重新设定整个内核的配置。

第五步,配置内核,

## make menuconfig      

没有修改的就保存,退出就好。

第六步,正式编译内核,

## make -j 4
makefile : 958 : *** "cannot gerater ORC metadata for CONFIG_UNWINDER_ORC=y,please install libelf-dev,libelf-devel or elfulils-libels-devel"。stop      

对此,安装libelf-dev,因为我这里只能安装这个,其他两个都找不到。

因为(差异处用红色字体)

我参考的文章​​http://www.docin.com/p-282412986.html​​中,当然了,这篇文章比较老,这个地方没有make -j 4,而是 ##fakeroot make-kpkg -initrd -appedn-to-version=kerry -version =1.0 kernel-image,说是会生成一个deb文件,然后使用##deb -i  ***.deb安装新内核。这个地方,我本来是要测试的,结果发现重启之后,/tmp下的东西没有了,所以没有测试过行不行,有朋友愿意测试的,可以的话,请留言告诉我结果。

## sudo aptitude install libelf-dev      

继续make,发现“bc”找不到,继续安装,

## sudo aptitude install bc      

再make,然后进入等待模式...

我这边等待了差不多2个小时,

第七步,安装内核模块,

## sudo make modules_install      

第八步,安装内核,

## sudo make install      

 第九步,更新grub,

## update-grub      
## uname -r
4.19.2