一次给龙芯旧世界升级内核的失败经历
起因
最近在捣鼓旧世界的3A5000,编了个软件,编完之后有点空虚,在到处学习一些Linux知识。然后突然想到,早在Linux5xx版本,就宣布了对Loongarch的支持,那我岂不是可以自己编一个内核,然后给Loongnix升级,于是就有了这篇。
下载源码
选择6.7.6长期支持版,使用git拉取源码Kernel.org git repositories
编译:
清理缓存
1 | make clean |
配置文件
1 | make loongson3_defconfig #使用loongarch默认配置编译 |
然后报错:
报错原因:没有安装flex
解决方法:
1 | sudo apt-get install flex |
将配置文件移到顶层
1 | cp arch/loongarch/configs/loongson3_defconfig .config |
选择配置
1 | make menuconfig |
开始编译
1 | make -j4 #3A5000是4核8线程的 |
编译完成,大概花了四十分钟:
安装模块
1 | sudo make modules_install |
启用内核作为引导
输入下列命令将内核作为引导,将数字更改为你自己编译的版本号:
1 | sudo update-initramfs -c -k 6.7.6 |
下面更新一下grub:
1 | sudo update-grub |
之后重启即可在启动界面选择需要启动的内核。
linux6.7.6——启动
关机再开机之后,在Grub引导界面,选择”advanced”选项,选择刚刚安装的6.7.6内核。
激动的心,颤抖的手,按下了回车。The world!!!!
一秒钟过去了。。。
两秒钟过去了。。。
三秒钟过去了。。。
咦,
怎么还在Loading initial ramdisk
……
又过了五分钟,才发现进不去了,一直卡在这。内核升级宣告失败。
后面思考了一下,发现原因可能是,Linux对loongarch的支持是基于新世界的,而旧世界不配(
关于新旧世界,参考旧世界与新世界 | 咱龙了吗? (areweloongyet.com)
参考资料
评论