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/)

沒有留言:

張貼留言