Բովանդակություն:

Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle: 6 քայլ
Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle: 6 քայլ

Video: Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle: 6 քայլ

Video: Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle: 6 քայլ
Video: Windows 10 Fast-startup: solve startup and shutdown problems 2024, Նոյեմբեր
Anonim
Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle
Մուտք գործեք հեռավոր արմատային ֆայլային համակարգ ՝ օգտագործելով DB410- ը որպես Ethernet Dongle

Նպատակներ:

  • Տեղադրեք գործիքաշղթա և նորից կազմեք միջուկ ՝ USB Ethernet CDC գործիքի աջակցությունը տեղադրելու համար;
  • Ստեղծեք boot.img- ը Linaro- ից ՝ USB Ethernet CDC- ն գործարկելու համար;
  • Ստեղծեք NFS սերվեր ՝ արմատային ֆայլային համակարգը հյուրընկալելու համար;
  • IP կոնֆիգուրացիա DEVICE- ում և HOST- ում:

Քայլ 1: Պահանջներ

Ձեզ հարկավոր են հետևյալ պարագաները

  1. DragonBoard ™ 410c (այստեղ անվանում են ՍԱՐՔ);
  2. Ubuntu 16.04.3 -ով օգտագործվող համակարգիչը թարմացվել է (այստեղ նշվում է HOST) `ինտերնետ կապով և SDCard բնիկով;
  3. Linaro -developer 431 տարբերակի մաքուր տեղադրում - Հղում ՝ Լուսանկար Linaro Debian v431
  4. HDMI մոնիտոր;
  5. USB ստեղնաշար;
  6. 8 Գբ SD քարտ;
  7. USB մալուխ, uUSB USB ՝ ՍԱՐՔԸ HOST- ին միացնելու համար:

Քայլ 2. Հոսթում միջուկի կառուցման և միջուկի կառուցման տանտիրոջ կազմաձևում

Նախ, շարունակելու համար մենք կստեղծենք բոլոր գրացուցակները: Այսպիսով, $ cd

$ mkdir db410remototoot $ cd db410remoteroot $ mkdir գործիքաշղթա $ mkdir db410c- մոդուլներ

Unfortunatelyավոք, Linaro- ի կողմից օգտագործվող linux միջուկը (տարբերակ 431) չունի USB Ethernet գործիքի աջակցություն, դրա պատճառով Linux միջուկը պետք է վերակառուցվի այս հատուկ տարբերակի համար: Ներբեռնեք Linaro գործիքակազմը ՝ x86 ընդունող մեքենայից linux միջուկ կառուցելու և տեղակայելու համար Dragonboard410c- ում:

$ wget

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

Այժմ տեղադրեք փաթեթներ, որոնք անհրաժեշտ են միջուկը կառուցելու համար.

$ sudo apt Update && sudo apt-get install git build-essential abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache

Ստացեք Linux միջուկի աղբյուր Clone Qualcomm վայրէջքի թիմ Linux պահոց.

$ git կլոն

$ cd միջուկ $ git վճարման սկիզբ/թողարկում/qcomlt-4.14 -b my-custom-4.14

Այժմ, սահմանեք կազմող միջավայրի փոփոխականներ.

$ արտահանման ARCH = arm64

$ արտահանում CROSS_COMPILE = $ (pwd) /../ toolchain/bin/aarch64-linux-gnu-

Այս պահին մենք պետք է մոդուլները ավելացնենք միջուկում USB Ethernet CDC- ին: Ես դա արել եմ նախկինում, և դուք կարող եք դա ստանալ այս քայլի վերջում: Ես հեռացրել եմ մի քանի կտոր, բայց այն աշխատում է:

Նախքան կազմելը, խնդրում ենք ուղղել միջուկի սխալը վարորդների/mmc/host/sdhci-msm.c մեջ ՝ 1150 տողում կառուցվածքը փոխելով հետևյալի.

ստատիկ կոնստրուկցիա sdhci_ops sdhci_msm_ops = {

. Վերագործարկեք = 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, պատճենեք.config ֆայլը միջուկի գրացուցակում, կառուցեք միջուկ, մոդուլներ և տեղադրեք մոդուլներ գրացուցակում.

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

$ make -j $ (nproc) մոդուլներ $ make modules_install INSTALL_MOD_PATH =../db410c- մոդուլներ

Հղում ՝ 96Boards Փաստաթղթեր

Քայլ 3. Վերակառուցեք Boot.img- ը HOST- ում

Այս քայլում մենք պետք է բացենք initrd պատկերը, տեղադրենք նկարի ներսում կառուցված մոդուլները, կազմաձևենք համակարգը, որպեսզի սկսի այդ մոդուլները և վերակառուցենք initrd.img- ը նոր միջուկի հրամանի տողով ՝ արմատային ֆայլային համակարգը հեռակա բեռնելու համար:

Այսպիսով, նախ, մենք պետք է ներբեռնենք initrd.img- ը linaro կայքից.

$ cd..

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

Այժմ, ներբեռնելուց հետո, հանեք և սեղմեք initrd- ը.

$ zcat ramdisk.img | cpio -idmv

Այս գրացուցակում մենք ունենք հիմնական ֆայլային համակարգը, որն օգտագործվում է միջուկի սկզբնավորման մեջ, այնպես որ մենք կկարգավորենք USB Ethernet CDC մոդուլներ և NFS հեռավոր պարամետրեր, ինչպիսիք են NFS սերվերի IP- ն և ethernet- ը (usb), որոնք անհրաժեշտ են այստեղ:

Հիմա եկեք կազմաձևենք որոշ ֆայլեր.

conf/initramfs.conf:

ՄՈԴՈLESԼՆԵՐ = առավելագույնը

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

Ստեղծեք գրացուցակի init-premount գրացուցակի սցենարներում/

$ mkdir սցենարներ/init-premount

և ավելացրեք ֆայլերը այս նոր ստեղծված գրացուցակում.

ՊԱՏՎԵՐ

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

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

USB

#!/bin/sh

PREREQ = "" prereqs () {echo "$ PREREQ"} դեպքում $ 1 #-ում # ստացեք նախապայմանների նախնական պահանջներ) նախադրյալներ ելք 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether

Մի մոռացեք օգտագործել chmod usb ֆայլում `այն գործարկելի դարձնելու համար.

$ chmod +x սցենարներ/init-premount/usb

Այժմ պատճենեք բոլոր գրացուցակը մոդուլներով db410c- մոդուլներից (ՔԱՅԼ 2) դեպի init/in lib/մոդուլներ.

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

Հեռացրեք lib/modules/4.14.96-xxxx- կեղտոտ բոլոր ֆայլերը, բացառությամբ բոլոր ֆայլերի մոդուլի:* և այդ ֆայլերի ցանկը.

միջուկ/վարորդներ/usb/գործիք/ժառանգություն/g_ether.ko

kernel/drivers/usb/gadget/legacy/g_mass_storage.ko kernel/drivers/usb/gadget/legacy/g_cdc.ko միջուկ/վարորդներ/usb/gadget/legacy/g_serial.ko միջուկ/վարորդներ/usb/gadget/գործառույթ/usb_f_mass_storage.ko kernel/drivers/usb/gadget/function/usb_f_acm.ko kernel/drivers/usb/gadget/function/u_ether.ko kernel/drivers/usb/gadget/function/usb_f_obex.ko միջուկ/վարորդներ/usb/գործիք/գործառույթ /usb_f_serial.ko միջուկ/վարորդներ/usb/գործիք/գործառույթ/usb_f_ecm.ko միջուկ/վարորդներ/usb/գործիք/գործառույթ/usb_f_rndis.ko միջուկ/վարորդներ/usb/գործիք/գործառույթ/u_serial.ko միջուկ/վարորդներ/USB/գործիքի /function/usb_f_fs.ko միջուկ/վարորդներ/usb/գործիք/գործառույթ/usb_f_ecm_subset.ko միջուկ/վարորդներ/usb/գործիք/libcomposite.ko

Այդ ֆայլերը բոլորը մոդուլներ են, որոնք անհրաժեշտ են USB Ethernet CDC- ն գործարկելու համար:

Վերջապես փաթեթավորեք և սեղմեք նախնական պատկերը.

$ գտնել. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img

Առնվազն միջուկի պատկերը և DTB ֆայլը պետք է փաթեթավորվեն Android- ի boot պատկերի մեջ: Նման պատկերը կարող է ստեղծվել abootimg գործիքի միջոցով:

Եկեք հայտնվենք միջուկի գրացուցակում և օգտագործենք ստորև բերված հրամանը ՝ պատկեր ստեղծելու և սեղմված միջուկի պատկերում DTB ավելացնելու համար.

$ cd../ միջուկ

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

Եվ վերջապես, ստեղծեք բեռնախցիկի պատկերը (այստեղ մեր rootfs- ը գտնվում է հեռավոր բաժանմունք 10.42.0.1 -ում)

abootimg -ստեղծել boot -db410c.img -k Image.gz+dtb -r initrd_nfs.img -c Էջերի չափս = 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: անջատված rw rootwait վահանակ = tty0 վահանակ = ttyMSM0, 115200n8"

Հղումներ:

  • https://access.redhat.com/solutions/24029
  • 96 Տախտակներ Փաստաթղթեր

Քայլ 4. Ստեղծեք արմատային ֆայլային համակարգ HOST- ում

Այժմ մենք ստացել ենք բեռնախցիկի նոր պատկեր ՝ վիշապախտակը 410c- ն թարմացնելու համար: Բայց մեզ անհրաժեշտ է արմատային ֆայլային համակարգ հեռավոր սերվերում `մոդուլներ, ծառայություններ և ծրագրեր բեռնելու համար: Այս քայլում մենք սերվերում կկառուցենք ընդհանուր տեղեկատու ՝ այս բոլոր տվյալները պահելու համար: Այդ կերպ, եկեք ներբեռնենք rootfs ֆայլային համակարգը linaro կայքից ՝ initrd- ում օգտագործված նույն տարբերակով: Այսպիսով, վերադարձեք մեկ գրացուցակ և ներբեռնեք linaro-developer rootfs պատկերը 431 տարբերակով:

$ cd..

$ wget

Հեռացրեք այս ֆայլը

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

Օգտագործելով այս ֆայլը, եկեք բոլոր պատկերները գրենք sdcard- ում ՝ բոլոր միջնապատերին մուտք գործելու և rootfs ֆայլերը պատճենելու համար: Այսպիսով, համոզվեք, որ uSDCard- ի տվյալները պահուստավորված են, քանի որ SDCard- ում ամեն ինչ կկորչի:

Ձեր SDCard սարքի անունը գտնելու համար հեռացրեք SDCard- ը և գործարկեք հետևյալ հրամանը.

$ lsblk

Ձեր մտքում պահեք բոլոր ճանաչված սկավառակների անունները: Այժմ տեղադրեք SDCard, սպասեք մի պահ և նորից կատարեք հրամանը.

$ lsblk

Ուշադրություն դարձրեք նոր ճանաչված սկավառակին: Սա կլինի ձեր SDCard- ը: Հիշեք ձեր անունը և փոխեք «=» պարամետրը ձեր SDCard սարքի անվան համար և համոզվեք, որ օգտագործեք սարքի անունը առանց միջնապատի, օրինակ ՝ /dev /mmcblk0

$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of =/dev/XXX bs = 4M oflag = համաժամացման կարգավիճակ = առաջընթաց

Նշումներ.

  • Այս հրամանը կատարելու համար որոշ ժամանակ կպահանջվի: Եղեք համբերատար և խուսափեք տերմինալի հետ շփումից մինչև գործընթացի ավարտը:
  • Երբ SD քարտը թարթում է, հեռացրեք հյուրընկալող համակարգչից:

Տեղեկանք. 96 տախտակի փաստաթղթավորում

Քայլ 5. Ստեղծեք սերվերի NFS HOST- ում և պատճենեք ֆայլերը

Այս պահին մենք ունենք բեռնախցիկի պատկեր, որը պետք է շոշափվի dragonboard 410c- ում և SDCard- ով `rootfs ֆայլային համակարգով մեր մոդուլների, ծառայությունների և ծրագրերի համար: Հաջորդ քայլը ստեղծում է հեռակա գրացուցակ ՝ USB Ethernet DEVICE սարքը միացյալ հոսթոֆթ HOST արմատային համակարգի հետ միացնելու համար: Դա կարելի է անել ՝ օգտագործելով Ubuntu- ի nfs-kernel-server անունով փաթեթ:

Այս փաթեթը տեղադրում է NFS ծառայություն Ubuntu- ում, որը թույլ է տալիս կիսել ցանցի որոշ սարքերի որոշ գրացուցակներ, մենք կարող ենք կարգավորել, թե որ գրացուցակը կօգտագործվի յուրաքանչյուր սարքի համար ՝ օգտագործելով ձեր IP- ն:

Այսպիսով, եկեք տեղադրենք փաթեթը և կազմաձևենք այն:

$ sudo apt-get տեղադրել nfs-kernel-server

NFS ծառայությունը սկսվում է ինքնաբերաբար: NFS ծառայությունները վերահսկելու համար օգտագործեք.

$ sudo ծառայություն nfs-kernel-server վերագործարկեք // վերագործարկելու համար, կամ անհրաժեշտության դեպքում օգտագործել «stop» կամ «start»:

NFS ծառայության կարգավիճակը հրամանի տողից ստուգելու համար օգտագործեք.

$ sudo ծառայություն nfs-kernel-server կարգավիճակ

nfsd աշխատում է // Serviceառայությունը վեր է nfsd չի աշխատում // Serviceառայությունն անջատված է

Այժմ, եկեք ստեղծենք վերևի գրացուցակ /srv /nfs և դրա ենթածրագիր ստեղծենք NFS- ի վրա տեղադրված յուրաքանչյուր արմատային ֆայլային համակարգի համար: Այստեղ մենք ներառում ենք ընդհանուր արմատային ֆայլային համակարգ `մեր արմատային ֆայլային համակարգը պահելու համար.

$ sudo mkdir -p /srv /nfs

$ sudo mkdir -p/srv/nfs/rootfs

Այժմ, NFS սերվերը պահանջում է /etc /export- ը ճիշտ կազմաձևել ՝ վերահսկելու NFS ֆայլային համակարգի յուրաքանչյուր գրացուցակի մուտքը որոշակի տանտերերին: Այս դեպքում տանտերերը նույնականացվում են իրենց IP հասցեով: Այսպիսով, ստեղծվող յուրաքանչյուր արմատային ֆայլային համակարգի համար ավելացրեք արտահանման կառավարման գիծը /etc /export- ին ՝ անհրաժեշտության դեպքում հարմարեցնելով ձեր տեղական IP հասցեն և գրացուցակների անվանման սխեման: Այս ձեռնարկում մենք միշտ օգտագործում ենք դա.

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

Նորից տեղադրեք ձեր SDCard- ը, տեղադրեք այն և պատճենեք բոլոր rootfs ֆայլային համակարգը/srv/nfs/rootfs- ում, վերագործարկեք NFS ծառայությունը ՝ գրացուցակը նոր պատճենված ֆայլերի միջոցով թարմացնելու համար:

Ավելին, մեզ անհրաժեշտ է պատճենել նոր մոդուլների ֆայլերը rootfs ֆայլային համակարգում, քանի որ մենք կազմել ենք միջուկը 2-րդ քայլին: Այսպիսով, պատճենեք բոլոր դիրեկտորիաները ~/db410c-modules/to/srv/nfs/rootfs- ում:

$ sudo cp -R ~/db410c- մոդուլներ/*/srv/nfs/rootfs/

Համոզվեք, որ այս գրացուցակները տեսանելի են դառնում NFS ծառայության կողմից: Կամ ՝

$ sudo exportfs -a

Հղում ՝ TFTP/NFS արմատային ֆայլային համակարգ

Քայլ 6. Dragonboard 410c- ի Boot Image- ի թարմացում և ցանցի միջերեսների կազմաձևում

Մենք վաղուց արեցինք բոլոր քայլերը ՝ հեռավոր rootfs ֆայլային համակարգը ներդնելու համար, այժմ մեզ անհրաժեշտ է թարմացնել բեռնախցիկի պատկերը dragonboard 410c- ի ներսում, դրա համար միացրեք ձեր USB մալուխը համակարգչին և dragonboard uUSB միակցիչին: Այսպիսով, համոզվեք, որ fastboot- ը տեղադրված է ընդունող համակարգչում, եթե այն տեղադրված չէ ՝ օգտագործելով.

$ sudo apt տեղադրեք fastboot

Այժմ պատկերը թարմացնելու համար վահանակը միացրեք fastboot ռեժիմին ՝ հետևելով այս քայլերին.

  • Սեղմեք և պահեք Vol (-) կոճակը DragonBoard 410c- ում, սա S4 կոճակն է: DragonBoard ™ 410c- ն դեռ չպետք է միացված լինի
  • Vol (-) կոճակը պահելիս միացրեք DragonBoard 410c- ը `այն միացնելով
  • Երբ DragonBoard 410c- ը միացված է հոսանքին, ազատ արձակեք Vol (-) կոճակը:
  • Սպասեք մոտ 20 վայրկյան:
  • Տախտակը պետք է բեռնվի fastboot ռեժիմում:

Միացված հյուրընկալող մեքենայի տերմինալի պատուհանից գործարկեք հետևյալ հրամանները.

$ sudo fastboot սարքեր

Սովորաբար այն կցուցադրվի ստորև

de82318 fastboot

Այս պահին դուք պետք է միացված լինեք ձեր DragonBoard 410c- ին USB- ից microUSB մալուխով: Ձեր DragonBoard 410c- ը պետք է գործարկվի fastboot ռեժիմի մեջ և պատրաստ լինի շողալ համապատասխան պատկերներով: Եկեք թարմացնենք բեռնախցիկի պատկերը մեր բեռնախցիկի պատկերով.

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

Եվ, վերագործարկեք խորհուրդը

$ sudo fastboot վերագործարկում

Այժմ, ձեր HOST- ը կբացահայտի usb0 անունով նոր ինտերֆեյս, սակայն այն դեռ IP չունի: Այսպիսով, այս ինտերֆեյսին ավելացրեք ստատիկ IP ՝ օգտագործելով.

$ sudo ifconfig usb0 10.42.0.1 ցանցային դիմակ 255.255.255.0 դեպի վեր

Կամ մուտքագրեք «Կազմաձևում» HOST- ում, «ցանց» կետում ՝ USB Ethernet- ին այդ ինտերֆեյսի ստատիկ IP սահմանելով:

Այժմ, նորից վերագործարկեք վիշապախտակը և ստուգեք համակարգի գործարկումը ՝ փորձելով միանալ ssh- ի միջոցով.

$ ssh [email protected]

Հղումներ:

  • 96 տախտակի փաստաթղթավորում
  • HowtoForge - 6 -րդ կետ

Խորհուրդ ենք տալիս: