Avoimen lähdekoodin Yocto-projektiopas
Avoimen lähdekoodin Yocto Project -opas mukautetulle Linuxille Raspberry Pi: ssä Dockerin asennusvinkkien avulla
Sukella Yocto-projektiin mukautetuille Linux-järjestelmille millä tahansa laitteistolla. Täydellinen kehittäjille ja sulautettujen järjestelmien harrastajille. Aloita rakentaminen nyt!
Tutustu Yocto-projektiin, avoimen lähdekoodin aloitteeseen mukautettujen Linux-järjestelmien luomiseksi mille tahansa laitteistoarkkitehtuurille. Opi käyttämään CROPSia alustojen väliseen kehitykseen, asenna Docker-säilöjä ja rakenna räätälöityjä Linux-kuvia sulautetuille ja IoT-laitteille. Oppaamme kattaa macOS:n asennuksen, rakennusympäristöjen määrittämisen ja optimoinnin Raspberry Pi:lle. Olitpa aloittelija tai asiantuntija, löydä parhaat käytännöt, työkalut ja yhteisön tuki Linux-projektisi tarpeisiin.
Yocton suorittaminen Docker-kontissa
Yocto-dokumenteissa on luku (2.2.2) alustariippumattoman ohjelmiston (Cross Platform Software, CROPS) asentamisesta vaihtoehtona alkuperäisen Linux-pohjaisen tietokoneen asentamiselle. Tämä vaihtoehto käyttää Docker-konttia luodakseen räätälöidyn järjestelmälevykuvan esim. Raspberry Pi:lle.
Asensin tämän käyttöympäristön itselleni Mac OS X (Monterey) -käyttöjärjestelmään, mutta valitettavasti asennusohjeissa on joitakin pieniä virheitä.
Docker-kontin asentaminen Mac OS X:lle
Jotta CROPS Dockerin käyttö Linux-, Windows- ja Mac OS X -käyttöjärjestelmillä onnistuisi, tarvitaan joitakin erityisasetuksia. Ennen kuin asennat kontin Yoctoa varten, sinun on luotava Docker volume tulosten tallentamiseksi. Myös Docker Samba -konttia käytetään tiedostojen hallintaan Mac OS X:llä.
Docker volumen luominen
Kirjoita terminaali-ikkunaan seuraavat komennot:
docker volume create --name raspberry
docker run -it --rm -v raspberry:/workdir busybox chown -R 1000:1000 /workdir
Samba-kontin luominen ja suorittaminen
OSX ei anna sinun muodostaa yhteyttä paikallisesti toimivaan Samba-jakoon. Siksi sinun on ensin luotava peitenimi portille 127.0.0.1 tai 127.0.0.2.
sudo ifconfig lo0 127.0.0.2 alias up
Luo sitten Samba-kontti, jonka avulla näet tiedostot Docker volumessa:
docker create -t --expose 445 -p 127.0.0.2:445:445 --name samba -v raspberry:/workdir crops/samba
Koska tarvitset aina Samba-konttiin liitettävän peitenimen, voit yhdistää Samban alun ja peitenimen näin:
docker start samba && sudo ifconfig lo0 127.0.0.2 alias up
Nyt voit avata työikkunan tiedostoselaimessa. Napauta hakukentässä "Command-K" ja kirjoita palvelimen osoitekenttään "smb://127.0.0.2/workdir" ja klikkaa "Connect". Nyt sinun pitäisi nähdä Docker volumen sisältö hakukentässä.
Yocto-kontin luominen ja käynnistäminen
Luodaksesi ja/tai aloittaaksesi Yocto-kontin kirjoita terminaali-ikkunaan:
docker run --rm -it --name=crops-poky -v raspberry:/workdir crops/poky:ubuntu-20.04 --workdir=/workdir
Rakennusympäristön määrittäminen konttiin
Kun Docker-kontti käynnistetään, terminaalikehote näyttää tältä: "pokyuser@d4ddfe042587:/workdir".
Nyt voit määrittää rakennusympäristön.
Poky-version kloonaaminen
Itse käytän Yocto-versiota 3.4 nimellä "Honister", koska meta-raspberry-kerrokset eivät ole tällä hetkellä saatavilla uudemmille Poky-versioille. Ensimmäisellä kerralla sinun täytyy kloonata Poky-kuvauskanta:
git clone -b honister git://git.yoctoproject.org/poky poky-honister
Jos haluat päivittää Pokyn uusimpaan versioon:
cd poky-honister
git pull --all --prune
Lisämetakerrokset Raspberry Pi:lle
Vaihda muotoon "poky-honister" ja kloonaa seuraavat kuvauskannat: meta-raspberry, meta-openembedded ja tarvittaessa 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
Rakennuskonfiguraation määrittäminen
Poistu poky-honister-hakemistosta, jolloin olet /workdir-hakemistossa. Hae nyt rakennusympäristö komentosarjalla oe-init-build-env.
cd ..
source poky-honister/oe-init-build-env rpi-build
Uusi hakemisto "rpi-build" – voit nimetä sen haluamallasi tavalla – ja konfiguraatiohakemisto tiedostoilla bblayers.conf, local.conf ja templateconf.cfg on luotu.
Koska konttiin ei ole asennettu tekstieditoria, sinun on joko muokattava konfiguraatiotiedostoja Mac OS X:ään asennetussa Samba volumessa tai asennettava tekstieditori konttiin. Tehdäksesi sen sinun täytyy avata toinen terminaali-ikkuna Yocto-kontin ollessa käynnissä ja käynnistää kontissa Bash shell -komentotulkki pääkäyttäjän oikeuksilla:
docker exec -it --user=root crops-poky bash
apt-get install nano
exit
Sitten voit muokata konfiguraatiotiedostoja Yocto-kontissa Poky-käyttäjänä.
Huomautus
Editoria ei ole asennettu pysyvästi. Kun olet poistunut kontista ja haluat päästä sinne uudelleen, sinun on asennettava se uudelleen
Lisää ensin meta-raspberry bblayers.conf-tiedostoon
nano conf/bblayers.conf
Lisää "/workdir/poky-honister/meta-raspberrypi ", jolloin se näyttää
BBLAYERS ?= " \
/workdir/poky-honister/meta \
/workdir/poky-honister/meta-poky \
/workdir/poky-honister/meta-yocto-bsp \
/workdir/poky-honister/meta-raspberrypi \
"
ja tallenna se.
Seuraavaksi muokkaa local.conf-tiedostoa
Muokkaa local.conf-tiedostoa:
nano conf/local.conf
Muuta seuraavat rivit:
- MACHINE ??= "qemux86-64" -> MACHINE ??= "raspberrypi4-64"
Riippuen siitä, mitä Raspberryä haluat käyttää (raspberrypi0, raspberrypi0w, raspberrypi3, raspberrypi3-64, raspberrypi4, raspberrypi4-64 jne.)
Poista seuraavien rivien kommentit:
- DL_DIR ?= "${TOPDIR}/downloads"
- SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
- TMPDIR = "${TOPDIR}/tmp"
Lisää seuraavat rivit loppuun saadaksesi sdimgin SD-muistikortille:
- IMAGE_FSTYPES = "ext4.xz rpi-sdimg"
- SDIMG_ROOTFS_TYPE = "ext4.xz"
Tallenna local.conf-tiedosto.
BitBaken ensimmäinen levykuva
Nyt sinulla on minimiasetukset ensimmäisen levykuvan luomiseen:
bitbake -k core-image-minimal
Yocto-dokumentaatiosta löydät lyhyen kuvauksen saatavilla olevista levykuvista.
Esimerkiksi:
– core-image-minimal: Pieni levykuva, joka mahdollistaa vain laitteen käynnistymisen. – core-image-base: Pelkkä konsolikuva, joka tukee täysin kohdelaitteen laitteistoa. – core-image-full-cmdline: Pelkkä konsolikuva, johon on asennettu monipuolisemmat Linux-järjestelmän toiminnot.
Hetken kuluttua – joka voi ensimmäisellä kerralla tarkoittaa useita tunteja – BitBake on valmis ja löydät sdimg-tiedoston seuraavasta hakemistosta:
/workdir/rpi-build/tmp/deploy/images/raspberrypi4-64
Lisäkonfiguraatiot
Raspberryn lisäasetukset
Asettaaksesi tiettyjä laitteistoasetuksia voit katsoa tiedostot extra-apps.md ja extra-build-config.md. Löydät nämä tiedostot myös meta-raspberrypi/docs-hakemistosta.
Metakerros tarjoaa myös levykuvan konfiguraation "rpi-test-image" käytettäväksi BitBaken kanssa. Levykuva perustuu tiedostoon "core-image-base", joka sisältää useimmat meta-raspberrypi:n paketit ja joitakin medianäytteitä.
bitbake -k rpi-test-image
Lisäohjelmistokonfiguraatiot
Käyttämästäsi levykuvan rakennuskonfiguraatiosta riippuen saatat joutua asentamaan lisää ohjelmistopaketteja.
Voit tehdä tämän lisäämällä joitakin asetuksia local.conf-tiedostoon.
Lisää esimerkiksi seuraavat rivit asettaaksesi asetukset ssh-server, pi-user ja 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"
Tai lisää python:
IMAGE_INSTALL:append = " python3 python3-pip rpi-gpio raspi-gpio"
Huomautus
Alun välilyönti komentosarjassa "python3 python3-pip rpi-gpio raspi-gpio" on tärkeä, koska teksti on liitetty olemassa olevaan konfiguraatioon ja on erotettava välilyönnillä.
Tekijänoikeuslisenssi
Copyright © 2022 Interelectronix e.K.
Tämän projektin lähdekoodi on lisensoitu **GPL-3.0 ** -lisenssillä.
Kuittaukset
Näiden ohjeiden laatimiseen käytetyt lähteet:
– https://github.com/crops/poky-container– https://docs.yoctoproject.org/index.html
Kiitos kaikille.