FCC unlock procedure updates in ModemManager 1.18.4

If you own a laptop (Dell, HP, Lenovo) with a WWAN module, it is very likely that the modules are FCC-locked on every boot, and the special FCC unlock procedure needs to be run before they can be used.

Until ModemManager 1.18.2, the procedure was automatically run for the FCC unlock procedures we knew about, but this will no longer happen. Once 1.18.4 is out, the procedure will need to be explicitly enabled by each user, under their own responsibility, or otherwise implicitly enabled after installing an official FCC unlock tool provided by the manufacturer itself.

See a full description of the rationale behind this change in the ModemManager documentation site and the suggested code changes in the gitlab merge request.

If you want to enable the ModemManager provided unofficial FCC unlock tools once you have installed 1.18.4, run (assuming sysconfdir=/etc and datadir=/usr/share) this command (*):

sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

The user-enabled tools in /etc should not be removed during package upgrades, so this should be a one-time setup.

(*) Updated to have one single command instead of a for loop; thanks heftig!


Posted on November 18, 2021, in Development, FreeDesktop Planet, GNOME Planet, Planets and tagged , , , . Bookmark the permalink. 6 Comments.

  1. sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/*

    Should do this in a single command, and without the hazardous “for x in $(ls …)”

  2. I knew there was some way to do this without the for, thanks! will update post and doc

  3. You can do the same for the single-script case in the docs:

    sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/:

    Which avoids having to specify : twice and a possible typo.

    (I’m not sure why you escaped the colon.)

  4. Ugh. WordPress comment formatting is horrible, and I can’t even preview the result or edit the comment.

    sudo ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/<vid>:<pid>
  5. Thanks! also updated

  6. For some reason, on a Debian testing, I had to manually install libqmi-utils, which was missing and preventing the FCC unlock script from completion. The script (at least the one I need, for a Lenovo laptop) uses qmicli and it is in libqmi-utils.

    The package should be a dependency in Debian, and perhaps there should be a check in the script for the presence of qmicli and in case of its absence, a meaningful message in the modemmanager log?

    Should I report this on the modemmanager gitlab, or in the Debian bugreports? Thanks for the work on modemmanager.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: