树莓派内核编译


前言

本文为笔者学习过程中的笔记,开发平台为树莓派3B。若有错误之处,欢迎指出。

一、准备工作

  1. 提前把需要使用的文件,传输到虚拟机中。linux-rpi-4.14.y(树莓派内核文件),tools-master(交叉编译工具)
    注意:交叉编译工具需要安装,具体查看博客:交叉编译
  2. 解压树莓派内核文件。
  3. 安装可能会需要使用的第三方库
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

指令说明:

  1. j4 指定用多少电脑资源进行编译。
  2. zImage 生成内核镜像。
  3. modules 要生成驱动模块。
  4. 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 ,大功告成。

Guess you like

Origin blog.csdn.net/weixin_51363326/article/details/116564572