Tiếp tục bài 5, bài này mình sẽ hướng dẫn các bạn thêm package vào image để kết nối được Internet khi cắm Ethernet, từ đó SSH tới board, tiện cho việc lập trình sau này hơn.
(Nếu các bạn gặp khó khăn trong quá trình thực hành theo blog, các bạn có thể tham khảo video thực hành của mình ở cuối bài )
1. Add Package và Check
Ở đây để tiện cho việc theo dõi package mình tạo ra cusom-image.bb (Thực tế do gõ core-image-minimal hơi dài :vvv) tại /meta-bbb/recipes-core/images/
Nội dung như sau
SUMMARY = "My custom Linux Image"
IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL}"
IMAGE_LINGUAS = " "
LICENSE = "MIT"
inherit core-image
inherit extrausers
#Set rootfs to 200MiB by default
IMAGE_OVERHEAD_FACTOR ?= "1.0"
IMAGE_ROOTFS_SIZE ?= "204800"
IMAGE_ROOTFS_MAXSIZE = "2097152"
#Change root password to test
PASSWD = "\$5\$y9Aeg5ctwntRHo/g\$CAKtoTfQg7VPGfVAMGo5ZG/0GJLn3AD0JdoQ.i0dDFC"
EXTRA_USERS_PARAMS = "\
usermod -p '${PASSWD}' root; \
"
IMAGE_INSTALL:append = " \
dhcpcd \
iproute2 \
iputils \
openssh \
"
Lần lượt các package có nghĩa sau
dhcpcd: Cung cấp DHCP client (lấy IP từ router cho Ethernet).iproute2: Cung cấp 1 số tool nhưip link,ip addr,ip route.iputils: Cung cấp toolping, .openssh: Cho phép SSH từ laptop.
Và thế là đủ rồi, các bạn tiến hành build thôi
bitbake -c cleanall custom-image
bitbake custom-image

Đây là kết quả sau khi khởi động lại (custom-image.bb mình đang không append custom-banner và distro description từ bài 3,4 nên nó vẫn đang là mặc định).
Nếu của các bạn không được cấp ip sẵn thì có thể chạy lệnh
dhcpcd eth0
2. Kết nối Internet và SSH
2.1 Test Internet
Đơn giản là ping goole thôi
ping -c 4 google.com

Vậy là ta có thể ping đến google.com –> Kết nối đến Internet thành công
Mọi thứ có vẻ ok ta đến bước SSH
2.3 SSH từ laptop command line
ssh root@192.168.0.102

2.4 Kết nối từ laptop Visual Studio Code
2.4.1 Cài extensions và test
Ta cần cài thêm extensions từ Mircosoft

Sau khi cài xong ta bấm vào góc trái bên dưới có nút như sau “><“
Chọn SSH –> Connect to Host –> Add new SSH Host rồi nhập
ssh root@192.168.0.102
Save lại Vào lại SSH –> Connect to Host, giờ thì ta sẽ thấy xuất hiện device tại đây

Nhập mật khẩu và đợi download VS Code Server tới board cho lần đầu tiên, tầm 1 phút
Tuy nhiên, VS code gặp khó khăn khi mở SSH cho giao diện người dùng vì trên image của chúng ta thiếu những package VS Code cần
Các bạn có thể bấm Diagnose with Copilot để biết được mình cần làm tiếp gì, hoặc More Actions để kiểm tra kĩ hơn Output log lỗi.

–> Do đó trong ta cần thêm các package bash, tar, xz, procps, coreutils, curl.
2.4.2 Cài thêm package và test lại

Lưu ý mỗi khi ssh sau khi build lại image, beaglebone tạo lại ssh key khi boot nên bên laptop mình cũng phải xóa key cũ tại .ssh/know_host tạo lại key mới

Lần này VS code đã hiện 1 lỗi mới

Lại phải cài thêm libgcc, libstdc++, libatomic. Sau cùng IMAGE_INSTALL:append của chúng ta sẽ là

Giờ build và flash sd card lại. Ta sẽ kết nối được thành công

–> Tuy nhiên, cắm Ethernet chỉ tiện khi bạn ngồi gần router, lúc đem đi đâu lại phải cầm theo dây nữa, cũng bất tiện.
–> Ở bài tiếp theo mình sẽ hướng dẫn các bạn cách cài driver USB wifi cho Beaglebone Black vẫn với Yocto Build
Bình luận về bài viết này