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
参考にさせていただきます。
モジュールをビルド・インストールの項目で、
echo “options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1”> /etc/modprobe.d/8812au.conf
と書かれていますが、インストールするモジュールは8812auなのに、なぜ8192auのオプションを設定するのですか?
すいません。
“8812au”のタイプミスと思います。
誰かの参考になるかもしれませんので、ご指摘を含めて残しておきます。
現在は Raspberry Pi 3 Model B を使っていないので、お手数ですが動作検証できたらお知らせください。
ご指摘の部分は Raspberry Pi がスリープしてしまって、Web サーバなどが無反応になってしまう対策です。
失礼します。
参考にさせていただき、無事動作しました。
ただ、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