家にガラクタとして眠っているPCにDebian 11.2 をインストールした際のメモ。
当然GUIは動かす気がないので、テキストベースで利用する前提。
Debian のトップページのダウンロードは 64bit 対応なので、Debian を入手するにはから32 ビット PC netinst isoを選択して ISOイメージをダウンロードする。
USBブートができなかったので、CDにISOイメージを書き込んでインストール。
Desktop 環境はインストールしない。
WiFiくらい使用したいので、USBドングルのWiFiモジュールを使用する。
作業としては、
Debian リファレンスの第5章 ネットワークの設定を参考にする。
まずは、必要かパッケージの導入
$ sudo apt install wireless-tools rfkill wpasupplicant
幸いなことに、USBドングルはなにもしなくても認識してくれた感じ。
$ sudo iwconfig lo no wireless extensions. enp0s4 no wireless extensions. wlx4ce6761aa14b IEEE 802.11 ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm Retry short long limit:2 RTS thr:off Fragment thr:off Encryption key:off Power Management:off
rfkill コマンドで状態の確認
$ sudo rfkill ID TYPE DEVICE SOFT HARD 0 wlan phy0 unblocked unblocked
ip コマンドで有効にする
$ sudo ip link set dev wlx4ce6761aa14b up RTNETLINK answers: No such file or directory
エラー!?
$ sudo dmesg | tail : [ 197.745400] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin' [ 197.745469] rt2800usb 1-1:1.0: firmware: failed to load rt2870.bin (-2) [ 197.745506] firmware_class: See https://wiki.debian.org/Firmware for information about missing firmware [ 197.745538] rt2800usb 1-1:1.0: Direct firmware load for rt2870.bin failed with error -2
ファームウェアが足りないようです。
パッケージダウンロードに利用するミラーサイトについて を参考に、/etc/apt/sources.list にサーバを追加
$ sudo nano /etc/apt/sources.list
下記を追加
deb http://ftp.jp.debian.org/debian/ bullseye main contrib non-free
ファームウェアを追加導入
$ sudo apt update $ sudo apt install firmware-misc-nonfree
再度、動作確認
$ sudo ip link set dev wlx4ce6761aa14b up $ sudo dmesg | tail : [ 631.858654] ieee80211 phy0: rt2x00lib_request_firmware: Info - Loading firmware file 'rt2870.bin' [ 631.858776] rt2800usb 1-1:1.0: firmware: direct-loading firmware rt2870.bin [ 631.858785] ieee80211 phy0: rt2x00lib_request_firmware: Info - Firmware detected - version: 0.36
$ sudo iwlist wlx4ce6761aa14b scan | grep ESSID ESSID:"*******" ESSID:"**********" ESSID:"******" ESSID:"**************"
伏字ですが、動作しているようす。
/etc/wpa_supplicant/wpa_supplicant.conf を記述して
$ sudo wpa_supplicant -c /etc/wpa_supplicant/wpa_supplicant.conf -i wlx4ce6761aa14b
今回は、NetworkManager を利用せずに、networking.service を使用します。
まずは、/etc/network/interfaces に追加
$ sudo nano /etc/network/interfaces
# Wi-Fi auto wlx4ce6761aa14b iface wlx4ce6761aa14b inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
これで、networking.service が有効であれば、wpa_supplicant が自動起動します。
しかし、
$ sudo service networking status ● networking.service - Raise network interfaces Loaded: loaded (/lib/systemd/system/networking.service; disabled; vendor p> Active: inactive (dead) Docs: man:interfaces(5)
というこで、無効なので有効にします。
$ sudo systemctl enable networking.service
ステータスを確認すると
$ sudo service networking status ● networking.service - Raise network interfaces Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor pr> Active: inactive (dead) Docs: man:interfaces(5)
ということで、再起動すると無事にWiFi接続できるようになりました。
ちなみに、今回使用した wpa_supplicant.conf は
$ cat /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/var/run/wpa_supplicant update_config=1 network={ ssid="接続先SSID" psk="事前共有キー" proto=WPA RSN key_mgmt=WPA-PSK pairwise=CCMP group=CCMP }
みたいな感じ