Hey, > I have modified the plugin as suggested. > There's some progress but no success yet. > > I have started Modem Manager, then executed (we're running on openwrt with no > udev): > mmcli --report-kernel-event="action=add,subsystem=wwan,name=wwan0mbim0" > > And then observed that Modem Manager tried talking to modem using QMI first > and them MBIM but without success. The log is below. >
Ok. I think you're the first ones I know of doing that testing :) > Thanks, > Tomasz > > root@OpenWrt:~# ls /dev/wwan* > /dev/wwan0at0 /dev/wwan0mbim0 > > [7442]: <debug> [base-manager] kernel event reported: > [7442]: <debug> [base-manager] action: add > [7442]: <debug> [base-manager] subsystem: wwan > [7442]: <debug> [base-manager] name: wwan0mbim0 > [7442]: <debug> [base-manager] uid: n/a > [7442]: <debug> [wwan0mbim0] preloading contents and properties... > [7442]: <debug> [wwan0mbim0] sysfs path: > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0/0002:58:00.0/mhi0/wwan/wwan0/wwan0mbim0 > [7442]: <debug> [wwan0mbim0] port contents loaded: > [7442]: <debug> [wwan0mbim0] bus: pci > [7442]: <debug> [wwan0mbim0] device: > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0 > [7442]: <debug> [wwan0mbim0] subsystems: wwan, mhi, pci > [7442]: <debug> [wwan0mbim0] drivers: mhi-pci-generic, pcieport > [7442]: <debug> [wwan0mbim0] vendor: 177d > [7442]: <debug> [wwan0mbim0] product: a22d > [7442]: <debug> [wwan0mbim0] revision: 0002 > [7442]: <debug> [wwan0mbim0] ID_VENDOR_ID: 0x177d > [7442]: <debug> [wwan0mbim0] ID_MODEL_ID: 0xa22d > [7442]: <debug> [wwan0mbim0] ID_REVISION: 0x0002 > [7442]: <debug> [wwan0mbim0] property added: ID_MM_CANDIDATE=1 > [7442]: <warn> [wwan0mbim0] unknown match condition parameter: ATTR{type} > [7442]: <warn> [wwan0mbim0] unknown match condition parameter: ATTR{type} > [7442]: <warn> [wwan0mbim0] unknown match condition parameter: ATTR{type} > [7442]: <warn> [wwan0mbim0] unknown match condition parameter: ATTR{type} > [7442]: <warn> [wwan0mbim0] unknown match condition parameter: ATTR{type} > [7442]: <warn> [wwan0mbim0] invalid pattern in rule '*MBIM': Error while > compiling regular expression *MBIM at char 0: nothing to repeat > [7442]: <warn> [wwan0mbim0] invalid pattern in rule '*QMI': Error while > compiling regular expression *QMI at char 0: nothing to repeat > [7442]: <warn> [wwan0mbim0] invalid pattern in rule '*AT': Error while > compiling regular expression *AT at char 0: nothing to repeat > [7442]: <warn> [wwan0mbim0] invalid pattern in rule '*QCDM': Error while > compiling regular expression *QCDM at char 0: nothing to repeat > [7442]: <warn> [wwan0mbim0] invalid pattern in rule '*FIREHOSE': Error while > compiling regular expression *FIREHOSE at char 0: nothing to repeat Those warnings above show that the current available rules to flag port type hints based on either type or name are failing badly when using the limited built-in udev parser. I've opened this issue to track it: https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/issues/410 > [7442]: <debug> [base-manager] adding port wwan0mbim0 at sysfs path: > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0/0002:58:00.0/mhi0/wwan/wwan0/wwan0mbim0 > [7442]: <debug> [filter] (wwan/wwan0mbim0) port allowed: wwan device > [7442]: <debug> [base-manager] port wwan0mbim0 is first in device > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0 > [7442]: <debug> [plugin-manager] task 2: new support task for device: > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0 > [7442]: <debug> [plugin-manager] task 2: port grabbed: wwan0mbim0 > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: new support task for port > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: deferred until min wait > time elapsed > [7442]: <debug> [plugin-manager] task 2: min wait time elapsed > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: found '3' plugins to try > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: will try with plugin > 'quectel' > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: will try with plugin > 'cinterion' > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: will try with plugin > 'generic' > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: started > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: checking with plugin > 'quectel' Wait what, it should not attempt to try with the quectel plugin at all. Can you share what specific changes you did? Did you by any chance modify the quectel plugin to add the cinterion PCI vid as a test? > [7442]: <debug> [plugin/quectel] probes required for port wwan0mbim0: 'at, > at-vendor, qcdm, qmi, mbim' > [7442]: <debug> [wwan0mbim0/probe] launching port probing: 'at, at-vendor, > qcdm, qmi, mbim' > [7442]: <debug> [plugin-manager] task 2: extra probing time elapsed > [7442]: <debug> [plugin-manager] task 2: still 1 running probes (1 active): > wwan0mbim0 > [7442]: <debug> [wwan0mbim0/at] opening serial port... > [7442]: <debug> [wwan0mbim0/at] device open count is 1 (open) > [7442]: <debug> [wwan0mbim0/at] --> 'AT<CR><LF>' > [7442]: <debug> [plugin-manager] task 2: min probing time elapsed > [7442]: <debug> [plugin-manager] task 2: still 1 running probes (1 active): > wwan0mbim0 > [7442]: <debug> [wwan0mbim0/at] --> 'AT<CR><LF>' > [7442]: <debug> [wwan0mbim0/at] --> 'AT<CR><LF>' > [7442]: <debug> [wwan0mbim0/probe] port is not AT-capable > [7442]: <debug> [wwan0mbim0/probe] probing QCDM... > [7442]: <debug> [wwan0mbim0/at] device open count is 0 (close) > [7442]: <debug> [wwan0mbim0/at] closing serial port... > [7442]: <debug> [wwan0mbim0/at] serial port closed > [7442]: <debug> [wwan0mbim0/at] forced to close port > [7442]: <debug> [wwan0mbim0/qcdm] opening serial port... > [7442]: <debug> [wwan0mbim0/qcdm] device open count is 1 (open) > [7442]: <debug> [wwan0mbim0/qcdm] --> 7e 00 78 f0 7e > [7442]: <debug> [wwan0mbim0/qcdm] --> 7e 00 78 f0 7e > [7442]: <debug> [wwan0mbim0/probe] port is not QCDM-capable > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: checking with plugin > 'cinterion' > [7442]: <debug> [plugin/cinterion] subsystem wwan match > [7442]: <debug> [plugin/cinterion] port wwan0mbim0 matched pre filters > [7442]: <debug> [plugin/cinterion] probes required for port wwan0mbim0: 'at, > at-vendor, qmi, mbim' > [7442]: <debug> [wwan0mbim0/probe] launching port probing: 'qmi, mbim' > [7442]: <debug> [wwan0mbim0/qcdm] device open count is 0 (close) > [7442]: <debug> [wwan0mbim0/qcdm] closing serial port... > [7442]: <debug> [wwan0mbim0/qcdm] serial port closed > [7442]: <debug> [wwan0mbim0/qcdm] forced to close port > [7442]: <debug> [wwan0mbim0/probe] probing QMI... > [7442]: <debug> [wwan0mbim0/qmi] Opening QMI device... > [7442]: <debug> [wwan0mbim0/qmi] Checking if QMI device already opening... > [7442]: <debug> [wwan0mbim0/qmi] Checking if QMI device already open... > [7442]: <debug> [wwan0mbim0/qmi] Creating QMI device... > [7442]: <debug> [wwan0mbim0/qmi] Opening device with flags: version-info, > proxy... > [7442]: [/dev/wwan0mbim0] Opening device with flags 'version-info, proxy'... > [7442]: [/dev/wwan0mbim0] requested QMI mode but unexpected transport type > found > [7442]: [/dev/wwan0mbim0] created endpoint > [7442]: cannot connect to proxy: Could not connect: Connection refused > [7442]: spawning new qmi-proxy (try 1)... > [7442]: [/dev/wwan0mbim0] Sent message... > <<<<<< RAW: > <<<<<< length = 30 > <<<<<< data = > 01:1D:00:00:00:00:00:01:00:FF:12:00:01:0F:00:2F:64:65:76:2F:77:77:61:6E:30:6D:62:69:6D:30 > [7442]: [/dev/wwan0mbim0] Sent generic request (translated)... > <<<<<< QMUX: > <<<<<< length = 29 > <<<<<< flags = 0x00 > <<<<<< service = "ctl" > <<<<<< client = 0 > <<<<<< QMI: > <<<<<< flags = "none" > <<<<<< transaction = 1 > <<<<<< tlv_length = 18 > <<<<<< message = "Internal Proxy Open" (0xFF00) > <<<<<< TLV: > <<<<<< type = "Device Path" (0x01) > <<<<<< length = 15 > <<<<<< value = 2F:64:65:76:2F:77:77:61:6E:30:6D:62:69:6D:30 > <<<<<< translated = /dev/wwan0mbim0 > [7442]: [/dev/wwan0mbim0] Received message... > <<<<<< RAW: > <<<<<< length = 19 > <<<<<< data = 01:12:00:80:00:00:01:01:00:FF:07:00:02:04:00:00:00:00:00 > [7442]: [/dev/wwan0mbim0] Received generic response (translated)... > <<<<<< QMUX: > <<<<<< length = 18 > <<<<<< flags = 0x80 > <<<<<< service = "ctl" > <<<<<< client = 0 > <<<<<< QMI: > <<<<<< flags = "response" > <<<<<< transaction = 1 > <<<<<< tlv_length = 7 > <<<<<< message = "Internal Proxy Open" (0xFF00) > <<<<<< TLV: > <<<<<< type = "Result" (0x02) > <<<<<< length = 4 > <<<<<< value = 00:00:00:00 > <<<<<< translated = SUCCESS > [7442]: [/dev/wwan0mbim0] Checking version info (45 retries)... > [7442]: [/dev/wwan0mbim0] Sent message... > <<<<<< RAW: > <<<<<< length = 12 > <<<<<< data = 01:0B:00:00:00:00:00:02:21:00:00:00 > [7442]: [/dev/wwan0mbim0] Sent generic request (translated)... > <<<<<< QMUX: > <<<<<< length = 11 > <<<<<< flags = 0x00 > <<<<<< service = "ctl" > <<<<<< client = 0 > <<<<<< QMI: > <<<<<< flags = "none" > <<<<<< transaction = 2 > <<<<<< tlv_length = 0 > <<<<<< message = "Get Version Info" (0x0021) > [7442]: transaction 0x2 aborted, but message is not abortable > ... > [7442]: <debug> [wwan0mbim0/qmi] QMI port open operation failed: Transaction > timed out > [7442]: <debug> [wwan0mbim0/probe] error checking QMI support: Transaction > timed out > [7442]: <debug> [wwan0mbim0/probe] port is not QMI-capable > [7442]: <debug> [wwan0mbim0/probe] probing MBIM... > [7442]: opening device... > [7442]: cannot connect to proxy: Could not connect: Connection refused > [7442]: spawning new mbim-proxy (try 1)... > [7442]: [/dev/wwan0mbim0] Couldn't find descriptors file, possibly not using > cdc_mbim > [7442]: [/dev/wwan0mbim0] Fallback to default max control message size: 4096 > [7442]: [/dev/wwan0mbim0] Sent message... > <<<<<< RAW: > <<<<<< length = 92 > <<<<<< data = > 03:00:00:00:5C:00:00:00:01:00:00:00:01:00:00:00:00:00:00:00:83:8C:F7:FB:8D:0D:4D:7F:87:1E:D7:1D:BE:FB:B3:9B:01:00:00:00:01:00:00:00:2C:00:00:00:0C:00:00:00:1E:00:00:00:2D:00:00:00:2F:00:64:00:65:00:76:00:2F:00:77:00:77:00:61:00:6E:00:30:00:6D:00:62:00:69:00:6D:00:30:00:00:00 > [7442]: [/dev/wwan0mbim0] Sent message (translated)... > <<<<<< Header: > <<<<<< length = 92 > <<<<<< type = command (0x00000003) > <<<<<< transaction = 1 > <<<<<< Fragment header: > <<<<<< total = 1 > <<<<<< current = 0 > <<<<<< Contents: > <<<<<< service = 'proxy-control' (838cf7fb-8d0d-4d7f-871e-d71dbefbb39b) > <<<<<< cid = 'configuration' (0x00000001) > <<<<<< type = 'set' (0x00000001) > <<<<<< Fields: > <<<<<< DevicePath = '/dev/wwan0mbim0' > <<<<<< Timeout = '45' > [7442]: proxy configuration failed: closed > [7442]: <debug> [wwan0mbim0/probe] error checking MBIM support: Transaction > timed out > [7442]: <debug> [wwan0mbim0/probe] port is not MBIM-capable > [7442]: [/dev/wwan0mbim0] channel destroyed > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: checking with plugin > 'generic' > [7442]: <debug> [plugin/generic] subsystem wwan match > [7442]: <debug> [plugin/generic] port wwan0mbim0 matched pre filters > [7442]: <debug> [plugin/generic] probes required for port wwan0mbim0: 'at, > qcdm, qmi, mbim' > [7442]: <debug> [wwan0mbim0/probe] port probing finished: no more probings > needed > [7442]: <debug> [plugin/generic] port wwan0mbim0 matched post filters > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: found best plugin for > port (generic) > [7442]: <debug> [plugin-manager] task 2,wwan0mbim0: finished in '107.328048' > seconds > [7442]: <debug> [plugin-manager] task 2: no more ports to probe > [7442]: <debug> [plugin-manager] task 2: finished in '107.328514' seconds > [7442]: <info> [device > /sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0] > creating modem with plugin 'generic' and '1' ports > [7442]: <debug> [plugin/generic] subsystem wwan match > [7442]: <warn> [plugin/generic] could not grab port wwan0mbim0: Cannot add > port 'wwan/wwan0mbim0', unhandled port type > [7442]: <debug> [modem0] completely disposed > [7442]: <warn> [base-manager] couldn't create modem for device > '/sys/devices/platform/soc@0/884057000000.pci/pci0002:57/0002:57:00.0': > Failed to find primary AT port > I assume here that maybe trying QMI first and then MBIM could have caused some issues. Once we solve the port type hints, that problem should go away. Did you try to use mbimcli directly on the /dev/wwan0mbim0 port? Did that work? -- Aleksander https://aleksander.es _______________________________________________ ModemManager-devel mailing list ModemManager-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/modemmanager-devel