Select Your Language

免責事項

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

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

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

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

スポンサー

« sabreberry32 頒布開始します | トップページ | Moode Audio Player Release2.5 でsabreberry32のマスター/スレーブを切換える方法 »

2016年3月17日 (木)

SabreBerry32のドライバのコンパイル方法(SABRE9018Q2C)

OSに Raspbian を採用しているvolumioでSabreBerry32用ドライバのコンパイル方法を説明します。 

本家RaspbianやRaspbianをベースにしている Moode Audio Player 等も同様です。 

SabreBerry32の紹介ページに書いたドライバ導入方法は、既にコンパイル済みのドライバをインストールするので、コンパイル環境を構築する必要がありません。 

 

以下は、自前でドライバモジュールをコンパイルする方法です。 

 

まずはコンパイルする環境を準備するところから始めます。 

私も長らく勘違いしていました。 じつは、ドライバモジュールをコンパイルするのにカーネルソースは必要でも、カーネル本体をビルドする必要はありません。 したがって、カーネル本体のセルフビルドに掛かるような時間(4~5時間)を待つ必要がありません。 

 

SDカードの領域拡大

 

Ssh01 

SDカードは、Volumio単体では2GBの容量で足りますが、カーネルソース一式を入れるので、8GBくらいあった方が良いです。 

それでは、SDカードの領域をいっぱいまで使えるようにfdiskでパーティション領域を拡大していきましょう。

 

sudo fdisk /dev/mmcblk0

d エンター (削除する)
3 エンター (3番目のパーティション)
n エンター (新規作成)
p エンター (プライマリ)
3 エンター (3番目のパーティション)
エンター (初期値のまま)
エンター (初期値のまま)
w エンター (書き込んで終了)

ここで、一度再起動します。 reboot       再起動したら、またsshで接続します。

sudo resize2fs /dev/mmcblk0p3  (パーティション3の場合)

終わったら、領域が拡大されたか、確認してみましょう。

root@volumio:~# df -h
Filesystem                   Size  Used Avail Use% Mounted on
rootfs                       7.3G  662M  6.4G  10% /
/dev/root                    7.3G  662M  6.4G  10% /
devtmpfs                     484M     0  484M   0% /dev
tmpfs                         98M  496K   97M   1% /run
tmpfs                        5.0M     0  5.0M   0% /run/lock
tmpfs                        256M     0  256M   0% /run/shm
/dev/mmcblk0p1                75M   24M   51M  32% /boot
Ramdisk                      256M     0  256M   0% /run/shm 

------ 8GBのSDカードの例です -------

 

 

コンパイル環境の構築

コンパイル環境をインストールします。

sudo apt-get update

sudo apt-get -y install ncurses-dev device-tree-compiler gcc bc make

gcc -v コマンドでバージョンを確認して下記コマンドのgcc バージョンと同じならOKです。 

cat /proc/version

 

もし違っていれば、該当するバージョンのgccをインストールします。 そして優先順位を指定します。 (例えば4.9が入っていて4.8を指定したい場合)  

sudo apt-get -y install gcc-4.8

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60

gcc -v コマンドでバージョンを確認して 4.8.xになればOKです。 

 

 

現在起動中のカーネルソース取得

rpi-source を導入します。 これ、すごい仕組みです。 現在使っているカーネルのバージョンを調べて、そのカーネルソース一式を一発で持ってきてくれます。

sudo wget https://raw.githubusercontent.com/notro/rpi-source/master/rpi-source -O /usr/bin/rpi-source

sudo chmod +x /usr/bin/rpi-source

sudo /usr/bin/rpi-source -q --tag-update

sudo rpi-source    <= 場所を指定しないと /root/ に展開されます

sudo rpi-source -d /home/pi/    <= 場所を指定する場合このような感じで
(ソースが落ちてくるまで、しばらく待ちます。。  10~30分くらい )

 

 

ドライバモジュールのコンパイル

終わりましたら、いよいよ sabreberry32 のドライバのコンパイルです。

git clone https://github.com/SatoruKawase/SabreBerry32

cd SabreBerry32

sudo make

sudo make modules_install

 

devicetreeも同様にコンパイル&インストールします。

sudo make dtbs

sudo make install_dtb

 

ドライバを組込むように設定

/boot/config.txt に下記の2行を追加すると、次回起動時に有効になります。

dtparam=i2c_arm=on
dtoverlay=sabreberry32

 

以上で終了です。 

 

手順さえ分かったら、意外と簡単ですかね。 

 

マスター・スレーブ切換え

/boot/config.txt の設定を下記のようにするとDACをスレーブで起動できます。 
次回起動時に有効になります。

dtparam=i2c_arm=on
dtoverlay=sabreberry32,slave

 

16bit (S16LEフォーマット)で再生したいときはスレーブに切換えてください。

 

 

 

 

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



« sabreberry32 頒布開始します | トップページ | Moode Audio Player Release2.5 でsabreberry32のマスター/スレーブを切換える方法 »

DAコンバータ」カテゴリの記事

Raspberry Pi」カテゴリの記事

コメント

次回のsabreberry32 頒布は何時ごろでしょうかね。

現在、部品の手配をかけている最中です。
再開は4月下旬ころを目指しています。 よろしくお願いします。

はじめまして、電流駆動アンプとSABRE9018Q2Cで検索して飛んできました。
素人考えで申し訳ないですが、9018Q2CとES9118は何が違うのかご存知でしょうか?

和京神壱さん

DAC機能を持ったICは、色々なメーカーから様々な品種がでています。 ESS社もいくつかの種類を出していますが、データシートを公開していないため詳細は不明です。 概要が書いてある資料はESS社のwebサイトで読むことができます。 そちらを参考にしてみてはいかがでしょうか。 

http://www.esstech.com/index.php/en/products/dac/

たかじんさんお忙しいところご返答ありがとうございます。
9018Q2CはHPA統合型について質問したのは、素人考えですが、HPAバイパスさせてDAC単体の出力も得られるのかなとか、電流出力型 DACならIV無しで電流駆動アンプに直結できないのかなといった疑問でした。

もう少し調べて見たいと思います。

和京神壱さん

電流を出力させたいという意味では、DAC単独のES9018K2M、PCM1792Aなどを使った方が良いと思いますよ。

先日、Sabreberry32をギリギリ入手できて、工作面は落ち着いたと思ったら中々ドライバインストールから戸惑ってしまったので、F/Bさせていただきますね。

先日、Trial Releaseされた、moOdeOS 2.6 TR4が出ましたが、ブログ内容からOS側が変わっていた点が下記のように変わっていました。
・moode audio playerにSetup Guideがついたのでログインユーザ等がそちらに記載されてようになりました。SSHログインはpiのみでrootログインは塞がれました
・moode audio playerではWeb UIの設定が、/var/www/player.dbに集約されていますが、TR4時点でaudiodevの数が93個あり、id numberがプライマリキーになっているので、sabre32_install.shでコケました(一応の治し方を下記に書いておきます)

シェルスクリプトの中では、下記のMaster、Slaveの設定を追加している部分になります。
sqlite3 /var/www/db/player.db "INSERT INTO "cfg_audiodev" VALUES(85,'SabreBerry32_Master ','ESS SABRE9018Q2C','Sigma/Delta 32 bit 384 kHz','I2S','sabreberry32','100,0,FIR interpolation with de-emphasis','H/W volume');"
sqlite3 /var/www/db/player.db "INSERT INTO "cfg_audiodev" VALUES(86,'SabreBerry32_Slave ','ESS SABRE9018Q2C','Sigma/Delta 32 bit 384 kHz','I2S','sabreberry32,slave','100,0,FIR interpolation with de-emphasis','H/W volume');"

sqlite3からdbファイルを開いてみると下記の定義のようになっていますが、settingsの部分が設定にうまく反映されていないようでした。
確認をしてみると、

sqlite> .schema cfg_audiodev
CREATE TABLE cfg_audiodev (id INTEGER PRIMARY KEY, name CHAR (64), dacchip CHAR (32), arch CHAR (128), iface CHAR (32), driver CHAR (32), settings CHAR (128));

sqlite> select max(id) from cfg_audiodev;
93
という事で、対応機器の追加で、idは94以降の数字を指定しなければならないのと、最後のsettingsの指定の記載で、'H/W volume'のカラムが変更されてしまったのかもしれませんね。
primary keyがバージョンアップと共に変わってしまうので、シェルスクリプトに落としこむのは変数を取ったりしなければならないので、チョット面倒くさそうですね。2.6 TR4時点では、下記のように手でinsertをしてやれば解決しました。DACの設定は手動で設定することになります。

pi@moode:~/sabreberry32 $ sqlite3 /var/www/db/player.db

sqlite> INSERT INTO "cfg_audiodev" VALUES(94,'SabreBerry32_Master ','ESS SABRE9018Q2C','Sigma/Delta 32 bit 384 kHz','I2S','sabreberry32','');
sqlite> INSERT INTO "cfg_audiodev" VALUES(95,'SabreBerry32_Slave ','ESS SABRE9018Q2C','Sigma/Delta 32 bit 384 kHz','I2S','sabreberry32,slave','');

しかし、Rune Audioもそうですが、OS側がどんどん変わってしまうと頒布側としても設定サポートをどこまでやらなきゃいけないのか、キツイですね…

のびさまさん

ご指摘と、詳細な情報ありがとうございます。
私もちょうど調べていたところでした。

Pi3ではapt-get updateできず、Pi2でドライバをコンパイルする必要がありますね。 またDSD2PCM変換再生がうまく機能しないようです。

現在、Testリリースのようですので、正式なリリース2.6が出たら対応しようと思います。

たかじん様

MoOde Audio 2.6正式版で音出しできましたのでご報告です。

使用したドライバは、TR4用に公開していただいたものです。
これを、のびさまさん情報をもとにDB登録したのですが、正式版では「97」まで使用されており、「98」および「99」で登録しました。

DSDtoPCM再生もできますが、5.6Mは音が途切れます(数秒演奏して途切れ、また数秒演奏して...という感じです)。
この時のCPU使用率は25%程度のようなので、ネットワーク環境を含めて検証する必要がありそうです(NASとRPI間は100Mの有線LANです)。

また何か分かったら情報を上げさせていただきます。

こんにちは。

自分は、MoOde Audio 2.6(kernel 4.4.13-v7+、gcc 4.9.3)で、SabreBerry32ドライバを再コンパイルしようとしているのですが、モジュールがロードされるところで、エラーが出ています。ヘッダーが足りないようです。

FlatTwinさん

情報ありがとうございます。 早速コンパイルしてバイナリを用意しました。
5.6M DSDですか。 MPDのバッファや、NASのマウントオプションなど調整する必要があるかもしれないですね。

AYORさん

私もつい先程コンパイルしました。 問題なくコンパイルできました。
ただ、前回と違うのはrootでログインできないので、コマンドの前に「sudo」をつけないといけないです。

たかじんさん、

SabreBerry32をpi3(mood 2.6)で動かそうとしています。

私も、SabreBerry32用ドライバのコンパイルとインストールはエラーは出ないのですが、モジュールがロードされていないようです。lsmodでモジュールは表示されていますか?

SabreBerry32が認識されていないような気もします。power LEDは点灯しています。
 

AYORさん

起動時に組み込まれたかどうかを見るには dmesg | grep sabre とコマンドを打つと良いと思います。

それと、カーネル4.4.x系はデバイスリーの形式が変更になりました。 上に追記しましたので参考にどうぞ。 

たかじんさん、

 ご指摘のとおり、device treeの問題でした。モジュールが読み込まれました。有難うございました。

ドライバー組み込み後の状況です。ネットラジオを聞いております。

Ethernetでは再生可能ですが、内蔵のwifiと共存?できません(再生できず)。また、AirPlayでの再生もできていません。そちらの環境では、どうでしょうか?

Pi3 MoOde Audio 2.6(kernel 4.4.13-v7+、gcc 4.9.3)

AYOR さん

Shairpotを使う場合は、スレーブモードをお使い下さい。 
http://nw-electric.way-nifty.com/blog/2016/03/moode-audio-pla.html
こちらも参考にどうぞ。

EthernetとWifiはどちらにアクセスしてよいか迷うので、片方だけの方が良いと思います。 LANケーブルを抜いて、ちゃんとネットにアクセスできているか確認すると良いです。 

たかじんさん、

お返事、恐れ入ります。ご指摘のとおり、Sabreberry32はslaveにしているのですが。
コンパイルした上記ドライバーを入れるとwifiが使えなくなることがありますか?

AYOR さん

sabreberry32ドライバ以前の問題のようです。

http://moodeaudio.org/docs/readme.txt

WifiはAP(アクセスポイント)モードになっていて、ルータへは接続しない仕様になったようです。 (172.24.1.1 - AP mode activeという表示が出てます) 
ひと通りMENUを見てみましたが、APモードを解除するものが見つかりません。 

NASやネットラジオへの接続は有線LAN。 操作はスマホからwifiでRPi3へ直結という方針になったのかもしれないですね。

1. CONFIGURE FOR WIFI CONNECTION
- Ethernet mode
a) leave eth cable connected
b) insert wifi adapter (while Pi running)
c) http://moode
d) Menu, Configure, Network
e) configure a wifi connection
f) Menu, Restart, Power off
g) unplug eth cable
h) power on

という手順が書いてありますね。

ダウンロードした素のR26のままでも、WIFI接続は不調ですね。
一度は有線LAN接続しないと、WEB-UIにアクセスできないし、画面が出たとしても再生が出来ない。

対して、RuneAudioのWifiは有線LANとまったく変わらないレベルで接続できます。 設定するときもAP一覧から接続したいAPをクリックしてパスワード入れるだけと、超お手軽です。

Pi3でWifiを使いたいならRuneAudio v0.4 がお勧めですね。

たかじんさん、

御返事、有難うございます。
当方の思い込みだったようです。その後、diyAudioのForumも見ているのですが、書き込みが多くて有用な情報にたどり着いておりません。

あと、同環境で、lircが動きません。lirc-rpiが組み込まれません。IRモジュールや設定方法は、以前お書きになられていた方法です。


AYORさん

最近のRaspbianでは、/boot/config.txt の書き方が変わっているみたいです。
私もはまりました。


/etc/modules
lirc_dev ← 追加

/boot/config.txt
dtoverlay=lirc-rpi ← 追加
dtparam=gpio_in_pin=24 ← 追加・ご自分の環境に合わせて変更
dtparam=gpio_out_pin=7 ← 追加・ご自分の環境に合わせて変更

でどうでしょうか?

AYORさん
通りすがりのおじさんさん

以前と変わっていなければ、下記の方法ですね。
http://nw-electric.way-nifty.com/blog/2015/08/20159-7e3b.html

通りすがりのおじさんさんのおっしゃる通り、昨年の1月に方法が変わりました。

たかじん さま

Raspberry Pi 3を使用しています。
設定についてお尋ねいたします。

①MOODE Audo Player2.6 にsabreberry+のドライバを組み込む方法

②MOODE Audio Player Relese2.6で外付けの無線LANアダプター(I・O DATA:WN-G300UA)を取り付けるときの設定方法

 ①32ではなく、+を購入しました。
 ②ルーターの電波が届きにくい部屋で使用します。

  お手数ですが、以上よろしくお願いいたします。

fu103 さん

sabreberry+ですと、hifiberryのドライバで動作します。 MoodeのWifiは、かなり厄介です。 スマホからのコントロールを前提にソフトを作りこんでいるようで、NASなどに接続しにくいです。 
私も挑戦しましたが、一度有線LANを接続しないとNASへ到達できません。 そして、認識した後も、すぐに途切て、Wifi経由でまともに音楽を再生出来ませんでした。

wifiを使うならRuneAudioを使う方が良いかと思います。 なんら苦労することなく設定できますよ。

たかじんさま

お忙しいところ、回答ありがとございます。

①sab+は、hifiberryのドライバで動作する、ということでしたがCustomization settings→Audio device descriptionの
chip名がES9023にならず、音はでませんでした。

②Runeaudioは動作が安定性せず、手こずりましたwifiも設定できませんでした。

すべてresetして、別のMPDでアプローチいたします。
今後もよろしくお願いいたします。

fu103 さん

hifiberryドライバは、PCM5102をはじめとする標準的なI2Sを出力するドライバです。 PCM5102AもES9023もレジスタというのは存在せず、一方的にRPiからデータを送り出すだけなのです。 画面に出ているチップ名は単に説明文です。 気にしないで下さい。 

volumioでもRuneでもMoodeでも、Web-UIの応答待ちをしないで矢継ぎ早にメニューを弄繰り回すようなことをするとダメかもしれないですね。 ワンクリックしたあと、RPiの処理が終わるまで一呼吸まつのが基本的な操作になります。 
LightMPDはweb-UIで設定しないので、そういう要素はありません。 

丁寧な回答ありがとうございます、
現在、七転八倒中ですが
アドバイスを頂き、心強いです。


たかじん様

現在、ドライバのソースリポジトリにアクセスができないようで、以下の git clone に失敗します。
git clone https://github.com/SatoruKawase/SabreBerry32

お手数ですが、ドライバのソースを公開されている場所に配置していただけると幸いです。

fu103さん

moode audio2.6の設定は、
「Configure」→「Configuration setiings」→「System」→「System Cinfiguration」→「I2S audio device」
 に 「HiFiBerry DAC」 を選択して再起動すればOKのハズですよ。

mattsun さん

とりあえずバイナリドライバをご使用ください。
gitは、とある問題のため停止中です。

通りすがりのおじさんさん

フォローありがとうございます。 その通りですね。 英語でメッセージがでるとおり、Hifiberryドライバを選択したあと「再起動」が必要になりますね。

たかじん様

ご確認ありがとうございます。
git 環境の件、承知いたしました。
raspberry pi zero 環境でコンパイルしたいため、ソースのご提供まで待ちます。

mattsun さん

new_western_electric@yahoo.co.jp までメールを頂ければソースをお送りいたします。 

たかじん様

いつも楽しませて頂いております。

上記のドライバモジュールのコンパイルでgit clone すると usernameとpasswordを聞かれて先に進めないのですが、ご教示を頂ければ助かります。どうぞ宜しくお願い致します。

shironeko さん

new_western_electric@yahoo.co.jp までメールを頂ければソースをお送りいたします。 

たかじん様

いつもお世話になります。

最新のKernelでドライバインストールを行いたいので、ソースをご提供願えないでしょうか?
よろしくお願い致します。

Sid さん

http://nw-electric.way-nifty.com/blog/2016/11/sid-adf1.html

合計4回送っていますが、yahoo.co.jpメールのブロックを解除していただかないと送ったものは届かないと思います。

よろしくお願いします。

たかじん様
ご迷惑をお掛けしています。
HOTMAIL側で自動でSPAM判定しているようで
解除には時間がかかりますので、他のメールアドレスで
連絡を取り直します。
本当に迷惑ばかりで・・・ すみません。

Sid さん

お手数かけてしまいました。 今後もよろしくお願いします。

私もドライバモジュールのコンパイルでgit clone すると usernameとpasswordを聞かれて先に進めないのですが、ソースを送ってもらえますか。

たかじん様

Raspbian Jessieに最新のカーネルやパッチを適用してsabreberry32を使いたいので、ドライバーのソースを送っていただきたいと思います。お手数をお掛けしますが、よろしくお願い致します。

コメントを書く

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

トラックバック

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

この記事へのトラックバック一覧です: SabreBerry32のドライバのコンパイル方法(SABRE9018Q2C):

« sabreberry32 頒布開始します | トップページ | Moode Audio Player Release2.5 でsabreberry32のマスター/スレーブを切換える方法 »

サイト内検索

Sponsors link

2017年7月
            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          

最近のトラックバック

無料ブログはココログ