Raspberry Pi 3 Model B で 5GHz の Wi-Fi を使う

Raspberry Pi 3 Model B ネタです。

電源さえあれば使えるように無線 LAN を使いたいのですが、残念ながら内蔵無線 LAN は 2.4GHz のみで 5GHz が使えません。
我が家では電子レンジや付近の干渉が多いため、5GHz じゃないと使いものになりません。
このため、以前購入していた ELECOM WDC-433DU2HBK を使うことにしました。

まず、ネットで検索してみると WDC-433DU2HBK のチップセットは RTL8811AU らしいのですが、Raspberry Pi の標準のカーネルモジュールには含まれていないようです。RTL8812AU 用のモジュールで対応できるようです。

通常の Xubuntu であれば、linux-headers をインストールすれば、簡単にモジュールをビルドするためのファイルがインストールできるのですが、Raspberry Pi ではちょっと手間をかける必要があるようです。

参考 : カーネルモジュールのコンパイル – RTL8812AUとMT7610U (Raspberry Pi) [メモ]
参考 : Ubuntu 16.04 LTSで、BUFFALO WI-U3-866D を使う

最新のファームウェアとカーネルに更新

$ sudo apt-get update; sudo apt-get upgrade -y
$ sudo apt-get install -y rpi-update
$ sudo rpi-update
$ sudo reboot

カーネルソースを取得

$ sudo apt-get install curl build-essential bc git
$ FIRMWARE_REV=`cat /boot/.firmware_revision`
$ KERNEL_REV=`curl -L https://github.com/Hexxeh/rpi-firmware/raw/${FIRMWARE_REV}/git_hash`
$ echo Firmware Rev: ${FIRMWARE_REV}
$ echo kernel Rev  : ${KERNEL_REV}
$ curl -L https://github.com/Hexxeh/rpi-firmware/raw/${FIRMWARE_REV}/Module.symvers >Module.symvers
$ curl -L https://github.com/Hexxeh/rpi-firmware/raw/${FIRMWARE_REV}/Module7.symvers >Module7.symvers
$ curl -L https://github.com/raspberrypi/linux/archive/${KERNEL_REV}.tar.gz >rpi-linux.tar.gz
$ sudo -s
# HOME=$(pwd)
# cd /usr/src
# mkdir rpi-linux
# cd rpi-linux
# tar --strip-components 1 -xf ${HOME}/rpi-linux.tar.gz
# modprobe configs
# gunzip -c /proc/config.gz >.config
# cp $HOME/Module7.symvers Module.symvers
# time make modules_prepare
# ln -sv /usr/src/rpi-linux /lib/modules/$(uname -r)/build

モジュールをビルド・インストール

# cd /usr/src
# git clone https://github.com/gnab/rtl8812au.git
# cd rtl8812au/
# sed -i 's/\(CONFIG_PLATFORM_I386_PC = \)y/\1n/' Makefile
# sed -i 's/\(CONFIG_PLATFORM_ARM_RPI = \)n/\1y/' Makefile
# make
# make install
# echo 8812au> /etc/modules-load.d/8812au.conf
# echo "options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1"> /etc/modprobe.d/8812au.conf
# reboot

4件のコメント

  1. 参考にさせていただきます。

    モジュールをビルド・インストールの項目で、
    echo “options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1”> /etc/modprobe.d/8812au.conf
    と書かれていますが、インストールするモジュールは8812auなのに、なぜ8192auのオプションを設定するのですか?

  2. すいません。
    “8812au”のタイプミスと思います。
    誰かの参考になるかもしれませんので、ご指摘を含めて残しておきます。

    現在は Raspberry Pi 3 Model B を使っていないので、お手数ですが動作検証できたらお知らせください。
    ご指摘の部分は Raspberry Pi がスリープしてしまって、Web サーバなどが無反応になってしまう対策です。

  3. 失礼します。
    参考にさせていただき、無事動作しました。
    ただ、WiFiの起動時に以下のエラーメッセージが出ています。
    Error for wireless request “Set Power Management” (8B2C) :
    SET failed on device wlan0 ; Operation not permitted.
    ioctl[SIOCSIWAP]: Operation not permitted
    ioctl[SIOCSIWENCODEEXT]: Invalid argument
    ioctl[SIOCSIWENCODEEXT]: Invalid argument

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

*

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください