Select Your Language

免責事項

  • 本サイトの情報の利用、内容、サービスによって、利用者にいかなる損害、被害が生じても、著者は一切の責任を負いません。ユーザーご自身の責任においてご利用いただきますようお願いいたします。

    本サイトで頒布している基板およびキットは、技術者、またはそれに準ずる電気的知識をお持ちの電子工作ファンの方のためのものです。 一般のオーディオファンの方のためのものではありません。
    また、頒布基板およびキットは、いかなる条件でも動作を保証するものではございませんので、あらかじめご了承ください。

    電子工作では、火傷、感電、火災などの可能性があります。 十分に注意をして作業して下さい。

    営利目的のご使用は認めておりません。  記事の転載や、基板・キットの商用利用の方は、ご連絡ください。
    学生やサークルの学習目的でまとめてご購入する場合は特別なコースをご用意させていただきます。

スポンサー

« raspberry Pi 2 と Pi 3 用のlightMPD-v1.0.2 | トップページ | Dnote フルデジタルスピーカー駆動アンプ とヘッドホン »

2016年4月17日 (日)

ArchLinuxでALSAドライバモジュールをコンパイルする方法

RuneAudioのベースになっているArchLinuxでsabreberry32のドライバモジュールをコンパイルする方法をご紹介します。 

先日、Raspbianでの方法を書いたのですが、あの方法ではArchLinuxではコンパイルできないからです。 

 

Sabre32_nm  

また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 でパーティションの変更を書き込み

再起動 reboot

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 http://nw-electric.way-nifty.com/blog/files/Makefile.archLinux

ドライバをコンパイル(make)します。  デバイスツリーもコンパイルします。

make -f Makefile.archLinux
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&#178;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) が出ていれば成功です。 

Sabre32_040 

Volume Control をHardwareにするとDAC内蔵のバードウェアボリュームを使うようになります。 

ご苦労様でした。 ちょっと大変でしたがこれで完了です。 

起動が遅いなって思った人は、下記のコマンドを打ってください。 初期状態では、90秒間、無線LANの応答待ちをしているようです。 念のため rootフォルダにバックアップします。

mv /etc/systemd/system/multi-user.target.wants/netctl-auto@wlan0.service /root/

 

 

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村
ブログランキングに参加中です。 めざせ1位! 
もしよろしければ「ぽちっと」お願いします。 



« raspberry Pi 2 と Pi 3 用のlightMPD-v1.0.2 | トップページ | Dnote フルデジタルスピーカー駆動アンプ とヘッドホン »

Raspberry Pi」カテゴリの記事

コメント

はじめまして
runeaudioのカーネルをアップデートすると、配布されているバイナリドライバのインストールがうまくいかなかったため、こちらの方法を試してみたのですが…現在もソースコードは配布されていますでしょうか。

hideshi さん

new_western_electric@yahoo.co.jp までメールを下さい。 
よろしくお願いします。

はじめまして

SabreBerry32基板を購入し、Raspberry Pi3 と runeaudio の組み合わせで使おうとしています。

http://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 さん

archLinuxは、ローリング・リリースで、常に更新され続けています。 Runeaudioの更新が昨年で止まってしまったので、不都合が出ている可能性がありますね。

こちらでも試してみますので、少々お待ち下さい。 

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/587107/63495575

この記事へのトラックバック一覧です: ArchLinuxでALSAドライバモジュールをコンパイルする方法:

« raspberry Pi 2 と Pi 3 用のlightMPD-v1.0.2 | トップページ | Dnote フルデジタルスピーカー駆動アンプ とヘッドホン »

サイト内検索

Sponsors link

2017年10月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

最近のトラックバック

無料ブログはココログ