fix(ansible): resolve LTE failover data-plane bug on BroadMobi BM806C
The embedded BroadMobi BM806C modem (Qualcomm MDM9225, firmware
M1.2.0_E1.0.1_A1.1.8) in the D-Link DWR-921 C1 has two independent
firmware bugs that together break the QMI data plane:
1. Modem accepts 802.3 framing but its 802.3 path is buggy — downlink
frames never reach the host kernel. raw-ip framing works.
2. qmish calls uqmi --start-network --apn <foo>, which triggers
FS#1363: the modem establishes a phantom bearer that gets IP
addresses but has no working data path. Using --start-network
--profile <N> (referencing a pre-configured NVRAM profile with
the same APN) works correctly.
Fixes applied:
- qmish patches (3x community.openwrt.lineinfile):
* Replace --set-data-format 802.3 with raw-ip
* Replace --wda-set-data-format 802.3 with raw-ip
* Bracket raw_ip sysfs write with ip link down/up (kernel rejects
write with -EBUSY when wwan0 is already up)
- Modem NVRAM: create/modify profile 2 (internetipv6, ipv6) for the
IPv6 APN — profile 1 is already managed by qmish's --modify-profile
- UCI wwan: add profile=1 and v6profile=2 so qmish uses --start-network
--profile instead of --apn on both the v4 and v6 legs
- Firewall: add wwan zone (input REJECT, output ACCEPT, forward REJECT)
and Allow-ICMPv6-wwan rule
- main.yml: reorder — packages (including usb-modeswitch) now run
before wwan setup, so the modem is out of EDL mode when wwan.yml
queries it for profile creation
See docs/wwan-bm806c-qmi-workaround.md for the full diagnosis
(what we ruled out, how we confirmed, manual setup steps, component
versions, future upstreaming).
This commit is contained in:
@@ -5,9 +5,19 @@
|
||||
- name: System configuration
|
||||
ansible.builtin.import_tasks: system.yml
|
||||
|
||||
# Packages must be installed before wwan.yml — usb-modeswitch is what triggers
|
||||
# the modem out of EDL mode (05c6:9008 → 2020:2033 QMI), and uqmi/luci-proto-qmi
|
||||
# provide the tools used downstream.
|
||||
- name: Package management
|
||||
ansible.builtin.import_tasks: packages.yml
|
||||
when: openwrt_packages | length > 0
|
||||
|
||||
- name: Network configuration
|
||||
ansible.builtin.import_tasks: network.yml
|
||||
|
||||
- name: WWAN modem configuration
|
||||
ansible.builtin.import_tasks: wwan.yml
|
||||
|
||||
- name: Firewall configuration
|
||||
ansible.builtin.import_tasks: firewall.yml
|
||||
|
||||
@@ -16,7 +26,3 @@
|
||||
|
||||
- name: LED configuration
|
||||
ansible.builtin.import_tasks: led.yml
|
||||
|
||||
- name: Package management
|
||||
ansible.builtin.import_tasks: packages.yml
|
||||
when: openwrt_packages | length > 0
|
||||
|
||||
Reference in New Issue
Block a user