Zach Into 2020

How I got LTE working on my X1 Carbon (7th Gen) ThinkPad on Arch Linux

Note: does not work automatically through suspends. After resuming from a suspend, I need to run the following and wait a bit for the modem to show up again (as root):

setpci -s "0000:00:1c.0" "CAP_EXP+10.w=0052"
printf "%s" "\_SB_.PCI0.RP01.PXSX._RST" > /proc/acpi/call

I have struggled to get LTE working in Arch Linux on my new X1 Carbon (7th Gen) on Arch Linux. Thanks to @pradyungn on the Hack Club Slack for helping me out with this.

This is what ultimately worked for me:

$ uname -r
5.6.14-arch1-1

Install kernel module to convert modem to USB mode permanently on Linux:

  1. Clone https://github.com/juhovh/xmm7360_usb
  2. make && sudo make install && sudo modprobe xmm7360_usb
  3. After modem boots into USB mode, unlock modem and set to MBIM mode (whatever that is, _this step is taken from xmm7360_usb‘s README)
$ sudo screen /dev/ttyACM0

…then type in, one line at a time, the following:

at@nvm:fix_cat_fcclock.fcclock_mode?
at@nvm:fix_cat_fcclock.fcclock_mode=0
at@store_nvm(fix_cat_fcclock)
AT+GTUSBMODE?
AT+GTUSBMODE=7
AT+CFUN?
AT+CFUN=15

If you have previously messed around with ModemManager trying to get LTE working, make sure that ModemManager.service is not running because it will mess with your ability to run the above commands.

Now set it up with your system. You must be using NetworkManager to manage your computer’s networking for the following steps to work. I switched from using netctl to NetworkManager to get this to work (I couldn’t figure out the configuration files for netctl).

  1. Install modemmanager and modem-manager-gui
  2. Run sudo systemctl enable --now ModemManager
  3. Launch Modem Manager GUI. You should see something like the following:

    If you do, green light. Good signs so far.

  4. Run nm-connection-editor, create a new Mobile Broadband network, and follow the steps for your SIM card
  5. Run nmtui > Activate a connection > Activate the LTE connection you just set it.

It should all be working now! At least it did for me by this point.

Notes: I also tried manually following the steps in https://github.com/xmm7360/xmm7360-usb-modeswitch and couldn’t figure it out, likely an issue on my end. I also tried out https://github.com/xmm7360/xmm7360-pci and similarly struggled to get it working.

Leave a Reply

Your email address will not be published. Required fields are marked *