MC7455 in X220 with ModemManager 1.6.4

Aleksander Morgado aleksander at aleksander.es
Thu Jun 8 08:09:33 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.
>
>
> 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


>
>>
>> >>
>> >> 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.
>
>
> You do not need backports to get 4.8. under Ubuntu 16.04. New installation
> of 16.04.2 will install 4.8 as default. You can also update from 4.4. on
> older 16.04.1 installation by updating HWE - find description for example
> here:
>
> https://askubuntu.com/questions/885054/upgrade-16-04-2-lts-to-kernel-version-4-8
>

Ah! I didn't know this, super useful, thanks.

>> >> 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? :)
>
>
> eee 17.04 is not LTS and I prefer to use my NB after the setup pain is gone
> for as long as possible. :-)
>

As an Arch Linux user, I have no idea what setup pain you're talking about ;)

-- 
Aleksander
https://aleksander.es


More information about the ModemManager-devel mailing list