Quectel BG96
Sebastian Sjoholm
sebastian.sjoholm at gmail.com
Sun Oct 22 08:50:52 UTC 2017
Hi,
I have tested Quectel BG96 (DevKit) with libqmi 1.16.5 and it seems to work, made some additions in qmi_wwan.c and option.c, modelled it after EC21/EC25. The chipset is MDM9206. I have no RF yet, so cannot test data connection, but I will get back on that.
I tried also libqmi 1.18 branch as well master branch but received “qmicli: symbol lookup error: qmicli: undefined symbol: qmi_message_uim_power_off_sim_input_unref” error, maybe it is my setup so I will dig further on that.
root at 6560b:/opt/libqmi-1-18# qmicli
qmicli: symbol lookup error: qmicli: undefined symbol: qmi_message_uim_power_off_sim_input_unref
root at 6560b:/opt/libqmi-1-18#
-Sebastian
root at 6560b:/opt/libqmi-1-16# qmicli -V
qmicli 1.16.5
Copyright (C) 2015 Aleksander Morgado
License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl-2.0.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
root at 6560b:/opt/libqmi-1-16#
root at 6560b:/opt/libqmi-1-16# qmicli -d /dev/cdc-wdm0 --dms-get-capabilities
[/dev/cdc-wdm0] Device capabilities retrieved:
Max TX channel rate: '50000000'
Max RX channel rate: '100000000'
Data Service: 'cs'
SIM: 'supported'
Networks: 'gsm, lte'
root at 6560b:/opt/libqmi-1-16# qmicli -d /dev/cdc-wdm0 --nas-get-signal-strength
[/dev/cdc-wdm0] Successfully got signal strength
Current:
Network 'none': '-128 dBm'
RSSI:
Network 'none': '-128 dBm'
ECIO:
Network 'none': '-2,5 dBm'
IO: '-106 dBm'
SINR (8): '9,0 dB'
root at 6560b:/opt/libqmi-1-16# qmicli -d /dev/cdc-wdm0 --dms-get-band-capabilities
[/dev/cdc-wdm0] Device band capabilities retrieved:
Bands: 'gsm-dcs-1800, gsm-900-extended, gsm-900-primary, gsm-850, gsm-pcs-1900'
LTE bands: '1, 2, 3, 4, 5, 8, 12, 13, 17, 18, 19, 20, 39'
root at 6560b:/opt/libqmi-1-16#
AT Port is OK:
ati
Quectel
BG96
Revision: BG96MAR02A02M1G
OK
USB info:
root at 6560b:/opt/libqmi-1-16# lsusb -t
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 1: Dev 3, If 2, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 3, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 1, Class=Vendor Specific Class, Driver=option, 480M
|__ Port 1: Dev 3, If 4, Class=Vendor Specific Class, Driver=qmi_wwan, 480M
|__ Port 2: Dev 4, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
|__ Port 4: Dev 5, If 1, Class=Video, Driver=uvcvideo, 480M
|__ Port 4: Dev 5, If 0, Class=Video, Driver=uvcvideo, 480M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/2p, 480M
|__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/6p, 480M
|__ Port 1: Dev 3, If 0, Class=Vendor Specific Class, Driver=, 12M
root at 6560b:/opt/libqmi-1-16# lsusb
Bus 002 Device 005: ID 0461:4dc7 Primax Electronics, Ltd
Bus 002 Device 004: ID 046d:c00e Logitech, Inc. M-BJ58/M-BJ69 Optical Wheel Mouse
Bus 002 Device 003: ID 2c7c:0296
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 138a:003c Validity Sensors, Inc. VFS471 Fingerprint Reader
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
root at 6560b:/opt/libqmi-1-16#
root at 6560b:/opt/libqmi-1-16# lsusb -v -d 2c7c:0296
Bus 002 Device 003: ID 2c7c:0296
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x2c7c
idProduct 0x0296
bcdDevice 0.00
iManufacturer 3 Qualcomm, Incorporated
iProduct 2 Qualcomm CDMA Technologies MSM
iSerial 4 d1098243
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 145
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 1 Qualcomm Configuration
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x81 EP 1 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 254
bInterfaceProtocol 255
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 3
bInterfaceClass 255 Vendor Specific Class
bInterfaceSubClass 255 Vendor Specific Subclass
bInterfaceProtocol 255 Vendor Specific Protocol
iInterface 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x87 EP 7 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 5
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x88 EP 8 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x05 EP 5 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Device Qualifier (for other device speed):
bLength 10
bDescriptorType 6
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
bNumConfigurations 1
Device Status: 0x0000
(Bus Powered)
root at 6560b:/opt/libqmi-1-16#
dmesg:
[ 4.926988] usbcore: registered new interface driver option
[ 4.927000] usbserial: USB Serial support registered for GSM modem (1-port)
[ 4.927081] option 2-1.1:1.0: GSM modem (1-port) converter detected
[ 4.937403] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB0
[ 4.937454] option 2-1.1:1.1: GSM modem (1-port) converter detected
[ 4.937535] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB1
[ 4.937568] option 2-1.1:1.2: GSM modem (1-port) converter detected
[ 4.937694] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB2
[ 4.937726] option 2-1.1:1.3: GSM modem (1-port) converter detected
[ 4.937780] usbcore: registered new interface driver cdc_wdm
[ 4.937824] usb 2-1.1: GSM modem (1-port) converter now attached to ttyUSB3
[ 5.109465] qmi_wwan 2-1.1:1.4: cdc-wdm0: USB WDM device
[ 5.115037] qmi_wwan 2-1.1:1.4 wwan0: register 'qmi_wwan' at usb-0000:00:1d.0-1.1, WWAN/QMI device, 3e:49:e1:62:29:62
[ 5.115065] usbcore: registered new interface driver qmi_wwan
root at 6560b:~# uname -a
Linux 6560b 4.13.8 #1 SMP Sat Oct 21 11:05:10 CEST 2017 x86_64 x86_64 x86_64 GNU/Linux
root at 6560b:~#
Kernel module: qmi_wwan.c
root at 6560b:~/linux-4.13.8/drivers/net/usb# diff -u qmi_wwan.c qmi_wwan.c_original
--- qmi_wwan.c 2017-10-21 16:21:59.595279857 +0200
+++ qmi_wwan.c_original 2017-10-21 16:21:22.335279277 +0200
@@ -1238,7 +1238,6 @@
{QMI_FIXED_INTF(0x1e0e, 0x9001, 5)}, /* SIMCom 7230E */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0125, 4)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */
{QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
- {QMI_QUIRK_SET_DTR(0x2c7c, 0x0296, 4)}, /* Quectel BG96 */
/* 4. Gobi 1000 devices */
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
root at 6560b:~/linux-4.13.8/drivers/net/usb#
Kernel module: option.c
root at 6560b:~/linux-4.13.8/drivers/usb/serial# diff -u option.c option.c_original
--- option.c 2017-10-21 16:40:19.595244661 +0200
+++ option.c_original 2017-10-21 16:39:07.655246787 +0200
@@ -241,7 +241,6 @@
/* These Quectel products use Quectel's vendor ID */
#define QUECTEL_PRODUCT_EC21 0x0121
#define QUECTEL_PRODUCT_EC25 0x0125
-#define QUECTEL_PRODUCT_BG96 0x0296
#define CMOTECH_VENDOR_ID 0x16d8
#define CMOTECH_PRODUCT_6001 0x6001
@@ -1186,8 +1185,6 @@
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
- .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6001) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_CMU_300) },
{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6003),
root at 6560b:~/linux-4.13.8/drivers/usb/serial#
More information about the libqmi-devel
mailing list