different sizes… different standards… every year? why?

  • it is hard to find wifi cards that are supported by open source drivers
  • even worse: there seems to be NOT A SINGLE wifi card vendor, that makes the firmware public (why actually?)

SIMPLIFY! SIMPLIFY! SIMPLIFY!

or end up in “THE-MASSIVE-MESS-OF-USB-CABLE-PLUG-STANDARDS”

USB Cable Salad of Madness – USB 3.0 and WiFi interference – Micro-USB USB-C mess has finally arrived

possible alternative (not for notebooks, but for workstations/PCs): PC <-LAN-> Wifi AP-Bridge <-> Wifi <-> Internet

Wifi Accesspoint that connects to another Wifi Accesspoint (Client-Bridge) – TP-Link can do that – WLAN AdHoc Client Bridge with tp-link tl-wr841nd v11 – use wifi router as wifi usb adapter

in search for a replacement for the card on the very left: (keywords are: wifi atheros 2230) or (RTL8852AE 2230)

ONLY BUY FROM HARDWARE VENDORS THAT SUPPORT FREE & OPEN SOURCE SOFTWARE!

finding the right open source supported wifi chipset, dongle, or network card, IS HARD.

  • sometimes the only option is – to remove the internal wifi card and replace it with an external usb dongle
  • this article tries to make things easier, to provide info “what worked”.

“Currently there are only a few modern wifi chipsets readily available that work with free software systems”
For USB wifi devices this list includes the:

  • Realtek RTL8187B chipset (802.11G)
  • Atheros AR5B95
  • Atheros AR9382
  • what is said to be pretty well supported by gnu linux kernel (and kali) (UNTESTED!) is USB WIFI Sticks from ALFA
    • tested: the ALFA Networks AWUS036ACS / AC600 / 802.11ac, 2.4/5GHz, USB WLAN Adapter, does NOT work out of the box with Debian (free or non-free) which
      • the Edimax (Realtek RTL8187B chipset (802.11G)) does!
  • GNU Linux Debian 11 (64Bit) comes with those drivers:
    • tree /usr/lib/modules/5.10.0-13-amd64/kernel/drivers/net/wireless
      ├── admtek
      │   └── adm8211.ko
      ├── ath
      │   ├── ar5523
      │   │   └── ar5523.ko
      │   ├── ath10k
      │   │   ├── ath10k_core.ko
      │   │   ├── ath10k_pci.ko
      │   │   └── ath10k_usb.ko
      │   ├── ath11k
      │   │   ├── ath11k.ko
      │   │   └── ath11k_pci.ko
      │   ├── ath5k
      │   │   └── ath5k.ko
      │   ├── ath6kl
      │   │   ├── ath6kl_core.ko
      │   │   ├── ath6kl_sdio.ko
      │   │   └── ath6kl_usb.ko
      │   ├── ath9k
      │   │   ├── ath9k_common.ko
      │   │   ├── ath9k_htc.ko
      │   │   ├── ath9k_hw.ko
      │   │   └── ath9k.ko
      │   ├── ath.ko
      │   ├── carl9170
      │   │   └── carl9170.ko
      │   └── wil6210
      │       └── wil6210.ko
      ├── atmel
      │   ├── at76c50x-usb.ko
      │   ├── atmel_cs.ko
      │   ├── atmel.ko
      │   └── atmel_pci.ko
      ├── broadcom
      │   ├── b43
      │   │   └── b43.ko
      │   ├── b43legacy
      │   │   └── b43legacy.ko
      │   └── brcm80211
      │       ├── brcmfmac
      │       │   └── brcmfmac.ko
      │       ├── brcmsmac
      │       │   └── brcmsmac.ko
      │       └── brcmutil
      │           └── brcmutil.ko
      ├── cisco
      │   ├── airo_cs.ko
      │   └── airo.ko
      ├── intel
      │   ├── ipw2x00
      │   │   ├── ipw2200.ko
      │   │   └── libipw.ko
      │   ├── iwlegacy
      │   │   ├── iwl3945.ko
      │   │   ├── iwl4965.ko
      │   │   └── iwlegacy.ko
      │   └── iwlwifi
      │       ├── dvm
      │       │   └── iwldvm.ko
      │       ├── iwlwifi.ko
      │       └── mvm
      │           └── iwlmvm.ko
      ├── intersil
      │   ├── hostap
      │   │   ├── hostap_cs.ko
      │   │   ├── hostap.ko
      │   │   ├── hostap_pci.ko
      │   │   └── hostap_plx.ko
      │   ├── orinoco
      │   │   ├── orinoco_cs.ko
      │   │   ├── orinoco.ko
      │   │   ├── orinoco_nortel.ko
      │   │   ├── orinoco_plx.ko
      │   │   ├── orinoco_tmd.ko
      │   │   ├── orinoco_usb.ko
      │   │   └── spectrum_cs.ko
      │   └── p54
      │       ├── p54common.ko
      │       ├── p54pci.ko
      │       └── p54usb.ko
      ├── mac80211_hwsim.ko
      ├── marvell
      │   ├── libertas
      │   │   ├── libertas_cs.ko
      │   │   ├── libertas.ko
      │   │   ├── libertas_sdio.ko
      │   │   └── usb8xxx.ko
      │   ├── libertas_tf
      │   │   ├── libertas_tf.ko
      │   │   └── libertas_tf_usb.ko
      │   ├── mwifiex
      │   │   ├── mwifiex.ko
      │   │   ├── mwifiex_pcie.ko
      │   │   ├── mwifiex_sdio.ko
      │   │   └── mwifiex_usb.ko
      │   └── mwl8k.ko
      ├── mediatek
      │   ├── mt76
      │   │   ├── mt76.ko
      │   │   ├── mt76-usb.ko
      │   │   ├── mt76x0
      │   │   │   ├── mt76x0-common.ko
      │   │   │   ├── mt76x0e.ko
      │   │   │   └── mt76x0u.ko
      │   │   ├── mt76x02-lib.ko
      │   │   ├── mt76x02-usb.ko
      │   │   └── mt76x2
      │   │       ├── mt76x2-common.ko
      │   │       ├── mt76x2e.ko
      │   │       └── mt76x2u.ko
      │   └── mt7601u
      │       └── mt7601u.ko
      ├── ralink
      │   └── rt2x00
      │       ├── rt2400pci.ko
      │       ├── rt2500pci.ko
      │       ├── rt2500usb.ko
      │       ├── rt2800lib.ko
      │       ├── rt2800mmio.ko
      │       ├── rt2800pci.ko
      │       ├── rt2800usb.ko
      │       ├── rt2x00lib.ko
      │       ├── rt2x00mmio.ko
      │       ├── rt2x00pci.ko
      │       ├── rt2x00usb.ko
      │       ├── rt61pci.ko
      │       └── rt73usb.ko
      ├── ray_cs.ko
      ├── realtek
      │   ├── rtl818x
      │   │   ├── rtl8180
      │   │   │   └── rtl818x_pci.ko
      │   │   └── rtl8187
      │   │       └── rtl8187.ko
      │   ├── rtl8xxxu
      │   │   └── rtl8xxxu.ko
      │   ├── rtlwifi
      │   │   ├── btcoexist
      │   │   │   └── btcoexist.ko
      │   │   ├── rtl8188ee
      │   │   │   └── rtl8188ee.ko
      │   │   ├── rtl8192c
      │   │   │   └── rtl8192c-common.ko
      │   │   ├── rtl8192ce
      │   │   │   └── rtl8192ce.ko
      │   │   ├── rtl8192cu
      │   │   │   └── rtl8192cu.ko
      │   │   ├── rtl8192de
      │   │   │   └── rtl8192de.ko
      │   │   ├── rtl8192ee
      │   │   │   └── rtl8192ee.ko
      │   │   ├── rtl8192se
      │   │   │   └── rtl8192se.ko
      │   │   ├── rtl8723ae
      │   │   │   └── rtl8723ae.ko
      │   │   ├── rtl8723be
      │   │   │   └── rtl8723be.ko
      │   │   ├── rtl8723com
      │   │   │   └── rtl8723-common.ko
      │   │   ├── rtl8821ae
      │   │   │   └── rtl8821ae.ko
      │   │   ├── rtl_pci.ko
      │   │   ├── rtl_usb.ko
      │   │   └── rtlwifi.ko
      │   └── rtw88
      │       ├── rtw88_8723de.ko
      │       ├── rtw88_8723d.ko
      │       ├── rtw88_8821ce.ko
      │       ├── rtw88_8821c.ko
      │       ├── rtw88_8822be.ko
      │       ├── rtw88_8822b.ko
      │       ├── rtw88_8822ce.ko
      │       ├── rtw88_8822c.ko
      │       ├── rtw88_core.ko
      │       └── rtw88_pci.ko
      ├── rndis_wlan.ko
      ├── rsi
      │   ├── rsi_91x.ko
      │   └── rsi_usb.ko
      ├── wl3501_cs.ko
      └── zydas
          ├── zd1201.ko
          └── zd1211rw
              └── zd1211rw.ko
      

      the taped pin 20 “hack”

      some cards refuse to work “airplane mode” on and can’t be switched off, taping the pin 20 helps:

  • Atheros AR9170 chipset (802.11N)
  • For Mini PCIe all cards with an Atheros chipset are supported

Wifi has always been a problem for free software users. USB Wifi cards are becoming less free. With the older 802.11G standard many USB wifi cards had free drivers and did not require non-free firmware. With 802.11N there is only one chipset on the market, from Atheros, which is completely free.

One company which specializes in free software and sells 802.11N USB wifi cards, ThinkPenguin.com, has indicated the availability of free software supported 802.11N USB wifi cards is disappearing. Solving this problem will require more demand than currently exists.

src: https://wiki.debian.org/WiFi

had to swap the Wifi card on both LibreBooted Lenovo x60s for Atheros ar5b95 Wireless WiFi WLAN Karte für HP g42 cq42 g62 cq62 580101-002 PCI-E Mini PCIE

(this Debian non-free package is NOT needed, here are the sources of ath9k)


hostnamectl; # tested on
# o with hardware: giada f300
# oo with only one pigtail wifi antenna attached
# (two are better to boost db reception but one is sufficient
# for close range wifi)
Operating System: Debian GNU/Linux 10 (buster)
Kernel: Linux 4.19.0-8-amd64 Architecture: x86-64 

# get it here: https://ftp.halifax.rwth-aachen.de/debian-cd/10.3.0/amd64/iso-cd/debian-10.3.0-amd64-netinst.iso
# Debian is just lovely! :)
# (also thanks to Ubuntu and all involved for supporting Debian)
dmesg | grep ieee80211
ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'
[   13.980950] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xffffa316c12c0000, irq=16

dmesg | grep ath9k
[   14.001447] ath9k 0000:03:00.0 wlp3s0: renamed from wlan0

lsmod|grep ath
ath9k                 135168  0
ath9k_common           20480  1 ath9k
ath9k_hw              483328  2 ath9k_common,ath9k
ath                    36864  3 ath9k_common,ath9k,ath9k_hw
mac80211              835584  1 ath9k
cfg80211              774144  4 ath9k_common,ath9k,ath,mac80211

then it works like a charm.

(they do not exactly fit… the original ones are “longer” thus help yourself with some non-conducting tape)

did a test setup of Trisquel 8.0 (Richard Stallman is using this! Why is it Ubuntu based (which again is Debian based)? we don’t know) on Lenovo t440 and works quiet well… except (again) the wifi (no open source drivers for the Intel Corporation Wireless 7260 (rev 83))

https://ark.intel.com/content/www/us/en/ark/products/75174/intel-wireless-n-7260.html

it is really a pain in the a… that there are so many: Board Form Factor: in this case it is a PCIe Half Mini Card/ M.2″ (whatever that means… it means it is very very small X-D more on form factors)

… now looking for an alternative to this card.

also: did not know the lenovo t440 has TWO (!) batteries. One is fixed inside the case, the other is removable and then (of course) there is the CMOS battery.

so it has 3x Batteries if you count the CMOS as well.

lspci -vvv
# says have this intel wifi installed: 

03:00.0 Network controller: Intel Corporation Wireless 7260 (rev 83)
	Subsystem: Intel Corporation Dual Band Wireless-AC 7260
	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- 
	Kernel driver in use: iwlwifi
	Kernel modules: iwlwifi

all chipsets supported by driver: ath9k

PCI: 168C:0023 Qualcomm Atheros AR5416 Wireless Network Adapter [AR5008 802.11(a)bgn]
PCI: 168C:0024 Qualcomm Atheros AR5418 Wireless Network Adapter [AR5008E 802.11(a)bgn] (PCI-Express)
PCI: 168C:0027 Qualcomm Atheros AR9160 Wireless Network Adapter [AR9001 802.11(a)bgn]
PCI: 168C:0029 Qualcomm Atheros AR922X Wireless Network Adapter
PCI: 168C:002A Qualcomm Atheros AR928X Wireless Network Adapter (PCI-Express)
PCI: 168C:002B Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express)
PCI: 168C:002C Qualcomm Atheros AR2427 802.11bg Wireless Network Adapter (PCI-Express)
PCI: 168C:002D Qualcomm Atheros AR9227 Wireless Network Adapter
PCI: 168C:002E Qualcomm Atheros AR9287 Wireless Network Adapter (PCI-Express)
PCI: 168C:0030 Qualcomm Atheros AR93xx Wireless Network Adapter
PCI: 168C:0032 Qualcomm Atheros AR9485 Wireless Network Adapter
PCI: 168C:0033 Qualcomm Atheros AR9580 Wireless Network Adapter
PCI: 168C:0034 Qualcomm Atheros AR9462 Wireless Network Adapter
PCI: 168C:0036 Qualcomm Atheros QCA9565 / AR9565 Wireless Network Adapter
PCI: 168C:0037 Qualcomm Atheros AR9485 Wireless Network Adapter

src: https://wiki.debian.org/ath9k

how to get info on driver used

lsmod|grep rtl8192cu
rtl8192cu              81920  0
rtl_usb                24576  1 rtl8192cu
rtl8192c_common        65536  1 rtl8192cu
rtlwifi               102400  3 rtl8192c_common,rtl_usb,rtl8192cu
mac80211              983040  3 rtl_usb,rtl8192cu,rtlwifi
usbcore               323584  9 xhci_hcd,ehci_pci,usbhid,rtl_usb,rtl8192cu,cdc_acm,uvcvideo,ehci_hcd,xhci_pci

modinfo rtl8192cu
filename:       /lib/modules/5.10.0-14-amd64/kernel/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rtl8192cu.ko
firmware:       rtlwifi/rtl8192cufw_TMSC.bin
firmware:       rtlwifi/rtl8192cufw_B.bin
firmware:       rtlwifi/rtl8192cufw_A.bin
firmware:       rtlwifi/rtl8192cufw.bin
description:    Realtek 8192C/8188C 802.11n USB wireless
license:        GPL
author:         xxxxxxxx
author:         xxxxxxxx
author:         xxxxxxxx
alias:          usb:v7392p7822d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2357p0100d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v20F4p624Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pAB2Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p330Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p330Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p3309d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p3307d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0E66p0019d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0061d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8186d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p17ABd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0846pF001d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0846p9021d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07B8p8178d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07AAp0056d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0586p341Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp2103d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp2102d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp1004d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019p1201d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFFCd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFFBd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF8d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFFAd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF9d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v04F2pAFF7d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp317Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v9846p9041d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v4855p0091d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v4855p0090d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3359d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3358d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v7392p7811d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v20F4p648Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pED17d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pAB2Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019pAB2Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2019p4902d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v2001p3308d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v13D3p3357d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v103Cp1629d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v4856p0091d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0EB0p9071d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0077d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0070d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p005Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0DF6p0052d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp5088d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0B05p17BAd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0846p9043d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0846p9041d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07B8p8189d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v07B8p8188d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v06F8pE033d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp11F2d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v050Dp1102d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Cd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8178d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8754d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp819Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp818Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Fd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Ed*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Dd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Bd*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp817Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8177d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8176d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8170d*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp018Ad*dc*dsc*dp*ic*isc*ip*in*
alias:          usb:v0BDAp8191d*dc*dsc*dp*ic*isc*ip*in*
depends:        mac80211,rtlwifi,rtl8192c-common,rtl_usb,usbcore
retpoline:      Y
intree:         Y
name:           rtl8192cu
vermagic:       5.10.0-14-amd64 SMP mod_unload modversions 
sig_id:         PKCS#7
signer:         Debian Secure Boot CA
sig_key:        4B:6E:F5:AB:CA:66:98:25:17:8E:05:2C:84:66:7C:CB:C0:53:1F:8C
sig_hashalgo:   sha256
signature:      B0:E8:49:24:F1:E4:6A:F6:81:35:D4:6E:90:E9:E7:5B:EA:71:89:3B:
		1F:78:E2:B6:D6:6B:B9:13:55:ED:6E:F2:61:02:36:91:6D:B2:B7:32:
		75:8C:BE:D6:3E:37:7E:5E:EC:AE:38:19:CF:F3:78:97:FD:09:28:98:
		64:97:52:B1:AA:42:1F:23:25:1B:4A:6D:98:B8:26:D5:AA:5A:7F:34:
		1C:5B:5E:78:88:29:14:88:20:7D:79:A0:73:68:08:53:99:7B:44:4B:
		15:90:CB:BD:EF:91:31:70:83:80:43:93:E8:45:2E:CC:F0:41:E9:62:
		FE:2A:A4:2C:06:E9:EB:80:34:E4:49:48:C5:65:76:13:91:66:1F:18:
		06:AB:06:EC:15:DA:9A:39:B2:6A:65:74:30:2E:AB:3E:FA:5C:BA:E3:
		D0:27:8B:6B:86:87:24:C5:37:DC:8A:C6:97:FA:AD:14:87:B4:76:55:
		71:88:FE:92:34:17:61:43:F2:72:E6:F2:D7:DE:3C:48:17:66:62:05:
		65:B2:B8:42:38:D4:59:CA:BC:6C:DA:CB:30:01:FF:D6:BA:F0:B7:0C:
		90:94:E6:27:1A:26:E4:2E:87:39:D8:FA:0B:BA:3E:51:EC:D8:B5:CD:
		3A:46:F5:AF:0E:5C:BD:44:80:79:C8:13:62:F1:0F:84
parm:           swenc:Set to 1 for software crypto (default 0)
 (bool)
parm:           debug_level:Set debug level (0-5) (default 0) (int)
parm:           debug_mask:Set debug mask (default 0) (ullong)

Links:

Finding a WIFI Adapter for GNU Linux Debian (not easy) UPDATE

Debian Linux Wifi connect config setup from Bash Terminal WEP and WPA2

https://wireless.wiki.kernel.org/en/users/drivers/ath9k

admin