树莓派内核编译
2021/5/9 18:56:28
本文主要是介绍树莓派内核编译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 前言
- 一、准备工作
- 二、如何配置树莓派的Linux内核
- 1、内核配置
- 2、内核编译
- 3、Linux内核镜像拷贝至树莓派
- 三、验证
前言
本文为笔者学习过程中的笔记,开发平台为树莓派3B。若有错误之处,欢迎指出。
一、准备工作
- 提前把需要使用的文件,传输到虚拟机中。linux-rpi-4.14.y(树莓派内核文件),tools-master(交叉编译工具)
注意:交叉编译工具需要安装,具体查看博客:交叉编译 - 解压树莓派内核文件。
- 安装可能会需要使用的第三方库
sudo apt-get install bc sudo apt-get install libncurses5-dev libncursesw5-dev sudo apt-get install zlib1g:i386 sudo apt-get install libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5
二、如何配置树莓派的Linux内核
1、内核配置
- 第一步:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig //指定ARM架构 指定编译器 树莓派 主要核心指令
- 第二步:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make menuconfig
出现以下画面:
一般就选择exit退出就可以了,证明.config文件没问题了,然后检查.config文件是否存在问题,一般能顺利进入界面然后退出就可以了。注:记得把Enable loadable module support选上,以后编译内核需要本地模块支持。
2、内核编译
编译:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make -j4 zImage modules dtbs
指令说明:
- j4 指定用多少电脑资源进行编译。
- zImage 生成内核镜像。
- modules 要生成驱动模块。
- dtbs 生成配置文件。
注意:只要跑起来一分钟内没有出错,就说明前面配置没有出错。
等待大约20分钟左右,就编译完成了。
编译成功后,看到源码树目录多了 vmlinux,失败则无此文件
3、Linux内核镜像拷贝至树莓派
- 打包 zImage 成树莓派可用的 xxx.img
./scripts/mkknlimg arch/arm/boot/zImage ./kernel_new.img
注意:这里打包有时候会失败,具体啥原因我也没有找到。如果失败,就乖乖的再编译一次内核
- 做下准备工作
cd /home/cjh mkdir data1 data2
- 挂载U盘
sudo mount /dev/sdb1 data1 //一个fat分区,是boot相关的内容,kernel的img sudo mount /dev/sdb2 data2 //一个是ext4分区,也就是系统的根目录分区
- 安装modules, 设备驱动文件
cd /SYSTEM/linux-rpi-4.14.y sudo ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make INSTALL_MOD_PATH=/home/cjh/data2 modules_install
- 安装更新 kernel.img 文件,注意镜像名字是kernel7.img.
- 先备份
cd /home/cjh/data1 cp kernel7.img kernel7OLD.img
- 把编译新生成的拷贝到data1,起名kernel7.img
cp kernel_new.img /home/cjh/data1/kernel7.img
- 拷贝配置文件到树莓派中
cp arch/arm/boot/dts/.*dtb* /home/cjh/data1 cp arch/arm/boot/dts/overlays/.*dtb* /home/cjh/data1/overlays/ cp arch/arm/boot/dts/overlays/README /home/cjh/data1/overlays/ //没啥用可以不拷贝
- 最后注意,一定要卸载掉挂载的U盘
sudo umount /dev/sdb1 sudo umount /dev/sdb2
三、验证
将SD卡插入到树莓派中,上电,查看。
ok ,大功告成。
这篇关于树莓派内核编译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-09-28微服务架构中API版本控制的实践
- 2024-09-28AI给的和自己写的Python代码,都无法改变输入框的内容,替换也不行
- 2024-09-27Sentinel配置限流资料:新手入门教程
- 2024-09-27Sentinel配置限流资料详解
- 2024-09-27Sentinel限流资料:新手入门教程
- 2024-09-26Sentinel限流资料入门详解
- 2024-09-26Springboot框架资料:初学者入门教程
- 2024-09-26Springboot框架资料详解:新手入门教程
- 2024-09-26Springboot企业级开发资料:新手入门指南
- 2024-09-26SpringBoot企业级开发资料新手指南