MC7455 in X220 with ModemManager 1.6.4

Aleksander Morgado aleksander at aleksander.es
Thu Jun 8 20:56:32 UTC 2017


Hey,

>
> so my card is not listed in rfkill at all:
>
> litin at x220:~$ rfkill list all
> 0: hci0: Bluetooth
>     Soft blocked: no
>     Hard blocked: no
> 1: tpacpi_bluetooth_sw: Bluetooth
>     Soft blocked: no
>     Hard blocked: no
> 2: phy0: Wireless LAN
>     Soft blocked: no
>     Hard blocked: no
>
> And I have no idea why.... So I would not say that card is blocked by
> rfkill, because it seem to be not registered to rfkill at all...the fun is,

Hum, ok... no idea :/

> that it seem to be registered twice in kernel:
>
> litin at x220:~$ dmesg | grep qmi
> [    3.247730] qmi_wwan 2-1.4:1.8: cdc-wdm0: USB WDM device
> [    3.262419] qmi_wwan 2-1.4:1.8 wwan0: register 'qmi_wwan' at
> usb-0000:00:1d.0-1.4, WWAN/QMI device, 86:43:0f:24:2c:93
> [    3.267585] qmi_wwan 2-1.4:1.10: cdc-wdm1: USB WDM device
> [    3.268927] qmi_wwan 2-1.4:1.10 wwan1: register 'qmi_wwan' at
> usb-0000:00:1d.0-1.4, WWAN/QMI device, 86:43:0f:24:2c:93
> [    3.269028] usbcore: registered new interface driver qmi_wwan
> [    3.695620] qmi_wwan 2-1.4:1.10 wwp0s29u1u4i10: renamed from wwan1
> [    3.734681] qmi_wwan 2-1.4:1.8 wwp0s29u1u4i8: renamed from wwan0
>

That is normal; the modem is exposing two QMI+WWAN pairs, one from
if#8 and another one from if#10.

>
> litin at x220:~$ lsusb
> Bus 002 Device 003: ID 1199:9071 Sierra Wireless, Inc.
> Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
> Bus 001 Device 006: ID 04f2:b217 Chicony Electronics Co., Ltd Lenovo
> Integrated Camera (0.3MP)
> Bus 001 Device 010: ID 10d5:55a4 Uni Class Technology Co., Ltd
> Bus 001 Device 009: ID 046d:c52b Logitech, Inc. Unifying Receiver
> Bus 001 Device 008: ID 046d:c31c Logitech, Inc. Keyboard K120
> Bus 001 Device 007: ID 058f:9254 Alcor Micro Corp. Hub
> Bus 001 Device 005: ID 17ef:100a Lenovo ThinkPad Mini Dock Plus Series 3
> Bus 001 Device 004: ID 0a5c:217f Broadcom Corp. BCM2045B (BDC-2.1)
> Bus 001 Device 003: ID 147e:2016 Upek Biometric Touchchip/Touchstrip
> Fingerprint Sensor
> Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
> Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
>
>
> litin at x220:~$ lsusb -v
>
> Bus 002 Device 003: ID 1199:9071 Sierra Wireless, Inc.
> Couldn't open device, some information will be missing
> Device Descriptor:
>   bLength                18
>   bDescriptorType         1
>   bcdUSB               2.10
>   bDeviceClass            0 (Defined at Interface level)
>   bDeviceSubClass         0
>   bDeviceProtocol         0
>   bMaxPacketSize0        64
>   idVendor           0x1199 Sierra Wireless, Inc.
>   idProduct          0x9071
>   bcdDevice            0.06
>   iManufacturer           1
>   iProduct                2
>   iSerial                 3
>   bNumConfigurations      1
>   Configuration Descriptor:
>     bLength                 9
>     bDescriptorType         2
>     wTotalLength          190
>     bNumInterfaces          5
>     bConfigurationValue     1
>     iConfiguration          0
>     bmAttributes         0xa0
>       (Bus Powered)
>       Remote Wakeup
>     MaxPower              500mA
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        0
>       bAlternateSetting       0
>       bNumEndpoints           2
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x81  EP 1 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x01  EP 1 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        2
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  05 24 00 10 01
>       ** UNRECOGNIZED:  05 24 01 00 00
>       ** UNRECOGNIZED:  04 24 02 02
>       ** UNRECOGNIZED:  05 24 06 00 00
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x83  EP 3 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x000a  1x 10 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x82  EP 2 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x02  EP 2 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        3
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass      0
>       bInterfaceProtocol      0
>       iInterface              0
>       ** UNRECOGNIZED:  05 24 00 10 01
>       ** UNRECOGNIZED:  05 24 01 00 00
>       ** UNRECOGNIZED:  04 24 02 02
>       ** UNRECOGNIZED:  05 24 06 00 00
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x85  EP 5 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x000a  1x 10 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x84  EP 4 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x03  EP 3 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber        8
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x87  EP 7 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0008  1x 8 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x86  EP 6 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x04  EP 4 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>     Interface Descriptor:
>       bLength                 9
>       bDescriptorType         4
>       bInterfaceNumber       10
>       bAlternateSetting       0
>       bNumEndpoints           3
>       bInterfaceClass       255 Vendor Specific Class
>       bInterfaceSubClass    255 Vendor Specific Subclass
>       bInterfaceProtocol    255 Vendor Specific Protocol
>       iInterface              0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x89  EP 9 IN
>         bmAttributes            3
>           Transfer Type            Interrupt
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0008  1x 8 bytes
>         bInterval               9
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x88  EP 8 IN
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>       Endpoint Descriptor:
>         bLength                 7
>         bDescriptorType         5
>         bEndpointAddress     0x05  EP 5 OUT
>         bmAttributes            2
>           Transfer Type            Bulk
>           Synch Type               None
>           Usage Type               Data
>         wMaxPacketSize     0x0200  1x 512 bytes
>         bInterval               0
>
>
>
> And that: Couldn't open device, some information will be missing seems to be
> intriguing.
>

You should have run it as root :)

>> >> >> > I did recently change modem in my Lenovo X220 running Ubuntu 16.04
>> >> >> > to
>> >> >> > MC7455 I bought from Farnell. I did add Aleksander PPA for
>> >> >> > ModemManager on
>> >> >> > Xenial: https://launchpad.net/~aleksander-m to get newer version
>> >> >> > on
>> >> >> > MM,
>> >> >> > which should hopefully support my modem. Unfortunately I found
>> >> >> > that
>> >> >> > bug
>> >> >> > which prevents MM sending FCC auth for MC7455 is still included in
>> >> >> > code in
>> >> >> > MM 1.6.4 release:
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> > https://cgit.freedesktop.org/ModemManager/ModemManager/commit/?id=21f315f6d554b93e4f098cfd0e94c484a8a0c5dc
>> >> >> >
>> >> >> > I tried to backport given fix into MM source package for 1.6.4 on
>> >> >> > PPA
>> >> >> > but even I did so, I am not able to correctly pass FCC auth (
>> >> >> > whole
>> >> >> > MM debug
>> >> >> > is attached). May I please kindly ask Aleksander, would it be
>> >> >> > possible
>> >> >> > to update your PPA to MM 1.6.6 so I can try my modem with latest
>> >> >> > MM
>> >> >> > version?
>> >> >> > (maybe there is something else needed to get my modem to work
>> >> >> > correctly)
>> >> >> > Thank you so much.
>> >> >> >
>> >> >>
>> >> >> I don't think FCC auth is your problem, you're getting a "NoEffect"
>> >> >> error
>> >> >> and that means there is no need to send FCC auth:
>> >> >> ModemManager[2748]: <debug> [1496072816.201321]
>> >> >> [mm-broadband-modem-qmi.c:3024] dms_set_fcc_authentication_ready():
>> >> >> Couldn't
>> >> >> set FCC authentication: QMI protocol error (26): 'NoEffect'
>> >> >>
>> >> >>
>> >> >> > - I used Sierra flash tool under windows to flash latest FW and
>> >> >> > install
>> >> >> > drivers under Windows7 as I read some reports about images problem
>> >> >> > with card
>> >> >> > but without any efect.
>> >> >> >
>> >> >>
>> >> >> Oh, you should have used qmi-firmware-update, it works very well ;)
>> >> >
>> >> >
>> >> > Could you please check that I didn't mess fw images anyhow? Is the
>> >> > lsit
>> >> > in
>> >> > the MM debug ok? I read about similar problem where it was caused by
>> >> > some
>> >> > disagreement between fw and setting on the card...
>> >> >
>> >>
>> >> This is the response for "DMS List Stored Images":
>> >>
>> >> { [0] = '[ type = 'modem' maximum_images = '4' index_of_running_image
>> >> = '4' sublist = '{ [0] = '[ storage_index = '1' failure_count = '0'
>> >> unique_id = '{ [0] = '63 ' [1] = '95 ' [2] = '63 ' [3] = '0 ' [4] = '0
>> >> ' [5] = '0 ' [6] = '0 ' [7] = '0 ' [8] = '0 ' [9] = '0 ' [10] = '0 '
>> >> [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}' build_id
>> >> = '02.08.02.00_?' ] ' [1] = '[ storage_index = '2' failure_count = '0'
>> >> unique_id = '{ [0] = '63 ' [1] = '95 ' [2] = '63 ' [3] = '0 ' [4] = '0
>> >> ' [5] = '0 ' [6] = '0 ' [7] = '0 ' [8] = '0 ' [9] = '0 ' [10] = '0 '
>> >> [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}' build_id
>> >> = '02.05.07.00_?' ] ' [2] = '[ storage_index = '3' failure_count = '0'
>> >> unique_id = '{ [0] = '63 ' [1] = '95 ' [2] = '63 ' [3] = '0 ' [4] = '0
>> >> ' [5] = '0 ' [6] = '0 ' [7] = '0 ' [8] = '0 ' [9] = '0 ' [10] = '0 '
>> >> [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}' build_id
>> >> = '02.14.03.02_?' ] ' [3] = '[ storage_index = '4' fail
>> >>  ure_count = '0' unique_id = '{ [0] = '63 ' [1] = '95 ' [2] = '63 '
>> >> [3] = '0 ' [4] = '0 ' [5] = '0 ' [6] = '0 ' [7] = '0 ' [8] = '0 ' [9]
>> >> = '0 ' [10] = '0 ' [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 '
>> >> [15] = '0 '}' build_id = '02.24.03.00_?' ] '}' ] ' [1] = '[ type =
>> >> 'pri' maximum_images = '50' index_of_running_image = '1' sublist = '{
>> >> [0] = '[ storage_index = '255' failure_count = '255' unique_id = '{
>> >> [0] = '48 ' [1] = '48 ' [2] = '50 ' [3] = '46 ' [4] = '48 ' [5] = '48
>> >> ' [6] = '57 ' [7] = '95 ' [8] = '48 ' [9] = '48 ' [10] = '49 ' [11] =
>> >> '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}' build_id =
>> >> '02.08.02.00_ATT' ] ' [1] = '[ storage_index = '255' failure_count =
>> >> '255' unique_id = '{ [0] = '48 ' [1] = '48 ' [2] = '50 ' [3] = '46 '
>> >> [4] = '48 ' [5] = '50 ' [6] = '49 ' [7] = '95 ' [8] = '48 ' [9] = '48
>> >> ' [10] = '48 ' [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] =
>> >> '0 '}' build_id = '02.24.03.00_GENERIC' ] ' [2] = '[ storage_index =
>> >> '255' failure_count = '255'
>> >>   unique_id = '{ [0] = '48 ' [1] = '48 ' [2] = '50 ' [3] = '46 ' [4] =
>> >> '48 ' [5] = '49 ' [6] = '50 ' [7] = '95 ' [8] = '48 ' [9] = '48 ' [10]
>> >> = '49 ' [11] = '0 ' [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}'
>> >> build_id = '02.14.03.02_SPRINT' ] ' [3] = '[ storage_index = '255'
>> >> failure_count = '255' unique_id = '{ [0] = '48 ' [1] = '48 ' [2] = '49
>> >> ' [3] = '46 ' [4] = '48 ' [5] = '48 ' [6] = '48 ' [7] = '95 ' [8] =
>> >> '48 ' [9] = '48 ' [10] = '48 ' [11] = '0 ' [12] = '0 ' [13] = '0 '
>> >> [14] = '0 ' [15] = '0 '}' build_id = '00.00.00.00_OEMPRI918' ] ' [4] =
>> >> '[ storage_index = '255' failure_count = '255' unique_id = '{ [0] =
>> >> '48 ' [1] = '48 ' [2] = '50 ' [3] = '46 ' [4] = '48 ' [5] = '48 ' [6]
>> >> = '56 ' [7] = '95 ' [8] = '48 ' [9] = '48 ' [10] = '51 ' [11] = '0 '
>> >> [12] = '0 ' [13] = '0 ' [14] = '0 ' [15] = '0 '}' build_id =
>> >> '02.05.07.00_VERIZON' ] '}' ] '}
>> >>
>> >> Interestingly, if I'm reading this properly, you may be using the
>> >> wrong modem+PRI image pair:  seems to me you're using modem image
>> >> '02.24.03.00_?' and PRI image '02.08.02.00_ATT'; although I cannot
>> >> totally confirm that due to issues in Sierra devices like this one:
>> >> https://forum.sierrawireless.com/viewtopic.php?f=117&t=10198
>> >>
>> >> You could try to play a bit with the qmi-firmware-update tool and see
>> >> if you can flash and run an exact modem+PRI pair, just to make sure
>> >> that's not the issue.
>> >
>> >
>> > That is interesting, I think I read somewhere thread about MC7455 not
>> > coming
>> > from low power mode because of FW/PRI images mismatch. I know that you
>> > suggested me to use qmi-firmware-update tool, but I still have old hdd
>> > with
>> > original win7 somewhere. What I did was to download Generic
>> > SWI9X30C_02.24.03.00 as win exe from here:
>> >
>> >
>> > https://source.sierrawireless.com/resources/airprime/minicard/74xx/airprime-em_mc74xx-approved-fw-packages/
>> >
>> > and then I used that windows tool to flash the card. It is said there
>> > that:
>> > For Windows use the Windows EXE Download This will update both the PRI
>> > (carrier provisioning file) and the firmware. I hope that card should
>> > not be
>> > locked and therefore I used generic FW/PRI pair. I also installed the
>> > drivers on win7 but I never used the card under it. Honestly I do not
>> > even
>> > know how to configure it under windows. :-)
>> >
>> > Reading your comment about PRI to be AT&T, do you suggest to flash card
>> > again to AT&T SWI9X30C_02.20.03.00 instead generic pair?
>> >
>>
>> Both PRI and Modem images from the EXE you run are installed; but what
>> I'm not sure is whether the "index of the running image" is the
>> correct one or not. Firmware versions > 02.14 (IIRC) have this issue
>> with the "index of running image".
>>
>> Could you run this commands and send back the output?
>>
>> $ qmicli -d /dev/cdc-wdm0 -p --dms-swi-get-current-firmware
>> $ qmicli -d /dev/cdc-wdm0 -p --dms-get-firmware-preference
>
>
> litin at x220:~$ sudo qmicli -d /dev/cdc-wdm0 -p --dms-swi-get-current-firmware
> [/dev/cdc-wdm0] Successfully retrieved current firmware:
>     Model: MC7455
>     Boot version: SWI9X30C_02.24.03.00
>     AMSS version: SWI9X30C_02.24.03.00
>     SKU ID: 1102476
>     Package ID: unknown
>     Carrier ID: 1
>     Config version: 002.021_000
> litin at x220:~$ sudo qmicli -d /dev/cdc-wdm0 -p --dms-get-firmware-preference
> firmware preference successfully retrieved:
> [image 0]
>     Image type: 'modem'
>     Unique ID:  '002.021_000'
>     Build ID:   '02.24.03.00_GENERIC'
> [image 1]
>     Image type: 'pri'
>     Unique ID:  '002.021_000'
>     Build ID:   '02.24.03.00_GENERIC'
> litin at x220:~$
>
>
> so to me it seems to be ok.....
>

Yeah, these all look good.

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list