June 9, 2018

Kernel 4.14とTP-Link TL-WN823N

ASRock DeskMini 110にLinux(カーネルは4.14 LTS)をインストールしたあと、WiFiアダプタTP-Link TL-WN823N(v3)を刺してみたが、親機と接続できなかった。弱々しいながらも電波自体は受かっている。しかし、WPAのauthenticationがtimed outする。dmesgを見ると、rtl8xxxuというドライバが選択されていた。Realtekの汎用ドライバか。

このWiFiアダプタには、Realtekのrtl8192euというチップが使われている。このチップ専用ドライバを探してみると、GitHub(https://github.com/Mange/rtl8192eu-linux-driver)にあった。Arch系ディストロでは、AUR経由でインストールできる。最新バージョンはrtl8192eu 4.4.1-2だった。

単にインストールするだけでなく、rtl8xxxuを無効化しておく必要がある。と、AURのリポジトリ(https://aur.archlinux.org/packages/rtl8192eu/)にあるコメントが教えてくれた。

まず、/etc/default/grubを編集する。

#GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=rtl8xxxu,mac80211"

で、ブートメニューを再構築。

$ sudo LC_ALL=C grub-mkconfig -o /boot/grub/grub.cfg

これで無事、接続できた。電波も力強い。

後日談: わずか数日で、動かなくなった。どうやら、システムをアップデートした拍子に、カーネルのバージョンが上がったのだが、モジュールは引き継いでくれなかったようだ。8192のドライバだけが、取り残されていた。

/lib/modules/4.14.48-1-MANJARO/kernel/drivers/net/wireless/8192eu.ko

早速、これを新しいカーネルの下にコピってみたが、そう単純にはできてないみたいだ。素直にドライバを再インストールしたら治った。

Tags: linux