LoginSignup
0
0

Raspberry Pi 2B で Wi-Fi アダプタを動かす (WI-U2-433DM, RTL8811AU)

Posted at

前提条件

  • Raspberry Pi 2 Model B
  • BUFFALO WI-U2-433DM (使いたい Wi-Fi アダプタ)
  • Realtek RTL8811AU (アダプタに搭載されたチップ)

uname -r の結果

uname -r 実行結果
6.6.20+rpt-rpi-v7 (インストール初期)
6.6.31+rpt-rpi-v7 (DKMS 動作確認)

まず、Wi-Fi アダプタを RasPi へ接続し、lsusb コマンドでデバイスを確認しておく。
802.11ac WLAN Adapter として認識されていることがわかる。

lsusb 実行結果
Bus 001 Device 004: ID 0411:0242 BUFFALO INC. (formerly MelCo., Inc.) 802.11ac WLAN Adapter
Bus 001 Device 003: ID 0424:ec00 Microchip Technology, Inc. (formerly SMSC) SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Microchip Technology, Inc. (formerly SMSC) SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

忙しい人向け手順

Raspberry Pi 2 で試したところ、30分はかかった。

コマンド実行
sudo apt update
sudo apt install build-essential git raspberrypi-kernel-headers dkms -y
mkdir gnab
cd gnab
git clone https://github.com/gnab/rtl8812au.git
cd rtl8812au
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile
make -j4
sudo make install # たくさん時間がかかる
sudo make dkms_install  ## もっと時間がかかる

手順

概要

次の GitHub リポジトリの RTL8812 向けドライバをインストールした。

使っているアダプタのチップは RTL8811AU だが、RTL8812 向けドライバでも動くらしい。
ただ、他にも試したリポジトリはあるが、コンパイルに失敗したり、動かなかったりした。

以降は、https://github.com/gnab/rtl8812au.git に記載されたインストール手順を見ながら実行した。

インストール

ドライバのビルドに最低限必要なパッケージを導入する。

コマンド実行
sudo apt update
sudo apt install vim build-essential git raspberrypi-kernel-headers -y

GitHub リポジトリをダウンロードする。(ホームディレクトリ内で作業している)

コマンド実行
mkdir gnab
cd gnab
git clone https://github.com/gnab/rtl8812au.git
cd rtl8812au

Raspberry Pi 向けに Makefile の中身を書き換える。(ビルド対象のアーキテクチャを x86 から変更している)

コマンド実行
sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/g' Makefile
sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/g' Makefile

先程のコマンドを実行すると、rtl8812au ディレクトリの中の Makefile が次のように変更されているはずなので、vi Makefile で確認する。

Makefile の内容(一部)
CONFIG_PLATFORM_I386_PC = n  # 57行目 y => n
CONFIG_PLATFORM_ARM_RPI = n  # 63行目 n => y

make でドライバをビルドする。(-j4 オプションで CPU を4コア並列でコンパイル実行)

コマンド実行
make -j4

make コマンドが失敗してしまったときは、make clean で中間ファイルなどを削除する。

コマンド実行
make claen

ビルド作業で生成された 8812au.komake install で所定の場所にインストールする。

コマンド実行
sudo make install

wpa_supplicant.conf を編集し、接続先 Wi-FI の情報を登録する。

コマンド実行
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
wpa_supplicant.conf の内容
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
        ssid="SSID"
        psk="Password"
}

Raspberry Pi を再起動後、ip a で Wi-Fi アダプタの認識を確認する。
wlan0 の項目があれば、ドライバが認識されているはず。

ip a 実行結果
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 noprefixroute
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:19:cc:51 brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether cc:e1:d5:29:80:c0 brd ff:ff:ff:ff:ff:ff

DKMS インストール

sudo apt upgrade などで OS Kernel のバージョンが上がると、ドライバが使用できなくなる。
Kernel のバージョンが上がっても、更新時に自動的に再構築してインストールするため DKMS を使う。

コマンド実行
sudo apt install dkms -y

次のコマンドでドライバーを DKMS にインストールする。

コマンド実行
sudo make dkms_install

ドライバを削除するときは、次のコマンドで削除できる。

コマンド実行
sudo make dkms_remove

最後に

Raspberry Pi 2B には Wi-Fi モジュールが搭載されていないため、Wi-Fi へ接続するには USB 接続の Wi-Fi アダプタ(ドングル)を使う必要があります。
IEEE802.11ac が使えるアダプタをフリマアプリで探して、見つかったものを確認せずに購入したところ、見事に Linux ドライバをインストールしてからでないと利用できない製品を入手したため、インストール手順を備忘録として残しました。
使えるドライバを探すのに苦労しました。ただ、アップデートによって使えなくなるかもしれません。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0