LTE With OpenBSD on a ThinkPad X280

A neat feature of the ThinkPad X280 is the embedded LTE modem. The modem is supported on OpenBSD out-of-the-box. To make use of it I ordered a SIM card from my local provider sipgate and put it into the SIM tray on the back of the laptop base.

OpenBSD has recognized the modem device right away:

umb0 at uhub0 port 6 configuration 1 interface 0 "FIBOCOM L830-EB-00" rev 2.00/3.33 addr 6
umodem0 at uhub0 port 6 configuration 1 interface 2 "FIBOCOM L830-EB-00" rev 2.00/3.33 addr 6
umodem0: data interface 3, has no CM over data, has break
umodem0: status change notification available

The device is controlled via ifconfig and named umb0 - checkout man umb for infos.

% ifconfig umb0
umb0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
        index 8 priority 6 llprio 3
        roaming disabled registration not registered
        state open cell-class none
        SIM not initialized PIN valid (3 attempts left)
        device L830-EB v1.0.1 IMEI xxxxxxxxx firmware 18300.1002.00.01.01.25
        status: down

To initialize the SIM I provided the APN and the PIN:

% doas ifconfig umb0 apn sipgate
% doas ifconfig umb0 pin 0000
% ifconfig umb0
umb0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
        index 8 priority 6 llprio 3
        roaming disabled registration not registered
        state open cell-class none
        SIM not initialized PIN valid (3 attempts left)
        device L830-EB v1.0.1 IMEI xxxxxxxxx firmware 18300.1002.00.01.01.25
        APN sipgate
        status: down

I tried connecting, but somehow the status didn’t change:

% ifconfig umb0 up
% ifconfig umb0
umb0: flags=8811<UP,POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
        index 8 priority 6 llprio 3
        roaming disabled registration roaming network
        state attached cell-class LTE rssi -107dBm speed 47.7Mbps up 286Mbps down
        SIM not initialized PIN valid (3 attempts left)
        device L830-EB v1.0.1 IMEI xxxxxxxxx firmware 18300.1002.00.01.01.25
        APN sipgate provider sipgate provider-id 26203
        status: down

Turns out I needed to enable roaming (probably because of my physical location) in order to connect to the LTE network:

% doas ifconfig umb0 down
% doas ifconfig umb0 roaming
% ifconfig umb0
umb0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500
        index 8 priority 6 llprio 3
        roaming enabled registration not registered
        state open cell-class none speed 47.7Mbps up 286Mbps down
        SIM not initialized PIN valid (3 attempts left)
        device L830-EB v1.0.1 IMEI xxxxxxxxx firmware 18300.1002.00.01.01.25
        APN sipgate
        status: down

With the next connection attempt it suceeded and the X280 can now go online, whenever I want it to, without tethering with my smartphone.

% doas ifconfig umb0 up
% ifconfig umb0
umb0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        index 8 priority 6 llprio 3
        roaming enabled registration roaming network
        state up cell-class LTE rssi -97dBm speed 47.7Mbps up 286Mbps down
        SIM initialized PIN valid (3 attempts left)
        subscriber-id xxxxxxxxx ICC-id xxxxxxxxx
        device L830-EB v1.0.1 IMEI xxxxxxxxx firmware 18300.1002.00.01.01.25
        APN sipgate provider sipgate provider-id 26203
        dns 212.9.60.126 217.116.116.254
        groups: egress
        status: active
        inet 10.24.128.49 --> 10.24.128.1 netmask 0xffff0000

Some quick tests:

% curl ifconfig.co
93.224.xxx.xxx
% ping -c1 openbsd.org
PING openbsd.org (199.185.178.80): 56 data bytes
64 bytes from 199.185.178.80: icmp_seq=0 ttl=245 time=159.958 ms

--- openbsd.org ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 159.958/159.958/159.958/0.000 ms

For future usage, I defined two zsh aliases in my ~/.zshrc:

alias lteup="doas ifconfig umb0 apn sipgate pin 0000 roaming up"
alias ltedown="doas ifconfig umb0 down"

In essence, I was quite suprised how easy it is to connect to LTE with my X280 ThinkPad on OpenBSD - no driver issues, no ppp configuration, just plain ifconfig up & down. Nice.