Beágyazott szoftver - Yocto építsen Raspberry Pi 4-et, egy képernyőképet egy számítógépről

Yocto épít Raspberry Pi 4

Docker-környezetben

Nyílt forráskódú Yocto Project útmutató

beállítási tippek egyéni Linux a Raspberry Pi-n Dockerrel

Nyílt forráskódú Yocto Project útmutató egyéni Linuxhoz Raspberry Pi-n Docker beállítási tippekkel

Merüljön el a Yocto projektben egyedi Linux rendszerekhez bármilyen hardveren. Tökéletes fejlesztők és beágyazott rendszerek rajongói számára. Kezdj el építkezni most!

Fedezze fel a Yocto projektet, egy nyílt forráskódú kezdeményezést, amellyel egyedi Linux rendszereket hozhat létre bármilyen hardverarchitektúrához. Ismerje meg, hogyan használhatja a CROPS szolgáltatást platformok közötti fejlesztéshez, Docker-tárolók beállításához, és hogyan készíthet testreszabott Linux-rendszerképeket beágyazott és IoT-eszközökhöz. Útmutatónk ismerteti a macOS rendszeren történő beállítást, a buildkörnyezetek konfigurálását és a Raspberry Pi optimalizálását. Akár kezdő, akár szakértő, ajánlott eljárásokat, eszközöket és közösségi támogatást találhat Linux-projektjei igényeihez.

A Docker-tárolóban futó Yocto

A yocto dokumentumokban van egy fejezet (2.2.2) a CROss PlatformS (CROPS) beállításához, mint a natív linux pc beállításának alternatívája. Ez az alternatíva docker tárolót használ egy testreszabott rendszerkép felépítéséhez, például a Raspberry Pi-hez.

Sajnos van néhány apró hiba a dokumentációban , hogy beállítsuk ezt a környezetet számomra Mac OS X (Monterey) rendszeren.

Docker-tároló beállítása Mac OS X-hez

A CROPS docker Linux, Windows és Mac OS X rendszereken való használatához néhány speciális beállítás szükséges. Mielőtt beállítja a tárolót a Yocto-hoz, létre kell hoznia egy Docker-kötetet az eredmények tárolásához. A Mac OS X rendszerben a fájlok biztosításához docker samba konténert is használnak.

Docker-kötet létrehozása

Egy terminálablakban írja be a következő parancsokat:

docker volume create --name raspberry
docker run -it --rm -v raspberry:/workdir busybox chown -R 1000:1000 /workdir

Samba konténer létrehozása és futtatása

Az OSX nem engedi, hogy helyileg futó samba megosztáshoz csatlakozzon. Ezért először létre kell hoznia egy aliast a 127.0.0.1 127.0.0.2 számára.

sudo ifconfig lo0 127.0.0.2 alias up

Ezután hozza létre a samba-tárolót, amely lehetővé teszi a docker-kötetben található fájlok megtekintését:

docker create -t --expose 445 -p 127.0.0.2:445:445 --name samba -v raspberry:/workdir crops/samba

Mivel a samba tárolóhoz való csatlakozáshoz mindig szükség lesz az aliasra, kombinálhatja a samba kezdetét és az aliast a következőképpen:

docker start samba && sudo ifconfig lo0 127.0.0.2 alias up

Most megnyithatja a workdir fájlt a fájlböngészőben. A keresőben nyomja meg a "Command-K" gombot, és a szerver címe mezőbe írja be az "smb://127.0.0.2/workdir" szót, majd kattintson a "Csatlakozás" gombra. Most látnia kell a docker kötet tartalmát a keresőben.

A Yocto tároló létrehozása és elindítása

A Yocto tárolótípus létrehozása és/vagy elindítása terminálablakban:

docker run --rm -it --name=crops-poky -v raspberry:/workdir crops/poky:ubuntu-20.04 --workdir=/workdir

Buildkörnyezet beállítása a tárolóban

A Docker-tároló indításakor a következőhöz hasonló terminálparancssor jelenik meg: "pokyuser@d4ddfe042587:/workdir".

Most már beállíthatja a buildkörnyezetet.

Poky verzió klónozása

Az én esetemben a Yocto 3.4-es verzióját használom "Honister" néven, mert a meta-málna rétegek jelenleg nem érhetők el az újabb poky verziókhoz. Először kell klónoznia a poky tárolót:

git clone -b honister git://git.yoctoproject.org/poky poky-honister

Ha frissíteni szeretné a poky-t a legújabb verzióra:

cd poky-honister
git pull --all --prune

További metarétegek a Raspberry Pi számára

Váltson "poky-honister"-re, és klónozza a következő tárolókat: meta-málna, meta-openembedded és szükség esetén meta-qt5

cd poky-honister
git clone -b honister git://git.yoctoproject.org/meta-raspberrypi
git clone -b honister git://git.openembedded.org/meta-openembedded
git clone -b honister https://github.com/meta-qt5/meta-qt5.git

Build konfiguráció beállítása

Hagyja el a poky-honister könyvtárat, hogy a /workdir könyvtárban legyen. Most szerezze be a buildkörnyezetet az oe-init-build-env szkripttel.

cd ..
source poky-honister/oe-init-build-env rpi-build

Létrejön egy új könyvtár "rpi-build" - nevezheti el, ahogy akarja - és egy conf könyvtár a bblayers.conf, local.conf és templateconf.cfg fájlokkal.

Mivel nincs szövegszerkesztő telepítve a tárolóba, vagy szerkesztenie kell a konfigurációs fájlokat a csatlakoztatott samba köteten Mac OS X rendszerben, vagy telepítenie kell egy szövegszerkesztőt a tárolóba. Ehhez meg kell nyitnia egy második terminálablakot - miközben a yocto konténer fut -, és el kell indítania egy bash shellt a tartályban root jogosultságokkal:

docker exec -it --user=root crops-poky bash
apt-get install nano
exit
Ezután szerkesztheti a yocto tárolóban lévő konfigurációs fájlokat pokyuser néven.

Jegyzet

A szerkesztő nincs véglegesen telepítve. Miután elhagyta a tartályt és újra belépett, újra kell telepítenie

#### Először adja hozzá a meta-málnát a bblayers.conf fájlhoz
nano conf/bblayers.conf

Adja hozzá a "/workdir/poky-honister/meta-raspberrypi " értéket, hogy úgy nézzen ki, mint

BBLAYERS ?= " \
  /workdir/poky-honister/meta \
  /workdir/poky-honister/meta-poky \
  /workdir/poky-honister/meta-yocto-bsp \
  /workdir/poky-honister/meta-raspberrypi \
  "

és mentse el.

Másodszor szerkessze a local.conf fájlt

Szerkessze a local.conf fájlt:

nano conf/local.conf

Módosítsa a következő sorokat:

-GÉP?? = "qemux86-64" -> GÉP ?? = "málnapi4-64"

Attól függően, hogy melyik málnát szeretné használni (raspberrypi0, raspberrypi0w, raspberrypi3, raspberrypi3-64, raspberrypi4, raspberrypi4-64 stb.)

Törölje a következő sorok megjegyzését:

  • DL_DIR ?= "${TOPDIR}/letöltések"
  • SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
  • TMPDIR = "${TOPDIR}/tmp"

Adja hozzá a következő sorokat a végéhez, hogy egy sdimg villogjon egy SD-kártyára:

  • IMAGE_FSTYPES = "ext4.xz rpi-sdimg"
  • SDIMG_ROOTFS_TYPE = "ext4.xz"

Mentse a local.conf fájlt.

Bitbake az első kép

Most már minimális beállításokkal rendelkezik az első rendszerkép létrehozásához:

bitbake -k core-image-minimal

A Yocto dokumentációjában megtalálja az elérhető képleírások rövid leírását.

Például:

  • core-image-minimal: Egy kis kép, amely csak lehetővé teszi az eszköz indítását.
  • core-image-base: Csak konzolos lemezkép, amely teljes mértékben támogatja a céleszköz hardverét.
  • core-image-full-cmdline: Csak konzolos lemezkép több teljes funkcionalitású Linux rendszerfunkcióval.

Egy idő után - ami először lehet szerveróra - a bitbake befejeződik, és megtalálja az sdimg fájlt a következő könyvtárban:

/workdir/rpi-build/tmp/deploy/images/raspberrypi4-64

Extra konfigurációk

Extra Raspberry hardverkonfigurációk

Konkrét hardverbeállítások megadásához nézze meg a extra-apps.md és extra-build-config.md. Ezeket a fájlokat a meta-raspberrypi/docs könyvtárban is megtalálja.

A meta réteg egy "rpi-test-image" képkonfigurációt is biztosít a bitbake-hez. A kép a "core-image-base" -en alapul, amely magában foglalja a legtöbb meta-raspberrypi csomagot és néhány médiamintát.

bitbake -k rpi-test-image

 

Extra szoftverkonfigurációk

Attól függően, hogy milyen rendszerkép-összeállítási konfigurációt használ, előfordulhat, hogy további szoftvercsomagokat kell telepítenie.

Ezt úgy teheti meg, hogy hozzáad néhány beállítást a local.conf fájlhoz.

Például adja hozzá a következő sorokat az ssh-server, pi-user és systemd beállításához:

## packages
IMAGE_INSTALL:append = " openssh-sftp-server sudo python3 python3-pip rpi-gpio raspi-gpio"
IMAGE_FEATURES:append = " ssh-server-openssh"

## systemd settings
DISTRO_FEATURES:append = " systemd"
VIRTUAL-RUNTIME:init_manager = "systemd"
VIRTUAL-RUNTIME:initscripts = ""
IMX_DEFAULT_DISTRO_FEATURES:append = " systemd"

Vagy adjon hozzá pythont:

IMAGE_INSTALL:append = " python3 python3-pip rpi-gpio raspi-gpio"

Jegyzet

A " python3 python3-pip rpi-gpio raspi-gpio" kezdő szóköze fontos, mert a szöveg a meglévő konfigurációhoz van hozzáfűzve, és ezzel a szóközzel kell elválasztani.

Szerzői jogi licenc

Copyright © 2022 Interelectronix e.K.
Ez a Project forráskód a GPL-3.0 licenc alatt van licencelve.

Köszönetnyilvánítás

Az utasítások létrehozásához felhasznált források:

Köszönet mindenkinek.