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)

ข้อกำหนดฮาร์ดแวร์:

  • อะแดปเตอร์ AC 5V ภายนอกสำหรับจ่ายไฟ
  • การ์ด microSD ขนาด 8 GB หรือใหญ่กว่า ("การ์ด SD" ในคู่มือนี้)
  • แพลตฟอร์ม OpenThread ที่รองรับ (เช่น TI CC2652 ) สำหรับการเชื่อมต่อเครือข่ายเธรดในการออกแบบ RCP

ในการใช้ BBB กับ OTBR:

  1. ดาวน์โหลดเฟิร์มแวร์ และเขียนภาพลงในการ์ด SD
  2. บูต BBB จากการ์ด SD
  3. ขยายอิมเมจการ์ด SD เพื่อสร้างพื้นที่เพียงพอสำหรับสร้างและติดตั้ง OTBR
  4. สร้างและติดตั้ง OTBR

ดาวน์โหลดเฟิร์มแวร์

  1. เฟิร์มแวร์ที่แนะนำคือ Stretch สำหรับ 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 GB หรือใหญ่กว่าโดยใช้เครื่องมือเช่น Etcher หรือ Win32 Disk Imager

บูตจากการ์ด SD

BeagleBone สีดำ

BBB สามารถบู๊ตได้จากหน่วยความจำแฟลชในตัวหรือการ์ด SD ในการใช้ BBB กับ OTBR คุณต้องบูตจากการ์ด SD เนื่องจากหน่วยความจำแฟลชออนบอร์ดมีขนาดไม่ใหญ่พอที่จะสร้างและติดตั้ง OTBR

ในการบูต BBB จากการ์ด SD:

  1. ใส่การ์ด SD
  2. ถอดสายไฟ
  3. กดปุ่ม BOOT ค้างไว้
  4. เชื่อมต่อพลังงาน
  5. เมื่อไฟ LED เริ่มกะพริบให้ปล่อยปุ่ม BOOT

ขยายภาพการ์ด SD

อิมเมจลินุกซ์สำหรับ Beagle Bone Black (BBB) ​​ถูกสร้างขึ้นโดยเจตนาให้มีขนาดเล็กเพื่อให้สามารถวางภาพลงในการ์ด SD ขนาด 4 GB (หรือหน่วยความจำแฟลชบนบอร์ด 4 GB) จากนั้นขยายได้ตามต้องการ มีพื้นที่ว่างทั้งหมดประมาณ 300 MB นั่นอาจไม่เพียงพอที่จะติดตั้งและสร้าง OpenThread Border Router โดยใช้ BBB

วิธีแก้ปัญหานี้:

  1. เขียนอิมเมจของ Linux ลงในการ์ด SD ขนาดใหญ่ (อย่างน้อย 8 GB)
  2. ขยายพาร์ติชัน Linux ~ 4 GB ของอิมเมจให้น้อยกว่าขนาดของการ์ด SD ทั้งหมดเล็กน้อย ตัวอย่างเช่นหากใช้การ์ด SD 8 GB ให้ขยายเป็น ~ 7 GB สำหรับการ์ด 16 GB ให้ขยายเป็น ~ 15 GB
  3. บูต BBB จากการ์ด SD

พาร์ติชันการ์ด SD

ข้อมูลในการ์ด SD เป็นกลุ่มข้อมูลที่ต่อเนื่องกันอย่างมีประสิทธิภาพ ภาคต่างๆจะมีหมายเลขเริ่มต้นด้วย 0 และสิ้นสุดที่ Sector N ประมาณ XX GB หมายเลขสุดท้ายที่แน่นอนจะขึ้นอยู่กับการ์ด SD จริง

Sector 0 มีตารางพาร์ติชัน MS-DOS เสมอ ตารางพาร์ติชัน MS-DOS สามารถเก็บรายการพาร์ติชันได้ระหว่าง 1 ถึง 4 รายการ พาร์ติชันแต่ละพาร์ติชันเป็นชุดของเซกเตอร์ต่อเนื่องจาก X ถึง Y ใดที่หนึ่งภายในขอบเขตของการ์ด SD สิ่งนี้ซ้ำสำหรับแต่ละพาร์ติชั่นที่เป็นไปได้ 4 พาร์ติชัน โดยปกติพาร์ติชันจะอยู่ตามลำดับโดยมีเซกเตอร์ที่ไม่ได้ใช้งาน ( 0 ถึง N ) บางส่วนต่อท้าย "จำนวนภาคที่ไม่ได้ใช้" ( SOME_N ) นี้สามารถนำไปใช้เพื่อประโยชน์ของคุณได้ในภายหลัง

เมื่อเขียนภาพลงในการ์ด SD การเขียนจะเริ่มต้นที่ Sector 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 คือหลักการตั้งชื่อสำหรับพาร์ติชัน 1 อุปกรณ์เองคือ /dev/mmcblk0 ในตัวอย่างนี้ฟรีเพียง 295 MB พื้นที่นี้ไม่เพียงพอที่จะสร้างและติดตั้ง 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 of Linux ในเอาต์พุตด้านบนภาคเริ่มต้นคือ 8192
  3. ลบพาร์ติชันที่มีอยู่:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. สร้างพาร์ติชันใหม่โดยใช้พาร์ติชันหมายเลข 1 เซกเตอร์เริ่มต้นเดียวกันของพาร์ติชันก่อนหน้า ( 8192 ในตัวอย่างนี้) และขนาดที่น้อยกว่าขนาดการ์ด SD 1 GB ตัวอย่างเช่นหากใช้การ์ด SD ขนาด 8 GB ให้ระบุขนาด +7G สำหรับการ์ด SD 16 GB ระบุขนาด +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 ใหม่ซึ่งเป็นระบบไฟล์ RAM เริ่มต้นที่ใช้เมื่อเริ่มระบบ Linux

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. รีบูต BBB ควรบูตโดยไม่มีข้อผิดพลาด fsck

สร้างและติดตั้ง OTBR

ดู Build and Configuration สำหรับคำแนะนำในการสร้างและติดตั้ง OTBR

โคลนการ์ด SD ที่กำหนดค่าใหม่ (อุปกรณ์เสริม)

การ์ด SD ที่กำหนดค่าใหม่ด้วยพาร์ติชัน Linux ที่ปรับขนาดสำหรับ BBB สามารถโคลนเพื่อการแจกจ่ายที่ง่ายขึ้น

ปัญหา: เครื่องมือ GUI จำนวนมากอ่านการ์ด SD ทั้งหมดรวมทั้งพื้นที่ว่างหลังจากสิ้นสุดพาร์ติชันและจนถึงภาคสุดท้ายและไม่ได้เสนอวิธีอ่านเพียงบางส่วนของภาพ การ์ด SD แต่ละการ์ดมีจำนวนเซกเตอร์ดีและเสียที่แตกต่างกันและขนาดไบต์ทั้งหมดของการ์ด SD ใหม่อาจเล็กกว่า (7.999 GB) กว่าอิมเมจที่ปรับขนาด (8.0 GB) ในกรณีนี้ภาพที่ปรับขนาดแล้วจะไม่สามารถพอดีกับการ์ด SD ใหม่ได้

วิธีแก้ปัญหา: ใช้ขนาดพาร์ติชันที่เล็กกว่าขนาดเต็มของการ์ด SD เล็กน้อย ขั้นตอน ขยายอิมเมจการ์ด SD ใช้ +7G เป็นขนาดพาร์ติชันใหม่สำหรับการ์ด SD 8 GB สิ่งนี้ทำให้ภาพมีขนาดเล็กพอที่จะใส่ลงในการ์ด SD ขนาด 8 GB ที่เทียบเคียงได้อย่างปลอดภัย (โดยไม่คำนึงถึงเซกเตอร์เสีย) ในขณะที่ยังมีขนาดใหญ่พอที่จะสร้างและติดตั้ง OTBR

ใช้เซกเตอร์สิ้นสุดของพาร์ติชันข้อมูลเพื่อคำนวณขนาดไบต์ทั้งหมดของ "data image" และตัดทอนไฟล์ 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 อื่นเพื่อแจกจ่าย