管理者/DebianのWiFi設定
N100 ミニPCに Debian を入れました†
その WiFi を使うために行った設定は以下の通り。
概要としては
- 無線モジュールは Intel Wi-Fi 6 AX101
- Debian 12 Bookworm の Linux 6.1 ではサポートされていない
- サポートされているはずがバグで動かない(?)
- Debian 13 trixie の Linux 6.10 ではサポートされているので特に何もせず動いた
- NetworkManager で接続設定を行った
目次†
無線モジュールの確認†
LANG:console $ sudo lspci -vvnn | less ... 'Network controller' を検索 00:14.3 Network controller [0280]: Intel Corporation CNVi: Wi-Fi [8086:54f0] DeviceName: Onboard - Ethernet Subsystem: Intel Corporation CNVi: Wi-Fi (Wi-Fi 6 AX101NGW) [8086:0244] Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Interrupt: pin A routed to IRQ 16 IOMMU group: 3 Region 0: Memory at 6001114000 (64-bit, non-prefetchable) [size=16K] Capabilities: [c8] Power Management version 3 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME- Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [40] Express (v2) Root Complex Integrated Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0 ExtTag- RBE- FLReset+ DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq- RlxdOrd+ ExtTag- PhantFunc- AuxPwr+ NoSnoop+ FLReset- MaxPayload 128 bytes, MaxReadReq 128 bytes DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr+ TransPend- DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+ 10BitTagComp- 10BitTagReq- OBFF Via WAKE#, ExtFmt- EETLPPrefix- EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit- FRS- AtomicOpsCap: 32bit- 64bit- 128bitCAS- DevCtl2: Completion Timeout: 16ms to 55ms, TimeoutDis- LTR+ 10BitTagReq- OBFF Disabled, AtomicOpsCtl: ReqEn- Capabilities: [80] MSI-X: Enable- Count=16 Masked- Vector table: BAR=0 offset=00002000 PBA: BAR=0 offset=00003000 Capabilities: [100 v1] Latency Tolerance Reporting Max snoop latency: 0ns Max no snoop latency: 0ns Capabilities: [164 v1] Vendor Specific Information: ID=0010 Rev=0 Len=014 <?> Kernel modules: iwlwifi
重要なのは、
Subsystem: Intel Corporation CNVi: Wi-Fi (Wi-Fi 6 AX101NGW) [8086:0244]
にある "Wi-Fi 6 AX101NGW" がモジュールの種別
https://www.intel.co.jp/content/www/jp/ja/products/sku/203014/intel-wifi-6-ax101/specifications.html
Kernel modules: iwlwifi
これがドライバ。
こちらで調べると、
https://help.ubuntu.com/community/WifiDocs/WirelessCardsSupported
Intel の miniPCI のところに、
**Model** | **Chipset** | **Driver** | **Works "out of the box"** |
Intel Ultimate-N 5300 | Intel Link 5300 | iwlwifi | Yes |
があって、何もしなくてもそのまま動くと書かれてる。
network-managerを入れる†
LANG:console $ nmcli -bash: nmcli: コマンドが見つかりません $ sudo apt install network-manager $ nmcli radio wifi on $ nmcli dev wifi (何も表示されない)
動いていない・・・
dmesg を確認†
https://endy-tech.hatenablog.jp/entry/linux_wireless_troubleshooting を見ながら、
LANG:console $ sudo dmesg | grep iwlwifi [ 2.280469] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002) [ 2.282142] iwlwifi: No config found for PCI dev 54f0/0244, rev=0x370, rfid=0x10c000 [ 2.282158] iwlwifi: probe of 0000:00:14.3 failed with error -22
iwlwifi がエラーを吐いている
https://askubuntu.com/questions/1459856/intel-alder-lake-n100-wifi-and-bluetooth-issues
あたりを見ると、似たようなことで困っている人が多かった。
カーネルバージョンを上げなければならない†
https://tech.takake-blog.com/wifi-ax101-ubuntu/
Intel AX101チップセットのLinuxドライバーは、カーネルv6.1以降に搭載されているようです。一方で、記事の執筆時点ではドライバにバグが含まれており、特定環境ではv6.1だと動作しない(?)ようです。
Intelの公式フォーラムでAX101に関するスレッドが立っており、2023/06/21時点でカーネルv6.4-rc7だと動くというコメントがあるので、それに従います。
参考:https://community.intel.com/t5/Wireless/AX101-Linux-driver/td-p/1465559
LANG:console $ uname -a Linux minipc 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26)
確かに今のシステムは 6.1 で、ドライバは入っているのに動作しないというのは書かれている通りの症状だ。
手っ取り早く testing バージョンを入れてしまう†
2024-09-01 現在、Debian の最新の安定板は Debian 12 Bookworm
テスト版の Debian 13 trixie は Linux 6.10 なのでこちらなら動くはず
今回の用途はどうしても安定動作が必要というわけでもなく、「さしあたり動けばいい」なのでテスト版にアップグレードしてしまうことにした。
LANG:console $ sudo sed -e 's/bookworm/trixie/g' -i.bak /etc/apt/sources.list $ sudo apt update $ sudo apt upgrade $ uname -a Linux minipc 6.1.0-25-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.106-3 (2024-08-26) x86_64 GNU/Linux $ reboot ... $ uname -a Linux minipc 6.10.6-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.10.6-1 (2024-08-19) x86_64 GNU/Linux
これで 6.10 になった。
LANG:console $ sudo dmesg | grep wifi [ 2.724567] iwlwifi 0000:00:14.3: enabling device (0000 -> 0002) [ 2.725755] iwlwifi 0000:00:14.3: Detected crf-id 0x501, cnv-id 0x80400 wfpm id 0x80000030 [ 2.725798] iwlwifi 0000:00:14.3: PCI dev 54f0/0244, rev=0x370, rfid=0x10c000 [ 2.738340] iwlwifi 0000:00:14.3: TLV_FW_FSEQ_VERSION: FSEQ Version: 0.0.2.42 [ 2.738759] iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2) [ 2.738770] iwlwifi 0000:00:14.3: firmware: failed to load iwl-debug-yoyo.bin (-2) [ 2.738772] iwlwifi 0000:00:14.3: loaded firmware version 89.202a2f7b.0 so-a0-hr-b0-89.ucode op_mode iwlmvm [ 2.899875] iwlwifi 0000:00:14.3: Detected Intel(R) Wi-Fi 6 AX101, REV=0x370 [ 2.910291] iwlwifi 0000:00:14.3: WRT: Invalid buffer destination [ 3.013540] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x20 [ 3.013551] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f [ 3.013560] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90 [ 3.013568] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x10 [ 3.013622] iwlwifi 0000:00:14.3: Detected RF HR1 B3, rfid=0x10c000 [ 3.014807] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4 [ 3.054656] iwlwifi 0000:00:14.3: base HW address: **:**:**:**:**:** [ 3.072799] iwlwifi 0000:00:14.3 wlo1: renamed from wlan0 [ 3.643657] iwlwifi 0000:00:14.3: WRT: Invalid buffer destination [ 3.741882] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x20 [ 3.741928] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f [ 3.741939] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90 [ 3.741950] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x10 [ 3.743113] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4 [ 3.786815] iwlwifi 0000:00:14.3: Registered PHC clock: iwlwifi-PTP, with index: 2 [ 3.833748] iwlwifi 0000:00:14.3: WRT: Invalid buffer destination [ 3.931933] iwlwifi 0000:00:14.3: WFPM_UMAC_PD_NOTIFICATION: 0x20 [ 3.931981] iwlwifi 0000:00:14.3: WFPM_LMAC2_PD_NOTIFICATION: 0x1f [ 3.931995] iwlwifi 0000:00:14.3: WFPM_AUTH_KEY_0: 0x90 [ 3.932042] iwlwifi 0000:00:14.3: CNVI_SCU_SEQ_DATA_DW9: 0x10 [ 3.933242] iwlwifi 0000:00:14.3: RFIm is deactivated, reason = 4
- firmware: failed to load iwl-debug-yoyo.bin (-2)
- WRT: Invalid buffer destination
- RFIm is deactivated, reason = 4
とか書かれてるけど、どうやらこれで問題なく動いているらしい。
WiFi の接続†
LANG:console $ sudo nmcli radio wifi on $ nmcli dev wifi ... $ sudo nmcli dev wifi connect <SSID> --ask Password: xxxxx
- nmcli radio wifi on で 無線LAN を on にして
- nmcli dev wifi で接続可能な SSID の一覧を表示して
- nmcli dev wifi connect で接続する
とても簡単だった。
IP アドレスの固定†
IP アドレスを固定するには、
https://raspida.com/nmcli-static-ipaddress/
にある手順で、
/etc/NetworkManager/system-connections/<SSID>.nmconnection
のようなファイルの [ipv4] セクションを
[ipv4] method=manual address1=192.168.0.21/24,192.168.0.1
などとすればいい。
これを勘違いして /etc/network/interfaces に
# これを書いちゃダメ! allow-hotplug wlo1 iface wlo1 inet static ...
みたいのを書いちゃうと nmcli が正常に動かなくなっちゃう。
- nmcli device wifi で一覧が取れなくなる。
- nmcli device wifi rescan で "Error: Scanning not allowed while unavailable or activating." と言われる
https://askubuntu.com/questions/715345/network-manager-is-not-detecting-wifi-networks/921392#921392
/etc/network/interfaces の上記の設定を消せば元に戻るのだけれど、、、
訳が分からなくて何時間も途方に暮れることになる。。。
リブートしても自動でつながった†
以上が設定されていれば、リブートしても自動で WiFi に接続して指定したアドレスでアクセスできた。
・・・これ、本当かな? ちょっと自信がなくなった。
たぶん wifi 接続キーを保存しなければならないはずで、別途その操作をどこかでしていたのかもしれない???