(已歇菜)实验1:更换操作系统内核
国庆假期搞了两三天这玩意,还没有搞起来,累了,坑先放着,回头再更新吧。
作为Linux系统管理员,Linux系统爱好者,伟大的勇者是时候该看看内核了,了解一下Linux的强大强大魅力,虽然有亿点点困难,并且就算研究了也不一定有什么结果,emmm问题不大,开始吧。
参考书籍:《奔跑吧Linux内核·入门篇(第二版)》笨叔 陈悦·著
实验环境:Raspberry Pi 400
操作系统:Raspberry Pi OS (64-bit) Debian Bullseye
这本书,是被一开始教Linux的老师忽悠买的,也没有指名道姓买这本书,只是忽悠我们一波愣头青去看内核,于是我就买了这本入门版书籍,书的版本很新2021年3月的版本,讲的都是很新的东西,都很入门,可惜当时我才没学多久,压根看不懂,现在一年后翻来看看有些许熟悉了,所以开始着手做实验学习。(还有一个原因就是书是完全适配树莓派的开发环境的,天造地和我买了块派,虽然不是4B,疫情期间4B已然成为一种理财产品,某宝一千多的价格8G和去年四百多8G甚至吃人,于是我就退而求其次选择了Pi 400,好歹也能稍微折腾折腾,比不上开发板的可玩性搞,还有一点就是本书增加了arm架构的内容,与现在的趋势很是符合,毕竟果子已经开始搞arm架构的桌面端,性能还很香,只能说是一种趋势吧。)
书上第一个实验是安装优麒麟系统,一个国防科技大学搞的Ubuntu的派生发行版Linux,在虚拟机里安装,过于简单就不做了,都来看内核了,安装虚拟机这种东西就不必看了。
同样是Deian系的系统,自信满满的我决定不使用优麒麟系统,,,
我们直接开始第二个实验,换个内核玩玩。
1.安装必备环境
1 |
|
书上也没写这些包是用来干嘛的,俺也没搜,但是逻辑上应该是编译内核所需要的东西吧(猜测)。
2.下载解压Linux内核源码
1 |
|
3.下面是配置内核模块,进入目录可以使用make menuconfig进行内核配置,但是实际我敲的时候爆了个错。
/bin/sh: 1: flex: not found
看样子是flex这个东西没有,百度一下也是这么说的,先来安装试试看。
1 |
|
再次运行时提示
/bin/sh: 1: bison: not found
1 |
|
再次运行成功进入配置界面。
3.1这边改一下Linux提供了三种配置内核参数的配置命令。
1 |
|
3.2使用图形化的gconfig需要安装如下软件包
1 |
|
4.可以把raspberry官方发布的内核源码里面的内核编译配置文件复制过来,省得我们emmmm点点点
1 |
|
5.接下来就可以编译内核了,使用make -jn命令,其中n表示使用几个核。
1 |
|
6.然后就开始漫长的等待时间了,老实讲是比较慢的,我在熬夜等它编译完。熬不住了等了大概50分钟还没好,睡了睡了。
7.早上起来一看,没有问题,开始编译安装内核模块。
1 |
|
8.最后就是安装内核,重新启动了。
1 |
|
9.执行之后提示缺少固件,下载固件,固件地址,报错为
1 |
|
10.到如上地址下载对应的固件,保存到/lib/firmware/rtl_nic/目录下。
11.然后再运行sudo make install
12.理论上重启就可以看到新的内核了,but不知道是不是树莓派不一样的原因,重启之后啥也没有发生,查看了/boot目录也存在6.0内核的东西,后来上网查阅,很多树莓派升级内核的操作都是通过另一台客户机对sd卡进行读写,仿佛是交叉编译,后来找到一篇本地编译的案例,发现情况与本次实验环境不是很相同,复制了Image到/boot目录并改名为kernel8.img后重启,仿佛是启用了新的内核,因为启动的时候卡住了,,,
此坑后续再填,等我养精蓄锐两天,说起来树莓派本地编译内核是真的慢,感觉要两小时,想要送走我。。。