7370| 2
|
[《树莓派4B系列教程》] 树莓派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 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 是线程数,根据个人情况编译时间看个人设备配置 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 文件 kernel=kernel8.img 12. 重启reboot 启动后执行 uname -a 可查看内核版本。 13. 通过脚本拿到信号强度 实在懒得打字 |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed