Taula de continguts:
- Pas 1: Requeriments
- Pas 2: Configuració de l'amfitrió per construir nucli i construir nucli a l'HOST
- Pas 3: Reconstruïu Boot.img a l’HOST
- Pas 4: Creació del sistema de fitxers arrel a l’HOST
- Pas 5: Creació de servidor NFS a l’HOST i còpia de fitxers
- Pas 6: Actualització de la imatge d’arrencada de Dragonboard 410c i configuració d’interfícies de xarxa
Vídeo: Accés al sistema de fitxers arrel remot mitjançant DB410 com a dongle Ethernet: 6 passos
2024 Autora: John Day | [email protected]. Última modificació: 2024-01-30 08:14
Objectius:
- Instal·leu la cadena d’eines i torneu a compilar el nucli per inserir el suport del dispositiu USB Ethernet CDC;
- Recreeu boot.img de Linaro per arrencar USB Ethernet CDC;
- Creeu un servidor NFS per allotjar el sistema de fitxers arrel;
- Configuració d'IP a DEVICE i HOST.
Pas 1: Requeriments
Necessitareu els següents elements:
- Un DragonBoard ™ 410c (anomenat aquí DISPOSITIU);
- S'ha actualitzat un PC que utilitza Ubuntu 16.04.3 (anomenat aquí HOST) amb connexió a Internet i ranura per a targetes SDCard;
- Una instal·lació neta de la versió 431 del desenvolupador de Linaro - Enllaç: Instantània Linaro Debian v431
- Un monitor HDMI;
- Un teclat USB;
- Una targeta SD de 8 Gb;
- Un cable USB, USB USB per connectar el DISPOSITIU a HOST.
Pas 2: Configuració de l'amfitrió per construir nucli i construir nucli a l'HOST
En primer lloc, crearem tots els directoris abans de continuar. Tan:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modules
Malauradament, el nucli linux utilitzat per Linaro (versió 431) no és compatible amb el gadget USB Ethernet, per això, el nucli Linux s'ha de reconstruir per a aquesta versió específica. Descarregueu la cadena d'eines Linaro per crear i desplegar el nucli linux a Dragonboard410c des de la màquina host x86.
$ wget
$ tar -xf gcc - * - x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1
Ara instal·leu els paquets necessaris per construir el nucli:
$ sudo apt update && sudo apt-get install git build-essential abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache
Obteniu el dipòsit de Linux de l'equip de destinació del clonatge Qualcomm de la font del nucli Linux:
$ git clone
$ cd kernel $ git checkout origin / release / qcomlt-4.14 -b my-custom-4.14
Ara, configureu les variables d'entorn de compilació:
$ export ARCH = arm64
$ export CROSS_COMPILE = $ (pwd) /../ toolchain / bin / aarch64-linux-gnu-
En aquest moment, hem d’afegir els mòduls a USB Ethernet CDC al nucli. Ho vaig fer abans i ho podeu aconseguir al final d'aquest pas. He eliminat alguns elements, però funciona.
Abans de compilar, corregiu un error del nucli a drivers / mmc / host / sdhci-msm.c canviant l'estructura de la línia 1150 per:
static 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};
Descomprimiu configfile.zip, copieu el fitxer.config al directori del nucli, construïu el nucli, mòduls i instal·leu mòduls en un directori:
$ make -j $ (nproc) Image.gz dtbs
$ make -j $ (nproc) mòduls $ make modules_install INSTALL_MOD_PATH =.. / db410c-modules
Referència: 96Boards Documentation
Pas 3: Reconstruïu Boot.img a l’HOST
En aquest pas, hem d'obrir la imatge initrd, posar els mòduls construïts dins de la imatge, configurar el sistema per iniciar aquests mòduls i reconstruir un initrd.img amb una nova línia d'ordres del nucli per arrencar el sistema de fitxers arrel remotament.
Per tant, primer hem de descarregar initrd.img del lloc web de linaro:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Ara, després de la descàrrega, descomprimiu i extreu l'initrd:
$ zcat ramdisk.img | cpio -idmv
En aquest directori, tenim el sistema de fitxers arrel utilitzat pel nucli en la inicialització, de manera que aquí configurarem els mòduls USB Ethernet CDC i els paràmetres remots NFS, com ara el servidor NFS IP i ethernet (usb).
Ara, configurem alguns fitxers:
conf / initramfs.conf:
MULDULS = la majoria
BUSYBOX = auto COMPRESS = gzip DEVICE = usb0 NFSROOT = auto RUNSIZE = 10%
Creeu el directori init-premount als scripts de directori /
$ mkdir scripts / init-premount
i afegiu els fitxers en aquest directori acabat de crear:
COMANDA
/ scripts / init-premount / usb "$ @"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#! / bin / sh
PREREQ = "" prereqs () {echo "$ PREREQ"} cas $ 1 en # obtenir requisits previs prèviament) prereqs sortir 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
No us oblideu d’utilitzar chmod al fitxer USB per fer-lo executable:
$ chmod + x scripts / init-premount / usb
Ara, copieu tot el directori amb els mòduls de db410c-modules (PAS 2) a lib / modules a initrd:
$ cp -R../db410-modules/lib usr /
Elimineu tots els fitxers de lib / modules / 4.14.96-xxxx-dirty, excepte tots els mòduls de fitxers. * I la llista de fitxers:
kernel / drivers / 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 / 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 kernel / drivers / usb / gadget / function nucli /usb_f_serial.ko / 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
Aquests fitxers són tots els mòduls necessaris per iniciar USB Ethernet CDC.
Finalment torneu a empaquetar i comprimir la imatge initrd:
$ trobar. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Com a mínim, la imatge del nucli i el fitxer DTB s’han d’empaquetar en una imatge d’arrencada d’Android. Aquesta imatge es pot generar amb l'eina abootimg.
Anem al directori del nucli i fem servir l'ordre següent per crear imatge i afegir DTB a la imatge del nucli comprimit:
$ cd../kernel
$ cat arch / $ ARCH / boot / Image.gz arch / $ ARCH / boot / dts / qcom / apq8016-sbc.dtb> Image.gz + dtb
I, finalment, generar la imatge d’arrencada (aquí el nostre rootfs es troba una partició remota a 10.42.0.1)
abootimg --create boot-db410c.img -k Image.gz + dtb -r initrd_nfs.img -c mida de pàgina = 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"
Referències:
- https://access.redhat.com/solutions/24029
- Documentació de 96 taulers
Pas 4: Creació del sistema de fitxers arrel a l’HOST
Ara, tenim una nova imatge d’arrencada per actualitzar el dragonboard 410c. Però necessitem un sistema de fitxers arrel al servidor remot per arrencar mòduls, serveis i aplicacions. En aquest pas, crearem un directori compartit a l'amfitrió per desar totes aquestes dades. D’aquesta manera, descarreguem un sistema de fitxers rootfs des del lloc linaro amb la mateixa versió que s’utilitza a initrd. Per tant, torneu enrere a un directori i descarregueu la imatge rootfs de linaro-developer amb la versió 431.
$ cd..
$ wget
Descomprimiu aquest fitxer
$ descomprimir dragonboard-410c-sdcard-developer-buster-431.zip
Mitjançant aquest fitxer, escrivim totes les imatges en una sdcard per accedir a totes les particions i copiar fitxers rootfs. Per tant, assegureu-vos que es faci una còpia de seguretat de les dades de uSDCard perquè es perdrà tot el que hi hagi a la targeta SDCard.
Per trobar el nom del dispositiu SDCard, traieu SDCard i executeu l'ordre següent:
$ lsblk
Deseu a la vostra ment tots els noms de disc reconeguts. Ara inseriu la targeta SD, espereu un moment i torneu a executar l'ordre:
$ lsblk
Tingueu en compte el disc recentment reconegut. Aquesta serà la vostra targeta SD. Recordeu el vostre nom i canvieu el paràmetre "of =" pel nom del dispositiu SDCard i assegureu-vos d'utilitzar-lo sense la partició, p. Ex.: / dev / mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of = / dev / XXX bs = 4M oflag = estat de sincronització = progrés
Notes:
- Aquesta ordre trigarà a executar-se. Tingueu paciència i eviteu manipular el terminal fins que finalitzi el procés.
- Una vegada que la targeta SD hagi parpellejat, traieu-la de l'ordinador amfitrió.
Referència: documentació de 96 taulers
Pas 5: Creació de servidor NFS a l’HOST i còpia de fitxers
En aquest punt, tenim una imatge d’arrencada per convertir-la en dragonboard 410c i una targeta SD amb un sistema de fitxers rootfs per als nostres mòduls, serveis i aplicacions. El següent pas és crear un directori remot per connectar el dispositiu USB Ethernet toguther amb el sistema de fitxers rootfs HOST. Això es pot fer mitjançant un paquet d'Ubuntu anomenat nfs-kernel-server.
Aquest paquet instal·la un servei NFS a Ubuntu que permet compartir alguns directoris d'alguns dispositius de la xarxa, podem configurar quin directori s'utilitzarà per a cada dispositiu mitjançant la vostra IP.
Per tant, instal·larem el paquet i el configurarem.
$ sudo apt-get install nfs-kernel-server
El servei NFS s'inicia automàticament. Per controlar l'ús dels serveis NFS:
$ sudo service nfs-kernel-server restart // per reiniciar o utilitzeu 'stop' o 'start' segons calgui.
Per comprovar l'estat del servei NFS des de la línia d'ordres utilitzeu:
Servei $ sudo estat nfs-kernel-server
nfsd en execució // El servei està en funcionament nfsd no s’executa // El servei no funciona
Ara, creem un directori superior / srv / nfs i creem un subdirectori sota aquest per a cada sistema de fitxers arrel muntat a NFS que es requereixi. Aquí incloem un sistema de fitxers arrel compartit per mantenir el nostre sistema de fitxers arrel:
$ sudo mkdir -p / srv / nfs
$ sudo mkdir -p / srv / nfs / rootfs
Ara, el servidor NFS requereix que / etc / exportacions es configurin correctament per controlar l'accés a cada directori del sistema de fitxers NFS a hosts específics. En aquest cas, els amfitrions s’identifiquen per la seva adreça IP. Per tant, per a cada sistema de fitxers arrel que es crea, afegiu la línia de control d’exportació a / etc / exportacions, ajustant-la per a l’adreça IP local i l’esquema de noms de directoris si és necessari. En aquest tutorial, sempre fem servir això:
/ srv / nfs / rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)
Inseriu de nou la targeta SD, munteu-la i copieu tot el sistema de fitxers rootfs a / srv / nfs / rootfs, reinicieu el servei NFS per actualitzar el directori mitjançant fitxers nous copiats.
A més, hem de copiar els fitxers de mòduls nous al sistema de fitxers rootfs perquè hem compilat el nucli al pas 2. Per tant, copieu tots els directoris de ~ / db410c-modules / a / srv / nfs / rootfs.
$ sudo cp -R ~ / db410c-modules / * / srv / nfs / rootfs /
Assegureu-vos que el servei NFS faci visibles aquests directoris. Ja sigui:
$ sudo exportfs -a
Referència: sistema de fitxers arrel TFTP / NFS
Pas 6: Actualització de la imatge d’arrencada de Dragonboard 410c i configuració d’interfícies de xarxa
Hem fet tots els passos inicials per implementar un sistema de fitxers rootfs remot, ara necessitem actualitzar la imatge d’arrencada dins de dragonboard 410c, per això, connecteu el vostre cable USB al PC i al connector uUSB de dragonboard. Així que assegureu-vos que fastboot està configurat a l'ordinador amfitrió, si no s'instal·la mitjançant:
$ sudo apt install fastboot
Ara per actualitzar la imatge, inicieu el dragonboard al mode d'arrencada ràpida seguint aquests passos:
- Mantingueu premut el botó Vol (-) del DragonBoard 410c, aquest és el botó S4. DragonBoard ™ 410c encara NO hauria d’estar engegat
- Mentre manteniu premut el botó Vol (-), engegueu el DragonBoard 410c endollant-lo
- Un cop el DragonBoard 410c estigui endollat a l’energia, deixeu de mantenir premut el botó Vol (-).
- Espereu uns 20 segons.
- El tauler hauria d’arrencar en mode d’arrencada ràpida.
Des de la finestra del terminal de la màquina host connectada, executeu les ordres següents:
Dispositius $ sudo fastboot
Normalment es mostrarà a continuació
de82318 fastboot
En aquest moment hauríeu d’estar connectat al vostre DragonBoard 410c amb un cable USB a microUSB. El vostre DragonBoard 410c s'hauria d'arrencar en mode d'arrencada ràpida i llest per ser intermitent amb les imatges adequades. Actualitzem la imatge d’arrencada amb la nostra imatge d’arrencada:
$ sudo fastboot flash boot ~ / db410remoteroot / kernel / initrd_nfs.img
I reinicieu el tauler
$ sudo reinici fastboot
Ara, el vostre HOST detectarà una nova interfície anomenada usb0, però encara no té una IP. Per tant, afegiu una IP estàtica a aquesta interfície mitjançant:
$ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 up
O bé introduïu a "Configuració" a HOST, a l'element "xarxa", configurant USB Ethernet com a IP estàtica a aquesta interfície.
Ara, reinicieu de nou el dragonboard i verifiqueu l'inici del sistema, provant de connectar-vos mitjançant ssh:
$ ssh [email protected]
Referències:
- Documentació de 96 taulers
- HowtoForge: tema 6
Recomanat:
Accediu al sistema de fitxers Raspberry Pi mitjançant Windows: 9 passos
Accediu al sistema de fitxers Raspberry Pi des del Windows: alguna vegada teniu un Raspberry Pi i heu anat? "He de configurar-lo amb un monitor, un ratolí i un teclat cada vegada!" La frustració que provoca desconnectar / tornar a endollar el monitor i el teclat / ratolí, només per accedir al Raspberry Pi, és inigualable
Com gravar jocs per a mòbils amb àudio de xat de veu * sense arrel: 4 passos
Com gravar jocs per a mòbils amb àudio de xat de veu * sense arrel: avui en dia, a causa de l’èxit de jocs per a mòbils com PUBG, molta gent vol transmetre’ls, però hi ha un problema important, tot i que podeu gravar la pantalla, però la dosi d’Android no permet per gravar el xat de veu. O bé podeu gravar la vostra veu
Control de ràdio RF 433MHZ mitjançant HT12D HT12E - Fer un control remot RF mitjançant HT12E i HT12D amb 433mhz: 5 passos
Control de ràdio RF 433MHZ mitjançant HT12D HT12E | Fer un control remot RF mitjançant HT12E i HT12D amb 433 mhz: en aquest instructiu us mostraré com fer un control remot RÀDIO mitjançant un mòdul receptor de transmissor 433 mhz amb codificació HT12E i amp; IC descodificador HT12D. En aquest instructiu, podeu enviar i rebre dades mitjançant COMPONENTS molt econòmics COM: HT
Com comprimir els fitxers ISO de les vostres còpies de seguretat PSP en fitxers CSO per estalviar espai .: 4 passos
Com comprimir els fitxers ISO de les vostres còpies de seguretat PSP en fitxers CSO per estalviar espai. es pot utilitzar amb Wine In Ubuntu. També necessitareu un CFW (Cusstom Firm-Ware) psp per fer
Com arreglar fitxers de dades no compatibles i descarregar els fitxers de vídeo preferits per al vostre portàtil de PSP: 7 passos
Com arreglar fitxers de dades no compatibles i descarregar els vostres fitxers de vídeo preferits per al vostre portàtil de PSP: he utilitzat Media Go i he fet alguns dels trucs per aconseguir que fitxers de vídeo no compatibles funcionin a la meva PSP. Aquests són tots els meus passos que he fet. , quan vaig aconseguir que els meus fitxers de vídeo no compatibles funcionessin a la meva PSP. Funciona al 100% amb tots els meus fitxers de vídeo al meu PSP Po