Turinys:
- 1 žingsnis: reikalavimai
- 2 veiksmas: pagrindinio kompiuterio konfigūravimas sukurti branduolį ir branduolio kūrimas HOST
- 3 veiksmas: atkurkite „Boot.img“HOST
- 4 veiksmas: šakninių failų sistemos kūrimas HOST
- 5 veiksmas: sukurkite serverio NFS HOST ir nukopijuokite failus
- 6 veiksmas: „Dragonboard 410c“įkrovos vaizdo atnaujinimas ir tinklo sąsajų konfigūravimas
Video: Prieiga prie nuotolinės šakninių failų sistemos naudojant DB410 kaip eterneto raktą: 6 veiksmai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:47
Tikslai:
- Įdiekite įrankių grandinę ir perkompiliuokite branduolį, kad įterptumėte USB Ethernet CDC programėlės palaikymą;
- Atkurkite boot.img iš „Linaro“, kad paleistumėte USB Ethernet CDC;
- Sukurti NFS serverį pagrindinei failų sistemai;
- IP konfigūracija DEVICE ir HOST.
1 žingsnis: reikalavimai
Jums reikės šių itenų:
- „DragonBoard ™ 410c“(čia pavadintas ĮRENGINIS);
- Kompiuteris naudojant „Ubuntu 16.04.3“atnaujintas (čia pavadintas HOST) su interneto ryšiu ir SDCard lizdu;
- Švarus „Linaro“kūrėjo 431 versijos diegimas - nuoroda: „Linaro Debian v431“momentinė nuotrauka
- HDMI monitorius;
- USB klaviatūra;
- 8 Gb SDCard;
- USB kabelis, uUSB USB, kad prijungtumėte DEVICE prie HOST.
2 veiksmas: pagrindinio kompiuterio konfigūravimas sukurti branduolį ir branduolio kūrimas HOST
Pirma, prieš tęsdami sukursime visus katalogus. Taigi:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modules
Deja, „Linaro“naudojamas „Linux“branduolys (431 versija) nepalaiko USB eterneto programėlės, todėl šiai konkrečiai versijai „Linux“branduolys turi būti atkurtas iš naujo. Atsisiųskite „Linaro“įrankių grandinę, kad sukurtumėte ir įdiegtumėte „Linux“branduolį „Dragonboard410c“iš x86 pagrindinio kompiuterio.
$ wget
$ tar -xf gcc-*-x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1
Dabar įdiekite paketus, reikalingus branduoliui sukurti:
$ sudo apt update && sudo apt-get install git build-essential abootimg branduolio paketas fakeroot libncurses5-dev libssl-dev ccache
Gaukite „Linux“branduolio šaltinio „Clone Qualcomm“nukreipimo komandos „Linux“saugyklą:
$ git klonas
$ cd branduolys $ git checkout origin/release/qcomlt-4.14 -b my-custom-4.14
Dabar nustatykite kompiliavimo aplinkos kintamuosius:
$ export ARCH = arm64
$ export CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-
Šiuo metu mes turime pridėti modulius prie USB Ethernet CDC branduolyje. Aš tai padariau anksčiau ir tai galite padaryti šio žingsnio pabaigoje. Aš pašalinau keletą itenų, bet tai veikia.
Prieš kompiliuodami, ištaisykite branduolio klaidą į tvarkykles/mmc/host/sdhci-msm.c, pakeisdami 1150 eilutės struktūrą į:
statinė konstravimo struktūra 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};
Išspauskite configfile.zip, nukopijuokite.config failą į branduolio katalogą, sukurkite branduolį, modulius ir įdiekite modulius kataloge:
$ make -j $ (nproc) Image.gz dtbs
$ make -j $ (nproc) moduliai $ make modules_install INSTALL_MOD_PATH =../db410c -modules
Nuoroda: 96Boards Documentation
3 veiksmas: atkurkite „Boot.img“HOST
Šiame žingsnyje turime atidaryti initrd atvaizdą, įdėti į modulį sukurtus modulius, sukonfigūruoti sistemą paleisti tuos modulius ir iš naujo sukurti initrd.img naudodami naują branduolio komandų eilutę, kad nuotoliniu būdu būtų galima paleisti šakninę failų sistemą.
Taigi, pirmiausia turime atsisiųsti initrd.img iš linaro svetainės:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Dabar, atsisiuntę, atspauskite ir išskleiskite initrd:
$ zcat ramdisk.img | cpio -idmv
Šiame kataloge yra šakninė failų sistema, kurią inicializuoja branduolys, todėl sukonfigūruosime USB eterneto CDC modulius ir NFS nuotolinius parametrus, tokius kaip NFS serverio IP ir eternetas (usb).
Dabar sukonfigūruokime kai kuriuos failus:
conf/initramfs.conf:
MODULIAI = dauguma
BUSYBOX = auto COMPRESS = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%
Sukurkite katalogo init-premount katalogo scenarijuose/
$ mkdir scenarijai/init-premount
ir pridėkite failus į ką tik sukurtą katalogą:
ĮSAKYMAS
/scripts/init-premount/usb "$@"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#!/bin/sh
PREREQ = "" prereqs () {echo "$ PREREQ"} atvejis $ 1 in # get išankstiniai reikalavimai prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
Nepamirškite naudoti chmod USB faile, kad jis būtų vykdomas:
$ chmod +x scenarijai/init-premount/usb
Dabar nukopijuokite visą katalogą su moduliais iš db410c-modules (2 ŽINGSNIS) į lib/modules in initrd:
$ cp -R../db410-modules/lib usr/
Pašalinkite visus failus iš lib/modules/4.14.96-xxxx-dirty, išskyrus visus modulių failus.* Ir tą failų sąrašą:
branduolys/tvarkyklės/usb/gadget/legacy/g_ether.ko
branduolis/tvarkyklės/usb/gadget/legacy/g_mass_storage.ko branduolys/tvarkyklės/usb/gadget/legacy/g_cdc.ko branduolys/tvarkyklės/usb/gadget/legacy/g_serial.ko branduolys/drivers/usb/gadget/function/usb_f_mass_storage.ko branduolys/tvarkyklės/usb/gadget/function/usb_f_acm.ko branduolys/tvarkyklės/usb/gadget/function/u_ether.ko branduolys/tvarkyklės/usb/gadget/function/usb_f_obex.ko branduolys/tvarkyklės/usb/gadget/function /usb_f_serial.ko branduolys/tvarkyklės/usb/gadget/function/usb_f_ecm.ko branduolys/tvarkyklės/usb/gadget/function/usb_f_rndis.ko branduolys/tvarkyklės/usb/gadget/function/u_serial.ko branduolys/tvarkyklės/usb/gadget /function/usb_f_fs.ko branduolys/tvarkyklės/usb/gadget/function/usb_f_ecm_subset.ko branduolys/tvarkyklės/usb/gadget/libcomposite.ko
Šie failai yra visi moduliai, reikalingi paleidžiant USB Ethernet CDC.
Galiausiai supakuokite ir suspauskite pradinį vaizdą:
$ rasti. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Bent jau branduolio vaizdas ir DTB failas turi būti supakuoti į „Android“įkrovos atvaizdą. Tokį vaizdą galima sukurti naudojant abootimg įrankį.
Eikime į branduolio katalogą ir naudokime žemiau esančia komanda, kad sukurtume vaizdą ir pridėtume DTB suspaustame branduolio vaizde:
$ cd../kernel
$ cat arch/$ ARCH/boot/Image.gz arch/$ ARCH/boot/dts/qcom/apq8016-sbc.dtb> Image.gz+dtb
Galiausiai sukurkite įkrovos vaizdą (čia mūsų rootfs yra nuotolinis skaidinys 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: išjungta rw rootwait konsolė = tty0 konsolė = ttyMSM0, 115200n8"
Nuorodos:
- https://access.redhat.com/solutions/24029
- 96Boards dokumentacija
4 veiksmas: šakninių failų sistemos kūrimas HOST
Dabar turime naują įkrovos vaizdą, skirtą atnaujinti „dragonboard 410c“. Bet mums reikia šakninės failų sistemos nuotoliniame serveryje, kad galėtume paleisti modulius, paslaugas ir programas. Šiame etape mes sukursime bendrinamą katalogą priegloboje, kad išsaugotume visus šiuos duomenis. Tokiu būdu atsisiųskime „rootfs“failų sistemą iš „linaro“svetainės su ta pačia versija, kuri naudojama „initrd“. Taigi, grįžkite į vieną katalogą ir atsisiųskite linaro-developer rootfs atvaizdą su 431 versija.
$ cd..
$ wget
Išspauskite šį failą
$ unzip dragonboard-410c-sdcard-developer-buster-431.zip
Naudodami šį failą, įrašykime visą vaizdą į sdcard, kad galėtumėte pasiekti visus skaidinius ir nukopijuoti rootfs failus. Taigi įsitikinkite, kad „uSDCard“duomenų atsarginės kopijos yra sukurtos, nes viskas, kas yra SDCard, bus prarasta.
Norėdami rasti SDCard įrenginio pavadinimą, pašalinkite SDCard ir paleiskite šią komandą:
$ lsblk
Išsaugokite mintyse visus atpažintus diskų pavadinimus. Dabar įdėkite SDCard, palaukite ir vėl vykdykite komandą:
$ lsblk
Atkreipkite dėmesį į naujai atpažįstamą diską. Tai bus jūsų SDCard. Prisiminkite savo vardą ir pakeiskite SDCard įrenginio pavadinimo parametrą „of =“ir būtinai naudokite įrenginio pavadinimą be skaidinio, pvz.: /dev /mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img =/dev/XXX bs = 4M oflag = sinchronizavimo būsena = progresas
Pastabos:
- Šiai komandai įvykdyti prireiks šiek tiek laiko. Būkite kantrūs ir venkite kištis į terminalą, kol procesas nesibaigs.
- Kai SD kortelė mirksi, išimkite ją iš pagrindinio kompiuterio.
Nuoroda: 96 lentų dokumentacija
5 veiksmas: sukurkite serverio NFS HOST ir nukopijuokite failus
Šiuo metu turime įkrovos vaizdą, kuris bus perkeltas į „dragonboard 410c“ir SDCard su „rootfs“failų sistema, skirta mūsų moduliams, paslaugoms ir programoms. Kitas žingsnis yra sukurti nuotolinį katalogą, kad būtų galima prijungti USB Ethernet įrenginį prie HOST rootfs failų sistemos. Tai galima padaryti naudojant paketą iš „Ubuntu“pavadinimu nfs-kernel-server.
Šis paketas įdiegia NFS paslaugą į „Ubuntu“, leidžiančią bendrinti kai kuriuos kai kurių tinklo įrenginių katalogus, mes galime sukonfigūruoti, kuris katalogas bus naudojamas kiekvienam įrenginiui, naudojant jūsų IP.
Taigi, įdiekime paketą ir sukonfigūruokime.
$ sudo apt-get install nfs-kernel-server
NFS paslauga paleidžiama automatiškai. Norėdami valdyti NFS paslaugas, naudokite:
$ sudo service nfs-kernel-server restart // norėdami iš naujo paleisti, arba naudokite „stop“arba „start“, jei reikia.
Norėdami patikrinti NFS paslaugos būseną iš komandinės eilutės, naudokite:
$ sudo paslaugos nfs-branduolio serverio būsena
nfsd veikia // Paslauga aukštyn nfsd neveikia // Paslauga neveikia
Dabar sukurkime viršutinį katalogą /srv /nfs ir pagal jį sukurkite pakatalogį kiekvienai NFS įdiegtai šakninei failų sistemai. Čia įtraukiame bendrinamą šakninę failų sistemą, kad išlaikytume šakninę failų sistemą:
$ sudo mkdir -p /srv /nfs
$ sudo mkdir -p/srv/nfs/rootfs
Dabar NFS serveris reikalauja, kad /etc /export būtų tinkamai sukonfigūruotas, kad būtų galima kontroliuoti prieigą prie kiekvieno NFS failų sistemos katalogo prie konkrečių kompiuterių. Šiuo atveju pagrindiniai kompiuteriai identifikuojami pagal jų IP adresą. Taigi, kiekvienai sukurtajai šakninei failų sistemai pridėkite eksporto valdymo eilutę prie /etc /export, jei reikia, pakoreguodami vietinį IP adresą ir katalogų pavadinimo schemą. Šioje pamokoje mes visada naudojame:
/srv/nfs/rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)
Dar kartą įdėkite SDCard kortelę, įdėkite ją ir nukopijuokite visą rootfs failų sistemą į/srv/nfs/rootfs, iš naujo paleiskite NFS paslaugą, kad atnaujintumėte katalogą naudodami naujus nukopijuotus failus.
Be to, mums reikia nukopijuoti naujų modulių failus į rootfs failų sistemą, nes branduolį surinkome atlikdami 2 veiksmą. Taigi, nukopijuokite visus katalogus į ~/db410c-modules/į/srv/nfs/rootfs.
$ sudo cp -R ~/db410c -modules/*/srv/nfs/rootfs/
Įsitikinkite, kad šiuos katalogus mato NFS tarnyba. Arba:
$ sudo exportfs -a
Nuoroda: TFTP/NFS šaknų failų sistema
6 veiksmas: „Dragonboard 410c“įkrovos vaizdo atnaujinimas ir tinklo sąsajų konfigūravimas
Anksti padarėme visus žingsnius, kad įdiegtume nuotolinę „rootfs“failų sistemą, dabar turime atnaujinti įkrovos vaizdą „dragonboard 410c“viduje, tam prijunkite savo USB kabelį prie kompiuterio ir prie „dragonboard“USB jungties. Taigi įsitikinkite, kad „fastboot“yra nustatytas pagrindiniame kompiuteryje, jei neįdiegiate naudodami:
$ sudo apt install fastboot
Dabar, kad atnaujintumėte vaizdą, paleiskite „dragonboard“į greito paleidimo režimą atlikdami šiuos veiksmus:
- Paspauskite ir palaikykite „Vol“(-) mygtuką „DragonBoard 410c“, tai yra S4 mygtukas. „DragonBoard ™ 410c“vis tiek neturėtų būti įjungtas
- Laikydami nuspaudę „Vol“(-) mygtuką, įjunkite „DragonBoard 410c“, prijungdami jį
- Kai „DragonBoard 410c“bus prijungtas prie maitinimo šaltinio, atleiskite „Vol“(-) mygtuką.
- Palaukite apie 20 sekundžių.
- Lenta turėtų paleisti greito įkrovos režimą.
Iš prijungto pagrindinio kompiuterio terminalo lango paleiskite šias komandas:
$ sudo greito paleidimo įrenginiai
Paprastai tai bus parodyta žemiau
de82318 greitas įkrovimas
Šiuo metu turėtumėte būti prijungtas prie „DragonBoard 410c“naudodami USB -microUSB kabelį. „DragonBoard 410c“turėtų būti įjungtas greito įkrovos režimu ir paruoštas blykstelėti su atitinkamais vaizdais. Atnaujinkime įkrovos vaizdą naudodami mūsų įkrovos vaizdą:
$ sudo fastboot flash boot ~/db410remoteroot/kernel/initrd_nfs.img
Ir iš naujo paleiskite plokštę
$ sudo greito paleidimo iš naujo
Dabar jūsų HOST aptiks naują sąsają, pavadintą usb0, tačiau ji dar neturi IP. Taigi, pridėkite statinį IP prie šios sąsajos naudodami:
$ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 up
Arba įveskite „Konfigūracija“HOST, „tinklo“elemente, nustatydami USB eternetui statinį tos sąsajos IP.
Dabar iš naujo paleiskite „dragonboard“ir patikrinkite sistemos paleidimą, bandydami prisijungti naudodami ssh:
$ ssh [email protected]
Nuorodos:
- 96 lentų dokumentacija
- HowtoForge - 6 punktas
Rekomenduojamas:
Prieiga prie „Solaredge“duomenų naudojant „Python“: 4 veiksmai
Prieiga prie jūsų „Solaredge“duomenų naudojant „Python“: Kadangi „Solaredge“transformatorių duomenys nėra saugomi vietoje, bet „Solaredge“serveriuose norėjau savo duomenis naudoti vietoje, tokiu būdu galiu naudoti duomenis savo programose. Aš jums parodysiu, kaip galite paprašyti savo duomenų „Solaredge“tinkluose
Kaip nustatyti „Bluetooth“raktą „Macbook Pro“: 6 veiksmai
Kaip įdiegti „Bluetooth“raktą „Macbook Pro“: Fonas: Po ilgų paieškų ir peržvalgų pasenusiuose forumuose ir palaikymo gijose (paprastai su pikta ir nenaudingais komentarais) man pavyko sėkmingai nustatyti „Bluetooth“raktą „Macbook“. Atrodo, kad yra daug žmonių
Failų kopijavimas ir įklijavimas bei prieiga tarp kelių kompiuterių: 3 veiksmai
Failų kopijavimas ir įklijavimas bei prieiga tarp kelių kompiuterių: ką tik radau svetainę, leidžiančią žmonėms kopijuoti ir įklijuoti bet kokį tekstą, paveikslėlius, vaizdo įrašus ir pan. Iš kelių kompiuterių. Tai taip pat leidžia kurti pranešimų lentą, įkelti failus ir spausdinti tinklalapį. Ir geriausia yra tai, kad jūs net neturite
Kaip prijungti maišymo lentą ir mikrofono gyvatę prie garso sistemos: 3 veiksmai
Kaip prijungti maišymo plokštę ir mikrofono gyvatę prie garso sistemos: Vaizdo įrašas apima garso maišytuvo (maišymo plokštės ar konsolės) prijungimo prie garso sistemos naudojant mikrofono gyvatės kabelį pagrindus. Jis apima mikrofoną ir siunčia ryšius. Daugiau informacijos: http://proaudiotraining.com
„IPhone“stilius bet kuriame jutiklinio ekrano mobiliajame telefone, turinčiame prieigą prie interneto: 6 veiksmai
„IPhone“stilius bet kuriame jutiklinio ekrano mobiliajame telefone su prieiga prie interneto: čia aptarsiu „LG Voyager“pagrindinio puslapio nustatymą atitinkamam myphonetoo puslapiui, kad būtų pasiektas šis efektas. Tai geriausiai tinka telefone su jutikliniu ekranu. Sukurta svetainė, panaši į „iPhone“, visos nuorodos nukreipiamos į sukurtas svetaines