Bản draft để review: ImageBuilder chỉ phù hợp khi đã có ImageBuilder đúng phiên bản, target, subtarget và profile. Tuyệt đối không dùng ImageBuilder của model khác.
ImageBuilder là gì?
ImageBuilder là môi trường đã biên dịch sẵn, dùng để tạo firmware tùy biến nhanh từ các package đã có trong repository. Nó phù hợp để thêm hoặc bỏ package, thêm file cấu hình và tạo image flashable mà không phải biên dịch toàn bộ OpenWrt từ source.[15]
Nếu cần sửa kernel, driver, target hoặc biên dịch package chưa có binary tương ứng, hãy dùng build system từ source.
Chọn đúng ImageBuilder
Bạn cần xác định chính xác:
- Phiên bản OpenWrt.
Target System.Subtarget.Target Profile.- Kiến trúc CPU.
Các thông tin này phải khớp với router. Có thể bắt đầu từ trang download chính thức:
| |
Sau đó đi theo đường dẫn dạng:
| |
Tên file ImageBuilder thường chứa phiên bản, target và kiến trúc. Không chọn chỉ dựa vào tên thương mại của router.
Giải nén ImageBuilder
Ví dụ với archive dạng .tar.zst:
| |
Nếu hệ thống chưa có unzstd:
| |
Xem profile và package có sẵn
Chạy:
| |
Lệnh này giúp xem profile mà ImageBuilder hỗ trợ và các package hiện có trong repository tương ứng. Nếu model không xuất hiện, dừng lại và tải đúng ImageBuilder.
Thêm package vào firmware
Ví dụ tạo image có LuCI và một số package mạng:
| |
Thay <profile-cua-router> bằng profile chính xác lấy từ make info.
Để loại bỏ package mặc định, dùng dấu - trước tên package:
| |
Không nên loại bỏ package khi chưa biết package đó có phải dependency của network, storage hoặc cơ chế recovery hay không.
Thêm file cấu hình bằng FILES
Tạo cây thư mục files/ trong thư mục ImageBuilder:
| |
Ví dụ thêm một file cấu hình:
| |
Sau đó build:
| |
Trong thực tế, nên tạo file bằng editor và kiểm tra lại nội dung trước khi build. Với script trong etc/uci-defaults, cần kiểm tra quyền thực thi và idempotency để script không phá cấu hình khi chạy lại.
Đặt tên output và kiểm tra log
Có thể dùng BIN_DIR để gom image vào thư mục riêng:
| |
Nếu build lỗi, chạy verbose:
| |
Firmware được tạo trong thư mục output/ hoặc bin/ tùy ImageBuilder và tùy chọn đã dùng.
ImageBuilder khác build từ source thế nào?
| Tiêu chí | ImageBuilder | Build system |
|---|---|---|
| Tốc độ | Nhanh | Chậm hơn |
| Thêm package binary có sẵn | Có | Có |
| Thêm file cấu hình | Có | Có |
| Sửa kernel/driver | Không phù hợp | Có |
| Sửa package source | Không phù hợp | Có |
| Yêu cầu tài nguyên | Thấp hơn | Cao hơn |
Checklist trước khi flash
- Đúng phiên bản OpenWrt.
- Đúng target/subtarget.
- Đúng profile.
- Đúng loại image: factory, sysupgrade hoặc recovery.
- Có backup cấu hình.
- Đọc hướng dẫn flash riêng của router.
- Có phương án recovery khi image không boot.
Nguồn chính thức
Bài này được AIoT.IO.VN biên soạn lại từ tài liệu OpenWrt, có bổ sung ví dụ và cảnh báo phù hợp với người mới.


Góp Ý / Bình Luận / Đánh giá