一、yocto 编译raspberrypi 4B并启动

2024-03-18 15:52

本文主要是介绍一、yocto 编译raspberrypi 4B并启动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

yocto 编译raspberrypi 4B并启动

  • yocto 编译raspberrypi 4B并启动
    • 环境准备
    • 代码下载
    • 编译及配置
    • 烧录

yocto 编译raspberrypi 4B并启动

本篇文章为基于raspberrypi 4B单板的yocto实战系列的开篇之作。

环境准备

最近到手一个树莓派4B,准备拿来玩一玩,下面记录下使用yocto构建RaspberryPi的镜像并刷写启动的过程。
首先准备主机编译环境,必要组件安装:

sudo apt install gawk wget git diffstat unzip texinfo gcc build-essential chrpath socat cpio python3 python3-pip python3-pexpect xz-utils debianutils iputils-ping python3-git python3-jinja2 libegl1-mesa libsdl1.2-dev pylint3 xterm python3-subunit mesa-common-dev zstd liblz4-tool

https://github.com/agherzan/meta-raspberrypi这个layer支持多个分支,我们选择一个特定的分支(kirkstone)来进行开发,最好不要用太新的分支,可能会有适配问题。
在这里插入图片描述

代码下载

首先下载kirkstone 分支的poky源码:

git clone -b kirkstone https://gitlab.com/yoctoproject/poky.git poky-kirkstone

下载完成以后的产物:
在这里插入图片描述
然后进入poky-kirkstone文件夹执行如下指令下载kirkstone 分支的meta-raspberrypi:

git clone -b kirkstone https://github.com/agherzan/meta-raspberrypi.git meta-raspberrypi

下载完成以后的产物:
在这里插入图片描述

编译及配置

首先执行如下指令创建编译工作区:

source poky-kirkstone/oe-init-build-env rpi-build

执行完成以后会自动进入rpi-build文件夹下

  • 首先修改conf/bblayers.conf文件将刚才下载的meta-raspberrypi
    加入编译:
    在这里插入图片描述
  • 然后修改conf/local.conf修改编译的目标:
    修改MACHINE为raspberrypi4-64:
    在这里插入图片描述
    如果你使用的不是raspberrypi4B这块单板,根据自己的树莓派型号选择对应的machine即可。可选项为.conf之前的名字:
    在这里插入图片描述

在local.conf末尾添加一些自定义项:

 ############################ Add by tao #######################################IMAGE_FSTYPES = "ext4.xz rpi-sdimg"SDIMG_ROOTFS_TYPE="ext4.xz"## enable uartENABLE_UART="1"## packagesIMAGE_INSTALL:append = " openssh-sftp-server sudo python3 python3-pip rpi-gpio raspi-gpio"IMAGE_FEATURES:append = " ssh-server-openssh"## systemd settingsDISTRO_FEATURES:append = " systemd"VIRTUAL-RUNTIME_init_manager = "systemd"DISTRO_FEATURES_BACKFILL_CONSIDERED:append = " sysvinit"VIRTUAL-RUNTIME_initscripts = "systemd-compat-units"########################### End by tao ########################################

开始编译:

bitbake core-image-base

此过程首次编译需要耗费多个小时,根据编译主机情况决定,而且需要连接外网,最好挂VPN。
等待编译完成以后编译镜像在如下路径:
rpi-build/tmp/deploy/images/下面的core-image-base-raspberrypi4-64-xxxxx-rootfs.rpi-sdimg
在这里插入图片描述

烧录

编译得到刷写的image以后将内存卡插入主机,确认好SD卡对应的快设备,例如我的是/dev/sda,使用dd指令刷机:

sudo dd if=/home/a/work/raspberry/rpi-build/tmp/deploy/images/raspberrypi4-64/core-image-base-raspberrypi4-64-20240313101906.rootfs.rpi-sdimg of=/dev/sda
sync

完成以后将内存卡插入树梅派,连接好串口,raspberrypi的默认串口是Pin 8(TX) 和Pin 10(RX), 波特率115200:
在这里插入图片描述

上电开机,可以看到串口打印如下启动日志:
在这里插入图片描述
启动完成需要输入登陆用户root即可进入系统:
在这里插入图片描述

这样就完成的整个流程,后续需要什么包只需要自己通过yocto定制即可。DONE

这篇关于一、yocto 编译raspberrypi 4B并启动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822854

相关文章

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

解决Nginx启动报错Job for nginx.service failed because the control process exited with error code问题

《解决Nginx启动报错Jobfornginx.servicefailedbecausethecontrolprocessexitedwitherrorcode问题》Nginx启... 目录一、报错如下二、解决原因三、解决方式总结一、报错如下Job for nginx.service failed bec

Spring Boot项目如何使用外部application.yml配置文件启动JAR包

《SpringBoot项目如何使用外部application.yml配置文件启动JAR包》文章介绍了SpringBoot项目通过指定外部application.yml配置文件启动JAR包的方法,包括... 目录Spring Boot项目中使用外部application.yml配置文件启动JAR包一、基本原理

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

解决hive启动时java.net.ConnectException:拒绝连接的问题

《解决hive启动时java.net.ConnectException:拒绝连接的问题》Hadoop集群连接被拒,需检查集群是否启动、关闭防火墙/SELinux、确认安全模式退出,若问题仍存,查看日志... 目录错误发生原因解决方式1.关闭防火墙2.关闭selinux3.启动集群4.检查集群是否正常启动5.

Springboot项目启动失败提示找不到dao类的解决

《Springboot项目启动失败提示找不到dao类的解决》SpringBoot启动失败,因ProductServiceImpl未正确注入ProductDao,原因:Dao未注册为Bean,解决:在启... 目录错误描述原因解决方法总结***************************APPLICA编

kkFileView启动报错:报错2003端口占用的问题及解决

《kkFileView启动报错:报错2003端口占用的问题及解决》kkFileView启动报错因office组件2003端口未关闭,解决:查杀占用端口的进程,终止Java进程,使用shutdown.s... 目录原因解决总结kkFileViewjavascript启动报错启动office组件失败,请检查of

Linux下在线安装启动VNC教程

《Linux下在线安装启动VNC教程》本文指导在CentOS7上在线安装VNC,包含安装、配置密码、启动/停止、清理重启步骤及注意事项,强调需安装VNC桌面以避免黑屏,并解决端口冲突和目录权限问题... 目录描述安装VNC安装 VNC 桌面可能遇到的问题总结描js述linux中的VNC就类似于Window

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin

Go语言编译环境设置教程

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效... 目录Go语言优势下载 Go  配置编译环境配置 GOPROXYIDE 设置(VS Code)一些基本