>> So, the 'qmi-support' was just merged to git master, which means that >> you'll now need libqmi git master [1] to compile ModemManager. All new >> QMI-related development will now go into git master directly. > > Wow, great work! > > I noticed that you even support multiple bearers now, allowing me to > configure multiple APNs on the same modem (the 3rd QMI/wwan device is > fake - I'm experimenting. It does not work): > > ModemManager[25642]: <debug> [1346264110.916784] > [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in > QMI modem > ModemManager[25642]: <debug> [1346264110.917592] > [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer > created at DBus path '/org/freedesktop/ModemManager1/Bearer/0' > ModemManager[25642]: <debug> [1346264115.797676] > [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in > QMI modem > ModemManager[25642]: <debug> [1346264115.797963] > [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer > created at DBus path '/org/freedesktop/ModemManager1/Bearer/1' > ModemManager[25642]: <debug> [1346264118.807731] > [mm-broadband-modem-qmi.c:143] modem_create_bearer(): Creating QMI bearer in > QMI modem > ModemManager[25642]: <debug> [1346264118.808034] > [mm-broadband-modem-qmi.c:122] modem_create_bearer_finish(): New bearer > created at DBus path '/org/freedesktop/ModemManager1/Bearer/2' > > > > > bjorn@nemi:~$ mmcli -m 0 --list-bearers > > Found 3 bearers: > > /org/freedesktop/ModemManager1/Bearer/0 > > /org/freedesktop/ModemManager1/Bearer/1 > > /org/freedesktop/ModemManager1/Bearer/2 > > > Connecting one of them works fine, but will always connect wwan0 it > seems:
Expected; the logic to select the wwan interface corresponding to a given QMI interface is not ready yet. I'll fix that tomorrow and let you know for a quick test. Actually, the logic is the reverse one, we have a list of data ports (the wwan ones) and we'll look for the corresponding QMI devices. > > bjorn@nemi:~$ mmcli -b 0 > Bearer '/org/freedesktop/ModemManager1/Bearer/0' > ------------------------- > Status | connected: 'no' > | suspended: 'no' > | interface: 'unknown' > | IP timeout: '20' > ------------------------- > Properties | apn: 'telenor' > | roaming: 'allowed' > | IP type: 'ipv4' > | user: 'none' > | password: 'none' > | number: 'none' > | Rm protocol: 'unknown' > ------------------------- > IPv4 configuration | method: 'unknown' > ------------------------- > IPv6 configuration | method: 'unknown' > bjorn@nemi:~$ mmcli -b 1 > Bearer '/org/freedesktop/ModemManager1/Bearer/1' > ------------------------- > Status | connected: 'yes' > | suspended: 'no' > | interface: 'wwan0' > | IP timeout: '20' > ------------------------- > Properties | apn: 'pilot.telenor' > | roaming: 'allowed' > | IP type: 'ipv4' > | user: 'none' > | password: 'none' > | number: 'none' > | Rm protocol: 'unknown' > ------------------------- > IPv4 configuration | method: 'dhcp' > ------------------------- > IPv6 configuration | method: 'unknown' > > > Attempting to connect more than one bearer makes ModemManager crash: > > bjorn@nemi:~$ mmcli -b 0 -c > error: couldn't connect the bearer: > 'GDBus.Error:org.freedesktop.DBus.Error.NoReply: Message did not receive a > reply (timeout by message bus)' > > > > ModemManager[25642]: Client ID: 05 > ModemManager[25642]: Transaction ID: 03:00 > ModemManager[25642]: [/dev/cdc-wdm0] Received message... >>>>>>> QMUX: >>>>>>> length = 19 >>>>>>> flags = 0x80 >>>>>>> service = "wds" >>>>>>> client = 5 >>>>>>> QMI: >>>>>>> flags = "response" >>>>>>> transaction = 3 >>>>>>> tlv_length = 7 >>>>>>> message = "Set IP Family" (0x004D) >>>>>>> TLV: >>>>>>> type = "Result" (0x02) >>>>>>> length = 4 >>>>>>> value = 00:00:00:00 >>>>>>> translated = SUCCESS > ModemManager[25642]: KEY: 03:00:05:01:00:00:00:00 > ModemManager[25642]: Service: 01 > ModemManager[25642]: Client ID: 05 > ModemManager[25642]: Transaction ID: 03:00 > ModemManager[25642]: <debug> [1346264213.789248] [mm-bearer-qmi.c:438] > connect_context_step(): Starting IPv4 connection... > ModemManager[25642]: [/dev/cdc-wdm0] Sending message... > <<<<<< QMUX: > <<<<<< length = 22 > <<<<<< flags = 0x00 > <<<<<< service = "wds" > <<<<<< client = 5 > <<<<<< QMI: > <<<<<< flags = "none" > <<<<<< transaction = 4 > <<<<<< tlv_length = 10 > <<<<<< message = "Start Network" (0x0020) > <<<<<< TLV: > <<<<<< type = "APN" (0x14) > <<<<<< length = 7 > <<<<<< value = 74:65:6C:65:6E:6F:72 > <<<<<< translated = telenor > ModemManager[25642]: KEY: 04:00:05:01:00:00:00:00 > ModemManager[25642]: Service: 01 > ModemManager[25642]: Client ID: 05 > ModemManager[25642]: Transaction ID: 04:00 > ModemManager[25642]: [/dev/cdc-wdm0] Received message... >>>>>>> QMUX: >>>>>>> length = 19 >>>>>>> flags = 0x80 >>>>>>> service = "wds" >>>>>>> client = 5 >>>>>>> QMI: >>>>>>> flags = "response" >>>>>>> transaction = 4 >>>>>>> tlv_length = 7 >>>>>>> message = "Start Network" (0x0020) >>>>>>> TLV: >>>>>>> type = "Result" (0x02) >>>>>>> length = 4 >>>>>>> value = 01:00:1A:00 >>>>>>> translated = FAILURE: NoEffect > ModemManager[25642]: KEY: 04:00:05:01:00:00:00:00 > ModemManager[25642]: Service: 01 > ModemManager[25642]: Client ID: 05 > ModemManager[25642]: Transaction ID: 04:00 > > (ModemManager:25642): GLib-GIO-CRITICAL **: g_simple_async_result_take_error: > assertion `error != NULL' failed > Segmentation fault Oh; interesting... can you get me a backtrace? > > > I assume some of the problem is that you use /dev/cdc-wdm0 for all the > bearers. That's fine for QMI_NAS etc, but for QMI_WDS you need to match > the wwanX interface for each bearer. The code to grab different QMI ports is in place; just the method I talked about before is missing, the one looking for the matching QMI port for a given wwan. I'll focus tomorrow in getting all this in place. -- Aleksander _______________________________________________ networkmanager-list mailing list [email protected] https://mail.gnome.org/mailman/listinfo/networkmanager-list
