Re: [PATCH 10/10] [RFC] wifi: remove ipw2100/ipw2200 drivers

From: Stefan Lippers-Hollmann
Date: Mon Oct 23 2023 - 19:44:15 EST


Hi

On 2023-10-23, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> These two drivers were used for the earliest "Centrino" branded Intel
> laptops during the late 32-bit Pentium-M era, roughly 2003 to 2005, which
> probably makes it the most modern platform that still uses the wireless
> extension interface instead of cfg80211. Unlike the other drivers that
> are suggested for removal, this one is still officially maintained.
>
> According to Johannes Berg, there was an effort to finish the move away
> from wext in the past, but the last evidence of this that I could find
> is from commit a3caa99e6c68f ("libipw: initiate cfg80211 API conversion
> (v2)") in 2009.
>
> Link: https://lore.kernel.org/all/87fs2fgals.fsf@xxxxxxxxxx/
> Cc: Stanislav Yakovlev <stas.yakovlev@xxxxxxxxx>
> Cc: Linux Wireless <ilw@xxxxxxxxxxxxxxx>
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> I'm not convinced this should be in the same set of drivers as the
> rest, since this is clearly less obsolete than the other hardware
> that I would remove support for.

These have indeed been very common back in the day, I'm still using
a 2003-vintage 1.5 GHz Pentium-M 'Banias' Acer Travelmate 292LMi
notebook using ipw2200 (and have two spare ipw2200 mini-PCI cards).
Works still fine using v6.5.8-rc1 and WPA2PSK/ CCMP (sadly it does
not do WPA3) and I do use it semi-regularly (running the latest
stable- or stable-rc kernel of the day).

While it would be nice to replace it with an ath5k based card (to
get WPA3 support), the card isn't that easy to reach in the notebook,
so it would be sad to see this go.

Host/Kernel/OS "acer-292lmi" running Linux 6.5.8-rc1 i686 [ Debian GNU/Linux trixie/sid ]
System Acer TravelMate 290
CPU Info Intel Pentium M 1024 KB cache flags( sse2 ) clocked at [ 1400.000 MHz ]
Videocard Advanced Micro Devices, [AMD/ATI] RV350/M10 / RV360/M11 [Mobility Radeon 9600 (PRO) / 9700] X.Org 1.23.2.1 [ 1024x768@60.00hz ]
Network cards Realtek RTL-8100/8101L/8139 PCI Fast Ethernet Adapter, at port: a000
Intel PRO/Wireless 2200BG [Calexico2] Network Connection
Processes 131 | Uptime 3:16 | Memory 125.2/493.1MB | HDD IC25N060ATMR04-0 Size 60GB (67%used) | GLX Renderer llvmpipe (LLVM 16.0.6, 128 bits) | GLX Version Yes

Yes, this is an old and slow system, but it's there, functional and
I rarely need a mobile notebook (my desktops are more current and
64 bit capable).

02:02.0 Network controller [0280]: Intel Corporation PRO/Wireless 2200BG [Calexico2] Network Connection [8086:4220] (rev 05)
Subsystem: Intel Corporation WM3B2200BG Mini-PCI Card [8086:2701]
Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 128 (750ns min, 6000ns max)
Interrupt: pin A routed to IRQ 10
Region 0: Memory at d0000000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME-
Kernel driver in use: ipw2200
Kernel modules: ipw2200

[ 0.000000] Linux version 6.5.8-rc1 (s.l-h@xxxxxx) (gcc-13 (Debian 13.2.0-5) 13.2.0, GNU ld (GNU Binutils for Debian) 2.41) #1 SMP PREEMPT_DYNAMIC 6.5-13 (2023-10-17)
...
[ 23.886128] lib80211: common routines for IEEE802.11 drivers
[ 23.886133] lib80211_crypt: registered algorithm 'NULL'
[ 24.051575] libipw: 802.11 data/management/control stack, git-1.1.13
[ 24.051586] libipw: Copyright (C) 2004-2005 Intel Corporation <jketreno@xxxxxxxxxxxxxxx>
...
[ 24.735203] ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.2kmprq
[ 24.735221] ipw2200: Copyright(c) 2003-2006 Intel Corporation
[ 24.735825] ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
...
[ 25.007359] ipw2200: Detected geography ZZE (13 802.11bg channels, 19 802.11a channels)
...
[ 27.027578] ipw2200 0000:02:02.0 wlp2s2: renamed from eth0
...
[ 29.571384] NET: Registered PF_PACKET protocol family
...
[ 42.603676] warning: `wpa_supplicant' uses wireless extensions which will stop working for Wi-Fi 7 hardware; use nl80211
[ 44.196736] lib80211_crypt: registered algorithm 'CCMP'

# iwconfig wlp2s2
wlp2s2 IEEE 802.11 ESSID:"xxx"
Mode:Managed Frequency:2.412 GHz Access Point: xx:xx:xx:xx:xx:xx
Bit Rate:54 Mb/s Tx-Power=20 dBm Sensitivity=8/0
Retry limit:7 RTS thr:off Fragment thr:off
Encryption key:xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx-xxxx Security mode:open
Power Management:off
Link Quality=0/100 Signal level=-28 dBm Noise level=-89 dBm
Rx invalid nwid:0 Rx invalid crypt:6 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:100

# wpa_cli status
Selected interface 'wlp2s2'
bssid=xx:xx:xx:xx:xx:xx
freq=0
ssid=xxx
id=1
id_str=xxx
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=172.22.2.1
address=xx:xx:xx:xx:xx:xx
uuid=xxx

(performance against a wifi6 (ipq8071a AP isn't that great, but it works)

$ iperf3 -c 172.21.4.1
Connecting to host 172.21.4.1, port 5201
[ 5] local 172.22.2.1 port 45288 connected to 172.21.4.1 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.97 MBytes 16.6 Mbits/sec 0 110 KBytes
[ 5] 1.00-2.00 sec 1.74 MBytes 14.6 Mbits/sec 0 163 KBytes
[ 5] 2.00-3.00 sec 1.68 MBytes 14.1 Mbits/sec 0 163 KBytes
[ 5] 3.00-4.00 sec 1.68 MBytes 14.1 Mbits/sec 0 163 KBytes
[ 5] 4.00-5.00 sec 1.86 MBytes 15.6 Mbits/sec 0 163 KBytes
[ 5] 5.00-6.00 sec 1.49 MBytes 12.5 Mbits/sec 0 163 KBytes
[ 5] 6.00-7.00 sec 1.86 MBytes 15.6 Mbits/sec 0 163 KBytes
[ 5] 7.00-8.00 sec 1.93 MBytes 16.2 Mbits/sec 0 228 KBytes
[ 5] 8.00-9.00 sec 1.49 MBytes 12.5 Mbits/sec 0 228 KBytes
[ 5] 9.00-10.00 sec 1.99 MBytes 16.7 Mbits/sec 0 228 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 17.7 MBytes 14.8 Mbits/sec 0 sender
[ 5] 0.00-10.13 sec 17.2 MBytes 14.3 Mbits/sec receiver

iperf Done.

$ iperf3 -c 172.21.4.1 --reverse
Connecting to host 172.21.4.1, port 5201
Reverse mode, remote host 172.21.4.1 is sending
[ 5] local 172.22.2.1 port 52246 connected to 172.21.4.1 port 5201
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.04 sec 1.88 MBytes 15.1 Mbits/sec
[ 5] 1.04-2.04 sec 1.75 MBytes 14.8 Mbits/sec
[ 5] 2.04-3.03 sec 1.62 MBytes 13.7 Mbits/sec
[ 5] 3.03-4.05 sec 1.75 MBytes 14.5 Mbits/sec
[ 5] 4.05-5.03 sec 1.75 MBytes 14.9 Mbits/sec
[ 5] 5.03-6.06 sec 1.88 MBytes 15.3 Mbits/sec
[ 5] 6.06-7.05 sec 1.75 MBytes 14.8 Mbits/sec
[ 5] 7.05-8.01 sec 1.75 MBytes 15.3 Mbits/sec
[ 5] 8.01-9.03 sec 1.88 MBytes 15.4 Mbits/sec
[ 5] 9.03-10.02 sec 1.75 MBytes 14.8 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.46 sec 21.4 MBytes 17.1 Mbits/sec 0 sender
[ 5] 0.00-10.02 sec 17.8 MBytes 14.9 Mbits/sec receiver

iperf Done.

While I'll cope if ipw2200 goes away (giving me the impetus to replace
the ipw2200 card with ath5k - or at least to use an ar5212/ar2414 ath5k
or bcm4306/2 b43 32 bit PCMCIA/ cardbus card (inconvenient, with the
antenna sticking out) until then), these have been so ubiquitous in
their days that there will be quite a few surviving specimens around
(and this one is actually still in semi-regular use with current
kernels/ userland, not daily, but 2-3+ times a month, mostly for
isolated firstboot configuration of various networking gear).

Regards
Stefan Lippers-Hollmann