2023年10月19日 星期四
Raspberry PI 3 B+ Yocto研究筆記(一)
## 前言
因為在工作上會在RDK-B的框架下開發,而RDK-B的Build system就是用Yocto,終於最近比較有動力,就搭建一下環境及手邊樹梅派的板子,把這部份摸熟一點也記錄一下。
## Yocto簡介
做嵌入式軟體開發應該都會常常聽到BuildRoot和Yocto,他們都是一種建立Embedded Linux distribution的build system,關於更多Yocto介紹可以到他們官網了解更多,這邊就不再贅述,接下來就是開始建置環境。
## 環境建置
首先需要在一台電腦上先安裝虛擬磯的環境,我是習慣用VMWare,接著就是開一個新的虛擬磯,大概的配置如下:
1. CPU核心:8
2. RAM:8G
3. OS:20.04.6 LTS
4. Storage: 120 GB
一切都就緒後,就可以開始安裝相依性的套件
## 相依套件安裝
在編譯Yocto之前需要以下的相依套件,更多細節可參考 https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html
```bash
$ 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 python3-subunit mesa-common-dev zstd liblz4-tool file locales libacl1
$ sudo locale-gen en_US.UTF-8
```
## 配置及編譯
首先當然需要先下載Yocto source code,我們先建立一個資料夾,並透過git clone source code.
```bash
mkdir my-rpi && cd my-rpi
git clone -b kirkstone git://git.yoctoproject.org/poky.git
```
接著就是下載Raspberry Pi的meta層
```bash
git clone -b kirkstone git://git.yoctoproject.org/meta-raspberrypi
```
初始化yocto開發環境
```bash
source poky/oe-init-build-env build-rpi
```
加入剛剛下載的Raspberry Pi的meta層
```bash
bitbake-layers add-layer ../meta-raspberrypi
```
修改配置
```bash
sed -i 's/^MACHINE.*/MACHINE ?= "raspberrypi3"/g' conf/local.conf
sed -i '/^#DL_DIR ?= "${TOPDIR}\/downloads"/ a DL_DIR ?= \"${HOME}/yocto/downloads"' conf/local.conf
sed -i 's/^PACKAGE_CLASSES.*/PACKAGE_CLASSES ?= "package_ipk"/g' conf/local.conf
# 設定透過uboot開機
echo 'RPI_USE_U_BOOT = "1"' >> conf/local.conf
#設定開啟uart console
echo 'ENABLE_UART = "1"' >> conf/local.conf
```
編譯image
```bash
bitbake core-image-minimal
```
編譯完成後image大概會在下面的路徑
```bash
/my-rpi/build-rpi/tmp/deploy/images/raspberrypi3/core-image-minimal-raspberrypi3.wic.bz2
```
他是一個symbollink實際上對應到像這樣檔名的image
```bash
core-image-minimal-raspberrypi3-20231111193508.rootfs.wic.bz2
```
之後就可以透過balenaEtcher等工具燒錄image到SD卡,再確認開機後的console有帶起來,這樣就大功告成囉!
## 參考資料
[使用 Yocto 打造你的 Raspberry Pi 系統](https://e61983.github.io/2021-07-26-building-raspberry-pi-systems-with-yocto/)
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言