Satura rādītājs:

Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle: 6 soļi
Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle: 6 soļi

Video: Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle: 6 soļi

Video: Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle: 6 soļi
Video: 5 цилиндров не в ряд: обозреваем уникальный мотор для Passat, Golf и других VW. 2024, Novembris
Anonim
Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle
Piekļuve attālajai sakņu failu sistēmai, izmantojot DB410 kā Ethernet dongle

Mērķi:

  • Instalējiet rīku ķēdi un pārkompilējiet kodolu, lai ievietotu USB Ethernet CDC sīkrīka atbalstu;
  • Atjaunojiet boot.img no Linaro, lai sāktu USB Ethernet CDC;
  • Izveidot NFS serveri saknes failu sistēmas mitināšanai;
  • IP konfigurācija ierīcēs DEVICE un HOST.

1. darbība. Prasības

Jums būs nepieciešami šādi elementi:

  1. DragonBoard ™ 410c (šeit nosaukts IERĪCE);
  2. Dators, izmantojot Ubuntu 16.04.3, atjaunināts (šeit nosaukts kā HOST) ar interneta pieslēgumu un SDCard slotu;
  3. Linaro izstrādātāja versijas 431 tīra instalēšana - saite: momentuzņēmums Linaro Debian v431
  4. HDMI monitors;
  5. USB tastatūra;
  6. 8 Gb SDCard;
  7. USB kabelis, uUSB USB, lai savienotu DEVICE vietnē HOST.

2. darbība: resursdatora konfigurēšana kodola veidošanai un kodola izveide HOST

Vispirms mēs izveidosim visus direktorijus, lai turpinātu. Tātad:

$ cd ~

$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-moduļi

Diemžēl Linaro izmantotais Linux kodols (versija 431) neatbalsta USB Ethernet sīkrīku, tāpēc Linux kodols ir jāpārveido šai konkrētajai versijai. Lejupielādējiet Linaro rīku ķēdi, lai izveidotu un izvietotu Linux kodolu Dragonboard410c no x86 resursdatora.

$ wget

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

Tagad instalējiet pakotnes, kas nepieciešamas, lai izveidotu kodolu:

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

Iegūstiet Linux kodola avotu Clone Qualcomm galvenās komandas Linux repozitoriju:

$ git klons

$ cd kodols $ git izrakstīšanās izcelsme/laidiens/qcomlt-4.14 -b my-custom-4.14

Tagad iestatiet kompilācijas vides mainīgos:

$ export ARCH = arm64

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

Šajā brīdī mums ir jāpievieno moduļi USB Ethernet CDC kodolā. Es to darīju iepriekš, un jūs varat to iegūt šī soļa beigās. Es noņēmu dažus itņus, bet tas darbojas.

Pirms kompilēšanas, lūdzu, izlabojiet kodola kļūdu uz vadītājiem/mmc/host/sdhci-msm.c, mainot 1150 rindas struktūru uz:

static 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};

Izsaiņojiet configfile.zip, nokopējiet.config failu kodola direktorijā, izveidojiet kodolu, moduļus un instalējiet moduļus direktorijā:

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

$ make -j $ (nproc) moduļi $ make modules_install INSTALL_MOD_PATH =../db410c -modules

Atsauce: 96Boards dokumentācija

3. darbība: atjaunojiet Boot.img HOST

Šajā solī mums ir jāatver initrd attēls, jāievieto attēla iekšpusē iebūvētie moduļi, jākonfigurē sistēma, lai sāktu šos moduļus, un jāpārveido initrd.img ar jaunu kodola komandrindu, lai attālināti sāknētu saknes failu sistēmu.

Tātad, pirmkārt, mums ir jālejupielādē initrd.img no linaro vietnes:

$ cd..

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

Tagad, pēc lejupielādes, izspiediet un izvelciet initrd:

$ zcat ramdisk.img | cpio -idmv

Šajā direktorijā mums ir saknes failu sistēma, ko inicializācijā izmanto kodols, tāpēc mēs konfigurēsim USB Ethernet CDC moduļus un NFS attālos parametrus, piemēram, šeit nepieciešamos NFS servera IP un Ethernet (usb).

Tagad konfigurēsim dažus failus:

conf/initramfs.conf:

MODULES = lielākā daļa

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

Izveidojiet direktorija init-premount direktoriju skriptos/

$ mkdir skripti/init-premount

un pievienojiet failus šajā tikko izveidotajā direktorijā:

PASŪTĪT

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

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

usb

#!/bin/sh

PREREQ = "" prereqs () {echo "$ PREREQ"} gadījums $ 1 in # get pre-requisites prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether

Neaizmirstiet izmantot chmod USB failā, lai tas būtu izpildāms:

$ chmod +x skripti/init-premount/usb

Tagad kopējiet visu direktoriju ar moduļiem no db410c-modules (2. SOLIS) uz lib/modules initrd:

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

Noņemiet visus failus failā lib/modules/4.14.96-xxxx-dirty, izņemot visus failu moduli.* Un šo failu sarakstu:

kodols/draiveri/usb/gadget/legacy/g_ether.ko

kodols/draiveri/usb/gadget/legacy/g_mass_storage.ko kodols/draiveri/usb/gadget/legacy/g_cdc.ko kodols/draiveri/usb/gadget/legacy/g_serial.ko kodols/drivers/usb/gadget/function/usb_f_mass_storage.ko kodols/draiveri/usb/sīkrīks/funkcija/usb_f_acm.ko kodols/draiveri/usb/sīkrīks/funkcija/u_ether.ko kodols/draiveri/usb/sīkrīks/funkcija/usb_f_obex.ko kodols/draiveri/usb/sīkrīks/funkcija /usb_f_serial.ko kodols/draiveri/usb/gadget/function/usb_f_ecm.ko kodols/draiveri/usb/gadget/function/usb_f_rndis.ko kodols/draiveri/usb/gadget/function/u_serial.ko kodols/draiveri/usb/sīkrīks /function/usb_f_fs.ko kodols/drivers/usb/gadget/function/usb_f_ecm_subset.ko kodols/drivers/usb/gadget/libcomposite.ko

Šie faili ir visi moduļi, kas nepieciešami, lai palaistu USB Ethernet CDC.

Visbeidzot iepakojiet un saspiediet sākotnējo attēlu:

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

Vismaz kodola attēls un DTB fails ir jāiesaiņo Android sāknēšanas attēlā. Šādu attēlu var izveidot, izmantojot abootimg rīku.

Ieiesim kodola direktorijā un izmantosim zemāk esošo komandu, lai izveidotu attēlu un pievienotu DTB saspiestā kodola attēlam:

$ cd../kernel

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

Visbeidzot, ģenerējiet sāknēšanas attēlu (šeit mūsu rootfs atrodas attālajā nodalījumā 10.42.0.1)

abootimg -izveidot 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: izslēgta rw rootwait konsole = tty0 konsole = ttyMSM0, 115200n8"

Atsauces:

  • https://access.redhat.com/solutions/24029
  • 96Boards dokumentācija

4. solis: saknes failu sistēmas izveide HOST

Tagad mēs esam ieguvuši jaunu sāknēšanas attēlu, lai atjauninātu dragonboard 410c. Bet mums ir nepieciešama sakņu failu sistēma attālajā serverī, lai sāktu moduļus, pakalpojumus un lietojumprogrammas. Šajā solī mēs uzņēmējā izveidosim koplietojamu direktoriju, lai saglabātu visus šos datus. Tādā veidā lejupielādēsim rootfs failu sistēmu no linaro vietnes ar to pašu versiju, kas izmantota initrd. Tātad, atgriezieties vienā direktorijā un lejupielādējiet linaro-developer rootfs attēlu ar versiju 431.

$ cd..

$ wget

Atspiest šo failu

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

Izmantojot šo failu, ierakstīsim visu attēlu sdcard, lai piekļūtu visiem nodalījumiem un kopētu rootfs failus. Tāpēc pārliecinieties, ka dati no uSDCard tiek dublēti, jo viss SDCard tiks zaudēts.

Lai atrastu SDCard ierīces nosaukumu, noņemiet SDCard un palaidiet šādu komandu:

$ lsblk

Saglabājiet savā prātā visus atpazītos disku nosaukumus. Tagad ievietojiet SDCard, pagaidiet brīdi un izpildiet komandu vēlreiz:

$ lsblk

Ievērojiet tikko atpazīto disku. Šī būs jūsu SDCard. Atcerieties savu vārdu un mainiet SDCard ierīces nosaukuma parametru "of =" un noteikti izmantojiet ierīces nosaukumu bez nodalījuma, piemēram: /dev /mmcblk0

$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img =/dev/XXX bs = 4M oflag = sinhronizācijas statuss = progress

Piezīmes:

  • Šīs komandas izpilde prasīs zināmu laiku. Esiet pacietīgs un izvairieties no termināļa manipulācijām, līdz process ir beidzies.
  • Kad SD karte mirgo, izņemiet to no datora.

Atsauce: 96 dēļu dokumentācija

5. darbība: servera NFS izveide HOST un failu kopēšana

Šajā brīdī mums ir sāknēšanas attēls, kas jāievada dragonboard 410c, un SDCard ar rootfs failu sistēmu mūsu moduļiem, pakalpojumiem un lietojumprogrammām. Nākamais solis ir izveidot attālu direktoriju, lai savienotu USB Ethernet ierīci ar HOST rootfs failu sistēmu. To var izdarīt, izmantojot Ubuntu paketi ar nosaukumu nfs-kernel-server.

Šī pakete Ubuntu instalē NFS pakalpojumu, kas ļauj koplietot dažus direktorijus dažām tīkla ierīcēm, mēs varam konfigurēt katras ierīces katalogu, izmantojot jūsu IP.

Tātad, instalēsim pakotni un konfigurēsim to.

$ sudo apt-get install nfs-kernel-server

NFS pakalpojums tiek palaists automātiski. Lai kontrolētu NFS pakalpojumus, izmantojiet:

$ sudo pakalpojums nfs-kernel-server restart // lai restartētu, vai pēc vajadzības izmantojiet 'stop' vai 'start'.

Lai komandrindā pārbaudītu NFS pakalpojuma statusu, izmantojiet:

$ sudo pakalpojums nfs-kodola servera statuss

nfsd darbojas // Pakalpojums ir uz augšu nfsd nedarbojas // Pakalpojums nedarbojas

Tagad izveidosim augšējo direktoriju /srv /nfs un izveidosim apakšdirektoriju katrai NFS instalētajai saknes failu sistēmai. Šeit mēs iekļaujam koplietotu sakņu failu sistēmu, lai saglabātu mūsu saknes failu sistēmu:

$ sudo mkdir -p /srv /nfs

$ sudo mkdir -p/srv/nfs/rootfs

Tagad NFS serverim ir nepieciešams pareizi konfigurēt /etc /export, lai kontrolētu piekļuvi katram NFS failu sistēmas direktorijam noteiktiem resursdatoriem. Šajā gadījumā saimniekus identificē pēc to IP adreses. Tātad katrai izveidotajai saknes failu sistēmai pievienojiet eksporta vadības līniju mapei /etc /export, vajadzības gadījumā pielāgojot vietējo IP adresi un direktoriju nosaukumu shēmu. Šajā apmācībā mēs vienmēr izmantojam:

/srv/nfs/rootfs 10.42.0.2 (rw, sinhronizācija, bez_aknes_skvošs, no_subtree_check)

Ievietojiet vēlreiz SDCard, pievienojiet to un nokopējiet visu rootfs failu sistēmu mapē/srv/nfs/rootfs, restartējiet NFS pakalpojumu, lai atjauninātu direktoriju, izmantojot jaunus kopētos failus.

Turklāt mums ir jākopē jauno moduļu faili rootfs failu sistēmā, jo kodolu apkopojām 2. solī. Tātad, nokopējiet visus direktorijus mapē ~/db410c-modules/uz/srv/nfs/rootfs.

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

Pārliecinieties, ka NFS pakalpojums padara šos direktorijus redzamus. Arī:

$ sudo exportfs -a

Atsauce: TFTP/NFS sakņu failu sistēma

6. darbība: Dragonboard 410c sāknēšanas attēla atjaunināšana un tīkla saskarņu konfigurēšana

Mēs jau agri veicām visas darbības, lai ieviestu attālo rootfs failu sistēmu, tagad mums ir jāatjaunina sāknēšanas attēls dragonboard 410c iekšpusē, tāpēc pievienojiet savu USB kabeli personālajam datoram un dragonboard uUSB savienotājam. Tāpēc pārliecinieties, vai ātrā sāknēšana ir iestatīta saimniekdatorā, ja tā nav instalēta, izmantojot:

$ sudo apt instalēt ātro sāknēšanu

Tagad, lai atjauninātu attēlu, palaidiet dragonboard ātrā palaišanas režīmā, veicot šīs darbības:

  • Nospiediet un turiet pogu Vol (-) uz DragonBoard 410c, tā ir poga S4. DragonBoard ™ 410c joprojām nedrīkst būt ieslēgts
  • Turot nospiestu pogu Vol (-), ieslēdziet DragonBoard 410c, pievienojot to
  • Kad DragonBoard 410c ir pievienots strāvas avotam, atlaidiet pogu Vol (-).
  • Pagaidiet apmēram 20 sekundes.
  • Padomei vajadzētu startēt ātrās sāknēšanas režīmā.

Pievienotā resursdatora termināļa logā palaidiet šādas komandas:

$ sudo fastboot ierīces

Parasti tas tiks parādīts zemāk

de82318 ātrā palaišana

Šajā brīdī jums vajadzētu būt savienotam ar DragonBoard 410c, izmantojot USB -microUSB kabeli. Jūsu DragonBoard 410c jāieslēdz ātrās sāknēšanas režīmā un jābūt gatavam mirgot ar atbilstošiem attēliem. Atjaunināsim sāknēšanas attēlu ar mūsu sāknēšanas attēlu:

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

Un restartējiet dēli

$ sudo fastboot atsāknēšana

Tagad jūsu HOST noteiks jaunu saskarni ar nosaukumu usb0, bet tai vēl nav IP. Tātad, pievienojiet šai saskarnei statisku IP, izmantojot:

$ sudo ifconfig usb0 10.42.0.1 netmaska 255.255.255.0 uz augšu

Vai arī ievadiet HOST sadaļā "Konfigurācija", sadaļā "tīkls", nosakot USB Ethernet šim statiskam IP.

Tagad restartējiet pūķa dēli un pārbaudiet sistēmas startēšanu, mēģinot izveidot savienojumu, izmantojot ssh:

$ ssh [email protected]

Atsauces:

  • 96 dēļu dokumentācija
  • HowtoForge - 6. punkts

Ieteicams: