Sisukord:

Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti võtmena: 6 sammu
Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti võtmena: 6 sammu

Video: Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti võtmena: 6 sammu

Video: Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti võtmena: 6 sammu
Video: Resolving Windows Application Lockups and Freezing: Survival Guide 2024, November
Anonim
Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti donglina
Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti donglina

Eesmärgid:

  • Installige tööriistakett ja kompileerige tuum, et sisestada USB Etherneti CDC vidina tugi;
  • Loo boot.img uuesti Linarost USB Etherneti CDC käivitamiseks;
  • Loo juurfailisüsteemi majutamiseks NFS -server;
  • IP -seadistamine seadmetes DEVICE ja HOST.

Samm: nõuded

Te vajate järgmisi üksusi:

  1. DragonBoard ™ 410c (siin nimega DEVICE);
  2. Arvutit, mis kasutab Ubuntu 16.04.3, uuendatud (siin nimega HOST) koos Interneti -ühenduse ja SDCardi pesaga;
  3. Linaro arendaja versiooni 431 puhas install - link: hetktõmmis Linaro Debian v431
  4. HDMI -monitor;
  5. USB -klaviatuur;
  6. 8 Gb SDCard;
  7. USB -kaabel, uUSB USB, et ühendada DEVICE HOST -is.

2. samm: hosti seadistamine kerneli ehitamiseks ja tuuma ehitamine HOST -is

Esiteks loome enne jätkamist kõik kataloogid. Niisiis:

$ cd ~

$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-moodulid

Kahjuks ei toeta Linaro (versioon 431) kasutatav Linuxi tuum USB Etherneti vidinat, seetõttu tuleb Linuxi tuum selle konkreetse versiooni jaoks uuesti üles ehitada. Laadige Linaro tööriistakett alla Linuxi tuuma loomiseks ja juurutamiseks Dragonboard410c -le x86 hostimasinast.

$ wget

$ tar -xf gcc-*-x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1

Nüüd installige kerneli loomiseks vajalikud paketid:

$ sudo apt update && sudo apt-get install git build-essential abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache

Hankige Linuxi kerneli allikas Clone Qualcommi maandumismeeskonna Linuxi hoidla:

$ git kloon

$ cd kernel $ git checkout origin/release/qcomlt-4.14 -b my-custom-4.14

Nüüd määrake kompileerimise keskkonnamuutujad:

$ export ARCH = arm64

$ export CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-

Siinkohal peame lisama moodulid kerneli USB Etherneti CDC -sse. Ma tegin seda varem ja saate selle selle sammu lõpus. Eemaldasin mõned kirjed, aga töötab.

Enne kompileerimist parandage kerneli viga draiveriteks/mmc/host/sdhci-msm.c, muutes rea 1150 struktuuri järgmiseks:

staatiline const structure 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};

Pakkige configfile.zip lahti, kopeerige.config fail kerneli kataloogi, ehitage kernel, moodulid ja installige kataloogi:

$ make -j $ (nproc) Image.gz dtbs

$ make -j $ (nproc) moodulid $ make modules_install INSTALL_MOD_PATH =../db410c -modules

Viide: 96Boards dokumentatsioon

Samm 3: Boost.img taastamine HOST -is

Selles etapis peame avama initrd -pildi, panema pildi sisse ehitatud moodulid, konfigureerima süsteemi nende moodulite käivitamiseks ja ehitama initrd.img uue kerneli käsuridaga, et juurfailisüsteem kaugel käivitada.

Niisiis, kõigepealt peame alla laadima initrd.img linaro veebisaidilt:

$ cd..

$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img

Nüüd, pärast allalaadimist, pakkige ja eraldage initrd:

$ zcat ramdisk.img | cpio -idmv

Selles kataloogis on meil juurfailisüsteem, mida kernel kasutab lähtestamisel, seega konfigureerime siin vajalikud USB Etherneti CDC -moodulid ja NFS -i kaugparameetrid, nagu NFS -serveri IP ja Ethernet (usb).

Nüüd konfigureerime mõned failid:

conf/initramfs.conf:

MOODULID = enamus

BUSYBOX = auto COMPRESS = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%

Looge kataloogi init-premount kataloogi skriptides/

$ mkdir skriptid/init-premount

ja lisage failid nendesse äsja loodud kataloogidesse:

TELLI

/scripts/init-premount/usb "$@"

[-e /conf/param.conf] &&. /conf/param.conf

usb

#!/bin/sh

PREREQ = "" prereqs () {echo "$ PREREQ"} juhul $ 1 in # get eeltingimused prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether

Ärge unustage kasutada chmod -i usb -failis selle käivitamiseks:

$ chmod +x skriptid/init-premount/usb

Nüüd kopeerige kogu kataloog koos moodulitega db410c-moodulitest (STEP 2) faili lib/modules in initrd:

$ cp -R../db410-modules/lib usr/

Eemaldage kõik failid kaustast lib/modules/4.14.96-xxxx-dirty, välja arvatud kõik failimoodul.* Ja see faililoend:

kernel/draiverid/usb/vidin/legacy/g_ether.ko

kernel/draiverid/USB/vidin/legacy/g_mass_storage.ko.ko tuum/draiverid/usb/vidin/funktsioon/usb_f_acm.ko kernel/draiverid/usb/vidin/funktsioon/u_ether.ko kernel/draiverid/usb/vidin/funktsioon/usb_f_obex.ko kernel/draiverid/usb/vidin/funktsioon /usb_f_serial.ko kernel/drivers/usb/vidin/function/usb_f_ecm.ko kernel/drivers/usb/vidin/function/usb_f_rndis.ko kernel/drivers/usb/gadget/function/u_serial.ko kernel/drivers/usb/vidin /function/usb_f_fs.ko kernel/drivers/usb/vidin/function/usb_f_ecm_subset.ko kernel/drivers/usb/gadget/libcomposite.ko

Need failid on kõik USB Etherneti CDC käivitamiseks vajalikud moodulid.

Lõpuks pakkige ja tihendage algne pilt:

$ leida. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img

Vähemalt tuleb kerneli pilt ja DTB -fail pakkida Androidi alglaadimispildile. Sellise pildi saab luua abootimg tööriistaga.

Lähme kerneli kataloogi ja kasutame allolevat käsku pildi loomiseks ja DTB lisamiseks tihendatud kerneli kujutisele:

$ cd../kernel

$ cat arch/$ ARCH/boot/Image.gz arch/$ ARCH/boot/dts/qcom/apq8016-sbc.dtb> Image.gz+dtb

Ja lõpuks genereerige alglaadimispilt (siin asub meie rootfs kaugsektsioonis 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"

Viited:

  • https://access.redhat.com/solutions/24029
  • 96Boards'i dokumentatsioon

Samm: juurfailisüsteemi loomine HOST -is

Nüüd on meil dragonboard 410c värskendamiseks uus alglaadimispilt. Kuid moodulite, teenuste ja rakenduste käivitamiseks vajame kaugserveris juurfailisüsteemi. Selles etapis ehitame kõigi nende andmete salvestamiseks hosti jagatud kataloogi. Nii laadime alla linaro saidilt rootfsi failisüsteemi, mille sama versioon on kasutusel initrdis. Niisiis, minge tagasi ühe kataloogi juurde ja laadige alla linaro-developer rootfsi pilt versiooniga 431.

$ cd..

$ wget

Pakkige see fail lahti

$ unzip dragonboard-410c-sdcard-developer-buster-431.zip

Selle faili abil kirjutame kõik pildid sd -kaardile, et pääseda juurde kõigile sektsioonidele ja kopeerida rootfs -faile. Niisiis, veenduge, et uSDCardi andmed varundatakse, sest kõik SDCardil olevad andmed lähevad kaduma.

SDCardi seadme nime leidmiseks eemaldage SDCard ja käivitage järgmine käsk:

$ lsblk

Salvestage oma meeltesse kõik tuvastatud ketta nimed. Sisestage nüüd SDCard, oodake hetk ja täitke käsk uuesti:

$ lsblk

Pange tähele äsja tuvastatud ketast. See on teie SDCard. Pidage meeles oma nime ja muutke oma SDCardi seadme nime parameetrit "of =" ning kasutage kindlasti seadme nime ilma sektsioonita, nt: /dev /mmcblk0

$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img =/dev/XXX bs = 4M oflag = sünkroonimisolek = edenemine

Märkused:

  • Selle käsu täitmine võtab natuke aega. Olge kannatlik ja vältige terminali manipuleerimist, kuni protsess on lõppenud.
  • Kui SD -kaart on vilkunud, eemaldage see hostarvutist.

Viide: 96 tahvli dokumentatsioon

Samm: serveri NFS -i loomine HOST -is ja failide kopeerimine

Siinkohal on meil alglaadimispilt draakonplaadile 410c ja SDCard koos rootfsi failisüsteemiga meie moodulite, teenuste ja rakenduste jaoks. Järgmine samm on luua kaugkataloog USB Etherneti seadme ühendamiseks HOST rootfs failisüsteemiga. Seda saab teha, kasutades Ubuntu paketti nimega nfs-kernel-server.

See pakett installib Ubuntu NFS -teenuse, mis võimaldab jagada mõne võrgu seadme kataloogi, saame teie IP -aadressi abil seadistada, millist kataloogi iga seadme jaoks kasutatakse.

Niisiis, installime paketi ja konfigureerime selle.

$ sudo apt-get install nfs-kernel-server

NFS -teenus käivitub automaatselt. NFS -teenuste juhtimiseks kasutage järgmist.

$ sudo teenus nfs-kernel-server restart // taaskäivitamiseks või vajadusel kasutage "stop" või "start".

NFS -teenuse oleku kontrollimiseks käsurealt kasutage järgmist.

$ sudo teenus nfs-kernel-server olek

nfsd töötab // Teenus on üleval nfsd ei tööta // Teenus on maas

Nüüd loome ülemise kataloogi /srv /nfs ja loome selle alla alamkataloogi iga vajaliku NFS -i juurfailisüsteemi jaoks. Siia kaasame jagatud juurfailisüsteemi, et hoida meie juurfailisüsteemi:

$ sudo mkdir -p /srv /nfs

$ sudo mkdir -p/srv/nfs/rootfs

Nüüd nõuab NFS -server /etc /export õigesti konfigureerimist, et kontrollida juurdepääsu igale NFS -failisüsteemi kataloogile konkreetsetele masinatele. Sellisel juhul tuvastatakse hostid nende IP -aadressi järgi. Niisiis, lisage iga loodud juurfailisüsteemi jaoks ekspordi juhtjoon kausta /etc /export, kohandades vajadusel oma kohalikku IP -aadressi ja kataloogide nimetamisskeemi. Selles õpetuses kasutame alati järgmist:

/srv/nfs/rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)

Sisestage oma SDCard uuesti, ühendage see ja kopeerige kogu rootfsi failisüsteem kataloogi/srv/nfs/rootfs, taaskäivitage NFS -teenus, et värskendada kataloogi uute kopeeritud failide abil.

Lisaks peame uued moodulifailid kopeerima rootfs-failisüsteemi, kuna koostasime 2. etapis kerneli. Nii kopeerige kõik kataloogid kataloogist ~/db410c-modules/to/srv/nfs/rootfs.

$ sudo cp -R ~/db410c -modules/*/srv/nfs/rootfs/

Veenduge, et NFS -teenus teeb need kataloogid nähtavaks. Kas:

$ sudo exportfs -a

Viide: TFTP/NFS juurfailisüsteem

Samm: Dragonboard 410c alglaadimispildi värskendamine ja võrguliideste seadistamine

Tegime varakult kõik sammud rootfsi failisüsteemi juurutamiseks, nüüd peame värskendama dragonboard 410c alglaadimispilti, selleks ühendage oma USB -kaabel arvutiga ja dragonboardi USB -pistikuga. Nii et veenduge, et kiirkäivitus on hostiarvutisse seadistatud, kui see pole installitud järgmiselt:

$ sudo apt install fastboot

Nüüd pildi värskendamiseks käivitage dragonboard kiirkäivitusrežiimi järgmiselt.

  • Vajutage ja hoidke all Drag (-) nuppu DragonBoard 410c, see on nupp S4. DragonBoard ™ 410c EI TOHI ikkagi sisse lülituda
  • Hoides all nuppu (-), lülitage DragonBoard 410c sisse, ühendades selle vooluvõrku
  • Kui DragonBoard 410c on vooluvõrku ühendatud, vabastage nupp Vol (-).
  • Oodake umbes 20 sekundit.
  • Juhatus peaks käivitama kiirkäivitusrežiimi.

Käivitage ühendatud hosti masina terminaliaknas järgmised käsud:

$ sudo kiirlaadimise seadmed

Tavaliselt kuvatakse see allpool

de82318 kiirlaadimine

Sel hetkel peaksite olema ühendatud oma DragonBoard 410c -ga USB -microUSB -kaabli abil. Teie DragonBoard 410c tuleks käivitada kiirkäivitusrežiimis ja valmis vilkuma koos sobivate piltidega. Värskendame alglaadimispilti meie alglaadimispildiga:

$ sudo fastboot flash boot ~/db410remoteroot/kernel/initrd_nfs.img

Ja taaskäivitage plaat

$ sudo kiirlaadimise taaskäivitamine

Nüüd tuvastab teie HOST uue liidese nimega usb0, kuid sellel pole veel IP -d. Niisiis, lisage sellele liidesele staatiline IP, kasutades järgmist:

$ sudo ifconfig usb0 10.42.0.1 võrgumask 255.255.255.0 üles

Või sisestage HOST -i jaotisse "Võrk" jaotis "Konfiguratsioon", määrates USB Ethernetile selle liidese staatilise IP.

Nüüd taaskäivitage draakoniplaat ja kontrollige süsteemi käivitamist, proovides ühenduse luua ssh abil:

$ ssh [email protected]

Viited:

  • 96 plaadi dokumentatsioon
  • HowtoForge - punkt 6

Soovitan: