Google is committed to advancing racial equity for Black communities. See how.
Trang này được dịch bởi Cloud Translation API.
Switch to English

BeagleBone Đen

OpenThread Border Router (OTBR) cung cấp hỗ trợ cho nền tảng BeagleBone Black (BBB).

Yêu cầu phần cứng:

  • Bộ đổi nguồn ngoài AC 5V
  • Thẻ nhớ 8 GB hoặc lớn hơn ("thẻ SD" trong hướng dẫn này)
  • Nền tảng OpenThread được hỗ trợ (như TI CC2652 ) cho kết nối mạng Thread trong thiết kế RCP

Để sử dụng BBB với OTBR:

  1. Tải về firmware và ghi hình ảnh vào thẻ SD.
  2. Khởi động BBB từ thẻ SD .
  3. Mở rộng hình ảnh thẻ SD để tạo đủ không gian để xây dựng và cài đặt OTBR.
  4. Xây dựng và cài đặt OTBR .

Tải về phần sụn

  1. Phần sụn được đề xuất là Stretch cho BeagleBone qua thẻ nhớ microSD :
    • Debian 9.1 2017-08-31 4GB SD LXQT
    • Tên tệp: bone-debian-9.1-lxqt-armhf-2017-08-31-4gb.img.xz
  2. Ghi hình ảnh vào thẻ SD 8 GB hoặc lớn hơn bằng cách sử dụng một công cụ như Etcher hoặc Win32 Disk Imager .

Khởi động từ thẻ SD

BeagleBone Đen

BBB có thể khởi động từ bộ nhớ flash trên bo mạch hoặc thẻ SD. Để sử dụng BBB với OTBR, bạn phải khởi động từ thẻ SD, vì bộ nhớ flash trên bo mạch không đủ lớn để xây dựng và cài đặt OTBR.

Để khởi động BBB từ thẻ SD:

  1. Lắp thẻ SD.
  2. Ngắt kết nối nguồn điện.
  3. Nhấn và giữ nút BOOT.
  4. Kết nối nguồn điện.
  5. Khi đèn LED bắt đầu nhấp nháy, nhả nút BOOT.

Mở rộng hình ảnh thẻ SD

Hình ảnh Linux cho Beagle Bone Black (BBB) ​​được tạo ra nhỏ một cách có chủ ý để hình ảnh có thể được đặt trên bất kỳ thẻ SD 4 GB nào (hoặc Bộ nhớ Flash 4 GB trên bo mạch), sau đó được mở rộng khi cần. Tổng cộng có khoảng 300 MB dung lượng trống. Điều đó có thể không đủ không gian để cài đặt và xây dựng Bộ định tuyến đường viền OpenThread bằng BBB.

Để giải quyết vấn đề này:

  1. Viết hình ảnh Linux vào thẻ SD lớn hơn (ít nhất 8 GB).
  2. Mở rộng phân vùng Linux ~ 4 GB của hình ảnh xuống nhỏ hơn một chút so với kích thước của toàn bộ thẻ SD. Ví dụ: nếu sử dụng thẻ SD 8 GB, hãy mở rộng thành ~ 7 GB. Đối với thẻ 16 GB, hãy mở rộng thành ~ 15 GB.
  3. Khởi động BBB từ thẻ SD.

Phân vùng thẻ SD

Dữ liệu trên thẻ SD thực sự là một mảng liên tục của các ngành dữ liệu. Các lĩnh vực được đánh số bắt đầu bằng 0 và kết thúc tại Khu vực N ở đâu đó khoảng XX GB, con số chính xác cuối cùng phụ thuộc vào thẻ SD thực tế.

Khu vực 0 luôn chứa bảng phân vùng MS-DOS. Bảng phân vùng MS-DOS có thể chứa từ 1 đến 4 mục phân vùng. Mỗi phân vùng là một chuỗi các lĩnh vực liên tục từ X đến Y ở đâu đó trong giới hạn của thẻ SD. Điều này lặp lại cho mỗi trong số 4 phân vùng có thể. Thông thường, các phân vùng được đặt theo thứ tự, với một số ( 0 đến N ) của các lĩnh vực không được sử dụng ở cuối. "Một số số lĩnh vực không được sử dụng" ( SOME_N ) này có thể được sử dụng để lợi thế của bạn sau này.

Khi ghi hình ảnh vào thẻ SD, việc viết bắt đầu ở Khu vực 0 và tiến tới SOME_N , tùy thuộc vào kích thước của hình ảnh. Điều bạn không thể làm là kéo dài phân vùng xung quanh hình ảnh mà điều đó không thể thực hiện được. Thay vào đó, hãy nghĩ về một khung hình xung quanh một khung vẽ. Khung hình là phân vùng và hình ảnh là dữ liệu. Những gì bạn có thể làm là thay thế khung hình hiện có bằng khung lớn hơn và mở rộng khung vẽ trong:

  1. Xóa phân vùng Linux hiện có mà không xóa dữ liệu. Bạn đã loại bỏ khung hình, nhưng hình ảnh vẫn hiện diện trên khung vẽ.
  2. Tạo một phân vùng Linux mới bắt đầu chính xác nơi phân vùng cũ bắt đầu, nhưng kết thúc gần cuối thẻ SD. Bạn đã tạo ra một khung hình lớn hơn. Bức tranh mà dữ liệu vẫn còn đó trên khung vẽ. Nó đã không di chuyển và không bị hỏng bởi hoạt động này.
  3. Sử dụng một công cụ dành riêng cho hệ thống tệp để phát triển hệ thống tệp trong giới hạn của phân vùng mới. Khung vẽ được kéo dài để lấp đầy khung hình mới, lớn hơn.

Bước 1: Xác định phân vùng dữ liệu hiện tại

  1. Khởi động BBB từ Thẻ SD.
  2. Đăng nhập bằng root :
    sudo bash
    
  3. Xác định phân vùng dữ liệu thẻ SD:
    root@beaglebone:/home/debian# df -hT /
    Filesystem     Type  Size  Used Avail Use% Mounted on
    /dev/mmcblk0p1 ext4  3.3G  2.8G  295M  91% /
    
    Hậu tố p1 trên trường Filesystem là quy ước đặt tên cho Phân vùng 1. Bản thân thiết bị là /dev/mmcblk0 . Trong ví dụ này, chỉ có 295 MB là miễn phí. Điều này không đủ không gian để xây dựng và cài đặt OTBR.

Bước 2: Tạo phân vùng mới, lớn hơn

  1. Chạy fdisk trên thiết bị (thẻ 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. In bảng phân vùng hiện tại để tìm khu vực bắt đầu:
    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
    
    Giá trị của trường Start là khu vực bắt đầu cho phân vùng đích. Nó phải được liệt kê với cùng tên phân vùng như trong Bước 1, với Type Linux . Trong đầu ra ở trên, khu vực bắt đầu là 8192 .
  3. Xóa phân vùng hiện có:
    Command (m for help): d
    Selected partition 1
    Partition 1 has been deleted.
    
  4. Tạo phân vùng mới, sử dụng số phân vùng là 1, cùng khu vực bắt đầu của phân vùng trước đó ( 8192 trong ví dụ này) và kích thước nhỏ hơn 1 GB so với kích thước thẻ SD. Ví dụ: nếu sử dụng thẻ SD 8 GB, chỉ định kích thước +7G . Đối với thẻ SD 16 GB, chỉ định kích thước +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. Các phiên bản mới hơn của fdisk nhắc bạn xóa chữ ký ext4 đĩa cũ. Đừng xóa chữ ký này. Nếu không, dữ liệu bị hỏng và toàn bộ hình ảnh trở nên vô dụng.
    Partition #1 contains a ext4 signature.
    
    Do you want to remove the signature [Y]/No: n
    
  6. Viết bảng phân vùng mới vào đĩa và thoát 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).
    

Bước 3: Thay đổi kích thước hệ thống tập tin

Sử dụng resize2fs để thay đổi kích thước hệ thống tệp hình ảnh thành kích thước phân vùng mới được mở rộng. Công cụ này mở rộng hoặc thu nhỏ một hệ thống tập tin.

  1. Khởi động lại BBB.

    1. Một số hình ảnh có thể gây ra lỗi fsck khi khởi động lại. fsck chạy tự động khi khởi động và kiểm tra tính nhất quán của hệ thống tệp.

       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. Nếu bạn gặp lỗi này, hãy bỏ qua nó và đợi khoảng 20 giây để lời nhắc đăng nhập xuất hiện.

  2. Đăng nhập bằng root :

    sudo bash
    
  3. Thay đổi kích thước hệ thống tệp cho phân vùng đích:

     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. Khởi động lại BBB.

  5. Nếu bạn gặp phải sự cố fsck , hãy xây dựng lại initramfs , đây là hệ thống tệp RAM ban đầu được sử dụng khi Linux khởi động.

    sudo update-initramfs -u
    update-initramfs: Generating /boot/initrd.img-4.4.54-ti-r93
    
  6. Khởi động lại BBB. Nó nên khởi động mà không có lỗi fsck .

Xây dựng và cài đặt OTBR

Xem Xây dựng và Cấu hình để biết hướng dẫn về cách xây dựng và cài đặt OTBR.

Sao chép thẻ SD được cấu hình lại (tùy chọn)

Thẻ SD được cấu hình lại với phân vùng Linux đã thay đổi kích thước cho BBB có thể được sao chép để phân phối dễ dàng hơn.

Vấn đề: Nhiều công cụ GUI đọc toàn bộ thẻ SD SD, bao gồm cả vùng trống sau khi kết thúc phân vùng và cho đến khi sector cuối cùng và không cung cấp cách chỉ đọc một phần hình ảnh. Mỗi thẻ SD có số lượng thành phần tốt và xấu khác nhau và tổng kích thước byte của thẻ SD mới có thể nhỏ hơn (7.999 GB) so với hình ảnh đã thay đổi kích thước (8,0 GB). Trong trường hợp này, hình ảnh đã thay đổi kích thước không thể vừa với thẻ SD mới.

Giải pháp: Sử dụng kích thước phân vùng nhỏ hơn một chút so với kích thước đầy đủ của thẻ SD. Quy trình mở rộng hình ảnh thẻ SD sử dụng +7G làm kích thước phân vùng mới cho thẻ SD 8 GB. Điều này tạo ra một hình ảnh đủ nhỏ để phù hợp an toàn trên bất kỳ thẻ SD 8 GB tương đương (bất kể các thành phần xấu) trong khi vẫn đủ lớn để xây dựng và cài đặt OTBR.

Sử dụng cung cuối cùng của phân vùng dữ liệu để tính toán toàn bộ kích thước byte của "hình ảnh dữ liệu" và cắt bớt tệp IMG ở mức bù byte đó. Phương pháp đơn giản nhất là sử dụng lệnh truncate . Lệnh truncate là một công cụ dòng lệnh Unix tiêu chuẩn và nó cũng có trong bản phân phối MS-Windows Git Bash của MSYS.

  1. root , chạy fdisk trên thiết bị (thẻ 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. In bảng phân vùng hiện tại để tìm khu vực kết thúc:

     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
     

    Trong ví dụ này, khu vực kết thúc là 14688255 .

  3. Thoát khỏi fdisk và tính tổng kích thước của hình ảnh:

    1. Phân vùng cuối cùng kết thúc tại khu vực 14688255 .
    2. Mỗi khu vực là 512 byte.
    3. Khu vực bắt đầu của thẻ SD luôn là 0 . Thêm 1 byte vào tài khoản cho lĩnh vực này.
    4. Tổng kích thước là: (14688255 + 1) * 512 = 7520387072
  4. Đọc hình ảnh thẻ SD vào tệp .img , sử dụng một công cụ như Etcher hoặc Win32 Disk Imager .

  5. Cắt tệp hình ảnh thành tổng kích thước đã tính:

     root@beaglebone:/home/debian# truncate -s 7520387072  myimage.img
     
  6. Sao chép tệp hình ảnh bị cắt bớt sang các thẻ SD khác để phân phối.