Vodič za projekt Yocto otvorenog koda
Vodič za projekt Yocto otvorenog koda za prilagođeni Linux na Raspberry Pi sa savjetima za postavljanje Dockera
Zaronite u projekt Yocto za prilagođene Linux sustave na bilo kojem hardveru. Savršeno za programere i entuzijaste ugrađenih sustava . Počnite graditi odmah!
Istražite projekt Yocto, inicijativu otvorenog koda za stvaranje prilagođenih Linux sustava za bilo koju hardversku arhitekturu. Naučite koristiti CROPS za razvoj na više platformi, postavite Docker kontejnere i izradite prilagođene Linux slike za ugrađene i IoT uređaje. Naš vodič pokriva postavljanje na macOS-u, konfiguriranje okruženja za izradu i optimizaciju za Raspberry Pi. Bez obzira jeste li početnik ili stručnjak, pronađite najbolje prakse, alate i podršku zajednice za potrebe svog Linux projekta.
Yocto radi u docker kontejneru
U dokumentima o joctu postoji poglavlje (2.2.2) za postavljanje CROss platformi (CROPS) kao alternativa postavljanju izvornog Linux računala. Ova alternativa koristi docker spremnik za izgradnju prilagođene slike sustava, npr. za Raspberry Pi.
Nažalost, postoje neke male pogreške u dokumentaciji za postavljanje ovog okruženja za mene na Mac OS X (Monterey).
Instalacijski docker spremnik za Mac OS X
Za korištenje CROPS dockera na Linuxu, Windowsu i Mac OS X-u potrebne su neke posebne postavke. Prije postavljanja spremnika za Yocto, morate stvoriti docker jedinicu za pohranu rezultata. Također docker samba kontejner koristi se za pružanje datoteka u Mac OS X.
Stvori docker jedinicu
U prozoru terminala upišite sljedeće naredbe:
docker volume create --name raspberry
docker run -it --rm -v raspberry:/workdir busybox chown -R 1000:1000 /workdir
Stvaranje i pokretanje samba kontejnera
OSX vam neće dopustiti povezivanje s lokalnim samba dijelom. Stoga prvo morate stvoriti pseudonim za 127.0.0.1 od 127.0.0.2.
sudo ifconfig lo0 127.0.0.2 alias up
Zatim stvorite spremnik sambe koji vam omogućuje da vidite datoteke u docker glasnoći:
docker create -t --expose 445 -p 127.0.0.2:445:445 --name samba -v raspberry:/workdir crops/samba
Budući da ćete uvijek morati imati pseudonim za spajanje na samba kontejner, mogli biste kombinirati početak sambe i pseudonima poput sljedećeg:
docker start samba && sudo ifconfig lo0 127.0.0.2 alias up
Sada možete otvoriti workdir u pregledniku datoteka. U tražilaču pritisnite "Command-K", au okvir adrese poslužitelja upišite "smb://127.0.0.2/workdir" i kliknite "Poveži se". Sada biste trebali vidjeti sadržaj glasnoće dockera u tražilici.
Stvaranje i pokretanje spremnika Yocto
Da biste stvorili i/ili pokrenuli vrstu spremnika Yocto u prozoru terminala:
docker run --rm -it --name=crops-poky -v raspberry:/workdir crops/poky:ubuntu-20.04 --workdir=/workdir
Postavljanje okruženja za izgradnju u spremniku
Kada se pokrene spremnik dockera, imate upit za terminal koji izgleda ovako: "pokyuser@d4ddfe042587:/workdir".
Sada možete postaviti okruženje za izradu.
Clone poky verzija
U mom slučaju koristim Yocto verziju 3.4 s nazivom "Honister", jer slojevi meta-maline trenutno nisu dostupni za novije poky verzije. Po prvi put morate klonirati poky repozitorij:
git clone -b honister git://git.yoctoproject.org/poky poky-honister
Ako želite ažurirati poky na najnoviju verziju:
cd poky-honister
git pull --all --prune
Dodatni meta slojevi za Raspberry Pi
Promijenite u "poky-honister" i klonirajte sljedeće spremišta: meta-malina, meta-openembedded i po potrebi 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
Konfiguracija međuverzije za instalaciju
Ostavite poky-honister direktorij tako da se nalazite u /workdir. Sada nabavite okruženje za izgradnju pomoću skripte oe-init-build-env.
cd ..
source poky-honister/oe-init-build-env rpi-build
Stvara se novi direktorij "rpi-build" - možete ga imenovati kako želite - i conf direktorij s datotekama bblayers.conf, local.conf i templateconf.cfg stvara.
Budući da u spremniku nije instaliran uređivač teksta, ili morate urediti konfiguracijske datoteke u montiranoj samba jedinici u Mac OS X ili morate instalirati uređivač teksta u spremnik. Da biste to učinili, morate otvoriti drugi prozor terminala - dok je yocto spremnik pokrenut - i pokrenuti bash ljusku u spremniku s korijenskim privilegijama:
docker exec -it --user=root crops-poky bash
apt-get install nano
exit
Zatim možete urediti konfiguracijske datoteke u yocto spremniku kao pokyuser.Bilješka
Uređivač nije trajno instaliran. Nakon izlaska iz spremnika i ponovnog ulaska, morate ga ponovno instalirati
nano conf/bblayers.conf
Dodajte "/workdir/poky-honister/meta-raspberrypi " tako da izgleda kao
BBLAYERS ?= " \
/workdir/poky-honister/meta \
/workdir/poky-honister/meta-poky \
/workdir/poky-honister/meta-yocto-bsp \
/workdir/poky-honister/meta-raspberrypi \
"
i spasite ga.
Drugo uređivanje local.conf
Uredite datoteku local.conf:
nano conf/local.conf
Promijenite sljedeće retke:
-STROJ?? = "qemux86-64" -> MACHINE ?? = "malinapi4-64"
Ovisno o tome koju malinu želite koristiti (malinapi0, malinapi0w, malinapi3, malinapi3-64, malinapi4, malinapi4-64, itd.)
Poništite komentare sljedećih redaka:
- DL_DIR ?= "${TOPDIR}/downloads"
- SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
- TMPDIR = "${TOPDIR}/tmp"
Dodajte sljedeće retke na kraju da biste dobili sdimg za bljeskanje na SD karticu:
- IMAGE_FSTYPES = "ext4.xz rpi-sdimg"
- SDIMG_ROOTFS_TYPE = "ext4.xz"
Spremite datoteku local.conf.
Bitbake prvu sliku
Sada imate minimalne postavke za izradu prve slike:
bitbake -k core-image-minimal
U Yocto dokumentaciji možete pronaći kratak opis dostupnih opisa slika.
Npr:
- core-image-minimal: Mala slika koja samo može dopustiti pokretanje uređaja.
- osnovna baza slika: slika samo za konzolu koja u potpunosti podržava hardver ciljnog uređaja.
- core-image-full-cmdline: Slika samo za konzolu s instaliranom potpunijom funkcijom Linux sustava.
Nakon nekog vremena - što bi po prvi put mogli biti poslužiteljski sati - bitbake završava i datoteku sdimg možete pronaći u sljedećem direktoriju:
/workdir/rpi-build/tmp/deploy/images/raspberrypi4-64
Dodatne konfiguracije
Dodatne konfiguracije hardvera maline
Da biste postavili određene hardverske postavke, možete pogledati extra-apps.md i extra-build-config.md. Te datoteke možete pronaći i u direktoriju meta-raspberrypi/docs.
Metasloj također pruža konfiguraciju slike "rpi-test-slika" za korištenje s bitbakeom. Slika se temelji na "core-image-base" koja uključuje većinu paketa u meta-raspberrypi i neke uzorke medija.
bitbake -k rpi-test-image
Dodatne softverske konfiguracije
Ovisno o konfiguraciji međuverzije slike koju koristite, možda ćete morati instalirati dodatne softverske pakete.
To možete učiniti dodavanjem nekih postavki u datoteku local.conf.
Na primjer, dodajte sljedeće retke da biste postavili ssh-server, pi-user i systemd:
## 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"
Ili dodajte pitona:
IMAGE_INSTALL:append = " python3 python3-pip rpi-gpio raspi-gpio"
Bilješka
Početni prostor u " python3 python3-pip rpi-gpio raspi-gpio" je važan, jer je tekst dodan postojećoj konfiguraciji i treba ga odvojiti ovim prostorom.
Licenca za autorska prava
Autorska prava © 2022. Interelectronix e.K.
Ovaj izvorni kod projekta licenciran je pod licencom GPL-3.0.
Priznanja
Izvori korišteni u za stvaranje ovih uputa:
Hvala svima.