WifiOnICE @ DB with Linux and my Lenovo X260
I’m writing this while travelling with Deutsche Bahn to Munich, when I was haunted by longly forgotten memories of manual WiFi configurations and tweaking sessions: I had a hard time connecting my Lenovo X260 (with Fedora Linux) to the ICE’s on-board WiFi network.
First problem: deauthentications
First I realized that the my notebook was reconnecting all the time. Digging into
syslog (dmesg -w
), I saw lots of PREV_AUTH_NOT_VALID
messges showing up:
[ 729.081994] wlp4s0: deauthenticated from dc:77:4c:3f:7d:70 (Reason: 2=PREV_AUTH_NOT_VALID)
Doing a quick search on the internet, I found out that this seems to be a driver
issue in the intel wifi driver. Setting the 11n_disable
option of the iwlwifi
driver fixed the problem for me. Create a file /etc/modprobe.d/iwlwifi.conf
with the following contents
options iwlwifi 11n_disable=1
and restart the driver afterwards with sudo rmmod iwlmvm && sudo insmod iwlwifi
. After that, the deauthentication problems were gone. But I still
had no network access…
Second problem: docker IP address collision
After the driver problem was solved and I got a connection and an IP address, I
I recognized that my docker network configuration collides with the IP range of
the DB WLAN in the ICE. Both used IP addresses in the 172.18.0.0/16
range.
That can be changed by modifiying /etc/docker/daemon.json
to something like:
{
"default-address-pools": [
{"base": "10.10.0.0/16", "size": 24}
]
}
That instructs docker to use IP addresses from the given 10.10.0.0/16
range.
After that, make sure that you restart the docker daemon and optionally
discard any existing docker networks with e.g.:
$ docker network list
$ docker network prune
Check the docker networks with docker network inspect
to make sure there are
no 172.18.0.0/16
addresses being used anymore.
Finally we have a running WiFi connection.
For today, I will not do further research on performance implications the
iwlwifi
setting has, or what the root cause of the problem is (bugs,
incompatibilities or a
deauther?), because fixing the
problem already took most of my travel time. Tested with Fedora 38, Kernels 6.2
and 6.3.