Sisukord:
- Samm: nõuded
- 2. samm: hosti seadistamine kerneli ehitamiseks ja tuuma ehitamine HOST -is
- Samm 3: Boost.img taastamine HOST -is
- Samm: juurfailisüsteemi loomine HOST -is
- Samm: serveri NFS -i loomine HOST -is ja failide kopeerimine
- Samm: Dragonboard 410c alglaadimispildi värskendamine ja võrguliideste seadistamine
Video: Juurdepääs kaugjuurdepääsu failisüsteemile, kasutades DB410 Etherneti võtmena: 6 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:48
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:
- DragonBoard ™ 410c (siin nimega DEVICE);
- Arvutit, mis kasutab Ubuntu 16.04.3, uuendatud (siin nimega HOST) koos Interneti -ühenduse ja SDCardi pesaga;
- Linaro arendaja versiooni 431 puhas install - link: hetktõmmis Linaro Debian v431
- HDMI -monitor;
- USB -klaviatuur;
- 8 Gb SDCard;
- 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:
MCU Juurdepääs Interneti -teenusele IFTTT kaudu - Ameba Arduino: 3 sammu
MCU Juurdepääs Interneti -teenusele IFTTT kaudu - Ameba Arduino: Interneti -teenusele juurdepääs on nutiseadme, näiteks Android -telefoni, tahvelarvuti või arvuti jaoks lihtne töö, kuid mitte nii lihtne mikrokontrollerite puhul, kuna see nõuab tavaliselt paremat ühenduvust ja töötlemisvõimsust. Siiski võime maha laadida raske osa
Juurdepääs Raspberry Pi failisüsteemile Windowsi kaudu: 9 sammu
Juurdepääs Raspberry Pi failisüsteemile Windowsi kaudu: kas teil on kunagi olnud Raspberry Pi ja see on läinud " Pean selle iga kord monitori, hiire ja klaviatuuri abil seadistama! &Quot; Pettumus, mida see põhjustab monitori ja klaviatuuri/hiire lahtiühendamisest/uuesti ühendamisest, vaid Raspberry Pi -le juurdepääsuks, on ületamatu
Kuidas muuta oma Raspberry Pi kaugjuurdepääsu lüüsiks: 6 sammu
Kuidas muuta oma Raspberry Pi kaugjuurdepääsu lüüsiks: Hei poisid! Hiljutisi sündmusi silmas pidades on meie remote.it meeskond teinud kõvasti tööd, pakkudes ideid, kuidas muuta kaugtöö valutuks ja juurdepääsetavaks. Oleme välja pakkunud remote.itPi SD -kaardi pildi, mis on SD -kaart, mille saate panna uude
Juurdepääs oma Solaredge andmetele Pythoni abil: 4 sammu
Juurdepääs teie Solaredge'i andmetele Pythoni abil: Kuna solaredge -trafode andmeid ei salvestata kohapeal, vaid solaredge'i serverites soovisin ma oma andmeid lokaalselt kasutada, saan sel viisil kasutada andmeid oma programmides. Ma näitan teile, kuidas saate oma andmeid nõuda veebi kaudu
Turvaline juurdepääs oma Pi -le kõikjal maailmas: 7 sammu
Turvaline juurdepääs oma Pi -le kõikjalt maailmast: mul on Pi -l vähe ööpäevaringselt töötavaid rakendusi. Kui ma kodust välja sain, muutus Pi tervise ja seisundi kontrollimine väga keeruliseks. Hiljem ületasin väiksema tõkke ngroki abil. Juurdepääs seadmele väljastpoolt annab