前言
::(药丸)涉及内核,炸鸡了不要怪我哟~ ::(药丸)
本文参考了人生长恨水和斐斐のBlog的文章,如有侵权请联系ME
本文主要是我怕忘记才写的QAQ,因为经常忘事//w//,还有一个原因是因为我看到的都是做rootfs啥的所以就写了这篇文章
目前我手头上的4b是2711可以用,具体看一这张图片或百度看看你的CPU是否支持
其实。。。我早就想写了一直咕咕咕到现在才填坑
诶欸?!你要白嫖?也。。。也不是。。不可以了。。(小声)传送门
准备工作
以下为我的环境
- 编译环境:ArchLinux x64
- 交叉编译环境:aarch64-linux-gnu-gcc55
- CPU:Ryzen7 1700x (编译会跑满CPU!!! AMD! YES!)
- Memory:16GB
- 树莓派:4b
开始
安装编译所需要的环境make git flex libssl-dev vbuild-essential bison如果缺啥那就补上
GCC的话我这里直接装了aarch64-linux-gnu-gcc55
Github下载内核编译文件,-b是选择分支这里的rpi-5.11.y是对应仓库的分支可根据需求选择内核版本,rpi-linux是我git下来存放的目录可以自己修改(只要自己记得)
git clone -b rpi-5.11.y --depth=1 https://github.com/raspberrypi/linux.git rpi-linux
编译
cd进入编译目录
cd rpi-linux
这里生成的是.config文件详细解释看原作者的吧
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig
make一个编辑.config的GUI界面,这里可以自己修改想要的内核配置
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
接下来就是重头戏(CPU酱!让我康康你的力量吧!)
ARCH为架构,-j16为编译需要的县城(雾,主要看CPU)数
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs -j16
稍等片刻新鲜出炉的内核就出锅了!
最后需要把编译好的文件弄进树莓派
我这里是预先mkdir好了rpi、mnt和boot文件夹下面是目录结构
~/rpi
|-mnt
|-boot
copy内核文件,后面的kernel8-5.11也可以换成自己记得住的名称
sudo cp arch/arm64/boot/Image ~/rpi/boot/kernel8-5.11.img
安装Modules到目录
sudo make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=~/rpi/mnt modules_install
再复制一些boot内的文件备用
sudo cp arch/arm64/boot/dts/broadcom/*.dtb ~/rpi/boot
sudo cp arch/arm64/boot/dts/overlays/*.dtb* ~/rpi/boot/overlays/
sudo cp arch/arm/boot/dts/overlays/README ~/rpi/boot/overlays/
然后把我们创建的文件拷进树莓派
最后
cd进我们拷好的文件夹
把文件拷进对应的文件夹里
拷dtb那些文件,如果有了就可以不用拷了
sudo cp ./boot/*.dtb /boot
sudo cp ./boot/*.dtb* /boot/overlays/
sudo cp ./boot/overlays/README /boot/overlays/
copy内核文件,这里用kernel8-5.11请以实际文件名为准
sudo cp ./boot/kernel8-5.11.img /boot
Modules文件
先ls一下./mnt/lib/modules/的文件夹名,我这里用5.11.0-rc8-v8-For-Clara+代替请以实际文件夹名为准
sudo cp -r ./mnt/lib/modules/5.11.0-rc8-v8-For-Clara+ /lib/modules/
然后修改启动文件config.txt
在里面添加两行,如果有了那就换kernel行对应的名称,arm_64bit=1这个1为开启64位内核支持关闭同理
kernel=kernel8-5.11.img
arm_64bit=1
大功告成!reboot一下,如果不出意外就可以开机了
验证一下=w=
uname -a

显示aarch64就是成功了
谢谢大佬。