Embedded Linux Boot Process
Tổng quan sẽ gồm 5 giai đoạn theo mô tả trên hình, ta đi vào sâu hơn về từng giai đoạn
1. SoC ROM Bootloader
- RBL (ROM Bootloader): cái này sẽ do bên vendor, hay bên sản xuất board code, không thể thay thế được nội dung
- Đây là đoạn code đầu tiên sẽ chạy khi mở board lên
- Nhiệm vụ chính là để chạy khối tiếp theo First Stage Bootloader (SPL/MLO)
2. First Stage Bootloader (SPL/MLO)
SPL: Secondary Program Loader
MLO: Memory Loader
- Nhiệm vụ chính là cấu hình RAM, clock, các ngoại vi ngoài và nạp Main Bootloader (U-boot, Grub ...)
- Một số SPL còn triển khai các tính năng bảo mật như verify signature (secure boot)
- Chọn chế độ boot
Trên Beaglebone Black có tổng cộng 8 option cho việc boot. Thứ tự ưu tiên sẽ tùy vào việc Phím S2 được ấn lúc khởi động hay không
Table 26-7. SYSBOOT Configuration Pins[4]
3. Second Stage Bootloader (U-boot + uEnv.txt)
- Khởi tạo ngoại vi từ tất cả boot options : I2C, NAND, Flash , ... sẵn sàng cho việc load kernel image
- Load kernel image : Load image đến DDR memory
- Truyền Boot argument to Kernel
- Có thể cấu hình lại u-boot bằng file uEnv.txt
- U-boot sẽ luôn tìm uImage
4. Linux Kernel
- Phân tích các boot arguments từ u-boot
- Sử dụng Device Tree Blob/Binary (DTB) để hiểu cấu trúc phần cứng của hệ thống
- Mount Root File System
- Chạy "init" process, process đầu tiên PID 1
5. Root Filesystem, Init Process
Root filesystem là file system mà được mount tới root (/)
File system là tập hợp các file theo quy chuẩn cấu trúc, ở đây là Linux File System
Đây là tổng quan về BBB Boot Process, với mỗi 1 mục trên, mình sẽ có các bài đi sâu tìm hiểu hơn




0 Nhận xét