Sisällysluettelo:
- Vaihe 1: Vaatimukset
- Vaihe 2: Isännän määrittäminen ytimen rakentamiseksi ja ytimen rakentaminen HOSTissa
- Vaihe 3: Rakenna Boot.img uudelleen HOSTissa
- Vaihe 4: Päätiedostojärjestelmän luominen HOSTissa
- Vaihe 5: Palvelimen NFS: n luominen HOSTissa ja tiedostojen kopioiminen
- Vaihe 6: Dragonboard 410c: n käynnistyskuvan päivittäminen ja verkkoliitäntöjen määrittäminen
Video: Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena: 6 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:02
Tavoitteet:
- Asenna työkaluketju ja käännä ydin uudelleen, jotta voit lisätä USB Ethernet CDC Gadget -tuen;
- Luo Boot.img Linarosta USB Ethernet CDC: n käynnistämiseksi;
- Luo NFS -palvelin juuritiedostojärjestelmän isännöimiseksi;
- IP -asetukset DEVICE ja HOST.
Vaihe 1: Vaatimukset
Tarvitset seuraavat asiat:
- DragonBoard ™ 410c (nimetty tässä LAITE);
- PC, joka käyttää Ubuntua 16.04.3, päivitetty (nimetty tässä HOST), jossa on Internet -yhteys ja SDCard -paikka;
- Linaro -kehittäjäversion 431 puhdas asennus - Linkki: Snapshot Linaro Debian v431
- HDMI -näyttö;
- USB -näppäimistö;
- 8 Gt SDCard;
- USB -kaapeli, uUSB USB laitteen yhdistämiseksi HOST -laitteeseen.
Vaihe 2: Isännän määrittäminen ytimen rakentamiseksi ja ytimen rakentaminen HOSTissa
Ensin luomme kaikki hakemistot ennen kuin voimme jatkaa. Niin:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modules
Valitettavasti Linaron käyttämä Linux -ydin (versio 431) ei tue USB -Ethernet -gadgetia, minkä vuoksi Linux -ydin on rakennettava uudelleen tätä tiettyä versiota varten. Lataa Linaro -työkaluketju linux -ytimen rakentamiseen ja käyttöönottoon Dragonboard410c: ssä x86 -isäntäkoneelta.
$ wget
$ tar -xf gcc-*-x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1
Asenna nyt ytimen rakentamiseen tarvittavat paketit:
$ sudo apt update && sudo apt-get install git build-essential abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache
Hanki Linux -ytimen lähde Clone Qualcomm -laskeutumisryhmän Linux -arkisto:
$ git klooni
$ cd-ydin $ git checkout origin/release/qcomlt-4.14 -b my-custom-4.14
Aseta nyt kokoamisympäristömuuttujat:
$ vienti ARCH = arm64
$ export CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-
Tässä vaiheessa meidän on lisättävä moduulit ytimen USB Ethernet CDC: hen. Tein sen ennen ja saat tämän tämän vaiheen lopussa. Poistin muutaman iten, mutta se toimii.
Ennen kuin käännät, korjaa ytimen vika ohjaimiksi/mmc/host/sdhci-msm.c ja vaihda rivin 1150 rakenne seuraavasti:
staattinen const rakenne sdhci_ops sdhci_msm_ops = {
.reset = sdhci_reset,.set_clock = sdhci_msm_set_clock,.get_min_clock = sdhci_msm_get_min_clock,.get_max_clock = sdhci_msm_get_max_clock,.set_bus_width = sdhci_set_bus_width,.set_uhs_signaling = sdhci_msm_set_uhs_signaling,.voltage_switch = sdhci_msm_voltage_switch, ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS.write_w = sdhci_msm_write_w, #endif};
Pura configfile.zip, kopioi.config -tiedosto ytimen hakemistoon, rakenna ydin, moduulit ja asenna moduulit hakemistoon:
$ make -j $ (nproc) Image.gz dtbs
$ make -j $ (nproc) moduulit $ make modules_install INSTALL_MOD_PATH =../db410c -modules
Viite: 96Boards -dokumentaatio
Vaihe 3: Rakenna Boot.img uudelleen HOSTissa
Tässä vaiheessa meidän on avattava initrd -kuva, asetettava kuvan sisään rakennetut moduulit, konfiguroitava järjestelmä käynnistämään kyseiset moduulit ja rakennettava initrd.img uudelleen uudella ytimen komentorivillä käynnistääksesi juuritiedostojärjestelmän etänä.
Joten ensin meidän on ladattava initrd.img linaron verkkosivustolta:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Pura nyt ja purkaa initrd lataamisen jälkeen:
$ zcat ramdisk.img | cpio -idmv
Tässä hakemistossa on ytimen käyttämä juuritiedostojärjestelmä alustuksessa, joten määritämme USB Ethernet CDC -moduulit ja NFS -etäparametrit, kuten NFS -palvelimen IP ja ethernet (usb).
Määritetään nyt joitain tiedostoja:
conf/initramfs.conf:
MODULIT = useimmat
BUSYBOX = auto COMPRESS = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%
Luo hakemisto init-premount hakemistoskripteihin/
$ mkdir-komentosarjat/init-premount
ja lisää tiedostot tähän juuri luotuun hakemistoon:
TILAUS
/scripts/init-premount/usb "$@"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#!/bin/sh
PREREQ = "" prereqs () {echo "$ PREREQ"} tapaus $ 1 in # get pre-requisites prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
Älä unohda käyttää chmodia usb -tiedostossa suoritettavaksi:
$ chmod +x komentosarjat/init-premount/usb
Kopioi nyt kaikki moduulit sisältävä hakemisto db410c-moduuleista (VAIHE 2) lib/modulesiin initrd:
$ cp -R../db410-modules/lib usr/
Poista kaikki tiedostot tiedostosta lib/modules/4.14.96-xxxx-dirty paitsi kaikki tiedostomoduuli.* Ja kyseinen tiedostoluettelo:
kernel/drivers/usb/gadget/legacy/g_ether.ko
kernel/drivers/usb/gadget/legacy/g_mass_storage.ko kernel/drivers/usb/gadget/legacy/g_cdc.ko kernel/drivers/usb/gadget/legacy/g_serial.ko ydin/drivers/usb/gadget/function/usb_f_mass_storage.ko kernel/drivers/usb/gadget/function/usb_f_acm.ko kernel/drivers/usb/gadget/function/u_ether.ko kernel/drivers/usb/gadget/function/usb_f_obex.ko kernel/drivers/usb/gadget/function /usb_f_serial.ko kernel/drivers/usb/gadget/function/usb_f_ecm.ko kernel/drivers/usb/gadget/function/usb_f_rndis.ko kernel/drivers/usb/gadget/function/u_serial.ko kernel/drivers/usb/gadget /function/usb_f_fs.ko ydin/drivers/usb/gadget/function/usb_f_ecm_subset.ko kernel/drivers/usb/gadget/libcomposite.ko
Nämä tiedostot ovat kaikki moduuleja, joita tarvitaan USB Ethernet CDC: n käynnistämiseen.
Pakkaa ja pakkaa lopuksi initrd -kuva:
$ löytää. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Ainakin ytimen kuva ja DTB -tiedosto on pakattava Android -käynnistyskuvaan. Tällainen kuva voidaan luoda abootimg -työkalulla.
Siirrymme ytimen hakemistoon ja käytä alla olevaa komentoa kuvan luomiseen ja liitä DTB pakattuun ytimen kuvaan:
$ cd../kernel
$ cat arch/$ ARCH/boot/Image.gz arch/$ ARCH/boot/dts/qcom/apq8016-sbc.dtb> Image.gz+dtb
Ja lopuksi, luo käynnistyskuva (tässä rootfs sijaitsee etäosiossa 10.42.0.1)
abootimg --create boot -db410c.img -k Image.gz+dtb -r initrd_nfs.img -c pagesize = 2048
-c kerneladdr = 0x80008000 -c ramdiskaddr = 0x81000000 -c cmdline = "root =/dev/nfs nfsroot = 10.42.0.1:/srv/nfs/rootfs ip = 10.42.0.2: 10.42.0.1: 10.42.0.1: 255.255.255.0: db410c: usb0: off rw rootwait console = tty0 console = ttyMSM0, 115200n8"
Viitteet:
- https://access.redhat.com/solutions/24029
- 96Boards -dokumentaatio
Vaihe 4: Päätiedostojärjestelmän luominen HOSTissa
Nyt meillä on uusi käynnistyskuva Dragonboard 410c: n päivittämiseksi. Mutta tarvitsemme juuritiedostojärjestelmän etäpalvelimelle moduulien, palveluiden ja sovellusten käynnistämiseksi. Tässä vaiheessa rakennamme isäntään jaetun hakemiston kaikkien näiden tietojen tallentamiseksi. Tällä tavalla ladataan rootfs -tiedostojärjestelmä linaro -sivustosta, jolla on sama versio kuin initrd. Palaa siis yhteen hakemistoon ja lataa linaro-developer rootfs -kuva versiolla 431.
$ cd..
$ wget
Pura tämä tiedosto
$ unzip dragonboard-410c-sdcard-developer-buster-431.zip
Kirjoitetaan tämän tiedoston avulla kaikki kuvat sdcardille, jotta voidaan käyttää kaikkia osioita ja kopioida rootfs -tiedostoja. Varmista siis, että uSDCard -tiedot varmuuskopioidaan, koska kaikki SDCard -kortin tiedot menetetään.
Löydä SDCard -laitteen nimi poistamalla SDCard ja suorittamalla seuraava komento:
$ lsblk
Tallenna mieleen kaikki tunnistetut levynimet. Aseta nyt SDCard, odota hetki ja suorita komento uudelleen:
$ lsblk
Huomaa äskettäin tunnistettu levy. Tämä on SDCard -korttisi. Muista nimesi ja muuta SDCard -laitteen nimen parametri "of =" ja muista käyttää laitteen nimeä ilman osiota, esim. /Dev /mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of//dev/XXX bs = 4M oflag = sync status = progress
Huomautuksia:
- Tämän komennon suorittaminen kestää jonkin aikaa. Ole kärsivällinen ja vältä terminaalin muokkaamista, kunnes prosessi on päättynyt.
- Kun SD -kortti vilkkuu, poista se isäntätietokoneesta.
Viite: 96boards -dokumentaatio
Vaihe 5: Palvelimen NFS: n luominen HOSTissa ja tiedostojen kopioiminen
Tässä vaiheessa meillä on käynnistyskuva, joka välitetään dragonboard 410c: hen ja SDCard, jossa on rootfs -tiedostojärjestelmä moduulejamme, palveluitamme ja sovelluksiamme varten. Seuraava vaihe on luoda etähakemisto USB -Ethernet -laitteen yhdistämiseksi HOST rootfs -tiedostojärjestelmään. Tämä voidaan tehdä käyttämällä Ubuntun pakettia nimeltä nfs-kernel-server.
Tämä paketti asentaa NFS -palvelun Ubuntuun, joka mahdollistaa joidenkin hakemistojen jakamisen joillekin verkon laitteille. Voimme määrittää, mitä hakemistoa käytetään kullekin laitteelle käyttämällä IP -osoitettasi.
Joten asennetaan paketti ja määritetään se.
$ sudo apt-get install nfs-kernel-server
NFS -palvelu käynnistyy automaattisesti. Voit hallita NFS -palveluja seuraavasti:
$ sudo-palvelu nfs-kernel-server restart // käynnistääksesi uudelleen tai käytä tarvittaessa pysäytystä tai käynnistämistä.
Voit tarkistaa NFS -palvelun tilan komentoriviltä seuraavasti:
$ sudo-palvelu nfs-ytimen palvelimen tila
nfsd käynnissä // Palvelu on ylhäällä nfsd ei käynnissä // Palvelu ei ole käytössä
Luodaan nyt ylähakemisto /srv /nfs ja luodaan sen alle alihakemisto kullekin vaaditulle NFS -juuritiedostojärjestelmälle. Tässä on jaettu juuritiedostojärjestelmä juuritiedostojärjestelmän säilyttämiseksi:
$ sudo mkdir -p /srv /nfs
$ sudo mkdir -p/srv/nfs/rootfs
Nyt NFS -palvelin edellyttää, että /etc /export on määritetty oikein, jotta voidaan hallita pääsyä kullekin NFS -tiedostojärjestelmähakemistolle tietyille isännille. Tässä tapauksessa isännät tunnistetaan niiden IP -osoitteen perusteella. Joten lisää jokaiselle luodulle juuritiedostojärjestelmälle viennin ohjausrivi hakemistoon /etc /export ja säädä tarvittaessa paikallista IP -osoitettasi ja hakemiston nimeämisjärjestelmääsi. Tässä opetusohjelmassa käytämme aina seuraavaa:
/srv/nfs/rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)
Aseta SDCard -kortti uudelleen, liitä se ja kopioi kaikki rootfs -tiedostojärjestelmä/srv/nfs/rootfs -tiedostoon, käynnistä NFS -palvelu uudelleen ja päivitä hakemisto uusilla kopioiduilla tiedostoilla.
Lisäksi meidän on kopioitava uudet moduulitiedostot rootfs-tiedostojärjestelmään, koska olemme koonneet ytimen vaiheessa 2. Joten kopioi kaikki hakemistot ~/db410c-modules/kohteeseen/srv/nfs/rootfs.
$ sudo cp -R ~/db410c -modules/*/srv/nfs/rootfs/
Varmista, että NFS -palvelu näyttää nämä hakemistot. Jompikumpi:
$ sudo exportfs -a
Viite: TFTP/NFS -juuritiedostojärjestelmä
Vaihe 6: Dragonboard 410c: n käynnistyskuvan päivittäminen ja verkkoliitäntöjen määrittäminen
Teimme varhaisessa vaiheessa kaikki vaiheet juuritiedoston rootfs -tiedostojärjestelmän käyttöönottamiseksi, nyt meidän on päivitettävä käynnistyskuva dragonboard 410c: n sisällä. Kytke sitä varten USB -kaapeli tietokoneeseen ja dragonboard uUSB -liitäntään. Varmista siis, että pikakäynnistys on määritetty isäntätietokoneelle, jos et asenna sitä käyttämällä:
$ sudo apt install fastboot
Päivitä kuva nyt käynnistämällä dragonboard pikakäynnistystilaan seuraavasti:
- Paina ja pidä alhaalla Vol (-) -painiketta DragonBoard 410c: ssä, tämä on S4-painike. DragonBoard ™ 410c: tä EI pitäisi vieläkään kytkeä päälle
- Pidä Vol (-) -painiketta painettuna ja käynnistä DragonBoard 410c kytkemällä se pistorasiaan
- Kun DragonBoard 410c on kytketty virtalähteeseen, vapauta Vol (-) -painike.
- Odota noin 20 sekuntia.
- Boardin pitäisi käynnistyä pikakäynnistystilaan.
Suorita liitetyn isäntäkoneen pääteikkunassa seuraavat komennot:
$ sudo pikakäynnistyslaitteet
Yleensä se näkyy alla
de82318 pikakäynnistys
Tässä vaiheessa sinun on liitettävä DragonBoard 410c -laitteeseesi USB -microUSB -kaapelilla. DragonBoard 410c -laitteesi on käynnistettävä pikakäynnistystilaan ja valmis välähtämään sopivilla kuvilla. Päivitetään käynnistyskuva meidän käynnistyskuvalla:
$ sudo fastboot flash boot ~/db410remoteroot/kernel/initrd_nfs.img
Ja käynnistä levy uudelleen
$ sudo fastboot uudelleenkäynnistys
Nyt HOST tunnistaa uuden käyttöliittymän nimeltä usb0, mutta sillä ei ole vielä IP -osoitetta. Joten, lisää tähän liittymään staattinen IP käyttämällä:
$ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 up
Tai kirjoita HOSTin "Configuration" kohtaan "network" ja aseta USB Ethernet kiinteäksi IP -osoitteeksi.
Käynnistä dragonboard uudelleen ja tarkista järjestelmän käynnistys ja yritä muodostaa yhteys ssh: llä:
$ ssh [email protected]
Viitteet:
- 96boardin dokumentaatio
- HowtoForge - Kohta 6
Suositeltava:
LED -valon käyttäminen Arduino UNO: n avulla TinkerCAD -piireissä: 7 vaihetta
Työskentely LED -valolla Arduino UNO: n avulla TinkerCAD -piireissä: Tämä projekti osoittaa työskentelyn LED- ja Arduino -laitteiden kanssa TinkerCAD -piireissä
Teensyn käyttäminen kuvien tulostamiseen Splatoon 2 -laitteeseen SplatPost -tulostimen avulla: 10 vaihetta
Teensyn käyttäminen kuvien tulostamiseen Splatoon 2 -laitteella SplatPost -tulostimen avulla: Tässä ohjeessa näytän ShinyQuagsiren SplatPost -tulostimen käyttämisen. Ilman selkeitä ohjeita henkilöllä, jolla ei ole kokemusta komentoriviltä, olisi hieman ongelmia. Tavoitteeni on yksinkertaistaa vaiheita alaspäin
Drone Quadcopter -harjattoman tasavirtamoottorin käyttäminen HW30A -harjaton moottorin nopeudensäätimen ja servotesterin avulla: 3 vaihetta
Kuinka käyttää Drone Quadcopterin harjatonta tasavirtamoottoria käyttämällä HW30A -harjatonta moottorin nopeudensäädintä ja servotesteriä: Kuvaus: Tätä laitetta kutsutaan servomoottorin testeriksi, jota voidaan käyttää servomoottorin käynnistämiseen yksinkertaisesti kytkemällä servomoottori ja syöttämällä siihen virtalähde. Laitetta voidaan käyttää myös sähköisen nopeudensäätimen (ESC) signaaligeneraattorina, jolloin voit
Wemos ESP-Wroom-02 D1 Mini WiFi -moduulin ESP8266 + 18650 käyttäminen Blynkin avulla: 10 vaihetta
Wemos ESP-Wroom-02 D1 Mini WiFi -moduulin ESP8266 + 18650 käyttäminen Blynk-tekniikan avulla: Erittely: Yhteensopiva nodemcu 18650 -latausjärjestelmän integroinnin kanssa Merkkivaloa (vihreä tarkoittaa täyden punaisen lataamista) voidaan käyttää latauksen aikana liitintä voidaan käyttää lepotilassa · 1 lisää
Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopivan kortin käyttäminen Blynkin avulla: 10 vaihetta
Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopivan kortin käyttäminen Blynkin avulla: Arduino WeMos D1 WiFi UNO ESP8266 IOT IDE -yhteensopiva levy Kuvaus: WiFi ESP8266 Development Board WEMOS D1. WEMOS D1 on WIFI -kehityskortti, joka perustuu ESP8266 12E -järjestelmään. Toiminta on samanlainen kuin NODEMCU, paitsi että laitteisto on rakennettu