Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

BeagleBone الأسود

يوفر OpenThread Border Router (OTBR) دعمًا لمنصة BeagleBone Black (BBB).

متطلبات الأجهزة:

  • محول تيار متردد خارجي 5 فولت للطاقة
  • بطاقة microSD بسعة 8 GB أو أكبر ("بطاقة SD" في هذا الدليل)
  • نظام OpenThread مدعوم (مثل TI CC2652 ) لاتصال شبكة Thread في تصميم RCP

لاستخدام BBB مع OTBR:

  1. قم بتنزيل البرامج الثابتة واكتب الصورة على بطاقة SD.
  2. التمهيد BBB من بطاقة SD .
  3. قم بتوسيع صورة بطاقة SD لإنشاء مساحة كافية لإنشاء وتثبيت OTBR.
  4. بناء وتثبيت OTBR .

تنزيل البرامج الثابتة

  1. البرامج الثابتة الموصى بها هي امتداد لـ BeagleBone عبر بطاقة microSD :
    • Debian 9.1 2017-08-31 4GB SD LXQT
    • اسم الملف: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. اكتب الصورة على بطاقة SD سعة 8 جيجابايت أو أكبر باستخدام أداة مثل Etcher أو Win32 Disk Imager .

التمهيد من بطاقة SD

BeagleBone الأسود

يمكن لـ BBB التمهيد من الذاكرة المحمولة أو بطاقة SD. لاستخدام BBB مع OTBR ، يجب عليك التمهيد من بطاقة SD ، حيث إن ذاكرة الفلاش المدمجة ليست كبيرة بما يكفي لإنشاء وتثبيت OTBR.

لتمهيد BBB من بطاقة SD:

  1. أدخل بطاقة SD.
  2. افصل الطاقة.
  3. اضغط مع الاستمرار على زر BOOT.
  4. قم بتوصيل الطاقة.
  5. عندما تبدأ المصابيح في الوميض ، حرر زر BOOT.

قم بتوسيع صورة بطاقة SD

يتم إنشاء صور Linux الخاصة بـ Beagle Bone Black (BBB) ​​عمداً صغيرة بحيث يمكن وضع الصورة على أي بطاقة SD سعة 4 جيجابايت (أو على ذاكرة فلاش 4 جيجابايت) ، ثم توسيعها حسب الحاجة. في المجموع هناك حوالي 300 ميغابايت من المساحة الحرة. قد لا تكون هذه المساحة كافية لتثبيت وإنشاء جهاز راوتر OpenThread Border باستخدام BBB.

لحل هذه المشكلة:

  1. اكتب صورة Linux على بطاقة SD أكبر (8 غيغابايت على الأقل).
  2. قم بتوسيع قسم Linux ~ 4 غيغابايت للصورة إلى أقل بقليل من حجم بطاقة SD بالكامل. على سبيل المثال ، إذا كنت تستخدم بطاقة SD بسعة 8 جيجا بايت ، فقم بتوسيعها إلى ~ 7 جيجا بايت. للحصول على بطاقة 16 جيجا بايت ، قم بتوسيعها حتى 15 جيجا بايت.
  3. قم بتمهيد BBB من بطاقة SD.

أقسام بطاقة SD

البيانات الموجودة على بطاقة SD هي بشكل فعال مجموعة مستمرة من قطاعات البيانات. يتم ترقيم القطاعات بدءًا من 0 وانتهاءً بالقطاع N مكان ما حول XX غيغابايت ، ويعتمد الرقم الأخير بالضبط على بطاقة SD الفعلية.

يحتوي القطاع 0 دائمًا على جدول أقسام MS-DOS. يمكن أن يحتفظ جدول أقسام MS-DOS بين 1 و 4 إدخالات القسم. كل قسم عبارة عن سلسلة مستمرة من القطاعات من X إلى Y مكان ما ضمن حدود بطاقة SD. يتكرر هذا لكل من الأقسام الأربعة الممكنة. عادة ، يتم وضع الأقسام بالترتيب ، مع وجود عدد من ( 0 إلى N ) من القطاعات غير المستخدمة في النهاية. يمكن استخدام هذا "عدد من القطاعات غير المستخدمة" ( SOME_N ) لصالحك فيما بعد.

عند كتابة صورة على بطاقة SD ، تبدأ الكتابة في القطاع 0 وتتقدم إلى SOME_N ، اعتمادًا على حجم الصورة. ما لا يمكنك فعله هو تمديد القسم حول الصورة — وهذا غير ممكن. بدلاً من ذلك ، فكر في إطار صورة حول قماش. إطار الصورة هو القسم والصورة هي البيانات. ما يمكنك فعله هو استبدال إطار الصورة الموجود بإطار أكبر ، وتوسيع اللوحة ضمن:

  1. احذف قسم Linux الحالي دون حذف البيانات. لقد قمت بإزالة إطار الصورة ، لكن الصورة لا تزال موجودة على اللوحة.
  2. قم بإنشاء قسم Linux جديد يبدأ تمامًا من حيث بدأ القسم القديم ، ولكنه ينتهي بالقرب من نهاية بطاقة SD. لقد قمت بإنشاء إطار صورة أكبر. الصورة - البيانات - لا تزال موجودة على اللوحة. لم يتحرك ولم يفسد بهذه العملية.
  3. استخدم أداة خاصة بنظام الملفات لتنمية نظام الملفات داخل حدود القسم الجديد. تتمدد اللوحة القماشية لملء إطار الصورة الجديد الأكبر حجمًا.

الخطوة 1: تحديد قسم البيانات الحالي

  1. قم بتمهيد BBB من بطاقة SD.
  2. تسجيل الدخول root :
    sudo bash
    
  3. حدد قسم بيانات بطاقة SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    لاحقة p1 في حقل Filesystem هي اصطلاح التسمية /dev/mmcblk0 1. الجهاز نفسه هو /dev/mmcblk0 . في هذا المثال ، فقط 295 ميغابايت مجانية. هذه ليست مساحة كافية لبناء وتثبيت OTBR.

الخطوة 2: إنشاء قسم جديد أكبر

  1. قم بتشغيل الأداة fdisk على الجهاز (بطاقة SD):
    root@beaglebone:/home/debian# fdisk /dev/mmcblk0
    
    Welcome to fdisk (util-linux 2.25.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
  2. قم بطباعة جدول التقسيم الحالي للعثور على قطاع البداية:
    Command (m for help): p
    Disk /dev/mmcblk0: 7.2 GiB, 7744782336 bytes, 15126528 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xca52207f
    
    Device         Boot Start     End Sectors  Size Id Type
    /dev/mmcblk0p1 *     8192 6963199 6955008  3.3G 83 Linux
    
    قيمة حقل Start هي قطاع البداية للقسم الهدف. يجب أن يكون مدرجًا بنفس اسم القسم كما في الخطوة 1 ، مع Type Linux . في الناتج أعلاه ، فإن قطاع البداية هو 8192 .
  3. حذف القسم الموجود:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. قم بإنشاء القسم الجديد ، باستخدام رقم قسم 1 ، وهو نفس قطاع البداية للقسم السابق ( 8192 في هذا المثال) ، وحجم يقل عن 1 جيجابايت بحجم بطاقة SD. على سبيل المثال ، إذا كنت تستخدم بطاقة SD سعة 8 جيجابايت ، فحدد حجم +7G . بالنسبة لبطاقة SD سعة 16 غيغابايت ، حدد +15GB .
    Command (m for help): n
    Partition type
    p   primary (0 primary, 0 extended, 4 free)
    e   extended (container for logical partitions)
    Select (default p): p
    Partition number (1-4, default 1): 1
    First sector (2048-15126527, default 2048): 8192
    Last sector, +sectors or +size{K,M,G,T,P} (8192-15126527, default 15126527): +7G
    
    Created a new partition 1 of type 'Linux' and of size 7 GiB.
    
  5. تطالبك الإصدارات الأحدث من الأداة fdisk بمسح توقيع القرص القديم ext4 . لا تمسح هذا التوقيع. وإلا ، فإن البيانات تالفة وتصبح الصورة بأكملها عديمة الفائدة.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. اكتب جدول الأقسام الجديد على القرص وقم بإنهاء fdisk :
    Command (m for help): w
    The partition table has been altered.
    Calling ioctl() to re-read partition table.
    Re-reading the partition table failed.: Device or resource busy
    
    The kernel still uses the old table. The new table will be used at the next
    reboot or after you run partprobe(8) or kpartx(8).
    

الخطوة 3: تغيير حجم نظام الملفات

استخدم resize2fs لتغيير حجم نظام ملفات الصور إلى حجم القسم الموسع حديثًا. تعمل هذه الأداة على توسيع نظام الملفات أو تقليصه.

  1. إعادة تشغيل BBB.

    1. قد تلقي بعض الصور خطأ fsck عند إعادة التشغيل. يتم تشغيل fsck تلقائيًا عند التمهيد ويتحقق من تناسق نظام الملفات.

       Loading, please wait...
      [    4.873285]  remoteproc1: failed to load am335x-pru0-fw
      [    4.918852]  remoteproc1: request_firmware failed: -2
      [    4.924046] pru-rproc 4a334000.pru0: rproc_boot failed
      [    5.052414]  remoteproc1: failed to load am335x-pru1-fw
      [    5.069652]  remoteproc1: request_firmware failed: -2
      [    5.074889] pru-rproc 4a338000.pru1: rproc_boot failed
      fsck: error 2 (No such file or directory) while executing fsck.ext4 for /dev/mmcblk0p1
      fsck exited with status code 8
       
    2. إذا ظهر لك هذا الخطأ ، فتجاهله وانتظر حوالي 20 ثانية حتى تظهر مطالبة تسجيل الدخول.

  2. تسجيل الدخول root :

    sudo bash
    
  3. تغيير حجم نظام الملفات للقسم الهدف:

     root@beaglebone:/home/debian# resize2fs /dev/mmcblk0p1
    resize2fs 1.43 (17-May-2016)
    Filesystem at /dev/mmcblk0p1 is mounted on /; on-line resizing required
    old_desc_blocks = 1, new_desc_blocks = 1
    The filesystem on /dev/mmcblk0p1 is now 1835008 (4k) blocks long.
     
  4. إعادة تشغيل BBB.

  5. إذا واجهت مشكلة fsck ، initramfs إنشاء initramfs ، وهو نظام ملفات ذاكرة الوصول العشوائي الأولي المستخدم عند بدء تشغيل Linux.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. إعادة تشغيل BBB. يجب أن يتم التمهيد بدون خطأ fsck .

بناء وتثبيت OTBR

راجع البناء والتكوين للحصول على إرشادات حول إنشاء OTBR وتثبيته.

استنساخ بطاقة SD معاد تكوينها (اختياري)

يمكن استنساخ بطاقة SD التي أعيد تكوينها مع قسم Linux الذي تم تغيير حجمه لتوزيعه بسهولة.

المشكلة: العديد من أدوات واجهة المستخدم الرسومية تقرأ بطاقة SD بالكامل - بما في ذلك المنطقة الحرة بعد نهاية القسم وحتى آخر قطاع - ولا تقدم طريقة لقراءة جزء فقط من الصورة. تحتوي كل بطاقة SD على عدد مختلف من القطاعات الجيدة والسيئة ، وقد يكون إجمالي حجم البايت لبطاقة SD الجديدة أصغر (7.999 جيجا بايت) من الصورة التي تم تغيير حجمها (8.0 جيجا بايت). في هذه الحالة ، لا يمكن احتواء الصورة التي تم تغيير حجمها على بطاقة SD الجديدة.

الحل: استخدم حجم قسم أصغر قليلاً من الحجم الكامل لبطاقة SD. يستخدم إجراء توسيع صورة بطاقة SD +7G كحجم قسم جديد لبطاقة SD سعة 8 جيجابايت. ينتج عن ذلك صورة صغيرة بما يكفي لتناسب بشكل آمن على أي بطاقة SD قابلة للمقارنة بسعة 8 جيجابايت (بغض النظر عن القطاعات التالفة) بينما لا تزال كبيرة بما يكفي لبناء وتثبيت OTBR.

استخدم قطاع النهاية لقسم البيانات لحساب حجم البايت بأكمله لـ "صورة البيانات" واقتطاع ملف IMG عند إزاحة البايت. إن أبسط طريقة هي استخدام الأمر truncate . إن الأمر truncate هو أداة سطر أوامر Unix قياسية ، وهو موجود أيضًا في توزيع MS-Windows Git Bash لـ MSYS.

  1. root ، قم بتشغيل fdisk على الجهاز (بطاقة SD):

     root@beaglebone:/home/debian# fdisk /dev/mmcblk0
    
    Welcome to fdisk (util-linux 2.25.2).
    Changes will remain in memory only, until you decide to write them.
    Be careful before using the write command.
     
  2. قم بطباعة جدول التقسيم الحالي للعثور على قطاع النهاية:

     Command (m for help): p
    Disk /dev/mmcblk0: 7.2 GiB, 7744782336 bytes, 15126528 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0xca52207f
    
    Device         Boot Start      End  Sectors Size Id Type
    /dev/mmcblk0p1       8192 14688255 14680064   7G 83 Linux
     

    في هذا المثال ، قطاع النهاية هو 14688255 .

  3. قم بإنهاء fdisk وحساب الحجم الإجمالي للصورة:

    1. ينتهي القسم الأخير في القطاع 14688255 .
    2. كل قطاع 512 بايت.
    3. قطاع البدء لبطاقة SD هو دائمًا 0 . أضف 1 بايت لحساب هذا القطاع.
    4. الحجم الكلي: (14688255 + 1) * 512 = 7520387072
  4. اقرأ صورة بطاقة SD في ملف .img ، باستخدام أداة مثل Etcher أو Win32 Disk Imager .

  5. اقتطاع ملف الصورة إلى الحجم الإجمالي المحسوب:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. انسخ ملف الصورة المقتطع إلى بطاقات SD الأخرى للتوزيع.