Kazalo:
- 1. korak: Zahteve
- 2. korak: Konfiguriranje gostitelja za izdelavo jedra in gradnjo jedra v gostitelju
- 3. korak: Ponovno zgradite Boot.img v HOST
- 4. korak: Ustvarjanje korenskega datotečnega sistema v HOSTU
- 5. korak: Ustvarjanje strežnika NFS v HOSTU in kopiranje datotek
- 6. korak: Posodobitev zagonske slike Dragonboard 410c in konfiguriranje omrežnih vmesnikov
Video: Dostop do oddaljenega korenskega datotečnega sistema z uporabo DB410 kot ethernetnega ključa: 6 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
Cilji:
- Namestite verigo orodij in znova sestavite jedro, da vstavite podporo za pripomočke CDC USB Ethernet CDC;
- Ponovno ustvarite boot.img iz Linara za zagon USB Ethernet CDC;
- Ustvarite strežnik NFS za gostovanje korenskega datotečnega sistema;
- Konfiguracija IP v DEVICE in HOST.
1. korak: Zahteve
Potrebovali boste naslednje elemente:
- DragonBoard ™ 410c (tukaj imenovan DEVICE);
- Računalnik, ki uporablja Ubuntu 16.04.3, posodobljen (imenovan tukaj HOST) z internetno povezavo in režo za kartico SDCard;
- Čista namestitev različice 431 za razvijalce Linaro - Povezava: Posnetek Linaro Debian v431
- Monitor HDMI;
- USB tipkovnica;
- SD kartica 8 Gb;
- Kabel USB, uUSB USB za priključitev NAPRAVE na HOST.
2. korak: Konfiguriranje gostitelja za izdelavo jedra in gradnjo jedra v gostitelju
Najprej bomo ustvarili vse imenike, preden bomo nadaljevali. Torej:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir veriga orodij $ mkdir db410c-moduli
Na žalost jedro Linuxa, ki ga uporablja Linaro (različica 431), nima podpore za pripomoček USB Ethernet, zato je treba jedro Linuxa za to različico obnoviti. Prenesite Linaro toolchain za izdelavo in uvajanje jedra Linuxa na Dragonboard410c z gostiteljskega stroja x86.
$ wget
$ tar -xf gcc-*-x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1
Zdaj namestite pakete, ki so potrebni za izdelavo jedra:
$ sudo apt update && sudo apt-get install git build-bistven abootimg paket jedra fakeroot libncurses5-dev libssl-dev ccache
Pridobite vir jedra Linuxa Clone Qualcomm ciljno skupino za Linux:
klon $ git
jedro $ cd $ git checkout origin/release/qcomlt-4.14 -b my-custom-4.14
Zdaj nastavite spremenljivke okolja kompilacije:
$ izvoz ARCH = arm64
$ export CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-
Na tej točki moramo module dodati v jedro USB Ethernet CDC. To sem že počel in to lahko dobite na koncu tega koraka. Odstranil sem nekaj itens, vendar deluje.
Pred prevajanjem popravite napako jedra v drivers/mmc/host/sdhci-msm.c in spremenite strukturo v vrstici 1150 na:
statična konstrukcija const 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};
Razpakirajte configfile.zip, kopirajte datoteko.config v imenik jedra, sestavite jedro, module in namestite module v imenik:
$ make -j $ (nproc) Image.gz dtbs
moduli $ make -j $ (nproc) $ make modules_install INSTALL_MOD_PATH =../db410c -modules
Referenca: 96Boards Documentation
3. korak: Ponovno zgradite Boot.img v HOST
V tem koraku moramo odpreti sliko initrd, vstaviti v sliko vgrajene module, konfigurirati sistem za zagon teh modulov in obnoviti initrd.img z novo ukazno vrstico jedra za daljinski zagon korenskega datotečnega sistema.
Torej, najprej moramo prenesti initrd.img s spletnega mesta linaro:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Po prenosu raztegnite in izvlecite initrd:
$ zcat ramdisk.img | cpio -idmv
V tem imeniku imamo korenski datotečni sistem, ki ga jedro uporablja pri inicializaciji, zato bomo konfigurirali module USB Ethernet CDC in oddaljene parametre NFS, kot sta IP strežnika NFS in ethernet (usb), ki sta tukaj potrebna.
Zdaj pa nastavimo nekaj datotek:
conf/initramfs.conf:
MODULI = večina
BUSYBOX = samodejno KOMPRESIRANJE = gzip DEVICE = usb0 NFSROOT = samodejno RUNSIZE = 10%
Ustvarite imenik init-premiount v imeniških skriptah/
$ mkdir skripte/init-premiount
in dodajte datoteke v pravkar ustvarjeni imenik:
NAROČI
/scripts/init-premiount/usb "$@"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#!/bin/sh
PREREQ = "" prereqs () {echo "$ PREREQ"} primer $ 1 v # dobite predpogoje prereqs) prereqs izhod 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
Ne pozabite uporabiti chmod v usb datoteki, da bo izvedljiva:
$ chmod +x skripti/init-premount/usb
Zdaj kopirajte ves imenik z moduli iz modulov db410c (STEP 2) v lib/modules v initrd:
$ cp -R../db410-modules/lib usr/
Odstranite vse datoteke v lib/modules/4.14.96-xxxx-umazano, razen vseh datotek.* In tega seznama datotek:
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 kernel/drivers/usb/gadget/function/usb_f_mass_storage.ko jedro/gonilniki/usb/pripomoček/funkcija/usb_f_acm.ko jedro/gonilniki/usb/pripomoček/funkcija/u_ether.ko jedro/gonilniki/usb/pripomoček/funkcija/usb_f_obex.ko jedro/gonilniki/usb/pripomoček/funkcija /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 jedro/drivers/usb/gadget/function/usb_f_ecm_subset.ko kernel/drivers/usb/gadget/libcomposite.ko
Vse te datoteke so vsi moduli, potrebni za zagon USB Ethernet CDC.
Končno prepakirajte in stisnite sliko initrd:
$ najdi. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Vsaj sliko jedra in datoteko DTB je treba zapakirati v zagonsko sliko Android. Takšno sliko lahko ustvarite z orodjem abootimg.
Vstopimo v imenik jedra in s spodnjim ukazom sestavimo sliko in dodamo DTB v stisnjeno sliko jedra:
$ cd../jedro
$ cat arch/$ ARCH/boot/Image.gz arch/$ ARCH/boot/dts/qcom/apq8016-sbc.dtb> Image.gz+dtb
In končno, ustvarite zagonsko sliko (tukaj je naš rootfs oddaljena particija v 10.42.0.1)
abootimg -ustvari boot -db410c.img -k Image.gz+dtb -r initrd_nfs.img -c pageize = 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"
Reference:
- https://access.redhat.com/solutions/24029
- 96Boards Dokumentacija
4. korak: Ustvarjanje korenskega datotečnega sistema v HOSTU
Zdaj imamo novo zagonsko sliko za posodobitev dragonboard 410c. Za zagon modulov, storitev in aplikacij potrebujemo korenski datotečni sistem na oddaljenem strežniku. V tem koraku bomo v gostitelju zgradili imenik v skupni rabi, da shranimo vse te podatke. Na ta način prenesite datotečni sistem rootfs s spletnega mesta linaro z isto različico, ki je bila uporabljena v initrd. Torej, pojdite nazaj v en imenik in prenesite podobo rootfs linaro-developer z različico 431.
$ cd..
$ wget
Razpakirajte to datoteko
$ unzip dragonboard-410c-sdcard-developer-buster-431.zip
S to datoteko zapišemo vso sliko na kartico sdcard za dostop do vseh particij in kopiranje datotek rootfs. Zato poskrbite za varnostno kopijo podatkov iz kartice usDCard, ker bo vse na kartici SD izgubljeno.
Če želite poiskati ime naprave SDCard, odstranite kartico SDC in zaženite naslednji ukaz:
$ lsblk
Shranite v mislih vsa priznana imena diskov. Zdaj vstavite kartico SDC, počakajte trenutek in znova izvedite ukaz:
$ lsblk
Bodite pozorni na novo prepoznani disk. To bo vaša kartica SD. Zapomnite si svoje ime in spremenite parameter "of =" za ime naprave SDCard in ime naprave uporabite brez particije, npr.: /dev /mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of =/dev/XXX bs = 4M oflag = stanje sinhronizacije = napredek
Opombe:
- Ta ukaz bo trajal nekaj časa. Bodite potrpežljivi in se izogibajte poseganju v terminal, dokler se postopek ne konča.
- Ko kartica SD utripa, jo odstranite iz gostiteljskega računalnika.
Referenca: dokumentacija 96 plošč
5. korak: Ustvarjanje strežnika NFS v HOSTU in kopiranje datotek
Na tej točki imamo zagonsko sliko, ki jo lahko vstavimo v dragonboard 410c in kartico SDC z datotečnim sistemom rootfs za naše module, storitve in aplikacije. Naslednji korak je ustvarjanje oddaljenega imenika za povezovanje vmesnika USB Ethernet DEVICE z datotečnim sistemom HOST rootfs. To lahko storite s paketom iz Ubuntuja z imenom nfs-kernel-server.
Ta paket namesti storitev NFS v Ubuntu, ki omogoča skupno rabo nekaterih imenikov za nekatere naprave v omrežju. Z vašim IP -jem lahko nastavimo, kateri imenik bo uporabljen za vsako napravo.
Torej, namestimo paket in ga konfiguriramo.
$ sudo apt-get namestite nfs-kernel-server
Storitev NFS se samodejno zažene. Za nadzor storitev NFS uporabite:
$ sudo storitev nfs-kernel-server restart // za ponovni zagon ali po potrebi uporabite 'stop' ali 'start'.
Za preverjanje stanja storitve NFS iz ukazne vrstice uporabite:
Stanje storitve $ sudo nfs-kernel-server
nfsd teče // Storitev je gor nfsd se ne izvaja // Storitev ni delovala
Zdaj pa ustvarimo top imenik /srv /nfs in pod njim ustvarimo podimenik za vsak zahtevani korenski datotečni sistem NFS. Tukaj vključujemo korenski datotečni sistem v skupni rabi, da ohranimo naš korenski datotečni sistem:
$ sudo mkdir -p /srv /nfs
$ sudo mkdir -p/srv/nfs/rootfs
Zdaj strežnik NFS zahteva, da je /etc /export pravilno konfiguriran za nadzor dostopa do vsakega imenika datotečnega sistema NFS do določenih gostiteljev. V tem primeru so gostitelji identificirani po naslovu IP. Zato za vsak ustvarjeni korenski datotečni sistem dodajte kontrolno vrstico za izvoz v /etc /export in po potrebi prilagodite svoj lokalni naslov IP in shemo poimenovanja imenikov. V tej vadnici vedno uporabljamo:
/srv/nfs/rootfs 10.42.0.2 (rw, sinhronizacija, no_root_squash, no_subtree_check)
Znova vstavite kartico SDC, jo namestite in kopirajte ves datotečni sistem rootfs v/srv/nfs/rootfs, znova zaženite storitev NFS, da posodobite imenik z novimi kopiranimi datotekami.
Poleg tega moramo datoteke novih modulov kopirati v datotečni sistem rootfs, ker smo jedro sestavili v 2. koraku. Torej, kopirajte vse imenike v ~/db410c-modules/v/srv/nfs/rootfs.
$ sudo cp -R ~/db410c -modules/*/srv/nfs/rootfs/
Poskrbite, da bo storitev NFS vidna. Ali:
$ sudo exportfs -a
Sklic: Korenski datotečni sistem TFTP/NFS
6. korak: Posodobitev zagonske slike Dragonboard 410c in konfiguriranje omrežnih vmesnikov
Zgodaj smo naredili vse korake za implementacijo oddaljenega datotečnega sistema rootfs, zdaj moramo posodobiti zagonsko podobo znotraj dragonboard 410c, za to svoj USB kabel priključite na osebni računalnik in na priključek uUSB dragonboard. Zato se prepričajte, da je fastboot nastavljen na gostiteljskem računalniku, če ne namestite z:
$ sudo apt namestite fastboot
Zdaj, da posodobite sliko, zaženite de dragonboard v načinu hitrega zagona po teh korakih:
- Pritisnite in držite gumb Vol (-) na DragonBoard 410c, to je gumb S4. DragonBoard ™ 410c še vedno NE sme biti vklopljen
- Držite gumb Vol (-), vklopite DragonBoard 410c tako, da ga priključite
- Ko je DragonBoard 410c priključen na napajanje, spustite gumb Vol (-).
- Počakajte približno 20 sekund.
- Plošča se mora zagnati v načinu hitrega zagona.
V oknu terminala povezanega gostiteljskega stroja zaženite naslednje ukaze:
$ sudo naprave za hiter zagon
Običajno se prikaže kot spodaj
de82318 hitri zagon
Na tej točki morate biti povezani s svojim DragonBoard 410c s kablom USB na microUSB. Vaš DragonBoard 410c je treba zagnati v način hitrega zagona in ga pripraviti za bliskanje z ustreznimi slikami. Posodobimo zagonsko sliko z našo zagonsko sliko:
$ sudo fastboot flash zagon ~/db410remoteroot/kernel/initrd_nfs.img
In znova zaženite ploščo
$ sudo fastboot ponovni zagon
Zdaj bo vaš HOST zaznal nov vmesnik z imenom usb0, vendar še nima IP -ja. Torej temu vmesniku dodajte statični IP z uporabo:
$ sudo ifconfig usb0 10.42.0.1 maska omrežja 255.255.255.0 navzgor
Ali pa vnesite "Konfiguracija" na HOST, v postavki "omrežje" in nastavite statični IP tega vmesnika za USB Ethernet.
Zdaj znova zaženite dragonboard in preverite zagon sistema ter se poskusite povezati s ssh:
$ ssh [email protected]
Reference:
- Dokumentacija o 96 ploščah
- HowtoForge - postavka 6
Priporočena:
Nastavitev Raspberry Pi 4 prek prenosnega računalnika/računalnika z uporabo Ethernetnega kabla (brez monitorja, brez Wi-Fi): 8 korakov
Nastavitev Raspberry Pi 4 prek prenosnega računalnika/računalnika z uporabo Ethernetnega kabla (brez monitorja, brez Wi-Fi-ja): Pri tem bomo za nastavitev delali z Raspberry Pi 4 Model-B z 1 Gb RAM-a. Raspberry-Pi je enosmerni računalnik, ki se uporablja za izobraževalne namene in DIY projekte po dostopni ceni, zahteva napajanje 5V 3A
Dostop do datotečnega sistema Raspberry Pi v sistemu Windows: 9 korakov
Dostop do datotečnega sistema Raspberry Pi prek operacijskega sistema Windows: Ste že kdaj imeli Raspberry Pi in ste odšli " vsakič ga moram nastaviti z monitorjem, miško in tipkovnico! &Quot; Razočaranje, ki ga povzroči, da izklopite/znova priključite monitor in tipkovnico/miško, samo dostop do Raspberry Pi je brez primere.
Zgradite amaterski radio APRS RX Only IGate z uporabo Raspberry Pi in ključa RTL-SDR v manj kot pol ure: 5 korakov
Zgradite amaterski radio APRS RX Only IGate z uporabo Raspberry Pi in ključa RTL-SDR v manj kot pol ure: Upoštevajte, da je to že precej staro, zato so nekateri deli nepravilni in zastareli. Datoteke, ki jih morate urediti, so se spremenile. Posodobil sem povezavo, da vam predstavim najnovejšo različico slike (za razpakiranje uporabite 7-zip), vendar za popolna navodila
Uporaba mikrokrmilnikov za upravljanje in nadzor oddaljenega namakalnega sistema: 4 koraki
Uporaba mikrokrmilnikov za upravljanje in nadzor oddaljenega namakalnega sistema: kmetje in upravljavci rastlinjakov za poceni avtomatski namakalni sistem. V tem projektu integriramo elektronski senzor vlage v tleh z mikrokrmilnikom za samodejno namakanje rastlin, če je zemlja presuha brez človeškega posredovanja
Izdelava večinoma oddaljenega sistema kamere: 5 korakov
Izdelava večinoma sistema za daljinsko kamero: Delam v gradbenem podjetju in iskali smo rešitev za mobilno kamero. To sem si zamislil in deluje odlično. Z lahkoto ga premikamo in na večini področij mobilna širokopasovna povezava dobi ustrezen sprejem za dobro delovanje