Fibocom FM350-GL Support

I think patching is out of my league, I will wait when it will be included in snapshot.

It looks like netdev has merged the patch for the alignment issues. Does this mean that it will make it into OpenWRT snapshots soon?

I'm currently running a WG3526 with GoldenOrb because I can't for the life of me get this thing to work in OpenWRT stock. Trying to connect the serial COM port using the option1 driver just causes the modem to reset, but using generic is fine.

Also, does the 32 bit alignment issue only affect ARM/MIPS? I was thinking about transitioning to OpenWRT x86_64 temporarily if the issue is not present there.

Yes. It's now also in the v6.1.85 and v6.6.26 stable releases, so it will be in OpenWrt snapshots after the next kernel minor version bump.

1 Like

Awesome. Thank you so much for confirming.

Does anybody know how to feed in the FCC unlock in ModemManager on OpenWRT? I don't see the /usr/ModemManager/fcc.unlock.available/ folder that you normally symlink to /etc/ModemManager/fcc.unlock/ according to the ModemManager docks. Do I just make these folders?

It looks like the reason my modem has been giving me fits on regular OpenWRT is that it's FCC locked and GoldenOrb has a built-in script that automagically passes the unlock on it's own.

The unlock scripts are simple shell scripts. You can just copy the one you want from the ModemManager source to /etc/ModemManager/fcc.unlock/

You'll find the scripts here:

i think i found somthing
the reson why the card cant use after a reboot is the card goes in a fastboot mode?
i think in this mode a firmware can be updatet?
i found 2 intersting patches
https://patchwork.kernel.org/project/netdevbpf/list/?series=714379&state=*&archive=both
and
Netdev + BPF - Patchwork (kernel.org)
one add a fastboot mode and one a devliink mode. it looks like the fastboot mode is prefered. this mode is in the kernel 6.9-rc3 driver i have test it and got a /dev/wwan0fastboot0 device but with the debian fastboot tools its not detect by the software

Ok i try fastboot and netlink for firmware upgrade both not working for me. :frowning:
at last i connect over usb an get a adb port and try over adb (android sdk tools) but i crashed my card XD but i have recover it with the sp flash tool an the firmware in the windows driver package so now my card is on firmware 81600.0000.00.29.20.30_GC

but i dont like that this card go every restart to the fastboot (android) mode so a remote restart/reboot is not possible without lost wwan connection till power off and power on the router

anyone know how to change the Hardware Modell Name?
in Modemmanager its shows "model: MBIM [14C3:4D75]"

I'm having the same problem can somebody help I want to try using USB since the router I'm planning to use only supports USB not pcie

Hi
I can´t really explain why, but this is what I did to solve the usb 1-2: device descriptor read/64, error -71 error.
I compiled an image with just kmod-usb-core, no other kmod-usb-x modules. You can probably just uninstall all the USB modules instead.
Then I manually installed the remaining modules with USB1 first, and then in this order:

kmod-usb-ohci
kmod-usb-ohci-pci
kmod-usb-uhci
kmod-usb-ehci
kmod-usb2
kmod-usb2-pci
kmod-usb-xhci-hcd
kmod-usb-xhci-mtk
kmod-usb3

and, of course,

kmod-usb-net
kmod-usb-net-cdc-ether
kmod-usb-net-rndis
kmod-usb-serial
kmod-usb-serial-option
kmod-usb-serial-wwan

I hope I got all modules in the correct order, my point is to install USB1, USB2 and last USB3 modules.

in my test the option driver not work but the generic work for me can u test it?

if i do a speedtest and load the driver crash

Download: 480.87 Mbit/s
Testing upload speed (2): 59.61 Mbit/s          [  303.674211] wwan wwan0 wwan0: TX queue 0 is full
[  303.678845] wwan wwan0 wwan0: TX queue 0 is full
[  303.683454] wwan wwan0 wwan0: TX queue 0 is full
[  303.688073] wwan wwan0 wwan0: TX queue 0 is full
[  303.692681] wwan wwan0 wwan0: TX queue 0 is full
[  303.697290] wwan wwan0 wwan0: TX queue 0 is full
[  305.602875] ------------[ cut here ]------------
[  305.607487] NETDEV WATCHDOG: wwan0 (): transmit queue 0 timed out 1930 ms
[  305.614288] WARNING: CPU: 2 PID: 1263 at dev_watchdog+0x240/0x248
[  305.620380] Modules linked in: pppoe ppp_async option nft_fib_inet nf_flow_table_inet cdc_mbim usb_wwan rndis_host pppox ppp_generic nft_reject_ipv6 nft_reject_ipv4 nft_reject_inet nft_reject nft_redir nft_quota nft_numgen nft_nat nft_masq nft_log nft_limit nft_hash nft_flow_offload nft_fib_ipv6 nft_fib_ipv4 nft_fib nft_ct nft_chain_nat nf_tables nf_nat nf_flow_table nf_conntrack mtk_t7xx mt7996e(O) mt7915e(O) mt76_connac_lib(O) mt76(O) mac80211(O) cfg80211(O) cdc_ncm cdc_ether wwan usbserial usbnet slhc sfp rtc_pcf8563 nfnetlink nf_reject_ipv6 nf_reject_ipv4 nf_log_syslog nf_defrag_ipv6 nf_defrag_ipv4 mdio_i2c libcrc32c compat(O) cdc_wdm at24 crypto_safexcel pwm_fan i2c_mux_pca954x i2c_mux sha512_arm64 sha1_ce sha1_generic seqiv md5 geniv des_generic libdes authencesn authenc leds_gpio xhci_plat_hcd xhci_pci xhci_mtk_hcd xhci_hcd fsl_mph_dr_of ehci_platform ehci_fsl ehci_hcd gpio_button_hotplug(O) usbcore usb_common aquantia mii
[  305.702798] CPU: 2 PID: 1263 Comm: kworker/u9:0 Tainted: G           O       6.6.23 #0
[  305.710704] Hardware name: Bananapi BPI-R4 (DT)
[  305.715224] Workqueue: md_dpmaif_tx0_worker t7xx_dpmaif_hif_exit [mtk_t7xx]
[  305.722196] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  305.729147] pc : dev_watchdog+0x240/0x248
[  305.733148] lr : dev_watchdog+0x240/0x248
[  305.737146] sp : ffffffc080c7be50
[  305.740449] x29: ffffffc080c7be50 x28: ffffffc080b305f8 x27: ffffffc080b450c0
[  305.747575] x26: ffffffc080b469c0 x25: ffffffc080c7bf10 x24: 000000000000078a
[  305.754700] x23: ffffffc080b46000 x22: 0000000000000000 x21: ffffff80c7dbc000
[  305.761824] x20: ffffff80c4bad400 x19: ffffff80c7dbc480 x18: 0000000000000248
[  305.768950] x17: ffffffc07ec5e000 x16: ffffffc080c78000 x15: ffffffc080b5a128
[  305.776074] x14: 00000000000006d8 x13: 0000000000000248 x12: 00000000ffffffea
[  305.783199] x11: 00000000ffffefff x10: ffffffc080bb2128 x9 : ffffffc080b5a0d0
[  305.790323] x8 : 0000000000017fe8 x7 : c0000000ffffefff x6 : 0000000000000001
[  305.797447] x5 : 0000000000000000 x4 : 0000000000000000 x3 : 0000000000000000
[  305.804572] x2 : ffffff80ff791490 x1 : ffffffc07ec5e000 x0 : 000000000000003d
[  305.811696] Call trace:
[  305.814132]  dev_watchdog+0x240/0x248
[  305.817785]  call_timer_fn.isra.0+0x20/0x78
[  305.821961]  __run_timers.part.0+0x1e4/0x248
[  305.826221]  run_timer_softirq+0x38/0x6c
[  305.830133]  __do_softirq+0xf8/0x25c
[  305.833698]  ____do_softirq+0xc/0x14
[  305.837263]  call_on_irq_stack+0x24/0x34
[  305.841175]  do_softirq_own_stack+0x18/0x24
[  305.845346]  irq_exit_rcu+0xb4/0xcc
[  305.848826]  el1_interrupt+0x34/0x4c
[  305.852392]  el1h_64_irq_handler+0x14/0x1c
[  305.856476]  el1h_64_irq+0x68/0x6c
[  305.859867]  t7xx_dpmaif_unmask_ulq_intr+0x68/0xbc [mtk_t7xx]
[  305.865611]  process_one_work+0x168/0x2c4
[  305.869612]  worker_thread+0x2ac/0x488
[  305.873351]  kthread+0xdc/0xe8
[  305.876396]  ret_from_fork+0x10/0x20
[  305.879961] ---[ end trace 0000000000000000 ]---
[  314.853068] mtk_t7xx 0003:01:00.0: Could not unmask the UL interrupt. DPMAIF_AO_UL_AP_L2TIMR0 is 0xfffe1
[  314.862581] wwan wwan0 wwan0: TX queue 0 is full

if i ping google o got very high ping with a other card i dont have that high ping

PING google.de (2a00:1450:4001:80b::2003): 56 data bytes
64 bytes from 2a00:1450:4001:80b::2003: seq=0 ttl=114 time=29.720 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=1 ttl=114 time=329.206 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=2 ttl=114 time=29.602 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=3 ttl=114 time=331.199 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=4 ttl=114 time=332.218 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=5 ttl=114 time=333.244 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=6 ttl=114 time=29.445 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=7 ttl=114 time=335.228 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=8 ttl=114 time=336.249 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=9 ttl=114 time=337.275 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=10 ttl=114 time=29.201 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=11 ttl=114 time=338.727 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=12 ttl=114 time=339.754 ms
64 bytes from 2a00:1450:4001:80b::2003: seq=13 ttl=114 time=340.778 ms

im no sure is it a driver, hardware or a firmware problem?
i m using kernel 6.6

mmcli not show the band supported by this card?

root@OpenWrt:/# mmcli -m 2
  ---------------------------------
  General   |                 path: /org/freedesktop/ModemManager1/Modem/2
            |            device id: XXXXXXX
  ---------------------------------
  Hardware  |         manufacturer: generic
            |                model: MBIM [14C3:4D75]
            |    firmware revision: 81600.0000.00.29.20.30_DT
            |                       C81
            |         h/w revision: V1.0.6
            |            supported: gsm-umts, lte, 5gnr
            |              current: gsm-umts, lte, 5gnr
            |         equipment id: XXXXXX
  ---------------------------------
  System    |               device: /sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0
            |              physdev: /sys/devices/platform/soc/11280000.pcie/pci0003:00/0003:00:00.0/0003:01:00.0
            |              drivers: mtk_t7xx
            |               plugin: generic
            |         primary port: wwan0mbim0
            |                ports: wwan0 (net), wwan0at0 (at), wwan0mbim0 (mbim)
  ---------------------------------
  Numbers   |                  own: XXXXXX
  ---------------------------------
  Status    |                 lock: sim-pin2
            |       unlock retries: sim-pin2 (3)
            |                state: connected
            |          power state: on
            |          access tech: lte, 5gnr
            |       signal quality: 67% (cached)
  ---------------------------------
  Modes     |            supported: allowed: 3g; preferred: none
            |                       allowed: 4g; preferred: none
            |                       allowed: 3g, 4g; preferred: none
            |                       allowed: 5g; preferred: none
            |                       allowed: 3g, 5g; preferred: none
            |                       allowed: 4g, 5g; preferred: none
            |                       allowed: 3g, 4g, 5g; preferred: none
            |              current: allowed: 4g; preferred: none
  ---------------------------------
  IP        |            supported: ipv4, ipv6, ipv4v6
  ---------------------------------
  3GPP      |                 imei: XXXXXXX
            |        enabled locks: sim, fixed-dialing
            |          operator id: XXXXXX
            |        operator name: Telekom.de
            |         registration: home
            | packet service state: attached
  ---------------------------------
  3GPP EPS  | ue mode of operation: csps-2
            |  initial bearer path: /org/freedesktop/ModemManager1/Bearer/0
  ---------------------------------
  3GPP 5GNR |            mico mode: disabled
  ---------------------------------
  SIM       |     primary sim path: /org/freedesktop/ModemManager1/SIM/5
            |       sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/5 (active)
            |                       slot 2: /org/freedesktop/ModemManager1/SIM/6
  ---------------------------------
  Bearer    |                paths: /org/freedesktop/ModemManager1/Bearer/1

Question, since kernel was bumped, then by installing kmod-mtk-t7xx on the latest snapshot I should not have kernel panic anymore? Or do I still need to patch? As mentioned before- I want to avoid it, since I am annoyed by waiting and then kernel building error. :wink:

I can use the generic driver.
What issues did you see with the option driver? Modem reboots?

at port not work and after some time the ports lost and new detect

Has anyone else ping performance issues?
in idle i get fluctuating values between 30 and 300ms
if i do a speedtest i got 500mbit down and 57mbit up. during the download the ping stabilized by under 100ms (most time under 50ms)
i have test with a 2nd card one hp and on dell version both the same

(ping host -i 0)
if i do a ping with i 0 so he not wait between the pings i got a ping of <40 ms
no one is higher then 40 ms
is it possible its a driver issue any buffer to fill which he is waiting for?

this is the same problem im facing while using the option driver

test it today under windows i have no ping issues :melting_face:

if u use the generic driver and the at port work, have you a plan how you configure it? i have only found a solution with udev thats modemmonitor detect it but openwrt have no udev (not tested).