Orodha ya maudhui:

Kufikia mfumo wa faili wa mizizi ya mbali kutumia DB410 kama Ethernet Dongle: 6 Hatua
Kufikia mfumo wa faili wa mizizi ya mbali kutumia DB410 kama Ethernet Dongle: 6 Hatua

Video: Kufikia mfumo wa faili wa mizizi ya mbali kutumia DB410 kama Ethernet Dongle: 6 Hatua

Video: Kufikia mfumo wa faili wa mizizi ya mbali kutumia DB410 kama Ethernet Dongle: 6 Hatua
Video: CS50 2014 - Week 7 2024, Novemba
Anonim
Kufikia Mfumo wa faili wa Mizizi ya Mbali kutumia DB410 Kama Dongle ya Ethernet
Kufikia Mfumo wa faili wa Mizizi ya Mbali kutumia DB410 Kama Dongle ya Ethernet

Malengo:

  • Sakinisha vifaa vya zana na urejeshe punje ili kuingiza msaada wa Kifaa cha USB Ethernet CDC;
  • Panga tena boot.img kutoka Linaro ili kuanza CDC ya Ethernet ya USB;
  • Unda seva ya NFS kuwa mwenyeji wa mfumo wa faili;
  • Usanidi wa IP katika DEVICE na HOST.

Hatua ya 1: Mahitaji

Utahitaji itens zifuatazo:

  1. DragonBoard ™ 410c (inayoitwa hapa DEVICE);
  2. PC inayotumia Ubuntu 16.04.3 iliyosasishwa (iliyopewa jina hapa HOST) na unganisho la mtandao na SDCard yanayopangwa;
  3. Usanikishaji safi wa toleo la Linaro-developer 431 - Kiungo: Picha ya Linaro Debian v431
  4. Mfuatiliaji wa HDMI;
  5. Kibodi ya USB;
  6. SDCard ya 8Gb;
  7. Kebo ya USB, uUSB USB kuunganisha kifaa kwenye HOST.

Hatua ya 2: Kusanidi Jeshi la Kujenga Kernel na Kujenga Kernel katika HOST

Kwanza, tutaunda saraka zote kabla ya kuendelea. Kwa hivyo:

$ cd ~

$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir vifaa vya zana $ mkdir db410c-moduli

Kwa bahati mbaya, linern kernel inayotumiwa na Linaro (Toleo la 431) haina msaada kwa kifaa cha USB Ethernet, kwa sababu hiyo, kernel ya Linux lazima ijengwe tena kwa toleo hili maalum. Pakua zana ya zana ya Linaro ili kujenga na kupeleka kernel ya linux kwenye Dragonboard410c kutoka kwa mashine ya mwenyeji wa x86.

$ wget

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

Sasa weka vifurushi ambavyo vinahitajika kujenga kernel:

$ sudo apt update && sudo apt-get kufunga git kujenga-muhimu abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache

Pata chanzo cha Linux Kernel Clone Qualcomm timu ya kutua ya Linux:

$ git clone

$ cd kernel $ git Checkout asili / kutolewa / qcomlt-4.14 -b yangu-desturi-4.14

Sasa, weka mazingira ya mkusanyiko:

$ nje ARCH = mkono64

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

Kwa wakati huu, tunahitaji kuongeza moduli kwenye USB Ethernet CDC kwenye kernel. Nilifanya hapo awali na unaweza kupata hii mwisho wa hatua hii. Nimeondoa itens zingine lakini inafanya kazi.

Kabla ya kukusanya, tafadhali rekebisha mdudu wa kernel kwenye madereva / mmc / host / sdhci-msm.c kubadilisha muundo katika mstari wa 1150 kuwa:

tuli tuli muundo 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};

Uncompress configfile.zip, nakili faili ya.config kwenye saraka ya kernel, jenga kernel, moduli na usanidi moduli kwenye saraka:

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

$ fanya -j $ (nproc) moduli $ fanya modules_install INSTALL_MOD_PATH =.. / db410c-moduli

Rejea: Hati za Bodi 96

Hatua ya 3: Jenga tena Boot.img katika HOST

Katika hatua hii, tunahitaji kufungua picha ya kwanza, weka moduli zilizojengwa ndani ya picha, sanidi mfumo wa kuanza moduli hizo na ujenge tena initrd.img na laini mpya ya amri ya kernel ili kuweka mfumo wa faili ya mizizi kwa mbali.

Kwa hivyo, kwanza, tunapaswa kupakua initrd.img kutoka kwa wavuti ya linaro:

$ cd..

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

Sasa, baada ya kupakua, onyesha na uondoe initrd:

$ zcat ramdisk.img | cpio -idmv

Katika saraka hii, tuna mfumo wa faili wa mizizi uliotumiwa na kernel katika uanzishaji, kwa hivyo tutaweka moduli za CD Ethernet CDC na vigezo vya kijijini vya NFS kama IP ya seva ya NFS na ethernet (usb) inayohitajika hapa.

Sasa, wacha tusanidi faili zingine:

conf / initramfs.conf:

MODULE = nyingi

BUSYBOX = UKandamizaji wa auto = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%

Unda saraka init-premount katika hati ya saraka /

$ mkdir maandishi / init-premount

na ongeza faili kwenye saraka hii iliyoundwa tu:

Agizo

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

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

USB

#! / bin / sh

PREREQ = "" prereqs () {echo "$ PREREQ"} kesi $ 1 katika # pata mahitaji ya awali ya prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether

Usisahau kutumia chmod katika faili ya usb kuifanya iweze kutekelezeka:

$ chmod + x maandishi / init-premount / usb

Sasa, nakili saraka yote na moduli kutoka kwa db410c-moduli (STEP 2) hadi lib / modules katika initrd:

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

Ondoa faili zote katika lib / moduli / 4.14.96-xxxx-chafu isipokuwa moduli ya faili zote. * Na orodha hiyo ya faili:

kernel / madereva / usb / gadget / urithi / g_ether.ko

kernel / driver / 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 kernel / madereva / usb / gadget / kazi / usb_f_acm.ko kernel / drivers / usb / gadget / function / u_ether.ko kernel / drivers / usb / gadget / function / usb_f_obex.ko kernel / drivers / usb / gadget / function / usb_f_serial.ko kernel / drivers / usb / gadget / function / usb_f_ecm.ko kernel / drivers / usb / gadget / kazi / usb_f_rndis.ko kernel / drivers / usb / gadget / kazi / u_serial.ko kernel / drivers / usb / gadget / kazi/usb_f_fs.ko kernel / drivers / usb / gadget / function / usb_f_ecm_subset.ko kernel / drivers / usb / gadget / libcomposite.ko

Faili hizo zote ni moduli zinazohitajika kuanza USB Ethernet CDC.

Mwishowe weka tena na kubana picha ya kwanza:

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

Angalau, picha ya kernel na faili ya DTB inahitaji kuingizwa kwenye picha ya boot ya Android. Picha kama hiyo inaweza kuzalishwa na zana ya abootimg.

Wacha tuwe kwenye saraka ya kernel na tutumie amri hapa chini ili kujenga picha na kuongezea DTB kwenye picha ya kernel iliyoshinikwa:

$ cd../kernel

$ paka upinde / $ ARCH / boot / Image.gz upinde / $ ARCH / boot / dts / qcom / apq8016-sbc.dtb> Image.gz + dtb

Na mwishowe, tengeneza picha ya buti (hapa mizizi yetu iko kizigeu cha mbali katika 10.42.0.1)

abootimg - tengeneza boot-db410c.img -k Image.gz + dtb -r initrd_nfs.img -c pagesize = 2048

-c kerneladdr = 0x80008000 -c ramdiskaddr = 0x81000000 -c cmdline = "mzizi = / 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.055.055.055: db410c: usb0: mbali rw rootwait console = tty0 console = ttyMSM0, 115200n8"

Marejeo:

  • https://access.redhat.com/solutions/24029
  • Hati za Bodi 96

Hatua ya 4: Kuunda Mfumo wa Faili za Mizizi kwenye HOST

Sasa, tuna picha mpya ya boot kusasisha ubao wa joka 410c. Lakini tunahitaji mfumo wa faili wa mizizi kwenye seva ya mbali ili kuanza moduli, huduma na matumizi. Katika hatua hii, tutaunda saraka iliyoshirikiwa katika mwenyeji ili kuhifadhi data hizi zote. Kwa njia hiyo, wacha tupakue mfumo wa faili wa mizizi kutoka kwa tovuti ya linaro na toleo lilelile linalotumiwa katika initrd. Kwa hivyo, nenda nyuma saraka moja na upakue picha ya linaro-developer rootfs na toleo la 431.

$ cd..

$ wget

Futa faili hii

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

Kutumia faili hii, wacha tuandike picha zote kwenye sdcard ili kufikia sehemu zote na kunakili faili za rootfs. Kwa hivyo, hakikisha kwamba data kutoka uSDCard imehifadhiwa kwa sababu kila kitu kwenye SDCard kitapotea.

Ili kupata jina la kifaa chako cha SDCard, ondoa SDCard na utumie amri ifuatayo:

$ lsblk

Hifadhi akilini mwako majina yote ya diski yanayotambuliwa. Sasa ingiza SDCard, subiri kidogo na utekeleze amri tena:

$ lsblk

Kumbuka diski mpya inayotambuliwa. Hii itakuwa SDCard yako. Kumbuka jina lako na ubadilishe parameta "ya =" kwa jina la kifaa chako cha SDCard na uhakikishe kutumia jina la kifaa bila kizigeu, p.e.: / dev / mmcblk0

$ sudo dd ikiwa = joka-410c-sdcard-msanidi-buster-431.img ya = / dev / XXX bs = 4M oflag = hali ya usawazishaji = maendeleo

Vidokezo:

  • Amri hii itachukua muda kutekeleza. Kuwa na subira na epuka kuchezea kituo hadi mchakato utakapoisha.
  • Mara baada ya kadi ya SD kumaliza kuangaza, ondoa kutoka kwa mwenyeji wa kompyuta.

Rejea: nyaraka 96 za bodi

Hatua ya 5: Kuunda Server NFS katika HOST na Kuiga Faili

Katika hatua hii, tuna picha ya buti inayopaswa kuangaziwa kwenye joka la 410c na SDCard iliyo na mfumo wa faili wa mizizi kwa moduli zetu, huduma na matumizi. Hatua inayofuata ni kuunda saraka ya mbali ili kuunganisha toguther ya USB Ethernet DEVICE na mfumo wa faili wa mizizi ya HOST. Hiyo inaweza kufanywa kwa kutumia kifurushi kutoka kwa Ubuntu kilichoitwa nfs-kernel-server.

Kifurushi hiki kinasanikisha huduma ya NFS kwenye Ubuntu inayoruhusu kushiriki saraka zingine kwa vifaa kadhaa kwenye mtandao, tunaweza kusanidi saraka ipi itatumika kwa kila kifaa kwa kutumia yako IP.

Kwa hivyo, wacha tuweke kifurushi na tuisanidie.

$ sudo apt-kufunga nfs-kernel-server

Huduma ya NFS huanza moja kwa moja. Kudhibiti matumizi ya huduma za NFS:

Huduma ya $ sudo nfs-kernel-server restart // kuanza, au kutumia 'stop', au 'start' inahitajika.

Kuangalia hali ya huduma ya NFS kutoka kwa utumiaji wa laini ya amri:

Huduma ya $ sudo nfs-kernel-server hadhi

nfsd inayoendesha // Huduma iko juu nfsd haifanyi kazi // Huduma iko chini

Sasa, wacha tuunde saraka ya juu / srv / nfs, na tuunda saraka ndogo chini ya hiyo kwa kila mfumo wa faili uliowekwa wa NFS unaohitajika. Hapa tunajumuisha mfumo wa faili ulioshirikiwa ili kuweka mfumo wa faili wa mizizi yetu:

$ sudo mkdir -p / srv / nfs

$ sudo mkdir -p / srv / nfs / mizizi

Sasa, seva ya NFS inahitaji / nk / mauzo ya nje kusanidiwa kwa usahihi, kudhibiti ufikiaji wa saraka ya mfumo wa faili ya NFS kwa majeshi maalum. Katika kesi hii majeshi yanatambuliwa na anwani yao ya IP. Kwa hivyo, kwa kila mfumo wa faili wa mizizi ambao umeundwa, ongeza laini ya kudhibiti usafirishaji kwa / nk / mauzo ya nje, kurekebisha anwani yako ya IP ya ndani na mpango wa kutaja saraka ikiwa ni lazima. Katika mafunzo haya, sisi hutumia kila wakati:

/ srv / nfs / rootfs 10.42.0.2 (rw, usawazishaji, no_root_squash, no_subtree_check)

Ingiza tena SDCard yako, ipandishe na kunakili mfumo wa faili wa rootfs ndani / srv / nfs / rootfs, anzisha huduma ya NFS kusasisha saraka ukitumia faili mpya zilizonakiliwa.

Kwa kuongeza, tunahitaji kunakili faili mpya za moduli katika mfumo wa faili wa rootfs kwa sababu tuliandaa kernel kwenye hatua ya 2. Kwa hivyo, nakili saraka zote katika ~ / db410c-modules / to / srv / nfs / rootfs.

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

Hakikisha kuwa saraka hizi zinafanywa kuonekana na huduma ya NFS. Ama:

$ sudo kuuza nje -a

Rejea: Mfumo wa faili wa mizizi wa TFTP / NFS

Hatua ya 6: Kusasisha Picha ya Boot ya 410c na Kusanidi Maingiliano ya Mtandao

Tulifanya mapema hatua zote kutekeleza mfumo wa faili wa mizizi ya mbali, sasa tunahitaji kusasisha picha ya buti ndani ya joka la 410c, kwa hiyo, unganisha kebo yako ya USB kwenye PC na kwenye kiunganishi cha joka la uUSB. Kwa hivyo hakikisha fastboot imewekwa kwenye kompyuta ya mwenyeji, ikiwa sio kusanikisha kwa kutumia:

$ sudo apt kufunga fastboot

Sasa kusasisha picha, anza deboardboard kwenye hali ya kufunga haraka kufuata hatua hizi:

  • Bonyeza na ushikilie kitufe cha Vol (-) kwenye DragonBoard 410c, hii ndio kitufe cha S4. DragonBoard 410c bado haipaswi kuwashwa
  • Wakati unashikilia kitufe cha Vol (-), nguvu kwenye DragonBoard 410c kwa kuiingiza
  • Mara DragonBoard 410c imeingizwa kwenye nguvu, toa kushikilia kwako kwenye kitufe cha Vol (-).
  • Subiri kwa sekunde 20 hivi.
  • Bodi inapaswa kuingia katika hali ya kufunga haraka.

Kutoka kwenye dirisha la terminal la mashine iliyoshikamana, tumia amri zifuatazo:

Vifaa vya $ sudo fastboot

Kawaida itaonyesha kama ilivyo hapo chini

de82318 haraka

Kwa wakati huu unapaswa kushikamana na DragonBoard 410c yako na USB kwa kebo ya microUSB. DragonBoard 410c yako inapaswa kupigwa kwenye mode ya kufunga haraka na kuwa tayari kuangazwa na picha zinazofaa. Wacha tusasishe picha ya buti na picha yetu ya buti:

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

Na, anzisha bodi tena

$ sudo fastboot reboot

Sasa, HOST yako itachunguza kiolesura kipya kilichoitwa usb0, lakini bado haina IP. Kwa hivyo, ongeza IP tuli kwenye kiwambo hiki ukitumia:

$ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 juu

Au ingiza "Usanidi" kwenye HOST, kwenye kipengee "mtandao", ukiweka USB Ethernet IP tuli kwa kiolesura hicho.

Sasa, anzisha tena ubao wa joka na uhakikishe kuanza kwa mfumo, ukijaribu kuunganisha kwa kutumia ssh:

$ ssh [email protected]

Marejeo:

  • Nyaraka 96 za bodi
  • HowtoForge - Bidhaa 6

Ilipendekeza: