MC7455 in X220 with ModemManager 1.6.4

Aleksander Morgado aleksander at aleksander.es
Wed Jun 7 18:45:07 UTC 2017


Hey,

>>
>> > 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.

>>
>> Unfortunately, fixing the low-power issue won't be the only problem if you
>> want to run the modem in QMI mode. The MC7455 requires "raw-ip" support in
>> the Linux kernel qmi_wwan driver, and the default kernel version coming in
>> Ubuntu 16.04 is not new enough. I did prepre an additional PPA to include
>> Linux 4.4 in Ubuntu 16.04, but note that I'm really not maintaining that one
>> actively:
>>
>> https://launchpad.net/~aleksander-m/+archive/ubuntu/kernel-xenial-qmi-raw-ip
>
>
> Ubuntu 16.04.2 installs a 4.8 kernel for new installation - so I can check
> for qmi_wwan driver to be loaded and provide exact kernel version installed.
> Are there any other requirements? If so could it be possible to use DKMS to
> build that driver for maintained mainstream kernel 4.8.?
>

Oh, any kernel newer than 4.4 would be good for you. Does 16.04
install 4.8 via backports? I need to check that; the original 16.04
comes with 4.3 IIRC.

>>
>> If you want to skip the kernel problem, you may want to switch the modem
>> into MBIM mode; although I don't recall if there were missing MBIM fixes
>> that would be required for this device in Linux 4.3; but worth testing (once
>> you fix the low-power mode issue).
>
>
> What mode do you suggest? QMI or MBIM? I know that there is some password
> needed to apply some AT command to switch modes, but I didn't found exact
> procedure. Also my card seems to be kind of not branded card, bought
> directly from reseller, not delivered as part of my HW by Lenovo, so
> password might differs.
>>
>>
>> Or just switch to a newer Ubuntu version... :)
>
>
> 18.04 is unfortunately not yet here... :-)

How about 16.10 or 17.04? :)

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list