Nyílt forráskódú Yocto Project útmutató
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
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.