家にガラクタとして眠っている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
}
みたいな感じ