前提条件
- Raspberry Pi 2 Model B
- Volumio 3 (Raspberry Pi OS でも同じだと思います)
- インストールしようとしたドライバ https://github.com/gnab/rtl8812au.git
uname
コマンドの実行結果
6.1.77-v7+
Linux volumio 6.1.77-v7+ #1730 SMP Thu Feb 8 15:17:51 GMT 2024 armv7l GNU/Linux
エラーが発生した状況
ラズパイをメディア再生サーバ化できる Volumio 3 を使い始めました。
使用している Raspberry Pi 2B には Wi-Fi モジュールが取り付けられていないため、Wi-Fi ドングルを接続し、ドライバをインストールしようとしました。
sudo apt update
sudo apt install vim 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 # ここでエラーが発生
/lib/modules/6.1.77-v7+/build
が存在しないというエラーが発生しました。このディレクトリは kernel source と呼ばれるものらしいです。
make ARCH=arm CROSS_COMPILE= -C /lib/modules/6.1.77-v7+/build M=/home/volumio/gnab/rtl8812au modules
make[1]: *** /lib/modules/6.1.77-v7+/build: No such file or directory. Stop.
make: *** [Makefile:1096: modules] Error 2
インストールされた Kernel source は次のように確認できます。Raspberry Pi 2B の場合は、バージョンの後ろに -v7+ がついたものを確認するようです。
ls /lib/modules/
5.10.103+ 5.10.103-v7+ 5.10.103-v7l+ 6.1.77+ 6.1.77-v7+ 6.1.77-v7l+ 6.1.77-v8+
本当に build ディレクトリが存在しないのか、次のコマンドで確かめたところ、ありませんでした。
ls /lib/modules/$(uname -r)/
現在の Kernel に合った kernel source がインストールされていないようです。
試したけどダメだったこと (raspberrypi-kernel-headers)
raspberrypi-kernel-headers
をインストールします。
sudo apt install raspberrypi-kernel-headers
インストール後、ls /lib/modules/$(uname -r)/
で確認したところ、なぜか build ディレクトリが追加されていません。
試しに /lib/modules/
の他の Kernel を確認してみると、旧バージョンの 5.10.103-v7+ の build ディレクトリは存在しますが、現バージョンの 6.1.77-v7+ は存在しませんでした。
暗礁に乗り上げました。
解決した方法 (rpi-source)
インストールされた Kernel バージョンに合わせた Kernel source をインストールしなければなりません。rpi-source を使うと解決できました。
リポジトリ: https://github.com/RPi-Distro/rpi-source
ただ、rpi-source を実行するときに遭遇したエラーは、次にまとめています。