[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