INHOUDSOPGAWE:
- Stap 1: vereistes
- Stap 2: Konfigureer gasheer om kern te bou en kern in die HOST te bou
- Stap 3: Herbou Boot.img in die HOST
- Stap 4: Skep wortellêersisteem in die HOST
- Stap 5: Skep bediener -NFS in die HOST en kopieer lêers
- Stap 6: Dateer Dragonboard 410c -opstartbeeld op en instel netwerkinterfaces
Video: Toegang tot eksterne wortellêersisteem met behulp van DB410 as 'n Ethernet -Dongle: 6 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:26
Doelwitte:
- Installeer werktuigketting en stel die kern weer saam om USB Ethernet CDC Gadget -ondersteuning in te voeg;
- Herskep boot.img van Linaro om USB Ethernet CDC op te laai;
- Skep NFS -bediener om die wortellêerstelsel te huisves;
- IP -opset in DEVICE en HOST.
Stap 1: vereistes
U benodig die volgende items:
- 'N DragonBoard ™ 410c (hier genoem APPARAAT);
- 'N PC met Ubuntu 16.04.3 opgedateer (hier genoem HOST) met internetverbinding en SDCard -gleuf;
- 'N Skoon installasie van Linaro -ontwikkelaar weergawe 431 - Skakel: Snapshot Linaro Debian v431
- 'N HDMI -monitor;
- 'N USB -sleutelbord;
- 'N 8 GB SDCard;
- 'N USB -kabel, uUSB USB om die APPARAAT op HOST aan te sluit.
Stap 2: Konfigureer gasheer om kern te bou en kern in die HOST te bou
Eerstens maak ons alle gidse voordat ons kan voortgaan. Dus:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modules
Ongelukkig het Linux -kernel wat deur Linaro (weergawe 431) gebruik word, geen ondersteuning vir USB Ethernet -gadget nie, daarom moet Linux -kern vir hierdie spesifieke weergawe herbou word. Laai Linaro toolchain af om Linux -kernel op Dragonboard410c te bou en te implementeer vanaf die x86 -gasheermasjien.
$ wget
$ tar -xf gcc-*-x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-komponente = 1
Installeer nou pakkette wat nodig is om die kern te bou:
$ sudo apt update && sudo apt-get install git build-essential abootimg kernel-pakket fakeroot libncurses5-dev libssl-dev ccache
Kry Linux Kernel source Clone Qualcomm landing team Linux repository:
$ git kloon
$ cd kernel $ git afrekening oorsprong/release/qcomlt-4.14 -b my-custom-4.14
Stel nou samestellingsomgewingsveranderlikes in:
$ uitvoer ARCH = arm64
$ uitvoer CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-
Op hierdie punt moet ons die modules by USB Ethernet CDC in die kern voeg. Ek het dit voorheen gedoen, en u kan dit aan die einde van hierdie stap kry. Ek het 'n paar itens verwyder, maar dit werk.
Voordat u dit saamstel, moet u 'n kernfout regstel in drivers/mmc/host/sdhci-msm.c en die struktuur in reël 1150 verander na:
statiese const struct 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};
Pak configfile.zip uit, kopieer.config -lêer na kernmap, bou kernel, modules en installeer modules in 'n gids:
$ maak -j $ (nproc) Image.gz dtbs
$ maak -j $ (nproc) modules $ maak modules_install INSTALL_MOD_PATH =../db410c -modules
Verwysing: 96Board Dokumentasie
Stap 3: Herbou Boot.img in die HOST
In hierdie stap moet ons die initrd -beeld oopmaak, die modules in die prentjie plaas, die stelsel instel om die modules te begin en 'n initrd.img te herbou met 'n nuwe kernopdragreël om die wortellêerstelsel op afstand te begin.
Dus, eers moet ons initrd.img aflaai van die linaro -webwerf:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Na aflaai, pak die initrd uit en haal dit uit:
$ zcat ramdisk.img | cpio -idmv
In hierdie gids het ons die wortellêerstelsel wat die kern gebruik vir die inisialisering, dus stel ons USB Ethernet CDC -modules en NFS -afstandparameters in, soos NFS -bediener -IP en ethernet (usb) wat hier benodig word.
Kom ons stel nou 'n paar lêers op:
conf/initramfs.conf:
MODULES = meeste
BUSYBOX = auto COMPRESS = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%
Skep die gids init-premount in die gidsskrifte/
$ mkdir scripts/init-premount
en voeg die lêers by in die pas gemaakte gids:
ORDE
/scripts/init-premount/usb "$@"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#!/bin/sh
PREREQ = "" prereqs () {echo "$ PREREQ"} case $ 1 in # get pre-requisites prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
Moenie vergeet om chmod in usb -lêer te gebruik om dit uitvoerbaar te maak nie:
$ chmod +x scripts/init-premount/usb
Kopieer nou alle gids met die modules van db410c-modules (STAP 2) na lib/modules in initrd:
$ cp -R../db410-modules/lib usr/
Verwyder alle lêers in lib/modules/4.14.96-xxxx-dirty behalwe alle lêermodules.* En die lêerlys:
kernel/drivers/usb/gadget/legacy/g_ether.ko
kernel/drivers/usb/gadget/legacy/g_mass_storage.ko kern/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 kernel/drivers/usb/gadget/function/usb_f_acm.ko kernel/drivers/usb/gadget/function/u_ether.ko kern/drivers/usb/gadget/function/usb_f_obex.ko kern/drivers/usb/gadget/function /usb_f_serial.ko kern/drivers/usb/gadget/function/usb_f_ecm.ko kern/drivers/usb/gadget/function/usb_f_rndis.ko kern/drivers/usb/gadget/function/u_serial.ko kern/drivers/usb/gadget /function/usb_f_fs.ko kern/drivers/usb/gadget/function/usb_f_ecm_subset.ko kern/drivers/usb/gadget/libcomposite.ko
Hierdie lêers is almal modules wat benodig word om USB Ethernet CDC te begin.
Pak uiteindelik die oorspronklike beeld weer saam en pers dit saam:
$ vind. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Die kernbeeld en DTB -lêer moet ten minste in 'n Android -opstartbeeld gepak word. So 'n beeld kan gegenereer word met 'n abootimg -instrument.
Laat ons in die kerngids gaan en gebruik die onderstaande opdrag om 'n prentjie te bou en DTB by te voeg in die saamgeperste kernbeeld:
$ cd../kernel
$ cat arch/$ ARCH/boot/Image.gz arch/$ ARCH/boot/dts/qcom/apq8016-sbc.dtb> Image.gz+dtb
En laastens, genereer die opstartbeeld (hier is ons rootfs 'n afgeleë partisie in 10.42.0.1)
abootimg -skep boot -db410c.img -k Image.gz+dtb -r initrd_nfs.img -c bladsy grootte = 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"
Verwysings:
- https://access.redhat.com/solutions/24029
- 96Bord Dokumentasie
Stap 4: Skep wortellêersisteem in die HOST
Nou het ons 'n nuwe opstartbeeld gekry om die dragonboard 410c op te dateer. Maar ons benodig 'n wortellêerstelsel in die afstandbediener om modules, dienste en toepassings op te laai. In hierdie stap bou ons 'n gedeelde gids in die gasheer om al hierdie data te stoor. Laat ons op die manier 'n rootfs -lêerstelsel aflaai van linaro -webwerf met dieselfde weergawe wat in initrd gebruik is. Gaan dus een gids terug en laai die linaro-ontwikkelaar-rootfs-prent af met weergawe 431.
$ cd..
$ wget
Pak hierdie lêer uit
$ unzip dragonboard-410c-sdcard-developer-buster-431.zip
Met hierdie lêer, laat ons die hele prent op 'n sdcard skryf om toegang tot alle partisies te kry en rootfs -lêers te kopieer. Maak dus seker dat die data van uSDCard gerugsteun word, want alles op SDCard gaan verlore.
Om die naam van u SDCard -toestel te vind, verwyder SDCard en voer die volgende opdrag uit:
$ lsblk
Stoor alle erkende skyfname in u gedagtes. Plaas nou SDCard, wag 'n oomblik en voer die opdrag weer uit:
$ lsblk
Let op die nuut herkenbare skyf. Dit sal u SDCard wees. Onthou u naam en verander die parameter "of =" vir die naam van u SDCard -toestel en gebruik die apparaatnaam sonder die partisie, bv.: /dev /mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of =/dev/XXX bs = 4M oflag = sync status = progress
Notas:
- Hierdie opdrag sal 'n rukkie neem om uit te voer. Wees geduldig en vermy om met die terminale te peuter totdat die proses voltooi is.
- Sodra die SD -kaart klaar is met flikker, verwyder dit van die gasheerrekenaar.
Verwysing: 96 borde dokumentasie
Stap 5: Skep bediener -NFS in die HOST en kopieer lêers
Op hierdie punt het ons 'n opstartbeeld wat na dragonboard 410c en 'n SDCard met 'n rootfs -lêerstelsel vir ons modules, dienste en toepassings ingebou moet word. Die volgende stap is om 'n afgeleë gids te skep om die USB Ethernet DEVICE aan te sluit met die HOST rootfs lêerstelsel. Dit kan gedoen word met behulp van 'n pakket van Ubuntu met die naam nfs-kernel-server.
Hierdie pakket installeer 'n NFS -diens in Ubuntu wat toelaat dat sommige gidse vir sommige toestelle op die netwerk gedeel word; ons kan instel watter gids vir elke toestel gebruik sal word deur u IP te gebruik.
Dus, laat ons die pakket installeer en dit instel.
$ sudo apt-get install nfs-kernel-server
Die NFS -diens begin outomaties. Om NFS -dienste te beheer, gebruik:
$ sudo diens nfs-kernel-server herlaai // om weer te begin, of gebruik 'stop', of 'begin' as dit nodig is.
Om die status van die NFS -diens vanaf die opdragreël te kontroleer, gebruik:
$ sudo diens nfs-kernel-bedienerstatus
nfsd loop // Diens is op nfsd loop nie // Diens is af
Kom ons maak nou 'n topgids /srv /nfs en skep 'n subgids daaronder vir elke NFS -gemonteerde wortel lêerstelsel wat benodig word. Hier bevat ons 'n gedeelde wortellêerstelsel om ons wortelstelsel te behou:
$ sudo mkdir -p /srv /nfs
$ sudo mkdir -p/srv/nfs/rootfs
Die NFS -bediener vereis dat /etc /exports korrek gekonfigureer is om toegang tot elke NFS -lêerstelselgids tot spesifieke gashere te beheer. In hierdie geval word die leërskare geïdentifiseer deur hul IP -adres. Dus, vir elke wortellêerstelsel wat geskep word, voeg die uitvoerbeheerlyn by /etc /exports, en pas indien nodig aan vir u plaaslike IP -adres en skema -naamskema. In hierdie tutoriaal gebruik ons dit altyd:
/srv/nfs/rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)
Plaas u SDCard weer, monteer dit en kopieer alle rootfs lêerstelsel in/srv/nfs/rootfs, herlaai NFS diens om die gids op te dateer met nuwe gekopieerde lêers.
Boonop moet ons die nuwe modules se lêers in die rootfs-lêerstelsel kopieer omdat ons die kern op stap 2 saamgestel het. Kopieer dus alle dopgehou in ~/db410c-modules/na/srv/nfs/rootfs.
$ sudo cp -R ~/db410c -modules/*/srv/nfs/rootfs/
Maak seker dat hierdie kaarte deur die NFS -diens sigbaar gemaak word. Óf:
$ sudo exportfs -a
Verwysing: TFTP/NFS -wortellêersisteem
Stap 6: Dateer Dragonboard 410c -opstartbeeld op en instel netwerkinterfaces
Ons het vroegtydig alle stappe gedoen om 'n afgeleë rootfs -lêerstelsel te implementeer, en nou moet ons die opstartbeeld in die dragonboard 410c opdateer, en daarvoor moet u u USB -kabel op u rekenaar en uUSB -aansluiting op die draakbord aansluit. Maak dus seker dat fastboot op die gasheerrekenaar opgestel is, indien nie geïnstalleer met:
$ sudo apt installeer fastboot
Om die beeld op te dateer, begin die draagonboard in die fastboot -modus deur hierdie stappe te volg:
- Druk en hou die Vol (-) -knoppie op die DragonBoard 410c ingedruk, dit is die S4-knoppie. DragonBoard ™ 410c moet steeds NIE aangeskakel wees nie
- Terwyl u die Vol (-) -knoppie ingedruk hou, skakel die DragonBoard 410c aan deur dit aan te sluit
- Sodra DragonBoard 410c aan die krag gekoppel is, laat u die Vol (-) knoppie los.
- Wag ongeveer 20 sekondes.
- Die bord moet in die fastboot -modus begin.
Voer die volgende opdragte uit die verbindingsvenster van die aangeslote gasheermasjien uit:
$ sudo fastboot -toestelle
Gewoonlik sal dit soos hieronder verskyn
de82318 fastboot
Op hierdie punt moet u aan u DragonBoard 410c gekoppel wees met 'n USB na mikroUSB -kabel. U DragonBoard 410c moet in die fastboot -modus gestart word en gereed wees om met die toepaslike beelde geflits te word. Kom ons werk die opstartbeeld op met ons selfbeeld:
$ sudo fastboot flash boot ~/db410remoteroot/kernel/initrd_nfs.img
En herbegin die bord
$ sudo fastboot herlaai
U HOST sal nou 'n nuwe koppelvlak met die naam usb0 opspoor, maar dit het nog nie 'n IP nie. Voeg dus 'n statiese IP by hierdie koppelvlak met behulp van:
$ sudo ifconfig usb0 10.42.0.1 netmasker 255.255.255.0 op
Of voer 'Configuration' in op HOST in die item 'netwerk' en stel USB Ethernet 'n statiese IP in vir die koppelvlak.
Herbegin die draakbord weer en verifieer die begin van die stelsel en probeer om verbinding te maak met ssh:
$ ssh [email protected]
Verwysings:
- 96 borde dokumentasie
- HowtoForge - item 6
Aanbeveel:
Toegang tot u Solaredge -data met behulp van Python: 4 stappe
Toegang tot u Solaredge -data met behulp van Python: Omdat die data van die solaredge -transformators nie plaaslik gestoor word nie, maar op die bedieners van solaredge wou ek my data plaaslik gebruik, op hierdie manier kan ek die data in my eie programme gebruik. Ek sal u wys hoe u u data op die solaredge -webwerwe kan aanvra
Van ou skootrekenaar tot eksterne monitor met digitale TV: 6 stappe
Van ou skootrekenaar tot eksterne monitor met digitale TV: het u al ooit gewonder wat u moet doen met u ou skootrekenaar of monitor wat lê? In hierdie instruksies gaan ek jou wys hoe om jou ou skootrekenaar of ou skermskerm wat nie HDMI -poorte het nie, om te skakel in 'n eksterne monitor met HDMI, AV, kompos
Tel van 0 tot 9999 met 8051 met behulp van 7 segmentweergawe: 5 stappe
Tel van 0 tot 9999 Met 8051 met 7 segment -skerms: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 9999 te tel met behulp van vier 7 -segment -skerms deur slegs enkele poort en 4 digitale penne te gebruik
Hoe om van 0 tot 99 te tel met behulp van 8051 mikrobeheerder met 7 segmentweergawe: 5 stappe (met foto's)
Hoe om van 0 tot 99 te tel Met behulp van 8051 mikrobeheerder met 7 -segmentweergawe: Hallo almal, in hierdie tutoriaal gaan ons u vertel hoe om van 0 tot 99 te tel met twee 7 -segment -skerms
Maak 'n eksterne HDD van ou eksterne CD/RW: 5 stappe
Maak 'n eksterne HDD van ou eksterne CD/RW: 'n redelike eenvoudige omskakeling van 'n ou eksterne cd/rw na 'n nuttiger eksterne hardeskyf. Toebehore 1-eksterne cd/rw (verkieslik die meer boxy-tipe) 1-hardeskyf (moet ooreenstem met die interne aansluiting van die omhulselkas, moet geformateer/gespuit word) 1-sm