原创文章,转载请注明出处
https://qiedd.com/

0x00 简介

这模块也太老了,教程都找不到几个,但是胜在便宜,闲鱼 13 包邮就能买到,拿来接短信性价比非常高了

0x01 固件更新

Module Firmware Download Tool (FDT – command line tool for Windows)
官网链接

AirPrime EM73xx/MC73xx FW Package Build 4837
官网链接

如果出现错误,FDT 需要运行在 window8 兼容模式下!!!

# example error code

Firmware download failed.
Primary error code: 77 - Failed in streaming download stage.
Secondary error code: 68 - Received incorrect response.
Device error code: 0x97 - Not allowed.

下载 FDT2.exe,固件压缩包解压后拿到公版固件 9999999_9902674_SWI9X15C_05.05.78.00_00_GENEU-4G_005.029_000-field.spk,CMD 中在管理员模式中启动,根据你自己的路径执行命令

./fdt2.exe -f 9999999_9902674_SWI9X15C_05.05.78.00_00_GENEU-4G_005.029_000-field.spk -freset

如果你是 EM7430 这种,解压后运行

./fdt2.exe -d g5k -ignswto -f %temp%\FDT\SWI9X30C_02.39.00.00.cwe %temp%\FDT\SWI9X30C_02.39.00.00_GENERIC_002.085_000.nvu

0x02 从 QMI 切换 MBIM

我们现在是在 QMI 模式下

  --------------------------------
  Hardware |         manufacturer: Sierra Wireless, Incorporated
           |                model: EM7305
           |    firmware revision: SWI9X15C_05.05.78.00 r34310 CARMD-EV-FRMWR3 2017/09/17 00:43:17
           |         h/w revision: 1.0
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 353516051031068
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              physdev: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              drivers: qcserial, qmi_wwan
           |               plugin: sierra
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (qmi), ttyUSB2 (at), wwan0 (net)
  --------------------------------

用 qmicli 来切换, 我们现在在 USB composition 6

lordpenguin@archlinux ~ [1]> sudo qmicli -d /dev/cdc-wdm0 --dms-swi-get-usb-composition
[/dev/cdc-wdm0] Successfully retrieved USB compositions:
            USB composition 1: HIP, DM, NMEA, AT, MDM1, MS
        [*] USB composition 6: DM, NMEA, AT, QMI
            USB composition 7: DM, NMEA, AT, RMNET1, RMNET2, RMNET3
            USB composition 8: DM, NMEA, AT, MBIM
            USB composition 9: MBIM
            USB composition 10: NMEA, MBIM
            USB composition 11: DM, MBIM
            USB composition 12: DM, NMEA, MBIM
            USB composition 14: Dual configuration: USB composition 6 and USB composition 9
            USB composition 19: Dual configuration: USB composition 7 and USB composition 9

切换到 USB composition 8, 会立即断开连接, 然后重新插拔一下 USB 就好

lordpenguin@archlinux ~> sudo qmicli -d /dev/cdc-wdm0 --dms-swi-set-usb-composition=8
[30 Jun 2025, 20:47:00] -Warning ** Error reading from istream: Resource temporarily unavailable
error: operation failed: endpoint hangup
error: couldn't release client: Transaction timed out

现在我们应该运行在 MBIM 模式下了

  --------------------------------
  Hardware |         manufacturer: Sierra Wireless, Incorporated
           |                model: EM7305
           |    firmware revision: SWI9X15C_05.05.78.00
           |         h/w revision: EM7305
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 353516051031068
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              physdev: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              drivers: qcserial, cdc_mbim
           |               plugin: sierra
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (mbim), ttyUSB2 (at), wwan0 (net)
  --------------------------------

0x03 从 MBIM 切换到 QMI

mbimcli 无法直接切换, 也没有 at 命令可以直接切换模式, 这里我们要用到这个 github 项目
https://github.com/pief/wwan

# 下载 perl 及其依赖
yay -Sy perl perl-uuid-tiny perl-ipc-shareable perl-json perl-string-crc32 --needed --noconfirm

# 将 .h 转为 .ph, 时间可能会有有点久
sudo /usr/bin/core_perl/h2ph -r /usr/include

# 进入目录, 看你自己的版本
cd /usr/lib/perl5/5.40/site_perl

# 转移
sudo mv usr/include/* .

# git clone
cd && git clone https://github.com/pief/wwan

# 进入目标文件夹
cd wwan/scripts

# 执行命令
sudo ./swi_setusbcomp.pl --device=/dev/cdc-wdm0 --usbcomp=6

执行命令后, 重新插拔一下, 现在我们应该运行在 QMI 模式下了

  --------------------------------
  Hardware |         manufacturer: Sierra Wireless, Incorporated
           |                model: EM7305
           |    firmware revision: SWI9X15C_05.05.78.00 r34310 CARMD-EV-FRMWR3 2017/09/17 00:43:17
           |         h/w revision: 1.0
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 353516051031068
  --------------------------------
  System   |               device: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              physdev: /sys/devices/pci0000:00/0000:00:08.1/0000:64:00.3/usb1/1-1/1-1.1
           |              drivers: qmi_wwan, qcserial
           |               plugin: sierra
           |         primary port: cdc-wdm0
           |                ports: cdc-wdm0 (qmi), ttyUSB2 (at), wwan0 (net)
  --------------------------------

0x04 使用官方驱动修改

诶,如果我 at command 切换不了,工程模式 ‘AT!entercnd=”A710‘ 进不去怎么办?

我们可以使用官方驱动切回来,比如说我这个 EM7430,我用 swi_setusbcomp.pl 想切到 QMI,usbcomp=6,结果切过去没有 QMI 了,在 Linux 下用不了了怎么办呢?

只要在 Windows 下,(如果有)卸载官方驱动,然后重新安装就好了,在命令行里输入

./GenericDriverSetup_5087.exe USBCOMP=8

然后等待设备重启就切回 mbim 了,如果是联想,戴尔或者富士康的模块,你也可以用它们的 exe 然后加上 USBCOMP=8 试试

0x05 参考内容

https://forum.sierrawireless.com/t/my-mc7710-cant-work-on-linux-after-plug-in-it-to-windows8/7986/23

https://www.0xf8.org/2015/07/dell-wireless-5809e-support-in-linux-a-followup

https://forum.sierrawireless.com/t/unable-to-update-firmware-on-em7305/27590/8

https://zukota.com/posts/sierra-wireless-em7455-how-to-enable-com-ports


0 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注


这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理