Raspberry Pi 4 の内蔵 WiFi が とても不安定なので、USBの WiFiアダプタ を使えるようにする。
選んだアダプタは WI-U2-433DMS で、ドライバのインストールを試みた。
正直言って、どのチップが搭載されているのか良く分からないが、”8812au”のドライバを入れたところ、今のところ正常に動作している。
必要なパッケージ のインストールして、再起動
1 2 |
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get autoremove -y && sudo apt-get install dkms raspberrypi-kernel-headers -y sudo reboot |
現在起動しているkernelのバージョンから更新されていることがあるため、再起動します。
再起動しないとビルドに失敗することがあります。
1 2 3 |
Error! echo Your kernel headers for kernel 5.4.83-v7l+ cannot be found at /lib/modules/5.4.83-v7l+/build or /lib/modules/5.4.83-v7l+/source. |
プラットフォームに合わせて、いずれかをインストール
32bit版ドライバのインストール
1 2 3 4 5 6 7 8 9 10 |
cd /usr/src sudo git clone https://github.com/diederikdehaas/rtl8812AU sudo mv rtl8812AU rtl8812AU-4.3.20 sudo sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/' rtl8812AU-4.3.20/Makefile sudo sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/' rtl8812AU-4.3.20/Makefile DRV_NAME=rtl8812AU DRV_VERSION=4.3.20 sudo dkms add -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms install -m ${DRV_NAME} -v ${DRV_VERSION} |
このバージョンのドライバだと、最近のカーネルではエラーが出て、ビルドできないかも知れません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
In file included from /var/lib/dkms/rtl8812AU/4.3.20/build/include/drv_types.h:82, from /var/lib/dkms/rtl8812AU/4.3.20/build/core/rtw_br_ext.c:32: /var/lib/dkms/rtl8812AU/4.3.20/build/include/rtw_security.h:241:8: error: redefinition of ‘struct sha256_state’ struct sha256_state { ^~~~~~~~~~~~ In file included from ./include/linux/filter.h:24, from ./include/net/sock.h:59, from ./include/net/inet_sock.h:22, from ./include/net/ip.h:28, from /var/lib/dkms/rtl8812AU/4.3.20/build/core/rtw_br_ext.c:24: ./include/crypto/sha.h:84:8: note: originally defined here struct sha256_state { ^~~~~~~~~~~~ make[2]: *** [scripts/Makefile.build:279: /var/lib/dkms/rtl8812AU/4.3.20/build/core/rtw_br_ext.o] エラー 1 make[1]: *** [Makefile:1804: /var/lib/dkms/rtl8812AU/4.3.20/build] エラー 2 make[1]: ディレクトリ '/usr/src/linux-headers-5.10.17-v7l+' から出ます make: *** [Makefile:1688: modules] エラー 2 |
ということで、
1 2 3 4 5 6 7 8 9 10 11 12 13 |
cd /usr/src DRV_NAME=rtl8812AU DRV_VERSION=4.3.20 sudo dkms remove -m ${DRV_NAME}/${DRV_VERSION} --all sudo git clone https://github.com/aircrack-ng/rtl8812au sudo mv rtl8812au rtl8812au-5.6.4.2 sudo sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/' rtl8812au-5.6.4.2/Makefile sudo sed -i 's/CONFIG_PLATFORM_ARM_RPI = n/CONFIG_PLATFORM_ARM_RPI = y/' rtl8812au-5.6.4.2/Makefile DRV_NAME=rtl8812au DRV_VERSION=5.6.4.2 sudo dkms add -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms install -m ${DRV_NAME} -v ${DRV_VERSION} |
64bit版ドライバのインストール
1 2 3 4 5 6 7 8 9 10 |
cd /usr/src sudo git clone https://github.com/aircrack-ng/rtl8812au sudo mv rtl8812au rtl8812au-5.6.4.2 sudo sed -i 's/CONFIG_PLATFORM_I386_PC = y/CONFIG_PLATFORM_I386_PC = n/' rtl8812au-5.6.4.2/Makefile sudo sed -i 's/CONFIG_PLATFORM_ARM64_RPI = n/CONFIG_PLATFORM_ARM64_RPI = y/' rtl8812au-5.6.4.2/Makefile DRV_NAME=rtl8812au DRV_VERSION=5.6.4.2 sudo dkms add -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms build -m ${DRV_NAME} -v ${DRV_VERSION} sudo dkms install -m ${DRV_NAME} -v ${DRV_VERSION} |
Raspberry Pi 内蔵のWiFiの無効化
1 2 3 4 5 |
sudo tee /etc/modprobe.d/raspi-blacklist.conf <<EOF >/dev/null #wifi blacklist brcmfmac blacklist brcmutil EOF |
コメント
Linux BATOCERA 5.10.63-v8 #1 SMP PREEMPT Sun Sep 19 17:08:04 Europe 2021 aarch64 GNU/Linux
上記システムをラズパイ4に入れているのですが、suduコマンドが使えず、どうやったらドライバーをインストールできるか悩んでいます。お分かりになるようでしたら、お教えください
色々な方法が公開されており、何度もトライしました、上記の方法でやっとこさRaspberryPi OS 64bit版にて機器認識・通信に成功しました。本当に助かりました。ありがとうございました。