Sisällysluettelo:

Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena: 6 vaihetta
Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena: 6 vaihetta

Video: Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena: 6 vaihetta

Video: Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena: 6 vaihetta
Video: PS-Tools Sysinternals: Managing Files Like a Pro: Psfiles.exe and Openfiles.exe Explained 2024, Marraskuu
Anonim
Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena
Pääkäyttäjän etätiedostojärjestelmän käyttäminen DB410: n avulla Ethernet -sovittimena

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:

  1. DragonBoard ™ 410c (nimetty tässä LAITE);
  2. PC, joka käyttää Ubuntua 16.04.3, päivitetty (nimetty tässä HOST), jossa on Internet -yhteys ja SDCard -paikka;
  3. Linaro -kehittäjäversion 431 puhdas asennus - Linkki: Snapshot Linaro Debian v431
  4. HDMI -näyttö;
  5. USB -näppäimistö;
  6. 8 Gt SDCard;
  7. 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: