[RFC] Initial support for the new MC74XX modules

Thomas Schäfer tschaefer at t-online.de
Sun Jan 24 11:35:15 PST 2016


Am 24.01.2016 um 17:29 schrieb Aleksander Morgado:
> On Wed, Jan 6, 2016 at 6:24 PM, Dan Williams <dcbw at redhat.com> wrote:
>>
>>> The new Sierra MC74XX modules are very very different to all previous
>>> Sierra modules. Among other things, they always work in raw-ip mode,
>>> and they also don't implement "DMS UIM" commands.
>>>
>>> This series of patches introduces some initial support for these
>>> modules, by trying to modify the expected link layer protocol in the
>>> kernel to the one reported via WDA (if any), and also by implementing
>>> the "unlock required" check using "UIM Get Card Status" instead of
>>> "DMS UIM Get PIN status". There are multiple other operations based
>>> on "DMS UIM" that should be updated to use "UIM" service operations,
>>> but this one at least allows using the module when the SIM card has
>>> PIN request disabled.
>>>
>>> There's also another patch which ends up requesting Static IP
>>> configuration on the newly connected Bearer if raw-ip is used; for
>>> now to avoid needing a DHCP client with raw-ip support.
>>>
>>> Comments welcome!
>>
>> Patches look good to me.
> 
> 
> I've merged the patches now in both libqmi and ModemManager; still
> without PIN unlocking support; that should go next.
> 
> 

I tested it with MC7304.
mmcli -m 0 --simple-connect="apn=internet.telekom,ip-type=ipv4v6"
--verbose --timeout=1500

(without NetworkManager)

It works.

hpmini:~ # mmcli -b 0
Bearer '/org/freedesktop/ModemManager1/Bearer/0'
  -------------------------
  Status             |   connected: 'yes'
                     |   suspended: 'no'
                     |   interface: 'wwan0'
                     |  IP timeout: '20'
  -------------------------
  Properties         |         apn: 'internet.telekom'
                     |     roaming: 'allowed'
                     |     IP type: 'ipv4v6'
                     |        user: 'none'
                     |    password: 'none'
                     |      number: 'none'
                     | Rm protocol: 'unknown'
  -------------------------
  IPv4 configuration |   method: 'dhcp'
                     |  address: '10.56.197.12'
                     |   prefix: '30'
                     |  gateway: '10.56.197.13'
                     |      DNS: '10.74.210.210', '10.74.210.211'
                     |      MTU: '1430'
  -------------------------
  IPv6 configuration |   method: 'dhcp'
                     |  address: '2a01:598:81c0:ee40:a86a:c4cc:b46d:8e4a'
                     |   prefix: '64'
                     |  gateway: '2a01:598:81c0:ee40:5c2d:34ef:415:b0e1'
                     |      DNS: '2a01:598:7ff:0:10:74:210:210'
                     |      MTU: '1430'
  -------------------------
  Stats              |          Duration: '690'
                     |    Bytes received: '16284743'
                     | Bytes transmitted: '212102752'
hpmini:~ # ip l
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
DEFAULT group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast
state DOWN mode DEFAULT group default qlen 1000
    link/ether 3c:d9:2b:1a:c9:9a brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN mode
DEFAULT group default qlen 1000
    link/ether d0:df:9a:93:67:90 brd ff:ff:ff:ff:ff:ff
7: wwan0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc
pfifo_fast state UNKNOWN mode DEFAULT group default qlen 1000
    link/none
8: wwan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode
DEFAULT group default qlen 1000
    link/ether ae:7c:cf:56:e0:13 brd ff:ff:ff:ff:ff:ff
hpmini:~ # mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id
'6be55af770f27412543d958ee05145ea61a7d88f')
  -------------------------
  Hardware |   manufacturer: 'Sierra Wireless, Incorporated'
           |          model: 'MC7304'
           |       revision: 'SWI9X15C_05.05.02.00 r19147 carmd-fwbuild1
2013/11/15 13:54:28'
           |      supported: 'gsm-umts
           |                  lte
           |                  gsm-umts, lte'
           |        current: 'gsm-umts, lte'
           |   equipment id: '356853050080433'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:1d.7/usb3/3-4'
           |        drivers: 'qmi_wwan, qcserial'
           |         plugin: 'Sierra'
           |   primary port: 'cdc-wdm0'
           |          ports: 'ttyUSB0 (qcdm), ttyUSB2 (at), cdc-wdm0
(qmi), wwan0 (net), wwan1 (net), cdc-wdm1 (qmi)'
  -------------------------
  Numbers  |           own : '4915127093679'
  -------------------------
  Status   |           lock: 'sim-pin2'
           | unlock retries: 'sim-pin (3), sim-pin2 (3), sim-puk (10),
sim-puk2 (10)'
           |          state: 'connected'
           |    power state: 'on'
           |    access tech: 'lte'
           | signal quality: '81' (recent)
  -------------------------
  Modes    |      supported: 'allowed: 2g, 3g, 4g; preferred: none'
           |        current: 'allowed: 2g, 3g, 4g; preferred: none'
  -------------------------
  Bands    |      supported: 'cdma-bc15-aws, dcs, egsm, pcs, g850,
u2100, u1900, u800, u850, u900, eutran-i, eutran-iii, eutran-vii,
eutran-viii, eutran-xx'
           |        current: 'cdma-bc15-aws, dcs, egsm, pcs, g850,
u2100, u1900, u800, u850, u900, eutran-i, eutran-iii, eutran-vii,
eutran-viii, eutran-xx'
  -------------------------
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  -------------------------
  3GPP     |           imei: '356853050080433'
           |  enabled locks: 'none'
           |    operator id: '26201'
           |  operator name: 'unknown'
           |   subscription: 'unknown'
           |   registration: 'home'
  -------------------------
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'

  -------------------------
  Bearers  |          paths: '/org/freedesktop/ModemManager1/Bearer/0'


I set manually the link state up, the ipv4-address , the route and the
dns-resolver too.

IPv6 did work with SLAAC despite P2P-device-type.

Thanks for the great work!

Thomas


More information about the ModemManager-devel mailing list