linux 如何更改SIMCOM模块(SIM 8262 E-M2)的模式(或产品ID)

30byixjq  于 2023-03-29  发布在  Linux
关注(0)|答案(2)|浏览(299)

我搞砸了。我最近得到了这个SIMCOM模块,支持5G。SIM8262E-M2
这是基于Snapdragon X62调制解调器。
它有4种操作模式(或产品ID):at+cusbcfg=?给出以下结果:9001、9003、9011、901e
默认的工厂模式是9001。所有的模式(除了901 E)都提供/dev/ttyUSB(我学得很辛苦!),你可以通过这些(使用minicom等)发出AT命令。
我错误地将模式更改为901 E,现在我无法从这个获得任何串行端口!
但是这仍然有/dev/cdc-wdm0,我可以使用qmicli和mbimcli进行交互:

[xplore@fedora ~]$ sudo qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-operating-mode
[/dev/cdc-wdm0] Operating mode retrieved:
    Mode: 'online'
    HW restricted: 'no'

我的问题:如何将模式改回(9001,9003,9011)?或者有没有办法通过qmicli/mbimcli发出AT命令?
我还尝试了以下方法(参考postthis):

[root@fedora xplore]# modprobe option
[root@fedora xplore]# echo 1e0e 9011 > /sys/bus/usb-serial/drivers/option1/new_id

但是在运行这个之后,我没有看到任何/dev/ttyUSB*设备。(我还需要做什么吗?,我显然不是LinuxMaven)
目前它显示为:

[root@fedora xplore]# lsusb
Bus 008 Device 003: ID 1e0e:901e Qualcomm / Option SDXLEMUR-LITE-MTP _SN:1505A7A0

dmesg输出:

[ 2449.622442] usb 8-2: new SuperSpeed USB device number 5 using xhci_hcd
[ 2449.635211] usb 8-2: LPM exit latency is zeroed, disabling LPM.
[ 2449.636702] usb 8-2: New USB device found, idVendor=1e0e, idProduct=901e, bcdDevice= 5.04
[ 2449.636704] usb 8-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2449.636704] usb 8-2: Product: SDXLEMUR-LITE-MTP _SN:1505A7A0
[ 2449.636705] usb 8-2: Manufacturer: SIMCOM
[ 2449.636706] usb 8-2: SerialNumber: 0123456789ABCDEF
[ 2449.803329] cdc_mbim 8-2:1.2: setting rx_max = 16384
[ 2449.803997] cdc_mbim 8-2:1.2: cdc-wdm0: USB WDM device
[ 2449.804219] cdc_mbim 8-2:1.2 wwan0: register 'cdc_mbim' at usb-0000:6b:00.0-2, CDC MBIM, 16:dd:bf:a1:af:08
[ 2449.816224] cdc_mbim 8-2:1.2 wwp107s0u2i2: renamed from wwan0

我还尝试了以下方法:
已启用ModemManager的调试模式

sudo mmcli -m 0 --command="AT"
error: command failed: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Connected: No AT port available to run command'

但显示AT端口未暴露。
请帮助我在这里,这个设备对我来说是昂贵的,设备有广泛的AT命令文档,没有它我不能使用它太多。
更多文档:
https://www.waveshare.com/w/upload/c/c6/SIM82XX_SIM83XX_Series_AT_Command_Manual_V1.02.pdf
https://www.waveshare.com/wiki/USB_TO_M.2_B_KEY#Working_With_SIM82XX_Module
https://www.waveshare.com/wiki/SIM8262E-M2_5G_HAT
https://github.com/torvalds/linux/commit/5417a7e482962952e622eabd60cd3600dd65dedf

q1qsirdb

q1qsirdb1#

或者有没有办法通过qmicli/mbimcli发出AT命令?
我不知道这两个程序,但我写了一个程序atinout的唯一目的是从命令行运行AT命令。根据文档1中给出的示例,假设/dev/cdc-wdm0是AT命令的串行设备,您应该能够运行

echo AT+CUSBCFG=usbid,1e0e,9011 | atinout - /dev/cdc-wdm0 -

1查看这个命令的文档,我发现这个命令的语法根本不正确,因为字符串参数应该总是用双引号括起来,这里没有任何好的理由不是这样。实现AT+CUSBCFG命令的人显然没有正确理解AT命令。
该documentat引用 V.25ter 这是一种正确的,但仍然不是一个伟大的标志,因为参考应该是 V.250 其中 V.25ter 更名为“只是”24年前后,只有3年的存在:
ITU-T于1995年在其V系列建议书中建立了一个标准,即V.25ter,试图再次为命令集建立一个标准。
V.250非常清楚正确的语法是什么:
5.4.2数值
...值应由数字常量或字符串常量组成。
5.4.2.1 数字常量
数字常量以十进制、十六进制或二进制表示。
5.4.2.2 串常量
字符串常量的开头和结尾必须用双引号字符...
而上述内容从V.25ter一开始就明确存在,因此没有任何借口可以解释这种可怕的错误AT命令语法。

wj8zmpe1

wj8zmpe12#

此问题已修复!但是修复程序不能解决此问题。
我修复了它得到最新的驱动程序的Windows,安装后,我可以看到COM端口打开!
我使用putty连接到串行端口并将模式更改回来:

AT+CUSBCFG=USBID,1E0E,9003

相关问题