Ugrađeni softver - Yocto build Raspberry Pi 4 snimka zaslona računala

Yocto izgraditi Raspberry Pi 4

U docker okruženju

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

#### Prvo dodajte meta-malinu u datoteku bblayers.conf
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.