Raspberry Pi 2B に入れたUbuntu Server 22.04で、Baffaloの古いUSB WIFI WLI UC GNPを使えるようにしたときの手順
最初に
環境
- Raspberry Pi 2B
- Ubuntu 22.04 LTS
- Baffalo WLI UC GNP
HWの認識はされている様子
とりあえずraspberry pi のUSBに刺したらなにかは認識はされている
$ lsusb
Bus 001 Device 004: ID 0411:019e BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNP Wireless LAN Adapter
がwlanが無くWIFIデバイスとしては認識されてない
$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b8:27:eb:d2:2b:d0 brd ff:ff:ff:ff:ff:ff
解決方法
デバイスの認識
linux-modules-extraのインストール
Ubuntu serverだと必要なモジュールが入ってないので、入れておく。これを行わないとmodprobe
が失敗する。aptを使うので有線でEthernetにつないでおく。
# apt-get install linux-modules-extra-$(uname -r)
デバイスのIDを確認する
$ lsusb
Bus 001 Device 004: ID 0411:019e BUFFALO INC. (formerly MelCo., Inc.) WLI-UC-GNP Wireless LAN Adapter
ここからvendorのIDが0411
, productのIDが019e
だとわかる
モジュールオプション用のファイルを追加する
環境によってmodprobeの場所が違うかもしれないので、which modprobe
などでパスを確認するとよい。先ほどのIDも使用する。
# vi /etc/modprobe.d/wireless.conf
install rt2800usb /usr/sbin/modprobe --ignore-install rt2800usb $CMDLINE_OPTS;/bin/echo "0411 019e" > /sys/bus/usb/drivers/rt2800usb/new_id
デバイス管理用のファイルを追加する
接続時に読み込まれるように設定する。先ほどのIDを入れてmodprobeされるようにしておく。
# echo 'ACTION=="add",SUBSYSTEM=="usb",ATTR{idVendor}=="0411",ATTR{idProduct}=="019e",RUN+="/usr/sbin/modprobe -qba rt2800usb"'
> /etc/udev/rules.d/99-wireless.rules
デバイスが読み込まれているか確認
再起動するなりUSBをさしなおすなどしてから
$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b8:27:eb:d2:2b:d0 brd ff:ff:ff:ff:ff:ff
3: wlx0024a56bad35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:24:a5:6b:ad:35 brd ff:ff:ff:ff:ff:ff
wlx0024a56bad35
とかいうデバイスが認識されている様子。ここは人によって変わると思われる。wlan0とか。
wifiの設定
設定ファイルの追加
/etc/netplan/99-network.yaml
など適当なyamlファイルを作って以下のように設定しておく。さっきのデバイス名がwlx0024a56bad35
だったので、そのように設定。
network:
version: 2
wifis:
renderer: networkd
wlx0024a56bad35:
access-points:
"set your SSID":
password: "set your WIFI password"
dhcp4: true
optional: true
wifi設定の反映
# netplan apply
確認
WIFIが繋がってIPが取れた
$ ip add
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc fq_codel state DOWN group default qlen 1000
link/ether b8:27:eb:d2:2b:d0 brd ff:ff:ff:ff:ff:ff
3: wlx0024a56bad35: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether 00:24:a5:6b:ad:35 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.21/24 metric 600 brd 192.168.0.255 scope global dynamic wlx0024a56bad35
valid_lft 81900sec preferred_lft 81900sec
inet6 240f:38:31be:1:224:a5ff:fe6b:ad35/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 267sec preferred_lft 267sec
inet6 fe80::224:a5ff:fe6b:ad35/64 scope link
valid_lft forever preferred_lft forever
補足
参考記事
ドライバ関連
下記からWLI UC GNPのdriverがrt2800usbであると推測した