جدول المحتويات:
- الخطوة 1: المتطلبات
- الخطوة 2: تكوين المضيف لبناء النواة وبناء النواة في HOST
- الخطوة 3: أعد إنشاء Boot.img في HOST
- الخطوة 4: إنشاء نظام ملفات الجذر في HOST
- الخطوة 5: إنشاء خادم NFS في HOST ونسخ الملفات
- الخطوة 6: تحديث صورة تمهيد Dragonboard 410c وتكوين واجهات الشبكة
فيديو: الوصول إلى نظام ملفات الجذر البعيد باستخدام DB410 باعتباره Ethernet Dongle: 6 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
أهداف:
- تثبيت toolchain وإعادة ترجمة kernel لإدراج دعم USB Ethernet CDC Gadget ؛
- أعد إنشاء boot.img من Linaro لتشغيل USB Ethernet CDC ؛
- إنشاء خادم NFS لاستضافة نظام ملفات الجذر ؛
- تكوين IP في DEVICE و HOST.
الخطوة 1: المتطلبات
سوف تحتاج إلى itens التالية:
- لوحة DragonBoard ™ 410c (تسمى هنا DEVICE) ؛
- جهاز كمبيوتر يستخدم Ubuntu 16.04.3 محدث (يُسمى هنا HOST) مع اتصال بالإنترنت وفتحة SDCard ؛
- تثبيت نظيف للإصدار 431 من Linaro-developer - الرابط: Snapshot Linaro Debian v431
- شاشة HDMI
- لوحة مفاتيح USB
- بطاقة SD 8 جيجا بايت ؛
- كبل USB و uUSB USB لتوصيل الجهاز على HOST.
الخطوة 2: تكوين المضيف لبناء النواة وبناء النواة في HOST
أولاً ، سننشئ جميع الأدلة قبل المتابعة. وبالتالي:
$ cd ~
$ mkdir db410remoteroot $ cd db410remoteroot $ mkdir toolchain $ mkdir db410c-modules
لسوء الحظ ، لا يحتوي Linux kernel المستخدم بواسطة Linaro (الإصدار 431) على دعم لأداة USB Ethernet ، ولهذا السبب ، يجب إعادة بناء Linux kernel لهذا الإصدار المحدد. قم بتنزيل Linaro toolchain لإنشاء ونشر Linux kernel على Dragonboard410c من الجهاز المضيف x86.
$ wget
$ tar -xf دول مجلس التعاون الخليجي - * - x86_64_aarch64-linux-gnu.tar.xz -C./toolchain - مكونات الشريط = 1
الآن قم بتثبيت الحزم المطلوبة لبناء النواة:
تحديث $ sudo apt && sudo apt-get install git build-أساسي abootimg kernel-package fakeroot libncurses5-dev libssl-dev ccache
احصل على Linux Kernel source Clone Qualcomm هبوط فريق Linux مستودع:
استنساخ $ git
نواة $ cd $ git checkout origin / release / qcomlt-4.14 -b my-custom-4.14
الآن ، قم بتعيين متغيرات بيئة التجميع:
تصدير $ ARCH = arm64
تصدير $ CROSS_COMPILE = $ (pwd) /../ toolchain / bin / aarch64-linux-gnu-
في هذه المرحلة ، نحتاج إلى إضافة الوحدات النمطية إلى USB Ethernet CDC في النواة. لقد فعلت ذلك من قبل ويمكنك الحصول على هذا في نهاية هذه الخطوة. أزلت بعض itens لكنها تعمل.
قبل التحويل البرمجي ، يرجى تصحيح خطأ kernel في برامج التشغيل / mmc / host / sdhci-msm.c وتغيير البنية في السطر 1150 إلى:
هيكل ثابت ثابت 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 ، وانسخ ملف.config إلى دليل kernel ، وقم ببناء النواة والوحدات النمطية وتثبيت الوحدات النمطية في دليل:
$ make -j $ (nproc) Image.gz dtbs
وحدات $ make -j $ (nproc) $ make modules_install INSTALL_MOD_PATH =.. / db410c-modules
المرجع: 96 مجالس التوثيق
الخطوة 3: أعد إنشاء Boot.img في HOST
في هذه الخطوة ، نحتاج إلى فتح صورة initrd ، ووضع الوحدات المدمجة داخل الصورة ، وتهيئة النظام لبدء تلك الوحدات وإعادة إنشاء initrd.img بسطر أوامر kernel جديد لتشغيل نظام ملفات الجذر عن بُعد.
لذلك ، أولاً ، يتعين علينا تنزيل initrd.img من موقع الويب linaro:
$ cd..
$ mkdir inird_nfs $ cd initrd_nfs $ wget -O ramdisk.img
الآن ، بعد التنزيل ، قم بفك الضغط واستخراج الحرف الأول:
$ zcat ramdisk.img | cpio -idmv
في هذا الدليل ، لدينا نظام ملفات الجذر الذي تستخدمه kernel في التهيئة ، لذلك سنقوم بتهيئة وحدات USB Ethernet CDC ومعلمات NFS البعيدة مثل NFS server IP و ethernet (usb) المطلوبة هنا.
لنقم الآن بتهيئة بعض الملفات:
conf / initramfs.conf:
الوحدات = معظم
BUSYBOX = ضغط تلقائي = جهاز gzip = usb0 NFSROOT = حجم تلقائي = 10٪
إنشاء دليل init-premount في دليل scripts /
نصوص mkdir $ / init-premount
وأضف الملفات في هذا الدليل الذي تم إنشاؤه للتو:
ترتيب
/ scripts / init-premount / usb "$ @"
[-e /conf/param.conf] &&. /conf/param.conf
يو اس بي
#! / بن / ش
PREREQ = "" prereqs () {echo "$ PREREQ"} حالة $ 1 في # الحصول على المتطلبات المسبقة) prereqs exit 0 ؛؛ esac modprobe usb_f_ecm modprobe libcomposite modprobe usb_f_rndis modprobe g_ether
لا تنس استخدام chmod في ملف USB لجعله قابلاً للتنفيذ:
$ chmod + x scripts / init-premount / usb
الآن ، انسخ كل الدليل مع الوحدات النمطية من db410c-modules (STEP 2) إلى lib / modules في initrd:
$ cp -R../db410-modules/lib usr /
قم بإزالة جميع الملفات في lib / modules / 4.14.96-xxxx-dirty باستثناء جميع الملفات. * وقائمة الملفات تلك:
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 /usb_f_serial.ko kernel / drivers / usb / gadget / function / usb_f_ecm.ko kernel / driver / usb / gadget / function / usb_f_rndis.ko kernel / drivers / usb / gadget / function / u_serial.ko kernel / driver / usb / gadget /function/usb_f_fs.ko kernel / drivers / usb / gadget / function / usb_f_ecm_subset.ko kernel / drivers / usb / gadget / libcomposite.ko
هذه الملفات هي جميع الوحدات النمطية اللازمة لبدء USB Ethernet CDC.
أخيرًا ، أعد حزم وضغط صورة initrd:
$ تجد. | cpio -o -H newc | gzip -9>../kernel/initrd_nfs.img
على الأقل ، يجب تعبئة صورة kernel وملف DTB في صورة تمهيد Android. يمكن إنشاء هذه الصورة باستخدام أداة abootimg.
دعنا في دليل kernel ونستخدم الأمر أدناه لإنشاء صورة وإلحاق DTB في صورة kernel المضغوطة:
$ cd../kernel
قوس $ cat / قوس $ / boot / قوس Image.gz / قوس $ / boot / dts / qcom / apq8016-sbc.dtb> Image.gz + dtb
وأخيرًا ، قم بإنشاء صورة التمهيد (هنا توجد ملفات rootf الخاصة بنا في قسم بعيد في 10.42.0.1)
abootimg - إنشاء 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"
مراجع:
- https://access.redhat.com/solutions/24029
- 96Bards توثيق
الخطوة 4: إنشاء نظام ملفات الجذر في HOST
الآن ، لدينا صورة تمهيد جديدة لتحديث dragonboard 410c. لكننا نحتاج إلى نظام ملفات جذر في الخادم البعيد لتشغيل الوحدات النمطية والخدمات والتطبيقات. في هذه الخطوة ، سننشئ دليلًا مشتركًا في المضيف لحفظ كل هذه البيانات. بهذه الطريقة ، لنقم بتنزيل نظام ملفات rootfs من موقع linaro بنفس الإصدار المستخدم في initrd. لذا ، ارجع إلى دليل واحد وقم بتنزيل صورة rootfs لمطور linaro مع الإصدار 431.
$ cd..
$ wget
قم بفك ضغط هذا الملف
قم بفك ضغط dragonboard-410c-sdcard-developer-buster-431.zip
باستخدام هذا الملف ، دعنا نكتب كل الصور في sdcard للوصول إلى جميع الأقسام ونسخ ملفات rootfs. لذلك ، تأكد من نسخ البيانات من uSDCard احتياطيًا لأن كل شيء على بطاقة SDCard سيتم فقده.
للعثور على اسم جهاز SDCard الخاص بك ، قم بإزالة SDCard وقم بتشغيل الأمر التالي:
lsblk $
احفظ جميع أسماء الأقراص المعترف بها في ذهنك. الآن أدخل SDCard ، انتظر لحظة وقم بتنفيذ الأمر مرة أخرى:
lsblk $
لاحظ القرص المعترف به حديثًا. ستكون هذه بطاقة SD الخاصة بك. تذكر اسمك وقم بتغيير المعلمة "of =" لاسم جهاز SDCard الخاص بك وتأكد من استخدام اسم الجهاز بدون القسم ، على سبيل المثال: / dev / mmcblk0
$ sudo dd if = dragonboard-410c-sdcard-developer-buster-431.img من = / dev / XXX bs = 4M oflag = حالة المزامنة = تقدم
ملحوظات:
- سيستغرق تنفيذ هذا الأمر بعض الوقت. تحلى بالصبر وتجنب العبث بالمحطة حتى تنتهي العملية.
- بمجرد الانتهاء من وميض بطاقة SD ، أخرجها من الكمبيوتر المضيف.
المرجع: 96 لوحة وثائق
الخطوة 5: إنشاء خادم NFS في HOST ونسخ الملفات
في هذه المرحلة ، لدينا صورة تمهيد يتم وميضها إلى dragonboard 410c و SDCard مع نظام ملفات rootfs لوحداتنا وخدماتنا وتطبيقاتنا. الخطوة التالية هي إنشاء دليل بعيد لتوصيل جهاز USB Ethernet بجهاز مع نظام ملفات HOST rootfs. يمكن القيام بذلك باستخدام حزمة من Ubuntu تسمى nfs-kernel-server.
تقوم هذه الحزمة بتثبيت خدمة NFS في Ubuntu للسماح بمشاركة بعض الأدلة لبعض الأجهزة على الشبكة ، ويمكننا تكوين الدليل الذي سيتم استخدامه لكل جهاز باستخدام عنوان IP الخاص بك.
لذلك ، لنقم بتثبيت الحزمة وتكوينها.
sudo apt-get install nfs-kernel-server
تبدأ خدمة NFS تلقائيًا. للتحكم في خدمات NFS ، استخدم:
أعد تشغيل $ sudo service nfs-kernel-server // لإعادة التشغيل ، أو استخدم "stop" أو "start" حسب الحاجة.
للتحقق من حالة خدمة NFS من سطر الأوامر ، استخدم:
حالة خادم $ sudo service nfs-kernel
nfsd قيد التشغيل // الخدمة قيد التشغيل nfsd لا تعمل // الخدمة معطلة
الآن ، دعنا ننشئ دليلًا علويًا / 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-modules / * / srv / nfs / rootfs /
تأكد من جعل هذه الأدلة مرئية بواسطة خدمة NFS. إما:
sudo exportfs -a
المرجع: نظام ملفات الجذر TFTP / NFS
الخطوة 6: تحديث صورة تمهيد Dragonboard 410c وتكوين واجهات الشبكة
لقد اتخذنا جميع الخطوات المبكرة لتنفيذ نظام ملفات rootfs بعيد ، والآن نحتاج إلى تحديث صورة التمهيد داخل dragonboard 410c ، لذلك ، قم بتوصيل كبل USB الخاص بك على جهاز الكمبيوتر وعلى موصل dragonboard uUSB. لذا تأكد من إعداد fastboot على الكمبيوتر المضيف ، إذا لم يكن التثبيت باستخدام:
sudo apt install fastboot
الآن لتحديث الصورة ، ابدأ de dragonboard في وضع Fastboot باتباع الخطوات التالية:
- اضغط مع الاستمرار على زر Vol (-) على DragonBoard 410c ، هذا هو الزر S4. لا يزال يجب عدم تشغيل DragonBoard ™ 410c
- أثناء الضغط على زر Vol (-) ، قم بتشغيل DragonBoard 410c عن طريق توصيله
- بمجرد توصيل DragonBoard 410c بالطاقة ، حرر الضغط على زر Vol (-).
- انتظر حوالي 20 ثانية.
- يجب أن يتم تشغيل اللوحة في وضع Fastboot.
من النافذة الطرفية لجهاز المضيف المتصل ، قم بتشغيل الأوامر التالية:
أجهزة $ sudo fastboot
عادة سوف تظهر على النحو التالي
فاستبوت de82318
في هذه المرحلة ، يجب أن تكون متصلاً بـ DragonBoard 410c باستخدام كابل USB إلى microUSB. يجب أن يتم تمهيد DragonBoard 410c في وضع التشغيل السريع وأن يكون جاهزًا ليتم وميضه بالصور المناسبة. لنقم بتحديث صورة التمهيد مع صورة التمهيد الخاصة بنا:
$ 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 يصل
أو أدخل "Configuration" على HOST ، في العنصر "network" ، واضبط USB Ethernet على IP ثابت لتلك الواجهة.
الآن ، أعد تشغيل dragonboard مرة أخرى وتحقق من بدء تشغيل النظام ، في محاولة للاتصال باستخدام ssh:
$ ssh [email protected]
مراجع:
- 96boards من الوثائق
- HowtoForge - البند 6
موصى به:
الوصول إلى نظام ملفات Raspberry Pi من خلال Windows: 9 خطوات
قم بالوصول إلى نظام ملفات Raspberry Pi من خلال Windows: هل سبق لك أن حصلت على Raspberry Pi وذهبت & quot؛ يجب أن أقوم بإعداده باستخدام شاشة وماوس ولوحة مفاتيح في كل مرة! & quot؛ الاحتكاك الذي يسببه لفصل / إعادة توصيل الشاشة ولوحة المفاتيح / الماوس ، فقط للوصول إلى Raspberry Pi لا يعلى عليه
الوصول إلى بيانات Solaredge الخاصة بك باستخدام Python: 4 خطوات
الوصول إلى بيانات Solaredge الخاصة بك باستخدام Python: نظرًا لأن بيانات محولات solaredge لا يتم تخزينها محليًا ولكن على خوادم solaredge أردت استخدام بياناتي محليًا ، وبهذه الطريقة يمكنني استخدام البيانات في برامجي الخاصة. سأوضح لك كيف يمكنك طلب بياناتك على شبكات solaredge
نظام سقي نباتات أوتوماتيكي لاسلكي بدون متطلبات الوصول إلى الإنترنت: 3 خطوات
نظام الري التلقائي اللاسلكي للنباتات DIY بدون متطلبات الوصول إلى الإنترنت: أرغب في سقي نباتاتي تلقائيًا بانتظام ، ربما مرة أو مرتين في اليوم حسب المواسم المختلفة. ولكن بدلاً من الحصول على رفيق IOT للقيام بهذه المهمة ، أفضل شيء قائم بذاته لهذه المهمة المحددة. لأنني لا أريد الذهاب
كيفية ضغط ملفات ISO الخاصة بنسخ Psp الاحتياطية في ملفات CSO لتوفير المساحة: 4 خطوات
كيفية ضغط ملفات ISO الخاصة بنسخ Psp الاحتياطية في ملفات CSO لتوفير المساحة: في هذا Instructable ، سأوضح لك كيفية ضغط النسخ الاحتياطية لـ PSPS من ISO إلى CSO لتوفير مساحة على بطاقة الذاكرة الخاصة بك ، باستخدام قطعة واحدة فقط من البرامج التي يمكن استخدامه مع Wine In Ubuntu. ستحتاج أيضًا إلى CFW (Cusstom Firm-Ware) psp لعمل
كيفية إصلاح ملفات البيانات غير المدعومة وتنزيل ملفات الفيديو المفضلة لجهاز PSP المحمول: 7 خطوات
كيفية إصلاح ملفات البيانات غير المدعومة ، وتنزيل ملفات الفيديو المفضلة لجهاز PSP المحمول الخاص بك: لقد استخدمت Media Go ، وقمت ببعض الحيل & nbsp ؛ للحصول على ملفات فيديو غير مدعومة للعمل على PSP الخاص بي ، هذه هي كل خطواتي التي قمت بها ، عندما حصلت لأول مرة على ملفات الفيديو غير المدعومة للعمل على PSP الخاص بي. إنه يعمل بنسبة 100٪ مع جميع ملفات الفيديو الخاصة بي على PSP Po