Biên dịch và porting U-Boot cho BeagleBone Black (Phần 2)
Cross-compile và porting U-Boot bootloader cho BeagleBone Black, cấu hình serial connection và boot từ SD card.
1. Kết nối Serial
Kết nối USB-to-Serial adapter với BeagleBone:
- Pin 1 (Ground) → Ground
- Pin 4 (Board Rx) → Cable Tx
- Pin 5 (Board Tx) → Cable Rx
Cài đặt minicom và thêm user vào nhóm dialout:
1
2
sudo apt install minicom
sudo usermod -a -G dialout $USER
Reboot để áp dụng thay đổi nhóm dialout.
2. Cross-compile U-Boot
Clone và checkout U-Boot source:
1
2
3
git clone https://source.denx.de/u-boot/u-boot.git
cd u-boot
git checkout v2023.01
Thiết lập cross-compiler và build:
1
2
3
export CROSS_COMPILE=arm-linux-
make am335x_evm_defconfig
make DEVICE_TREE=am335x-boneblack
Sau khi build thành công, bạn sẽ có các file MLO
và u-boot.img
.
3. Chuẩn bị thẻ SD
Tạo 2 phân vùng trên thẻ SD bằng GParted:
- Phân vùng 1: FAT32, 128MB, có boot flag
- Phân vùng 2: ext4, phần còn lại
Phân vùng đã tạo thành công: /dev/sdX1 (FAT32, boot) và /dev/sdX2 (ext4)
Copy U-Boot files vào thẻ SD:
1
cp MLO u-boot.img /media/$USER/boot/
4. Kiểm tra U-Boot
Khởi động minicom:
1
minicom -D /dev/ttyUSB0 -b 115200
Chèn thẻ SD vào BeagleBone (không cấp nguồn), giữ nút reset, cấp nguồn, sau đó thả nút.
Bạn sẽ thấy output như sau:
1
2
3
4
5
6
7
8
9
10
11
U-Boot SPL 2023.01 (Jan 21 2023 - 23:09:14 -0500)
Trying to boot from MMC1
U-Boot 2023.01 (Jan 21 2023 - 23:09:14 -0500)
CPU : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black
DRAM: 512 MiB
...
Hit any key to stop autoboot: 0
=>
Dấu nhắc =>
là U-Boot command line. Gõ help
để xem các lệnh có sẵn.
Chúc mừng! Bạn đã thành công chạy bootloader U-Boot tự build trên BeagleBone Black.