树莓派4B+centos8 交叉编译linux内核获取域格信号强度
本帖最后由 Caner 于 2022-1-14 10:13 编辑废话不多说哈,至于编译内核是因为要使用4G模块的信号强度,问了域格的客服,em还是挺给力,给了修改linux内核的方法,但是需要重新编译内核,这,,,不是刚出坑又掉进去了,搜索了一波,找到编译内核的方法:https://shumeipai.nxez.com/2020/10/18/compile-raspberry-pi-4b-linux-5-9-kernel.html,感谢大佬,但是他使用的Ubuntu,em,,,其实内核都是一样,注意对照内核架构X86{:5_116:}
1. 按照教程下载rpi的内核,目前最新的是5.10的,建议打包下载吧,git clone 有点慢,有梯子另说
GitHub 地址:https://github.com/raspberrypi/linux
2. 下载编译工具目前最新的也是7.5
https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz
3.安装所需的依赖centos 使用yum 安装,下面使用的apt的库名,yum的库名略有不同,哈哈,留给大家去着磨
bc bison flex libssl-dev make libc6-dev libncurses5-dev
4.解压上面下载的安装包我是下载到root目录下的,使用root权限~
5.添加编译工具到环境变量注意路径
首先 nano ~/.bashrc
在 .bashrc 后面加上:export PATH=$PATH:~/gcc-linaro/bin
然后执行 source ~/.bashrc 刷新环境变量
6.编译前的配置(重点)
cd /root/linux-rpi-5.10.y 修改内核配置,根据kernel版本情况选择性修改,我的内核不支持blacklist~
执行 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfig 这个是默认配置(本人内核不懂就选了默认配置), 如果需要其它配置
执行 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711 后,再执行 make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig,会弹出内核配置窗口进行配置
7.编译 -j8 是线程数,根据个人情况编译时间看个人设备配置{:5_116:}
make -j8 ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-
8. 生成编译后的modules依赖包
make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=../ modules_install
9.将编译好的文件打包上传到树莓派
打包zip -r **.zip **/*
10.树莓派内核替换(树莓派解压完成,替换内核就是复制粘贴过程)
cd lib/modules/5.9.0-v8/source/arch/arm64/boot
执行以下命令: cp Image /boot/kernel8.img cp dts/broadcom/*.dtb /boot/
cp dts/overlays/*.dtb* /boot/overlays/
cp dts/overlays/README /boot/overlays/
10. 生成内核模块(需要切换目录cd lib/modules/5.9.0-v8/source) 在执行这一步之前你可能需要安装kmod依赖项
执行:make ARCH=arm64 modules_install
如果你是在交叉编译的机上直接进行安装,则要执行:make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=rootDirect modules_install
11.修改配置文件(可选)
树莓派默认是用32位内核启动,需要修改 boot 分区下的 config.txt 文件 arm_64bit=1
kernel=kernel8.img
12.重启reboot启动后执行 uname -a 可查看内核版本。
13. 通过脚本拿到信号强度
实在懒得打字{:5_116:}
感谢分享,重新排下版增加语法高亮可读性会更好。 另外可以简介下原理和代价吗?为什么默认参数不这样
页:
[1]