Linux 5.6.14内核编译(新旧内核编译的“坑”)

Linux 5.6.14内核编译(内核4.5.x以上会出现很大差别)

  • 我们先来谈谈内核2.6.x(比如2.6.32.60?)旧版本的“锅”
  • 我们开始正菜

我们先来谈谈内核2.6.x(比如2.6.32.60?)旧版本的“锅”

1.由于旧版本一般是在Ubuntu10之类,很老的系统上编译。这些版本源已经不再更新,所以,装系统时候(整个编译都别装),就不要装网络。
要是装了网络,只能呵呵了。等着重装吧(虚拟机下,重装比修复来得快)
这是为啥呢?由于,他会自动更新源。证据就是,我们在平时安装一些库时候(apt-get install),有时会出现dpkg被锁,可明明没有开下载的命令啊。这是因为Ubuntu的apt在自动更新。重启或者等等就好了。
更新时候,一些新的依赖被加进来,那编译会出现的错误,哈哈,你会疯。

一般,老师会给依赖包,学会忍受旧版折磨吧。

2.还有一点,装的时候,看清老师给的包的版本,如果是32位,请创建虚拟机时候,记得选 Ubuntu 而不是 Ubuntu64位。emmm,至于虚拟机版本无所谓的,我在VM15.5目前最新的成功了。还有VMtool对Ubuntu10不太好,不能拖拽,只能用共享文件夹。

3.虚拟机大概开到20g+吧,我是30g。

哈哈哈,就这么多了,也只是把一些坑指出来,其他的,基本都有,祝大家旧版早日成功。

我们开始正菜

1.前往链接: https://www.kernel.org/,下载内核源码
2.安装依赖:
sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot
sudo apt install bison flex pkg-config build-essential libncurses5-dev libssl-dev libelf-dev
3.下载到的文件存放在Ubuntu桌面上,如下图
4.sudo su下,成为管理员吧。
5.在桌面目录下,sudo cp linux-5.6.14.tar.xz /usr/src/
6.进到/usr/src/下解压,cd /usr/src/(进入命令),sudo tar -xavf linux-5.6.14.tar.xz
7.进入linux-5.6.14去吧,cd /usr/src/linux-5.6.14/
8.开始了
依次执行:
sudo make menuconfig
sudo make
sudo make modules_install
sudo make install
sudo update-initramfs -c -k 5.6.14

sudo update-grub2(有的要这个?不,多此一举,新版在update-initramfs已经更新了)
9.重启sudo reboot,就好了,怎么检查?uname -a下。

唔,开始我们避坑之路:
1.在最开始装虚拟机时候,60g,别开小了,make空间会不够的。如果太小,趁着还没开始,关机调大点。如果已经开始,就停下make。
再惨点,已经make到空间不够了,!!!别关机make clean下。
如果最坏都关了机,恭喜你,现在打不开机子了。2条路:
a.重装。b.进入修复模式,在这给个链接,不细说了 https://blog.csdn.net/bzfys/article/details/69266620

2.在装系统时,请选上LVM
Linux 5.6.14内核编译(新旧内核编译的“坑”)_第1张图片
不然,由于分配空间,/boot挂载空间一般为240Mb,而新版内核最起码要150Mb,呵呵,远远不够(还有其他的呢)。
解决路子:a.重装系统。b.重新画一块区域,将/boot内容复制进去,然后,将/boot重新挂载。

3.附加信息说明:
如果make menuconfig时候,在general setup->addtional …那里有附加信息。update-initramfs -c -k要变化
Linux 5.6.14内核编译(新旧内核编译的“坑”)_第2张图片
例如:附加为-123456-smith
第八步改为输入下面命令
sudo update-initramfs -c -k 5.6.14-123456-smith

你可能感兴趣的:(Linux 5.6.14内核编译(新旧内核编译的“坑”))