管理者/DebianのWiFi設定 の履歴(No.2)
更新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 に接続して指定したアドレスでアクセスできた。