
Isi kandungan:
- Langkah 1: Keperluan
- Langkah 2: Mengkonfigurasi Host untuk Membangun Kernel dan Membina Kernel di HOST
- Langkah 3: Bangun semula Boot.img di HOST
- Langkah 4: Membuat Root Filesystem di HOST
- Langkah 5: Membuat NFS Pelayan di HOST dan Menyalin Fail
- Langkah 6: Mengemas kini Gambar Boot Dragonboard 410c dan Mengkonfigurasi Antaramuka Rangkaian
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01

Objektif:
- Pasang rantai alat dan kumpulkan semula kernel untuk memasukkan sokongan Alat Ethernet CDC USB;
- Buat semula boot.img dari Linaro untuk boot CDC Ethernet USB;
- Buat pelayan NFS untuk menjadi tuan rumah sistem fail root;
- Konfigurasi IP dalam DEVICE dan HOST.
Langkah 1: Keperluan
Anda memerlukan itens berikut:
- DragonBoard ™ 410c (dinamakan di sini PERANTI);
- PC yang menggunakan Ubuntu 16.04.3 dikemas kini (dinamakan di sini HOST) dengan sambungan internet dan slot SDCard;
- Pemasangan bersih Linaro-developer versi 431 - Pautan: Snapshot Linaro Debian v431
- Monitor HDMI;
- Papan kekunci USB;
- Kad SD 8Gb;
- Kabel USB, USB uUSB untuk menyambungkan PERANGKAT di HOST.
Langkah 2: Mengkonfigurasi Host untuk Membangun Kernel dan Membina Kernel di HOST
Pertama, kami akan membuat semua direktori sebelum meneruskan. Jadi:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modul
Sayangnya, kernel linux yang digunakan oleh Linaro (Versi 431) tidak mempunyai sokongan untuk alat USB Ethernet, oleh kerana itu, kernel Linux mesti dibina semula untuk versi khusus ini. Muat turun rantai alat Linaro untuk membina dan menggunakan kernel linux pada Dragonboard410c dari mesin host x86.
$ wget
$ tar -xf gcc - * - x86_64_aarch64-linux-gnu.tar.xz -C./toolchain --strip-components = 1
Sekarang pasang pakej yang diperlukan untuk membina kernel:
$ sudo apt update && sudo apt-get install git build-essential abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache
Dapatkan repositori Linux team pendaratan Clone Qualcomm sumber Kernel Linux:
$ git klon
$ cd kernel $ git asal / pelepasan / qcomlt-4.14 -b my-custom-4.14
Sekarang, tetapkan pemboleh ubah persekitaran kompilasi:
$ eksport ARCH = arm64
$ eksport CROSS_COMPILE = $ (pwd) /../ toolchain / bin / aarch64-linux-gnu-
Pada ketika ini, kita perlu menambahkan modul ke USB Ethernet CDC di kernel. Saya telah melakukannya sebelum ini dan anda boleh mendapatkannya pada akhir langkah ini. Saya mengeluarkan beberapa itens tetapi ia berfungsi.
Sebelum menyusun, betulkan bug kernel menjadi driver / mmc / host / sdhci-msm.c mengubah struktur dalam baris 1150 kepada:
stat stat const 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};
Buka kompres configfile.zip, salin fail.config ke direktori kernel, bina kernel, modul dan pasang modul dalam direktori:
$ make -j $ (nproc) Image.gz dtbs
$ make -j $ (nproc) modul $ make modules_install INSTALL_MOD_PATH =.. / db410c-modul
Rujukan: Dokumentasi 96Board
Langkah 3: Bangun semula Boot.img di HOST
Pada langkah ini, kita perlu membuka gambar initrd, meletakkan modul yang dibina di dalam gambar, mengkonfigurasi sistem untuk memulakan modul tersebut dan membina semula initrd.img dengan baris perintah kernel baru untuk boot sistem fail root dari jauh.
Oleh itu, pertama, kita harus memuat turun initrd.img dari laman web linaro:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
Sekarang, setelah memuat turun, tekan dan ekstrak initrd:
$ zcat ramdisk.img | cpio -idmv
Dalam direktori ini, kami mempunyai sistem fail root yang digunakan oleh kernel dalam inisialisasi, jadi kami akan mengkonfigurasi modul CDC USB Ethernet dan parameter jauh NFS seperti IP pelayan NFS dan ethernet (usb) yang diperlukan di sini.
Sekarang, mari konfigurasikan beberapa fail:
conf / initramfs.conf:
MODUL = paling banyak
BUSYBOX = COMPRESS automatik = gzip PERANGKAT = usb0 NFSROOT = auto RUNSIZE = 10%
Buat direktori init-premount dalam skrip direktori /
skrip $ mkdir / init-premount
dan tambahkan fail dalam direktori yang baru dibuat ini:
PESANAN
/ skrip / init-premount / usb "$ @"
[-e /conf/param.conf] &&. /conf/param.conf
usb
#! / bin / sh
PREREQ = "" prereqs () {echo "$ PREREQ"} kes $ 1 dalam # dapatkan prasyarat prasyarat) prasyarat keluar 0;; esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
Jangan lupa menggunakan chmod dalam fail usb untuk membuatnya dapat dilaksanakan:
$ chmod + x skrip / init-premount / usb
Sekarang, salin semua direktori dengan modul dari db410c-modul (LANGKAH 2) ke lib / modul di initrd:
$ cp -R../db410-modules/lib usr /
Buang semua fail dalam lib / modul / 4.14.96-xxxx-kotor kecuali semua modul fail. * Dan senarai fail itu:
kernel / driver / usb / gadget / legacy / g_ether.ko
kernel / driver / usb / gadget / legacy / g_mass_storage.ko kernel / driver / usb / gadget / legacy / g_cdc.ko kernel / driver / usb / gadget / legacy / g_serial.ko kernel / driver / usb / gadget / function / usb_f_mass_storage.ko kernel / driver / usb / gadget / function / usb_f_acm.ko kernel / driver / usb / gadget / function / u_ether.ko kernel / driver / usb / gadget / function / usb_f_obex.ko kernel / driver / usb / gadget / fungsi /usb_f_serial.ko kernel / driver / usb / gadget / function / usb_f_ecm.ko kernel / driver / usb / gadget / function / usb_f_rndis.ko kernel / driver / usb / gadget / function / u_serial.ko kernel / driver / usb / gadget /fungsi/usb_f_fs.ko kernel / driver / usb / gadget / function / usb_f_ecm_subset.ko kernel / driver / usb / gadget / libcomposite.ko
Fail-fail tersebut adalah semua modul yang diperlukan untuk memulakan CDC Ethernet USB.
Akhirnya kemas semula dan kompres gambar initrd:
$ cari. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
Paling tidak, gambar kernel dan fail DTB perlu dimasukkan ke dalam gambar boot Android. Gambar seperti itu dapat dihasilkan dengan alat abootimg.
Mari kita dalam direktori kernel dan gunakan perintah di bawah ini untuk membina gambar dan menambahkan DTB dalam gambar kernel yang dimampatkan:
$ cd../kernel
$ cat arch / $ ARCH / boot / Image.gz arch / $ ARCH / boot / dts / qcom / apq8016-sbc.dtb> Image.gz + dtb
Dan akhirnya, hasilkan imej boot (di sini rootfs kami terletak partisi jauh pada 10.42.0.1)
abootimg --buat 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: off rw rootwait console = tty0 console = ttyMSM0, 115200n8"
Rujukan:
- https://access.redhat.com/solutions/24029
- Dokumentasi 96Board
Langkah 4: Membuat Root Filesystem di HOST
Sekarang, kami mendapat imej boot baru untuk mengemas kini dragonboard 410c. Tetapi kita memerlukan sistem fail root di pelayan jauh untuk boot modul, perkhidmatan dan aplikasi. Dalam langkah ini, kami akan membina direktori bersama di host untuk menyimpan semua data ini. Dengan cara itu, mari kita muat turun sistem fail rootfs dari laman web linaro dengan versi yang sama yang digunakan dalam initrd. Oleh itu, kembalilah satu direktori dan muat turun gambar rootfs pembangun linaro dengan versi 431.
$ cd..
$ wget
Nyahkompres fail ini
$ unzip dragonboard-410c-sdcard-developer-buster-431.zip
Dengan menggunakan fail ini, mari tulis semua gambar dalam sdcard untuk mengakses semua partisi dan menyalin fail rootfs. Oleh itu, pastikan data dari uSDCard disandarkan kerana semua yang ada di SDCard akan hilang.
Untuk mencari nama peranti SDCard anda, buang SDCard dan jalankan arahan berikut:
$ lsblk
Simpan di dalam fikiran anda semua nama cakera yang dikenali. Sekarang masukkan SDCard, tunggu sebentar dan jalankan perintah itu lagi:
$ lsblk
Perhatikan cakera yang baru dikenali. Ini akan menjadi SDCard anda. Ingat nama anda dan ubah parameter "of =" untuk nama peranti SDCard anda dan pastikan untuk menggunakan nama peranti tanpa partition, mis.: / dev / mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img of = / dev / XXX bs = 4M oflag = status sync = kemajuan
Catatan:
- Perintah ini akan memerlukan sedikit masa untuk dilaksanakan. Bersabar dan elakkan gangguan pada terminal sehingga prosesnya berakhir.
- Setelah kad SD selesai berkelip, keluarkan dari komputer hos.
Rujukan: Dokumentasi 96 papan
Langkah 5: Membuat NFS Pelayan di HOST dan Menyalin Fail
Pada ketika ini, kita mempunyai gambar boot untuk dimuat ke dalam dragonboard 410c dan SDCard dengan sistem fail rootfs untuk modul, perkhidmatan dan aplikasi kita. Langkah seterusnya adalah membuat direktori jauh untuk menyambungkan PERANGKAT Ethernet USB bersama-sama dengan sistem fail rootfs HOST. Itu boleh dilakukan dengan menggunakan pakej dari Ubuntu bernama nfs-kernel-server.
Pakej ini memasang perkhidmatan NFS ke Ubuntu yang memungkinkan untuk berkongsi beberapa direktori untuk beberapa peranti di rangkaian, kami dapat mengkonfigurasi direktori mana yang akan digunakan untuk setiap perangkat dengan menggunakan IP anda.
Oleh itu, mari pasang pakej dan konfigurasikannya.
$ sudo apt-get pasang pelayan nfs-kernel
Perkhidmatan NFS bermula secara automatik. Untuk mengawal perkhidmatan NFS, gunakan:
$ sudo service nfs-kernel-server restart // untuk memulakan semula, atau gunakan 'stop', atau 'start' seperti yang diperlukan.
Untuk memeriksa status perkhidmatan NFS dari baris arahan gunakan:
$ sudo perkhidmatan nfs-kernel-status pelayan
nfsd berjalan // Perkhidmatan dinaikkan nfsd tidak berjalan // Perkhidmatan sudah Tidak aktif
Sekarang, mari buat direktori teratas / srv / nfs, dan buat subdirektori di bawahnya untuk setiap sistem fail root yang dipasang di NFS yang diperlukan. Di sini kami menyertakan sistem fail root bersama untuk menjaga sistem fail root kami:
$ sudo mkdir -p / srv / nfs
$ sudo mkdir -p / srv / nfs / rootfs
Sekarang, pelayan NFS memerlukan / etc / eksport dikonfigurasi dengan betul, untuk mengawal akses ke setiap direktori sistem fail NFS ke host tertentu. Dalam kes ini, host dikenali oleh alamat IP mereka. Jadi, untuk setiap sistem fail root yang dibuat, tambahkan baris kawalan eksport ke / etc / export, sesuaikan untuk skema penamaan alamat dan direktori IP tempatan anda jika perlu. Dalam tutorial ini, kami selalu menggunakannya:
/ srv / nfs / rootfs 10.42.0.2 (rw, sync, no_root_squash, no_subtree_check)
Masukkan semula SDCard anda, pasang dan salin semua sistem fail rootfs ke / srv / nfs / rootfs, mulakan semula perkhidmatan NFS untuk mengemas kini direktori menggunakan fail yang disalin baru.
Sebagai tambahan, kita perlu menyalin fail modul baru ke dalam sistem fail rootfs kerana kita menyusun kernel pada langkah 2. Oleh itu, salin semua direktori di ~ / db410c-modul / ke / srv / nfs / rootfs.
$ sudo cp -R ~ / db410c-modules / * / srv / nfs / rootfs /
Pastikan direktori ini dapat dilihat oleh perkhidmatan NFS. Sama ada:
$ sudo exportfs -a
Rujukan: TFTP / NFS Root Filesystem
Langkah 6: Mengemas kini Gambar Boot Dragonboard 410c dan Mengkonfigurasi Antaramuka Rangkaian
Kami membuat awal semua langkah untuk melaksanakan sistem fail rootfs jauh, sekarang kami perlu mengemas kini gambar boot di dalam dragonboard 410c, untuk itu, sambungkan kabel USB anda di PC dan pada penyambung uUSB dragonboard. Oleh itu, pastikan fastboot disiapkan pada komputer hos, jika tidak dipasang menggunakan:
$ sudo apt pasangkan fastboot
Sekarang untuk mengemas kini gambar, mulakan de dragonboard ke mod fastboot mengikuti langkah ini:
- Tekan dan tahan butang Vol (-) pada DragonBoard 410c, ini adalah butang S4. DragonBoard ™ 410c masih TIDAK boleh dihidupkan
- Semasa menahan butang Vol (-), hidupkan DragonBoard 410c dengan memasangnya
- Setelah DragonBoard 410c dipasang ke kuasa, lepaskan penahan anda pada butang Vol (-).
- Tunggu lebih kurang 20 saat.
- Papan harus boot ke mod fastboot.
Dari tetingkap terminal mesin host yang disambungkan, jalankan arahan berikut:
$ sudo fastboot devices
Biasanya ia akan ditunjukkan seperti di bawah
de82318 fastboot
Pada ketika ini anda harus disambungkan ke DragonBoard 410c anda dengan kabel USB ke mikroUSB. DragonBoard 410c anda harus di-boot ke mod fastboot dan bersedia untuk dimuat dengan gambar yang sesuai. Mari kita kemas kini imej but dengan gambar but kita:
$ sudo fastboot flash boot ~ / db410remoteroot / kernel / initrd_nfs.img
Dan, mulakan semula papan
reboot fastboot $ sudo
Sekarang, HOST anda akan mengesan antara muka baru bernama usb0, tetapi belum mempunyai IP. Oleh itu, tambahkan IP statik ke antara muka ini dengan menggunakan:
$ sudo ifconfig usb0 10.42.0.1 netmask 255.255.255.0 ke atas
Atau masukkan "Konfigurasi" di HOST, di item "rangkaian", tetapkan Ethernet USB sebagai IP statik ke antara muka tersebut.
Sekarang, mulakan semula papan pemuka dan sahkan permulaan sistem, cuba menyambung menggunakan ssh:
$ ssh [email protected]
Rujukan:
- Dokumentasi 96 papan
- HowtoForge - Perkara 6
Disyorkan:
Mengakses dari jauh Raspberry Pi: SSH, Dekstop & FTP: 4 Langkah

Mengakses dari jauh Raspberry Pi: SSH, Dekstop & FTP: Dalam catatan ini, kita akan melihat 3 kaedah berbeza dengan mana anda dapat mengakses Raspberry Pi dari jarak jauh untuk membuatnya lebih mudah untuk menggunakannya. Yang pertama adalah SSH, yang membolehkan anda mengakses terminal dari jauh. Yang kedua adalah remo
Aplikasi Android / iOS untuk Mengakses Router OpenWrt Anda Dari Jauh: 11 Langkah

Aplikasi Android / iOS untuk Mengakses Router OpenWrt Anda dari jauh: Saya baru-baru ini membeli penghala baru (Xiaomi Mi Router 3G). Dan tentu saja, perkakasan baru yang hebat ini memberi inspirasi kepada saya untuk mula mengerjakan projek ini;)
Robot Kawalan Jauh Menggunakan Jauh Arduino dan T.V.: 11 Langkah

Robot Terkawal Jauh Menggunakan Arduino dan TV Jarak Jauh: Kereta kawalan jauh ini boleh dipindahkan menggunakan hampir semua jenis alat kawalan jauh seperti TV, AC dan lain-lain. Ia menggunakan fakta bahawa alat kawalan jauh memancarkan IR (inframerah). Harta ini digunakan dengan menggunakan penerima IR, yang merupakan sensor yang sangat murah.Dalam
Cara Menggunakan Wiimote Sebagai Tetikus Komputer Menggunakan Lilin Sebagai Sensor !!: 3 Langkah

Cara Menggunakan Wiimote Sebagai Tetikus Komputer Menggunakan Lilin Sebagai Sensor !!: Panduan ini akan menunjukkan kepada anda cara menghubungkan Wii Remote (Wiimote) ke komputer anda dan menggunakannya sebagai tetikus
Filem Mod untuk Digunakan dalam Kamera Super Lama (Filem 620): 4 Langkah

Filem Mod untuk Digunakan dalam Kamera Super Lama (Filem 620): Terdapat banyak kamera lama yang luar biasa, kebanyakan menggunakan filem 620, yang sukar didapat pada masa ini, atau sangat mahal. Ini dapat memberi petunjuk bagaimana mengubah filem 120 murah anda untuk digunakan pada kamera era 620 yang lebih tua, tanpa perlu melakukan keseluruhan