Mündəricat:

Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq: 6 addım
Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq: 6 addım

Video: Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq: 6 addım

Video: Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq: 6 addım
Video: Zigbee LAN координатор HamGeek - китайский клон Zigstar c POE и USB C 2024, Iyul
Anonim
Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq
Ethernet Dongle olaraq DB410 istifadə edərək Uzaq Kök Fayl Sisteminə daxil olmaq

Məqsədlər:

  • Alət zənciri quraşdırın və USB Ethernet CDC Gadget dəstəyi daxil etmək üçün nüvəni yenidən tərtib edin;
  • USB Ethernet CDC yükləmək üçün Linarodan boot.img yaradın;
  • Kök fayl sisteminə ev sahibliyi etmək üçün NFS serveri yaradın;
  • DEVICE və HOST -da IP konfiqurasiyası.

Addım 1: Tələblər

Aşağıdakı işarələrə ehtiyacınız olacaq:

  1. A DragonBoard ™ 410c (burada DEVICE adlanır);
  2. Ubuntu 16.04.3 istifadə edən bir kompüter, internet bağlantısı və SDCard yuvası ilə yeniləndi (burada HOST adlanır);
  3. Linaro -developer 431 versiyasının təmiz bir quraşdırılması - Bağlantı: Anlık görüntü Linaro Debian v431
  4. HDMI monitor;
  5. USB klaviatura;
  6. 8 Gb SDCard;
  7. Cihazı HOST -a bağlamaq üçün bir USB kabeli, uUSB USB.

Addım 2: Host -da Çekirdek Oluşdurmaq və Çekirdek İnşa etmək üçün Konfiqurasiya

Birincisi, davam etməzdən əvvəl bütün qovluqları yaradacağıq. Belə ki:

$ cd ~

$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir alət zənciri $ mkdir db410c-modulları

Təəssüf ki, Linaro (Versiya 431) tərəfindən istifadə olunan linux kernelinin USB Ethernet gadgetına dəstəyi yoxdur, buna görə Linux nüvəsi bu xüsusi versiya üçün yenidən qurulmalıdır. X86 ana maşınından Dragonboard410c -də linux kernel qurmaq və yerləşdirmək üçün Linaro alət zəncirini yükləyin.

$ wget

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

İndi kernel qurmaq üçün lazım olan paketləri quraşdırın:

$ sudo apt update && sudo apt-get install build-essential abootimg kernel-pack fakeroot libncurses5-dev libssl-dev ccache

Linux Kernel mənbəyi Clone Qualcomm açılış qrupu Linux deposunu əldə edin:

$ git klonu

$ cd kernel $ git checkout source/release/qcomlt-4.14 -b my-custom-4.14

İndi kompilyasiya mühiti dəyişənlərini təyin edin:

$ ixrac ARCH = arm64

$ ixrac CROSS_COMPILE = $ (pwd) /../ alət zənciri/bin/aarch64-linux-gnu-

Bu nöqtədə, modulları ləpədəki USB Ethernet CDC -yə əlavə etməliyik. Bunu əvvəl etdim və bu addımın sonunda əldə edə bilərsiniz. Bəzi itləri sildim, amma işləyir.

Tərtib etməzdən əvvəl, lütfən, 1150 xəttindəki quruluşu sürücülərə/mmc/host/sdhci-msm.c daxilində düzəldin:

statik quruluş 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};

Configfile.zip faylını açın,.config faylını kernel qovluğuna kopyalayın, kernel qurun, modullar yaradın və modulları bir qovluğa quraşdırın:

$ etmək -j $ (nproc) Image.gz dtbs

$ make -j $ (nproc) modulları $ make modules_install INSTALL_MOD_PATH =../db410c -modules

İstinad: 96Boards Sənədləri

Addım 3: HOST -da Boot.img yenidən qurun

Bu addımda, initrd görüntüsünü açmalıyıq, modulları görüntünün içərisinə qoymalıyıq, bu modulları işə salmaq üçün sistemi konfiqurasiya etməliyik və rootrd fayl sistemini uzaqdan yükləmək üçün yeni bir kernel əmr xətti ilə initrd.img qurmalıyıq.

Beləliklə, əvvəlcə initrd.img faylını linaro veb saytından yükləməliyik:

$ cd..

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

İndi yüklədikdən sonra, başlanğıcını açın və çıxarın:

$ zcat ramdisk.img | cpio -idmv

Bu qovluqda, başlanğıcda kernel tərəfindən istifadə olunan kök fayl sisteminə sahibik, buna görə burada lazım olan NFS server IP və ethernet (usb) kimi USB Ethernet CDC modullarını və NFS uzaq parametrlərini konfiqurasiya edəcəyik.

İndi bəzi faylları konfiqurasiya edək:

conf/initramfs.conf:

MODÜLlər = ən çox

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

Dizin skriptlərində init-premount qovluğunu yaradın/

$ mkdir skriptləri/init-premount

və bu yeni yaradılmış qovluğa faylları əlavə edin:

SİFARİŞ

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

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

usb

#!/bin/sh

PREREQ = "" prereqs () {echo "$ PREREQ"} case $ 1 in # in pre-Requestites prereqs) prereqs exit 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether

İcra edilə bilmək üçün usb faylında chmod istifadə etməyi unutmayın:

$ chmod +x skriptləri/init-premount/usb

İndi db410c-modullarından (ADIM 2) modulları olan bütün qovluğu initrd-də lib/modules-ə kopyalayın:

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

Lib/modules/4.14.96-xxxx-kirdəki bütün fayllar modulu xaricindəki bütün faylları silin.* Və həmin fayl siyahısı:

kernel/driver/usb/gadget/legacy/g_ether.ko

kernel/drivers/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.ko kernel/driver/usb/gadget/function/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/function/usb_f_rndis.ko kernel/drivers/usb/gadget/function/u_serial.ko kernel/drivers/usb/gadget /function/usb_f_fs.ko kernel/drivers/usb/gadget/function/usb_f_ecm_subset.ko kernel/drivers/usb/gadget/libcomposite.ko

Bu fayllar USB Ethernet CDC -ni işə salmaq üçün lazım olan bütün modullardır.

Nəhayət, ilkin görüntünü yenidən paketləyin və sıxın:

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

Ən azından, çekirdek görüntüsünün və DTB faylının bir Android açılış görüntüsünə yığılması lazımdır. Belə bir görüntü abootimg vasitəsi ilə yaradıla bilər.

Kernel qovluğunda olaq və şəkil qurmaq və sıxılmış kernel görüntüsünə DTB əlavə etmək üçün aşağıdakı əmrdən istifadə edək:

$ cd../ nüvə

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

Və nəhayət, açılış görüntüsünü yaradın (burada rootfs 10.42.0.1 -də uzaq bir hissədə yerləşir)

abootimg -boot -db410c.img -k Image.gz+dtb -r initrd_nfs.img -cagesize = 2048 yaradın

-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 konsolu = tty0 konsolu = ttyMSM0, 115200n8"

İstinadlar:

  • https://access.redhat.com/solutions/24029
  • 96Boards Sənədləri

Addım 4: HOST -da Kök Fayl Sisteminin Yaradılması

İndi dragonboard 410c -ni yeniləmək üçün yeni bir açılış görüntüsümüz var. Ancaq modulları, xidmətləri və tətbiqləri yükləmək üçün uzaq serverdə bir kök fayl sisteminə ehtiyacımız var. Bu addımda, bütün bu məlumatları saxlamaq üçün ev sahibində paylaşılan bir kataloq quracağıq. Bu şəkildə, initrd -də istifadə olunan eyni versiyası olan linaro saytından bir rootfs fayl sistemini yükləyək. Beləliklə, bir qovluğa qayıdın və 431 versiyası olan linaro-developer rootfs görüntüsünü yükləyin.

$ cd..

$ wget

Bu faylı açın

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

Bu faylı istifadə edərək, bütün bölmələrə daxil olmaq və rootfs fayllarını kopyalamaq üçün bütün şəkli sdcardda yazaq. Beləliklə, SD kartdakı hər şey itiriləcəyi üçün uSDCard məlumatlarının ehtiyat nüsxəsini çıxardığınızdan əmin olun.

SDCard cihaz adınızı tapmaq üçün SDCardı çıxarın və aşağıdakı əmri işlədin:

$ lsblk

Bütün tanınmış disk adlarını yaddaşınızda saxlayın. İndi SDCard daxil edin, bir az gözləyin və əmri yenidən yerinə yetirin:

$ lsblk

Yeni tanınan diski qeyd edin. Bu sizin SDCardınız olacaq. Adınızı xatırlayın və SDCard cihaz adınız üçün "of =" parametrini dəyişdirin və cihaz adını bölmə olmadan istifadə etdiyinizə əmin olun, p.e.: /dev /mmcblk0

$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img =/dev/XXX bs = 4M oflag = senkronizasiya vəziyyəti = irəliləmə

Qeydlər:

  • Bu əmrin icrası bir müddət çəkəcək. Səbirli olun və proses başa çatana qədər terminala müdaxilə etməyin.
  • SD kartın yanıb sönməsi başa çatdıqdan sonra ana kompüterdən çıxarın.

İstinad: 96 lövhə sənədləri

Addım 5: HOST -da Server NFS -in yaradılması və Faylların kopyalanması

Bu nöqtədə, dragonboard 410c və modullarımız, xidmətlərimiz və tətbiqlərimiz üçün rootfs fayl sistemi olan bir SDCard -a daxil ediləcək bir açılış görüntüsümüz var. Növbəti addım, USB Ethernet DEVICE cihazını HOST rootfs fayl sistemi ilə birləşdirmək üçün uzaq bir kataloq yaratmaqdır. Bu, Ubuntu nfs-kernel-server adlı bir paketdən istifadə etməklə edilə bilər.

Bu paket, şəbəkədəki bəzi cihazlar üçün bəzi qovluqları paylaşmağa icazə verən Ubuntu -da bir NFS xidməti quraşdırır, sizin IP -dən istifadə edərək hər cihaz üçün hansı qovluğun istifadə olunacağını konfiqurasiya edə bilərik.

Beləliklə, paketi qurub konfiqurasiya edək.

$ sudo apt-get nfs-kernel-server quraşdırın

NFS xidməti avtomatik olaraq başlayır. NFS xidmətlərini idarə etmək üçün istifadə edin:

$ sudo xidməti nfs-kernel-server restart // yenidən başlatmaq və ya lazım olduqda 'stop' və ya 'start' istifadə edin.

NFS xidmətinin vəziyyətini əmr satırından yoxlamaq üçün istifadə edin:

$ sudo xidməti nfs-kernel-server statusu

nfsd işləyir // Xidmət Yuxarıdadır nfsd işləmir // Xidmət aşağıdır

İndi, bir üst kataloq /srv /nfs yaradaq və lazım olan hər bir NFS kök fayl sistemi üçün bunun altında bir alt kataloq yaradaq. Burada kök fayl sistemimizi saxlamaq üçün paylaşılan bir kök fayl sistemini daxil edirik:

$ sudo mkdir -p /srv /nfs

$ sudo mkdir -p/srv/nfs/rootfs

İndi NFS serveri, hər bir NFS fayl sistemi qovluğuna xüsusi hostlara girişi nəzarət etmək üçün /etc /export -ın düzgün qurulmasını tələb edir. Bu vəziyyətdə ev sahibləri IP ünvanları ilə müəyyən edilir. Beləliklə, yaradılan hər bir kök fayl sistemi üçün /etc /export -a ixrac nəzarət xəttini əlavə edin, lazım olduqda yerli IP ünvanınızı və kataloq adlandırma sxemini düzəldin. Bu dərslikdə həmişə istifadə edirik:

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

SD kartınızı yenidən daxil edin, bağlayın və bütün rootfs fayl sistemini/srv/nfs/rootfs -ə kopyalayın, yeni kopyalanan fayllardan istifadə edərək qovluğu yeniləmək üçün NFS xidmətini yenidən başladın.

Əlavə olaraq, 2-ci addımda kernel tərtib etdiyimiz üçün yeni modul fayllarını rootfs fayl sisteminə kopyalamalıyıq. Beləliklə, bütün qovluqları ~/db410c-modules/to/srv/nfs/rootfs-ə kopyalayın.

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

Bu qovluqların NFS xidməti tərəfindən göründüyündən əmin olun. Ya:

$ sudo exportfs -a

İstinad: TFTP/NFS Kök Fayl Sistemi

Addım 6: Dragonboard 410c Boot Şəkilini Yeniləyin və Şəbəkə Arayüzlərini Konfiqurasiya edin

Uzaqdan bir rootfs fayl sistemini tətbiq etmək üçün bütün addımları atdıq, indi dragonboard 410c içərisində önyükleme görüntüsünü yeniləməliyik, bunun üçün USB kabelinizi PC -yə və dragonboard uUSB bağlayıcısına bağlayın. Beləliklə, fastbootun ana kompüterdə qurulduğundan əmin olun, əgər istifadə etməsəniz:

$ sudo apt fastboot quraşdırın

İndi görüntüyü yeniləmək üçün dragonboard -u bu addımları izləyərək fastboot rejiminə keçirin:

  • DragonBoard 410c-də Vol (-) düyməsini basıb saxlayın, bu S4 düyməsidir. DragonBoard ™ 410c hələ də AÇILMAMALIDIR
  • Vol (-) düyməsini basıb saxlayın, DragonBoard 410c-ni qoşaraq yandırın
  • DragonBoard 410c gücə qoşulduqdan sonra tutma düyməsini (-) buraxın.
  • Təxminən 20 saniyə gözləyin.
  • Board fastboot rejiminə başlamalıdır.

Bağlı ana maşın terminal pəncərəsindən aşağıdakı əmrləri yerinə yetirin:

$ sudo fastboot cihazları

Tipik olaraq, aşağıda göstəriləcəkdir

de82318 fastboot

Bu nöqtədə DragonBoard 410c -ə USB -dən microUSB kabelinə qoşulmalısınız. DragonBoard 410c, fastboot rejimində açılmalı və uyğun şəkillərlə işıqlandırılmağa hazır olmalıdır. Önyükləmə görüntüsünü öz önyükleme görüntümüzlə yeniləyək:

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

Və lövhəni yenidən başladın

$ sudo fastboot yenidən başladın

İndi HOST -unuz usb0 adlı yeni bir interfeys aşkar edəcək, lakin hələ də IP -si yoxdur. Beləliklə, bu interfeysə statik bir IP əlavə edin:

$ sudo ifconfig usb0 10.42.0.1 şəbəkə maskası 255.255.255.0 yuxarı

Və ya HOST -da "şəbəkə" maddəsində "Ethernet" -i həmin interfeysə statik bir IP təyin edərək "Konfiqurasiya" ya daxil edin.

İndi dragonboardu yenidən başladın və ssh istifadə edərək qoşulmağa çalışaraq sistemin başladığını yoxlayın:

$ ssh [email protected]

İstinadlar:

  • 96 lövhə sənədləri
  • HowtoForge - Maddə 6

Tövsiyə: