ArchLinuxでALSAドライバモジュールをコンパイルする方法
RuneAudioのベースになっているArchLinuxでsabreberry32のドライバモジュールをコンパイルする方法をご紹介します。
先日、Raspbianでの方法を書いたのですが、あの方法ではArchLinuxではコンパイルできないからです。
またArchLinuxはローリングリリースという、常に最新版のソフトのみを提供する方法を取っていて、安定版、非安定版、Ver.XXX という区別はしていません。 悪い方にとらえると 「常に不安定版である。 永遠に未完成。」 なんて言い方をする人がいるくらいです。
このローリングリリースのおかげで、カーネルソースも常に最新版しか入手できません。
先日用意したRuneAudio用のバイナリドライバもカーネルバージョンアップと同時に敢無く撃沈しております。
ということで、RuneAudioのカーネルをアップデートして、そのカーネルソースを入手するところから始まります。 RPi2 RPi3 共通のRuneaudio 0.3-beta を使いRPi 2でテストしました。
まず、RuneAudioを起動してsshで接続します。 ピンク文字が入力する部分です。コピー&ペーストするとラクです。
Host: runeaudio.local
user: root
pass:rune
SDカードの領域拡大
パーティションの領域を拡大します。 (mmcblkdp2 を拡大)
fdisk /dev/mmcblk0
p で現在のパーティションを表示・確認
d で /dev/mmcblk0p2 を削除(デフォルトで 2 を削除)
n で /dev/mmcblk0p2 を作成
p Primaryパーティション
エンター (デフォルト・パラメータ)
エンター (デフォルト・パラメータ)
w でパーティションの変更を書き込み
resize2fs /dev/mmcblk0p2
df -h でパーティション・サイズが拡張されていることを確認します。
カーネルアップデート、ビルド環境インストール
pacman -Sy
pacman -S linux-raspberrypi
pacman -S raspberrypi-firmware-bootloader
ここで一度、再起動します reboot
pacman -S raspberrypi-firmware-examples
pacman -S raspberrypi-firmware-tools
pacman -S linux-raspberrypi-headers
pacman -S gcc
時々、サーバーからの応答がなくErrorがでることがありますので、画面にでる文字を読みながらエラーが出たときは再度、同じコマンドでトライしてください。 これを書いた2016/4/17時点でカーネルは4.4.7-2 でした。
起動しているカーネルのバージョンは uname -r で確認します。 linux-raspberrypi-headers を入れたときに同じバージョンが表示されていれば問題ありません。
ドライバのコンパイルとインストール
ドライバのソースコードをダウンロードします。
git clone https://github.com/SatoruKawase/SabreBerry32
cd SabreBerry32
rm Makefile.archLinux
wget https://nw-electric.way-nifty.com/blog/files/Makefile.archLinux
ドライバをコンパイル(make)します。 デバイスツリーもコンパイルします。
make -f Makefile.archLinux dtbs
続けてインストールします。
make -f Makefile.archLinux modules_install
make -f Makefile.archLinux install_dtbo
何をしているか詳細を知りたい人はMakefileの中身を見てください。
起動時にドライバが組み込まれるようにする
/boot/config.txt に下記を追加
dtparam=i2c_arm=on <= 元々あるので先頭の「#」を削除する
dtoverlay=sabreberry32
これで再起動すると、sabreberry32のドライバが組み込まれます。
再起動後に dmesg | grep sabre でsabreberr32ドライバが組み込まれたかを確認できます。
RuneAudioのWEB-UIに登録する
ここは、ArchLinuxではなくRuneAudio特有の設定です。
redis-cli hset acards_details SabreBerry32DAC "{\"sysname\":\"SabreBerry32DAC\",\"extlabel\":\"SabreBerry32 DAC (I²S)\",\"mixer_numid\":\"1\",\"mixer_control\":\"Digital\",\"hwplatformid\":\"01\",\"type\":\"i2s\"}"
(↑長いけど改行せず1行でコピペしてください)
php /var/www/command/refresh_ao (データベース更新)
redis-cli hgetall acards_details | grep Sabre で確認して、SabreBerry32DACの項が表示されば登録できています。
念のため再起動します reboot
再起動後、WEB-UIにSabreBerry32DAC(I2S) が出ていれば成功です。
Volume Control をHardwareにするとDAC内蔵のバードウェアボリュームを使うようになります。
ご苦労様でした。 ちょっと大変でしたがこれで完了です。
起動が遅いなって思った人は、下記のコマンドを打ってください。 初期状態では、90秒間、無線LANの応答待ちをしているようです。 念のため rootフォルダにバックアップします。
mv /etc/systemd/system/multi-user.target.wants/netctl-auto@wlan0.service /root/
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« raspberry Pi 2 と Pi 3 用のlightMPD-v1.0.2 | トップページ | Dnote フルデジタルスピーカー駆動アンプ とヘッドホン »
「Raspberry Pi」カテゴリの記事
- MotionEyeと余っているラズパイで監視カメラ(2024.11.21)
- 秋の夜長にはRaspberryPi5 RT-linux セルフビルド(2024.10.13)
- 秋の夜長にはRaspberryPi5 64bit版 Sabreberry32 ドライバコンパイル(2024.10.10)
- RaspberryPi 5 の公式OSは32bit版でも64bit?(2024.10.09)
- 秋の夜長にはRaspberry Pi5 64bit カーネル・セフル・ビルド (2024.10.07)
コメント
« raspberry Pi 2 と Pi 3 用のlightMPD-v1.0.2 | トップページ | Dnote フルデジタルスピーカー駆動アンプ とヘッドホン »
はじめまして
runeaudioのカーネルをアップデートすると、配布されているバイナリドライバのインストールがうまくいかなかったため、こちらの方法を試してみたのですが…現在もソースコードは配布されていますでしょうか。
投稿: hideshi | 2016年11月19日 (土) 05時39分
hideshi さん
new_western_electric@yahoo.co.jp までメールを下さい。
よろしくお願いします。
投稿: たかじん | 2016年11月19日 (土) 09時50分
はじめまして
SabreBerry32基板を購入し、Raspberry Pi3 と runeaudio の組み合わせで使おうとしています。
https://nw-electric.way-nifty.com/blog/sb32j.html
に記載されている内容に従ってドライバーをインストールしようとしたのですが、
1. カーネルをアップデートする
pacman -Sy --force raspberrypi-firmware-bootloader linux-raspberrypi
の項目で、
error: target not found: raspberrypi-firmware-bootloader
とエラーメッセージが表示されます。
何度か試しましたが同じでした。
それで、このページを見つけて試してみましたが、
[カーネルアップデート、ビルド環境インストール] の
pacman -Sy
pacman -S linux-raspberrypi
までは OKですが、
pacman -S raspberrypi-firmware-bootloader
で、やはり同じエラーになります。
どうすれば良いでしょうか?
ちなみに runeaudio は RuneAudio_rpi2_rp3_0.4-beta_20160321_2GB.img.gz を使用しています。
投稿: hiro | 2017年9月10日 (日) 21時10分
hiro さん
archLinuxは、ローリング・リリースで、常に更新され続けています。 Runeaudioの更新が昨年で止まってしまったので、不都合が出ている可能性がありますね。
こちらでも試してみますので、少々お待ち下さい。
投稿: たかじん | 2017年9月11日 (月) 08時04分