Bản draft để review: Bài này được biên soạn lại từ tài liệu chính thức OpenWrt, thêm giải thích dành cho người mới. Không nên dùng firmware build thành công trên model này để flash cho model khác nếu chưa kiểm tra target, profile và phương thức recovery.
Khi nào cần build OpenWrt từ source?
Build từ source phù hợp khi bạn muốn tùy biến kernel, package, patch, cấu hình mặc định hoặc tạo firmware cho một target cụ thể. Nếu chỉ cần thêm package vào firmware có sẵn, ImageBuilder thường nhanh và đơn giản hơn.
Hệ thống build của OpenWrt tự xây toolchain cross-compile, kernel, root filesystem và các thành phần image cần thiết cho target đã chọn.[14]
Chuẩn bị môi trường Linux
Nên dùng một máy Linux 64-bit có dung lượng đĩa và RAM đủ lớn. Trên Debian/Ubuntu, cài bộ công cụ build cơ bản:
| |
Tên package có thể khác giữa các bản phân phối. Nếu một package không tồn tại, hãy tra package tương đương của distro thay vì bỏ qua toàn bộ dependency.
Tải source OpenWrt
Tài liệu OpenWrt khuyến nghị lấy source từ repository chính thức/mirror của dự án. Có thể clone như sau:[13]
| |
Không nên build trực tiếp trong thư mục hệ thống. Dùng một thư mục riêng, ví dụ ~/src/openwrt, để dễ giữ nhiều branch và dọn build cache.
Chọn branch hoặc tag
Nếu muốn thử nghiệm mới nhất, có thể dùng branch main. Với firmware dùng thật, nên chọn branch/tag ổn định phù hợp với thiết bị và đọc release notes trước khi build.
| |
Thay <branch-hoac-tag-phu-hop> bằng phiên bản đã kiểm tra cho router của bạn. Không copy nguyên lệnh này rồi flash ngay.
Cập nhật feeds
Feeds là nguồn package được OpenWrt sử dụng trong quá trình build:
| |
Nếu feed bị lỗi, đọc URL và nguyên nhân trong terminal trước khi chạy build tiếp. Không nên xóa .config để chữa lỗi một cách mù quáng vì bạn có thể mất toàn bộ lựa chọn target.
Cấu hình target bằng menuconfig
Mở giao diện chọn cấu hình:
| |
Các mục quan trọng:
Target System: dòng SoC/nền tảng.Subtarget: nhánh phần cứng bên dưới target.Target Profile: model cụ thể của router.LuCI: giao diện web, nếu cần.Base systemvàNetwork: package nền tảng.
Hãy đối chiếu model với danh sách thiết bị được hỗ trợ và image profile. Chọn sai target có thể tạo image không boot hoặc không thể flash.
Lưu cấu hình, sau đó có thể tạo config mặc định:
| |
Nên sao lưu .config:
| |
Tải source package trước khi build
Để phát hiện lỗi download sớm:
| |
Một số mạng hoặc mirror có thể chậm. Khi download lỗi, kiểm tra lại URL, proxy, DNS và thử lại trước khi bắt đầu compile.
Build firmware
Build thông thường:
| |
Nếu máy có ít RAM hoặc build bị lỗi khó hiểu, giảm mức song song:
| |
Khi cần log chi tiết cho một lỗi:
| |
Firmware và package thường nằm trong thư mục bin/targets/. Tên file phụ thuộc vào target, subtarget, profile và lựa chọn trong .config.
Kiểm tra trước khi sử dụng
Trước khi flash:
- Kiểm tra tên target/profile trong đường dẫn
bin/targets/. - Đọc checksum nếu có.
- Sao lưu firmware và cấu hình gốc.
- Chuẩn bị phương án recovery qua UART/TFTP/web recovery.
- Đảm bảo nguồn điện ổn định.
- Đọc hướng dẫn riêng của đúng model router.
Tóm tắt lựa chọn công cụ
| Nhu cầu | Công cụ |
|---|---|
| Tùy biến sâu kernel/package/patch | Build system từ source |
| Thêm package và file cấu hình vào image có sẵn | ImageBuilder |
| Biên dịch package riêng | SDK |
| Tự phát triển toàn bộ firmware | Build system + toolchain |
Nguồn chính thức
- OpenWrt — Build system setup
- OpenWrt — Build system usage
- OpenWrt — Build system essentials
- OpenWrt source repository
Bài này được AIoT.IO.VN biên soạn lại bằng tiếng Việt, có bổ sung giải thích và cảnh báo cho người mới.


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