[EC25] /dev/cdc-wdm0 is not created

Dear support,

I’m trying to port QMI_WWAN driver to my android device with EC25-J module.
Driver version: Quectel_Linux&Android_QMI_WWAN_Driver_V1.2.1
The AT commands is working. I can saw device is attached to LTE.

at+creg=2

OK

at+creg?

+CREG: 2,1,“3585”,“4CB0A21”,7

OK

at+cops?

+COPS: 0,0,“Chunghwa Telecom”,7

According to document Quectel_LTE5G_Linux_USB_Driver_User_Guide_V2.0.pdf
There should be a device /dev/cdc-wdm0 be created but I can’t see it. Am I missing something?

Android 12 Kernel 5.4.191

USB ports
STZDR20:/ # lsusb
Bus 003 Device 001: ID 1d6b:0003
Bus 002 Device 002: ID 2c7c:0125 //EC25
Bus 001 Device 001: ID 1d6b:0002
Bus 002 Device 001: ID 1d6b:0002

/dev
STZDR20:/ # ls /dev/cdc*
ls: /dev/cdc*: No such file or directory

ifconfig -a
STZDR20:/ # ifconfig -a

wwan0 Link encap:Ethernet HWaddr 72:78:48:32:d5:01 Driver qmi_wwan_q
NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

dmesg:

[ 3.397548] usbcore: registered new interface driver cdc_wdm

[ 18.404567] qmi_wwan_q 2-1:1.4: cdc-wdm0: USB WDM device
[ 18.408956] init: Created socket ‘/dev/socket/ipacm_log_file’, mode 660, user 1001, group 1001
[ 18.428294] qmi_wwan_q 2-1:1.4: Quectel Android work on RawIP mode
[ 18.448126] init: starting service ‘vendor.mutualex’…
[ 18.512509] qmi_wwan_q 2-1:1.4: rx_urb_size = 1520
[ 18.512982] init: starting service ‘vendor.port-bridge’…
[ 18.527167] qmi_wwan_q 2-1:1.4 wwan0: register ‘qmi_wwan_q’ at usb-xhci-hcd.2.auto-1, WWAN/QMI device, aa:e6:28:b0:29:cd
[ 18.542794] init: starting service ‘vendor.ril-daemon’…
[ 18.550608] coresight-remote-etm soc:modem_etm0: Connection established between QMI handle and 2 service

Thanks~

diff --git a/system/core/init/devices.cpp b/system/core/init/devices.cpp
old mode 100644
new mode 100755
index ada1e28..9386601
--- a/system/core/init/devices.cpp
+++ b/system/core/init/devices.cpp
@@ -407,6 +407,8 @@ void DeviceHandler::HandleDeviceEvent(const Uevent& uevent) {
             int device_id = uevent.minor % 128 + 1;
             devpath = StringPrintf("/dev/bus/usb/%03d/%03d", bus_id, device_id);
         }
+    } else if (uevent.subsystem == "usbmisc" && !uevent.device_name.empty()) {
+        devpath = "/dev/" + uevent.device_name;
     } else if (StartsWith(uevent.subsystem, "usb")) {
         // ignore other USB events
         return;

Please apply the patch.

Hi Bean,

It’s worked!
Many thanks!