admin 发表于 2020-6-11 08:54:49

树莓派实时补丁教程之交叉编译篇

此教程的环境是国产Deepin系统,硬件是虚拟机,如有问题请后台留言。您的支持是小编更新下去的动力。另外,点赞分享,共同进步,欢迎大家转发。1.安装工具。
指令:
apt-get install git bc bison flex libssl-dev make libc6-dev libncurses5-dev

工具说明:
Git : 一个开源的分布式版本控制系统。
Bc:它类似基本的计算器, 使用这个计算器可以做基本的数学运算。
bison :根据文法把一系列的记号转换成一个语法分析树。
Flex:一个词法分析器。用来将一个.l文件生成一个.c程序文件。即生成一个词法分析器。
libssl-dev:是OpenSSL通用库,SSL也即Secure Socket Layer,是由网景公司为了传输敏感数据而提出的协议
make :一个用来控制可执行文件和其他一些从源文件来的非源代码文件版本的软件
libncurses5-dev:是一个Linux系统下的图形支持的函数库,字符终端处理库,包括面板和菜单
2.新建一个文件夹Kernel,获取树莓派Linux内核源码

命令:
git clone --depth=1 https://github.com/raspberrypi/linux
查看Linux版本:
进入Linux目录,输入指令:
head Makefile -n 4
# SPDX-License-Identifier: GPL-2.0
VERSION = 4
PATCHLEVEL = 19
SUBLEVEL = 122
3.下载实时补丁
https://mirrors.edge.kernel.org/ ... ects/rt/4.19/older/
命令:
wget mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patch-4.19.120-rt52.patch.xz


4.打补丁
命令
sudo xz -cd ../patch-4.19.120-rt52.patch.xz | patch -p1 --verbos
补丁打成功截图

5.树莓派工具链配置:
包括Binutils(汇编工具)、GCC(编译器)和Glibc(标准C函数库),主要用于把源代码编译连接生成可执行程序。
下载工具链(需要时间可能较长)。
指令:
git clone https://github.com/raspberrypi/tools ./


配置环境变量:
echo PATH=\$PATH:~/Desktop/ToolChain/arm-bcm2708/arm-linux-gnueabihf/bin >> ~/.bashrc


source ~/.bashrc


6.通过Make menuconfig配置PREEMPT_RT编译开关
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig



7.应用默认配置
对于树莓派2,3,3+来说
KERNEL=kernel7make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2709_defconfig

对于树莓派4来说
KERNEL=kernel7lmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- bcm2711_defconfig

8.编译内核(时间较长)
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 zImage modules dtbs
9.直接在SD卡中进行安装
上一步编译成功后会在下面路径下生成zImage。

将SD卡插入读卡器,并挂载到虚拟机上,使用lsblk命令查看挂在情况




安装modules
sudo env PATH=$PATH make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=mnt/ext4 modules_install
复制内核和设备树到SD卡,并备份老的内核
sudo cp mnt/fat32/$KERNEL.img mnt/fat32/$KERNEL-backup.img
sudo cp arch/arm/boot/zImage mnt/fat32/$KERNEL.img
sudo cp arch/arm/boot/dts/*.dtb mnt/fat32/
sudo cp arch/arm/boot/dts/overlays/*.dtb* mnt/fat32/overlays/
sudo cp arch/arm/boot/dts/overlays/README mnt/fat32/overlays/
sudo umount mnt/fat32sudo umount mnt/ext4




10.树莓派插上SD卡
输入uname -a,发现已经是实时版本了

10.CODESYS任务测试


               

猫哥 发表于 2020-8-14 15:40:48

虚拟机上可以用树莓派授权不
页: [1]
查看完整版本: 树莓派实时补丁教程之交叉编译篇