ModemManager là service tạo và duy trì kết nối cho modem 2G/3G/4G/5G, đồng thời che bớt khác biệt giữa các loại modem. Tài liệu OpenWrt nêu các khả năng như khởi tạo modem, kết nối Internet, gửi/nhận SMS và cập nhật firmware cho một số modem QMI.1
Bài này dùng example APN và sysfs path của tài liệu. username, password và pincode bên dưới là placeholder an toàn; thay bằng giá trị nhà mạng/SIM thật ở máy local, không đưa credential vào Git.
1. Cài ModemManager
Nếu build firmware bằng menuconfig, ModemManager nằm trong nhóm Network. Với firmware đang chạy, tài liệu nêu các module USB phổ biến sau bằng opkg:
| |
Đây là command nguyên bản của trang nguồn năm 2022. Trên OpenWrt release mới dùng apk, tôi phải tra đúng tên package của release/target trước khi đổi package manager; không tự nối repository opkg cũ vào firmware mới.
2. Phân biệt MBIM và QMI
ModemManager hỗ trợ modem MBIM. Khi build bằng menuconfig, chọn phần MBIM trong mục Configuration của entry ModemManager.
ModemManager cũng hỗ trợ QMI. Nếu modem dùng QMI, chọn QMI trong phần Configuration tương ứng. Kernel module cần có thể khác theo USB modem, nên việc cài cả hai họ module trong ví dụ không có nghĩa mọi modem cần toàn bộ chúng.
3. Khai báo interface bằng UCI
ModemManager đưa modem về dạng một Linux network interface tiêu chuẩn. Tài liệu minh họa một interface tên broadband trong /etc/config/network:
| |
Điểm dễ sai nhất là device: nguồn yêu cầu full sysfs path, ví dụ như trên, và nói rõ không dùng /dev/cdc-wdm0 cho option này. Hãy tìm path của chính modem trong /sys rồi kiểm tra lại trước khi commit UCI.
Sau khi thêm section, reload network theo cách phù hợp với release và kiểm tra status interface; không bật lowpower chỉ vì modem có option đó nếu cần modem luôn online.
4. Các option được tài liệu liệt kê
| Option | Kiểu | Bắt buộc | Ý nghĩa |
|---|---|---|---|
device | string | Có | Full sysfs path của modem; không dùng /dev/cdc-wdm0. |
apn | string | Có | Access Point Name để mở data session GSM. |
allowedauth | list(string) | Không | Cơ chế xác thực: none, pap, chap, mschap, mschapv2, eap. |
username | string | Không | Username nhà mạng nếu cần. |
password | string | Không | Password nhà mạng nếu cần; giữ ngoài repository. |
pincode | string | Không | PIN để mở SIM trước các thao tác khác nếu SIM bị khóa. |
iptype | string | Có | ipv4v6, ipv4 hoặc ipv6. |
signalrate | int | Không | Chu kỳ refresh signal; tài liệu liên kết tới mmcli --signal-setup. |
lowpower | boolean | Không | Liên quan tới mmcli --set-power-state-low. |
iptype cần khớp với dịch vụ nhà mạng. Nếu SIM có PIN, phải mở khóa đúng cách trước các thao tác khác; đừng thử lặp PIN không kiểm soát.
5. Cấu hình qua LuCI
Có thể cài package:
| |
Sau đó LuCI có thể tạo interface với protocol ModemManager. Package và menu thực tế phụ thuộc release, vì vậy tôi vẫn đối chiếu package feed và kiểm tra modem đã nhận trước khi lưu cấu hình.
6. Kiểm tra và giới hạn
Tài liệu nguồn không đưa một bài test throughput hay một lệnh chẩn đoán đầy đủ cho từng modem. Tôi kiểm tra theo thứ tự an toàn:
- Xác nhận modem xuất hiện trong sysfs và đúng MBIM/QMI.
- Xác nhận kernel module đã nạp.
- Đối chiếu
device, APN,iptypevà SIM PIN. - Kiểm tra interface
broadbandcó địa chỉ và default route mong muốn. - Kiểm tra log khi modem reconnect hoặc chuyển trạng thái nguồn.
Không copy APN/credential của nhà mạng này sang SIM khác, không đưa PIN vào bài public và không xem việc interface lên là bằng chứng modem đã ổn định lâu dài.
Kết luận
ModemManager hữu ích khi tôi muốn OpenWrt dùng modem di động qua một interface chuẩn, nhưng thành công phụ thuộc vào driver USB, MBIM/QMI, sysfs path, APN và chính sách SIM. Giữ nguyên các trường UCI của nguồn, thay credential bằng secret local và chọn package đúng release là ba ranh giới an toàn quan trọng nhất.
Nguồn
OpenWrt Wiki – ModemManager , cập nhật 2022-05-03. Bài chuyển thể độc lập; credential trong ví dụ đã được thay bằng
[REDACTED]. ↩︎


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