Raspberry Pi Zeroを10秒以内で高速起動する最も簡単な方法
Raspbian jessie lite (2017-03-02) を使って手間をかけずに高速起動する方法を試してみました。カーネルのビルドなど手間と時間のかかる方法は除外して、どこまで速くできるのでしょうか?
注記) Strech にも対応しました。
結果から報告しますと、下のsystemd-analyze plot 画像のように、ギリギリ10秒を切ることが出来ました。
このあと、さらに/boot/config.txtに「force_turbo=1」を追記することで 約 8.3秒まで縮めることに成功しました。
ターゲットの条件として下記の項目で挑戦しました。
・ネットワークに接続しないスタンドアローン使用
(繋ぐことも可能)
・無茶なオーバークロックをしないで実用的に使えること
・MPDで音楽を再生する
■現状把握から
現在のRaspbianの起動は、systemdにより並列に色んなサービスが同時に立ち上がっていきます。 何を待っていて時間がかかっているのかを見極めてクリティカルチェーンを特定する必要があります。 このときsystemd-analyzeはとても有用なTOOLです。 従来のbootchartの簡易版です。 Raspbianには最初から入っているので別途インストールすることなく使えます。
systemd-analyze time : 起動にかかった時間の表示
systemd-analyze blame : 時間がかかっている順にサービスの起動時間を表示
systemd-analyze critical-chain : 時間のかかっている呼び出しチェーンを表示
systemd-analyze plot > result.svg : 詳細を画像として保存
最初に blame で時間がかかっているServiceを特定して、不必要なサービスは止めてしまいます。
一旦 rebootして plot の出力画像を見て、詳細を確認してみます。 クリティカルチェーンの特定は critical-chain の方が分かりやすいかもしれません。
止められるサービスと止めちゃOSが正しく機能しなくなるサービスがあるので注意しながら作業するしかありません。 スタンドアローンと言えどもLinuxでネットワークを完全に止めてしまうと、設定の変更も出来なくなってしまいますね。
こちらが、Raspbian をそのまま Pi Zeroで起動 したときの time とcritical-chain です。
約30秒ほどかかっています。 これは少し極端な例で、SDカードはスピードClassが何もない時代の2GBのものを使った例です。
少しでも速く起動したいならClass6やClass10など高速なSDカードを使います。 カードが速ければ、何もせずに20秒くらいになります。
■不要なサービスを止めまくる
systemctl list-units --type=service コマンドで現在有効なサービスを列挙します。
systemctl list-unit-files --type=service コマンドは定義されているサービス一覧。
標準状態でも最低限のサービスしか走っていないようですが、更に以下のサービスを止めました。 必要に応じて止めるサービスを選択すると良いと思います。
sudo systemctl disable dphys-swapfile
sudo systemctl disable keyboard-setup
sudo systemctl disable kbd
sudo systemctl disable ntp
sudo systemctl disable triggerhappy
sudo systemctl disable plymouth
キーボードが意外と長く時間を食っているので止めました。 コレによりUSBキーボードを接続しても使えなくなると思いますが、sshで接続している限り影響はないようです。
swapファイルも使っていない様子なので止めました。
ntpは時刻合わせのサービスで本来必要なのですが、スタンドアローン使用なので、いさぎよく切り捨てました。
dhcpcdサービスは、ネットワークを接続していないと非常に長い時間待ってしまうので、下記のようにタイムアウトを5秒まで短くします。 (mpdはネットワーク起動後に立ち上がるため短くしたい)
sudo nano /etc/systemd/system/dhcpcd.service.d/wait.conf
[Service]
ExecStart=
ExecStart=/sbin/dhcpcd -q -w -t 5 #タイムアウトを追記
今回はIPアドレスを固定しました。 つまりdhcpcdを止めました。
sudo systemctl disable dhcpcd
IPアドレスの固定化の方法は、割愛させてください。
その他 plymouth-start と triggerhappyは、詳細がよくわからないけど止めても平気らしいので止めました。
---------------------
Strechの場合は、同様に下記のサービスを止められます。
sudo systemctl disable dphys-swapfile
sudo systemctl disable keyboard-setup
sudo systemctl disable triggerhappy
sudo systemctl disable bluetooth
sudo systemctl disable dhcpcd
■/boot/cmdline.txtの編集
sudo nano /boot/cmdline.txt
末尾に「quiet」を追加して、起動時のメッセージを抑制します。
メッセージを出力しているシリアル出力の速度がクリティカルチェーンになる可能性があるらしいです。 シリアル通信を止めてしまうという手法もあるようです。 cmdline.txt の中の「console=serial0,115200 console=tty1」 を削除。 その場合は getty@tty1 と hciuart サービスも止める事ができます。
sudo systemctl disable getty@tty1
sudo systemctl disable hciuart
■/boot/config.txtの編集
mpdで音楽を再生したいので、I2S-DACドライバのhifiberryDACを追加しています。
これはむしろ起動時間が伸びる方向になりますが仕方ありません。 標準のオーディオの方は使わないのでコメントアウトします。
CPUクロックは1000MHzを指定します。 Pi Zeroは1000MHz動作を謳っているのでオーバークロックではありません。 念のためsdramの速度も500MHzと指定します。 ちなみに、負荷が減るとCPUクロックは700MHzに下がります。
force_turbo=1を指定すると、最大クロック側に貼り付きます。
今回のようにmpdで音楽再生程度ならCPUが100%使用になることがないので最大クロック固定でもさほど熱は発しないので実用上も大丈夫なようですが、その他の場合、様子をみながら設定するのが良いと思います。(下記の例はコメントアウトしています)
sudo nano /boot/config.txt
arm_freq=1000
sdram_freq=500
#force_turbo=1
<<<<中略>>>>
# dtparam=audio=on
dtoverlay=hifiberry-dac
■mpd mpcのインストール
sudo apt-get update
sudo apt-get install mpd mpc
これは、高速起動とは関係ありません。 音楽を再生するためにmpdを入れました。 楽曲はSDカードの中に入れて登録します。 mpcは、コマンドライン型のmpdクライアントソフトです。
mpc play とコマンドを打つと再生開始します。 mpdはlogをとっていて、再生中にOSがシャットダウンした場合、次回起動時に止まった曲の頭から自動で再生開始します。
SDカードのどこに楽曲を入れるのか等 mpdの設定方法などは別途書こうと思います。
今回は高速起動の記事なので詳細は割愛いたします。 ご了承ください。
mpc update
mpc listall
mpc ls | mpc add
mpc clear
くらいを使うと良いでしょう。
■最終結果
Raspbianの初期状態のresult.svg 画像 約30秒
※本当の1回目の起動はSDカード一杯まで領域拡大する作業があるのでもっと長い。
上の高速起動設定に加え force_turbo=1にしたときのresult.svg 画像 約8.3秒
※ この設定で Pi 2 約 7秒。 Pi 3 約 5秒 にて起動できるとの情報を頂きました。 ありがとうございます。
この起動高速化したRaspbianは何に使ったのかと言うと コレです。
実際に音がでるまでの時間は、最初にSDカードへアクセスするブートローダー部分やmpdの再生開始の時間があるので約16秒ほどになっています。
この実験機(試作機) は、4/29、4/30のヘッドホン祭りに展示される予定です。 もし、よろしかったら見てみてください。
シャットダウンは停止ボタンのダブルクリックです。
ただ、マイクロUSBコネクタが貧弱なので、抜き差しを繰り返すと、壊れるかもしれないですね。 電源の入れ直しは、ケーブルの反対側USB-Aコネクタで行うほうがよさそうです。
にほんブログ村
ブログランキングに参加中です。 めざせ1位!
もしよろしければ「ぽちっと」お願いします。
« ハイレゾとCDの波形比較の興味深い考察 | トップページ | ラズパイオーディオの会 »
「Raspberry Pi」カテゴリの記事
- 秋の夜長には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)
- OSC Tokyoの準備で「IGZO 7インチ」1920x1200 LCDを動かそうとしたら・・・(2024.03.08)
「Z-MPD」カテゴリの記事
- 軽量ディストリビューション Z-MPDにNASを接続する方法(2018.05.21)
- 軽量ディストリビューション Z-MPD APモード テスト版(2018.05.07)
- 軽量ディストリビューション Z-MPDリリース(2018.05.01)
- RaspberryPiにympdをインストールする方法(2017.07.03)
- SabreberryDAC ZERO用に手軽で軽量なMPDディストリビューションを作りました。(2017.07.01)
「SabreberryDAC ZERO」カテゴリの記事
- UPS HAT(C) という名前のラズパイZero用バッテリー(2024.10.23)
- RPiZeroRP2040 ラズパイZERO形状USB-DDC基板(2024.10.20)
- SabreBerryDAC Zero2用のアクリル板キット(2024.10.05)
- SabreBerryDAC Zero2用のケース 3Dデータ(2024.09.17)
- RPiZeroRP2040 USB-DDC基板試作(2024.09.01)
たかじんさん こんにちは
Moode Audio が、3.1 -> 3.5になり、Pi-zero Wをサポートしているようです。
ダウンロードして、解凍するときに、プロダクトキーを入れるようになりました。PayPalでは$10払うと、すぐにメールでキーを送ってくれました。
年間2回のメジャーアップデート。マイナーアップデートの時は無料になるように、考えているようです。
払う前に、お試しできないのが、ちょっと辛いですが、シンプルでCPUパワーのないPiでも動かせるシンプルなところが好きなので
これからも使っていこうと思います。
「SabreBerry+」 + 「Pi3」にて、アドバンストカーネルで動かしております。
アドバンストカーネルは、2つから選べるようになっていて、
選択枝の下を選んで、動かしております。
シンプルな画面はそのままで、SSIDを読み込んで、選択できるようになりました。有線LANは、IPアドレスを入れるようになっていて、おしい気がします。
AirPlayは、まだ使っておりませんが、最新のものが入っているようです。
投稿: toto | 2017年4月21日 (金) 02時29分
ES9023で来ましたか、操作SWまで搭載でよく納まりましたね~。
クロックは80~120kHz?の1個かな。
ZEROの小ささ生かすとこう言う形になりますよね!
ポータブルの専用ケースも出そうだな。
ポータブル/HPしない私はこれ2枚使って左右完全分離とか出来ないか妄想しちゃう。
投稿: CR-X | 2017年4月21日 (金) 03時22分
ポータブルは、起動が速くないとタイミングを逸しますね。
後は電池ですね。
投稿: yosyos | 2017年4月21日 (金) 07時26分
Zero用Sabreberry、素晴らしい…大期待です。
通勤中がメインの音楽聴きの時間の私にはまさに理想。
実はGWに何か作ろうかといろいろ計画してたのですが、これが出るなら待てます!!
家用環境の改善に時間を使いたいと思います。
投稿: h.imagine | 2017年4月21日 (金) 08時41分
春のヘッドフォン祭りへのご参加おめでとうございます。
今回も行く予定です。
たかじん様にお会いできるのを楽しみにしています。
宜しくお願いします。
投稿: iijima | 2017年4月21日 (金) 16時19分
この方法はPi3にも適応出来ますか?
Pi3なら何秒で起動できますか?
投稿: ken nomuar | 2017年4月21日 (金) 17時56分
いつも参考になる情報ありがとうございます。
ラズパイ3で試したところ5秒ほどで起動できることがわかりました。
このほか、Bluetoothのサービスをとめました。 参考まで。
投稿: | 2017年4月21日 (金) 21時27分
高速起動、Zero DACとも素晴らしいですね!!
高速起動はGWにゆっくり試させていただきます。
Zero DACは・・・GWには無理そうですね(^^;;
投稿: 通りすがりのおじさん | 2017年4月21日 (金) 22時22分
toto さん
MoodeAudioの有料化は、少し残念な気持ちと、あれだけのソフトウェアが無料だったのは、むしろおかしいという気持ちとで複雑です。
ZERO Wは、いまだ認可が降りていないようで、何かしら問題があったのではないかと推測していますが、どうなのでしょう。
CR-Xさん
おっしゃる通りケースは欲しいところですね。
yosyos さん
電池は、外部にDC/DCで駆動することはできると思います。 Pi ZEROの基板の裏にテストランドがあって、配線がしやすいという利点があるのです。
h.imagineさん
さすがにGWには、間に合わないですね。 Zreo Wが出て、ひと通り確認したあと基板製造しようかと考えています。
iijima さん
ヘッドホン祭りでは出品者側ではないので、私も少しの時間、見に行くだけになります。 今のところ、29日の方に見に行こうかと思っています。 こちらこそよろしくお願いいたします。
ken nomuar さん
既に回答が出ているようですが、Pi3でも基本的には同じ内容で高速化できると思います。
???さん
ご報告ありがとうございます。 5秒ですか。 さすがに4コアと言えども4倍速にはならないのですね。
ROM化してsyslogなどSDカードに書くものを全てRAMDISKに移行させるなどすると3秒くらいになるというのをネット上で見ましたが、そこまでするのは手間がかかります。 通常運用と変わらない設定で5秒起動なら、まあまあかもしれませんね。
通りすがりのおじさんさん
ありがとうございます。 GWに間に合わなくてすみません。
投稿: たかじん | 2017年4月22日 (土) 10時42分
たかじんさん
5V電源のランドを見つけました。ありがとうございます。
micro-USBのポートは壊れそうですもんね。
投稿: yosyos | 2017年4月22日 (土) 10時59分
totoさん
私もmoode audioを主に使っています。
早速3.5を導入してみましたが、3.1に比べて少し動作が不安定な感じがします。
うちでは、プレイリストが保存出来ない、Configureで設定中にハングする事がある為、ひとまず3.1に戻しました。
たかじんさん
急かすみたいな書き方をしてしまってすみません。
やっとDC-Arrowの部品が揃ったので、GWはDC-ArrowとSB32の組み合わせを堪能しようと思います。
投稿: 通りすがりのおじさん | 2017年4月22日 (土) 17時49分
たかじんさん
RPi zoroWが出るまで待とうと思っているので、それまで様子見です。
もし、技適を取るのに、何か問題だとすると、Pi zero Wのアンテナは、基板上に設けた。三角形の空間なので、いじるところがすくなそう。
通りすがりのおじさん
Pi zoroが動くので、とっても期待してたのですが、そういえば、SDに曲をコピーする時止まったし、設定した後、再起動しても、再起動しなかったし、
アドバンスドモードのせいだと考えておりました。
私も、安定が一番なので、Moode 3.1に戻しておこうと思います。
投稿: toto | 2017年4月23日 (日) 19時41分
高速起動goodです!!!
IoT使用でArchからRaspbianに移行していたけど、遅かったのが気になっていました。
この設定ならArchよりも速いかも(^_^;;
情報ありがとうございます。 ありがたく使わせて貰います。
投稿: elemain | 2017年4月23日 (日) 19時56分
書きわすれました。 Pi 2 が7.2秒で起動します。
Archは14-15秒くらいでした。
投稿: elemain | 2017年4月23日 (日) 20時03分
通りすがりのおじさんさん
ありがとうございます。 3.5を買おうか迷っていますが、まだ購入していません。 不安定なのは、ちょっとですね。 3.1もダウンロードできなくなってしまったので、これからMoodeを試そうという人には敷居が上がってしまいましたね。
toto さん
技適は、海外に比べて厳しいのでしょうかね。。。 詳細は私もわかりませんが、引っかかるとしたらスプリアスレベルが規定を超えてしまった等でしょうか。 おっしゃる通り、アンテナがプリントパターンで形成されているので、修正するなら時間がかかりますね。
Moode 3.1でもPi Zeroで動きます。 Zero W が3.5からということなんですね。
elemain さん
お役に立てたようでよかったです。 方法を調べたり試行錯誤したりで4日ほどかかりました。 Linuxの情報は古くなると使えなくなることが多く、現時点で正しく動く方法を導き出すのは結構苦労します。
Pi 2 だと 7秒ちょっとなのですね。 情報ありがとうございます。
ところでIoTって何に使うのでしょうか?
投稿: たかじん | 2017年4月23日 (日) 22時38分
たかじんさんはじめまして
Moode Audio 3.5なのですが、SabreBerry32のドライバがインストールできないようです。
データベースへの登録が失敗してるようなので直接書き換えてみましたが、それでもうまく動作させることができませんでした。
現在は3.1に戻して快適に使っておりますが、3.1のダウンロードもできなくなったのは残念ですね。
投稿: fuwawa | 2017年4月24日 (月) 15時14分
たかじんさん、通りすがりのおじさん
Moode Audio3.5を再インストールしました。音楽をnasから再生している時は、音飛びもなく、安定していたので、やり直してみました。
SDをデジカメでフォーマットした後、PCで再度、クイックじゃないフォーマットをやり。
StanderdカーネルのままMoode Audioの設定を終えて。。
その後、アドバンスドカーネルに変えたら、ちゃんと動く。
有機ELの表示もつけて、再起動もできております。
SDのフォーマットを失敗してたのかな。
投稿: toto | 2017年4月24日 (月) 23時07分
fuwawa さん
なるほど、スクリプトではなく手動インストールした方がいいかもしれないですね。 近いうちに試してみようと思います。
toto さん
SDカードのフォーマットでなおるケースはvolumioでも経験したことがありました。 イメージデータで上書きするので関係なさそうに見えて、なにかあるんでしょうね。
投稿: たかじん | 2017年4月25日 (火) 23時39分
>> ところでIoTって何に使うのでしょうか?
PoEを使って構内各所の空調ダクトに温度・フローセンサーを搭載したPi2を15個配置。 サーバーにUPしてします。
ダクトはトタン製なのでWifiはNG。
外部のネットに接続していないので厳密にはIoTといえないがセキュリティの観点からクローズした環境で運用してます。
時々応答が無いPiが出てきたりすると、PoE-HUBごと落として再起動してます。
そのとき、速やかに起動できると助かるのです。
投稿: elemain | 2017年4月26日 (水) 17時23分
elemainさん
なるほど。 それはもう、個人の趣味というレベルのものではありませんね。 実用的、かつ、業務用のシステムでRaspberryPiを活用している事例なんですね。
ネットワークオーディオ的な使い方で1ヶ月くらい電源をONしっぱなしでも、特にもんだいなく動くのは試したことがあるのですが、あくまでも趣味レベルでの話でした。
無駄にSDカードにアクセスするsyslogなどをRAMDISK等に移すなどしてSDカードの書き込みを制限する方法が良いかもしれませんね。 ご存知かと思いますがSDカードは書き換え回数により寿命があります。
この記事の方法では、ROM化までやっていません。 ご注意いただけると幸いです。
投稿: たかじん | 2017年4月28日 (金) 08時27分
totoさん
遅まきながら、totoさんと同じ処理で再インストールをしようと思ったのですが、ふとmoodeのHPを見ると3.6がリリースされていました。
リリースーノートに
- FIX: Playlist save not working
があったので、これから3.6をインストールしてみます。
(3.5では結構動かなかった機能があったみたいです)
投稿: 通りすがりのおじさん | 2017年4月29日 (土) 19時11分
通りすがりのおじさんさん
totoさん
そういえば、MoodeのAdvancedカーネルは、Pi2、Pi3用だったような気がしますね。 つまり Pi1、Zero、 Zero Wでは、使えない。
投稿: たかじん | 2017年4月30日 (日) 09時40分
Moodeの3.1では確かにAdvancedカーネルはPi2/Pi3用だとありましたが、3.5からは注釈が消えているようです。zeroで試してみればいいのかな。
ところでやはりSabreberry32用ドライバは3.6には入りませんね。insmodしても Invalid module format と言われます。
また、dbも /var/local/www/db/moode-sqlite3.db に変更になり、schemaも少し変わったようです。
なお、3.6だとAdvancedもLLとRTが選べるようになりました。Sabreberry32が使えないので、Pi-DAC PROでいろいろ試しています。
投稿: h.imagine | 2017年5月 1日 (月) 19時35分
通りすがりのおじさん
たかじんさん
irberry DACは、standerdカーネルで、動かしております。
Moode3.5からSysten configurationから、3.6にバージョンアップできました。メニューに見つけられなかったのですが、System configurationの文字のすぐ下の緑の文字[check]でした。
でも、メニューから[reboot]ができない。( ; ; )
やりなおしか?
投稿: toto | 2017年5月 1日 (月) 19時51分
totoさん
再インストールです!w
リモコンも液晶もこれまで通り使えて快適です!w
投稿: 通りすがりのおじさん | 2017年5月 1日 (月) 20時42分
h.imagine さん
おっしゃる通り、記述が消えてますね。。。
実際どうなんだろう。
とりあえず、ノーマルカーネル用のsabreberry32ドライバを用意しました。 Advancedの方は、これからです。 もう少しお待ち下さい。
toto さん
通りすがりのおじさんさん
バージョンアップは、SDカードへの転送からやり直す方が安心感がありますね。
> リモコンも液晶もこれまで通り使えて快適です!w
さすがです。
投稿: たかじん | 2017年5月 2日 (火) 06時51分
朝気づいたらMoode 3.6用ドライバが!! ありがとうございます。
build環境構築しようかと思っていたところでしたが、助かりました。
早速導入して何とも言えない音の密度にニンマリしているところです。
DAC zeroを待たずとも、強固なケースを調達してこれを持ち歩こうかなという気になります。
そうそう。zeroにadvカーネルを導入してみましたが起動しませんでした。まあ単なる実験です。
Moodeは設定が整理されて導入が楽になったので、何かあったら即イメージ焼き直して元通りです。
投稿: h.imagine | 2017年5月 2日 (火) 08時12分
h.imagine さん
やはりPi1のCPUではadvancedカーネルは対応していないのかもしれませんね。
advancedカーネル用のsabreberry32ドライバは、近いうちに対応しようと思います。
よろしくお願いいたします。
投稿: たかじん | 2017年5月 5日 (金) 08時09分
SabreBerry32のページが更新されているのに先ほど気づいたので、advカーネル用のドライバを試させていただきました。
moode 3.6、RTカーネル、32bit/384kHzで問題なく使えることを確認しました。ありがとうございます。
ただ、チュートリアル中のVol.カーブの設定はmoode 3.5以降ではなくなってしまっているようです。聴感ではデフォルトでlogになっていると思います。
手持ちのヘッドホン、イヤホンをずらりと並べて取っ替え引っ替えしばらく楽しんでますが、ES9018Q2Cのヘッドホンドライブ能力はなかなかのものですね。
投稿: h.imagine | 2017年5月 7日 (日) 00時12分
h.imagineさん
ご指摘、ありがとうございます。 Advanced-LL対応させたときに訂正しようと思います。
細かいところで設定が変わってきてますね。
9018Q2Cのヘッドホンドライバは、12Ω以下のインピーダンスが低いヘッドホンだと、少しきつくなってきますが、30Ωや50Ω程度のヘッドホンならわりと良いところいきますね。 下手なヘッドホンアンプを噛ますよりも細かい音まで聴くことができるように感じます。
投稿: たかじん | 2017年5月 7日 (日) 21時51分
RT用とLL用は別バイナリだったのですね。LLも試してみたいと思います。
ここのところ、Sabreberry32とT50RPmk3nの組み合わせがとても気に入って、これでひたすら音楽を聴いています。
ところで、新しいドライバはalsamixerにDPLL, IIR Filter, Over Sampling Filterといった設定項目が増えてますね。
従来のFilter TypeにもUserという設定が増えてますが、これはユーザー定義が使えるということでしょうか。
投稿: h.imagine | 2017年5月13日 (土) 18時44分
h.imagineさん
LLとRTとで別のカーネルになっていて、ドライバも別々に用意しないと動かないことがわかりました。
T50RPですか。 フォステックスも良い音のヘッドホンをだしていますね。 今まで聞いたことが無かったのですが、先日、漆塗りのモデルを聞いてびっくりしました。
フィルタ設定は、ユーザーにすると、係数を独自のものにすることが可能です。
/etc/SabreBerry32/coeff_tbl.txt
というテキストファイルを読み込んでいますので、それを差し替えるだけです。
投稿: たかじん | 2017年5月14日 (日) 07時43分
たかじんさん
takobozuと申します。楽しくサイトの方拝見させていただいております。
moodeでrtカーネルを選択して音出しをした場合、ノイズなどございませんでしょうか?
私はmoodeは無料のころに一度試しただけなのですので最新の3.6のことがわかりませんのでできれば実際にお使いの方にお聞きしたいと思い、投稿させていただきました。
お使いのdacがi2sdacかusb-dacかも教えていただけますと幸いです。
投稿: takobozu | 2017年5月15日 (月) 11時02分
takobozu さん
DACはI2Sです。
384kHz再生は、moodeの方も実験的と言っているくらいで、動作を保証するものではありません。 NASやEthernet-hubの応答速度にも左右されます。
また、USB-DACを使った場合、データがUSBラインに集中するため、より厳しくなると思います。
ご存知かもしれませんが、RaspberryPiのCPUからUSB信号は1本のみです。 それをUSB-HUB兼Ethernet変換チップを使って、1LAN、4USBを実現してます。
つまり、NASからの読み出しもUSB-DACも両方とも1本のUSBラインに負担が集中するのです。
投稿: たかじん | 2017年5月16日 (火) 08時14分
たかじんさん
お忙しい中、ご回答いただきましてありがとうございます。
i2sdacならrtカーネルでも192kHzくらいならノイズレスで再生できる
ということでしょうか。時間があればmoodeを試してみたいと思います。
投稿: takobozu | 2017年5月16日 (火) 17時22分
takobozuさん
私のところではSabreberry+というI2S-DACで384kHzのWAVデータでも音飛び、ノイズは発生しません。 NASはRockDiskNextという製品です。 バッファサイズを大きめに設定しています。
192kHzまでならMoodeAudioの標準カーネルでも、raspbiaanでも、Volumioでも殆どの場合大丈夫だと思います。
NASを使わずにWindows-PCのファイル共有だと、PC側で重い作業をすると音が飛ぶことがありました。
結局はRaspberryPi側は平気でも周りの環境次第ですね。これは、市販のネットワークオーディオ機器でも一緒だと思います。
投稿: たかじん | 2017年5月16日 (火) 20時22分
takobozuさん
はじめまして。
まずはお礼から。takobozuさんの別のサイトでの投稿内容を勝手に参考にさせて頂きました。ありがとうございました。参考にさせて頂いた内容は、「MPDをソースコードからコンパイルしてPi 2 Pi 3に最適化する方法」の私の投稿をお読みいただければわかるかと思います。
ところで、最近私もMoodeに興味(おそらく、takobozuさんと同じ視点かと思います)を抱いて導入してみました。RTカーネルは試験的との表示もあり、RTカーネルで起動して、ネットラジオは聞けましたが自分のUSB-HDDに入った音楽ライブラリは再生できませんでした。(1度トライしただけで、まだ原因を追求できておりません。)
ノーマルカーネルの音色は、MPDらしい音だと思いました。ただ、音の分離、透明感等ではtakobozuさんのシステムの方が恐らく好みの様な感じが致します。
勝手に憶測だけで書き込みを致しました。違っておりましたら申し訳ございません。
投稿: とんぼのめがね | 2017年5月16日 (火) 21時18分
たかじんさん
色々解説して頂き恐縮です。384khzの音というのは未だかつて聴いたことが
ありません。想像もつきません。Sabreberry+は以前から興味がございました。
たかじんさんのボードを購入できたらと考えております。
とんぼのめがねさん
はじめまして。lightmpdの掲示板のことでしょうか。盛り上げようと思いまして
つい投稿を繰り返しましたが、たかじんさんのサイトのようにはいきませんね。
ここはハード、ソフト両面で様々な内容が取り上げられるので楽しいです。
rtカーネルにこだわりがあるわけではありません。私はカーネル、ルート
ファイルシステム、ブートローダーなど音楽再生環境をbuildrootというソフト
を使って一気につくらせています。その時にraspberry piとusb-dacの組合わせ
で音出しをするときにrtカーネルだとどうしてもノイズに悩まされました。
raspberry pi のusbドライバとrtカーネルがどうも相性が悪いということまでは
わかったのですが、どうも素人では限界がありましてlowlatencyカーネルで
音出しをしておりました。それでも音にはさして不満はありませんでしたが、
今回の、moodeの話を拝見しまして、rtカーネルでi2sdacでノイズレスの
再生ができるならどんな設定をしたらいいのか参考になるなあと思いまして
このような投稿をさせていただきました。
これからも気軽にお声がけください。
投稿: takobozu | 2017年5月17日 (水) 19時14分
takobozuさん
私は、たかじんさん魔力に魅了され「たかじんグッツ」は殆ど所有しているのではないでしょうか。Sabreberry+に至っては、3台購入してしまいました。(子供に奪われたからですが......)
電源やネットワークからのノイズに悩まされたことはありましたが、たかじんさんの作品自体は極めて低ノイズなものだと思っております。それよりも音のバランスが私のツボです。
別のスレで投稿しましたが、今も「mpd+upmpdcli+polipo」+Sabreberry+の音にはまっております。(ちなみにlightMPD/upnpgwではなく、基本的にそれぞれのアプリをapt-get installしただけです。)ネットワーク分離とメモリー再生は様々なノイズを低減することによって、音の分離や透明感を引き出す効果があるように感じています。
私もtakobozuさんの様にbuildrootを使えるようになりたいと思っています。具体的に下記のことを実施したいのですが、どの様にすれば実現できるのか全くわかりません。
①buildrootでSabreberry32のドライバを組み込みたい。
②RTカーネルのコンパイルと同時にMPDにパッチをあてたものを組み込みたい。
③必要なものだけ組み込んで不要なものは排除したい。
ド素人でも理解できる何か参考となるネット等はないでしょうか?
投稿: とんぼのめがね | 2017年5月17日 (水) 22時18分
とんぼめがねさん
lightmpdのサイトでdigififanさんがbeagleboneのイメージの
作り方を解説されてます。
https://sites.google.com/site/digififan/home/digifi-labo/lightmpdnorootimejino-zuo-cheng-fang-fa
あまり日本語で解説されているところは少ないですね。
色々探してみてください。
投稿: takobozu | 2017年5月18日 (木) 16時14分
takobozuさん
ありがとうございます。
少しづつ勉強して行きたいと思います。
投稿: とんぼのめがね | 2017年5月18日 (木) 18時56分
takobozuさん
384kHzの音が192kHzと比べて劇的に変わる訳ではないと思います。
2LのDXDデータ(352.8kHz)を再生してみても、192kHzや96kHzと差を明確に感じ取ることができません。
CPUやネットワークの負荷が増えて欠点が表立ってくる可能性すらあると思います。
それはさておき、
Moodeのrtカーネルは周波数を100Hzに設定しています。
もし500Hzや1000Hzに設定しているなら、下げた方が処理能力があがると思います。
タスクディスパッチの周期を速くすることで、複数のプログラムをより同時並行的に走らせる事ができますが、タスクを切換える時間がゼロでない事を考えると、無駄にCPUを使っているだけともとれます。
4GHz、5GHzのCPUクロックならまだしも、Pi3くらいなら適切な周波数に設定する必要がありますね。
384kHzで再生できるのであれば試してみたいという気持ちは大切ですね。
他人から「変わらないよ」と言われて、納得してしまうのではなく、ご自身で体験することは、自作マニアの至福の時でもあり財産にもなると思います。
ぜひ試してみてください。
とんぼのめがねさん
いつもありがとうございます。 Sabreberry32の最新ドライバソースは、メールにてお問い合わせいただければお送りいたします。
コンパイル方法は、環境によって違うかもしれません。 最近のMoode Audioだと、カーネルソース一式をコンパイルしたあとじゃないと、エラーがでるようになってきました。
ところで、最近は、buildrootが主流になりつつあるのでしょうか。 私の方はRaspberryPi公式の方法でしか試していません。
https://www.raspberrypi.org/documentation/linux/kernel/building.md
Crosstool-NGによるクロスコンパイルです。
時間はかかるけど、用意するものが少ないのはセルフコンパイルですね。
Pi3なら2時間で終わります。
投稿: たかじん | 2017年5月18日 (木) 23時13分
たかじんさん
また色々教えていただきありがとうございます。
私もたかじんさんのお考えに近い感じです。(私のは素人考えです)
rtカーネルにすれば(しかもtimer frequecyを1000Hzとか)音が
いいか?と言われればあまりそんなことは感じません。low
latencyカーネルでも素晴らしい音だと思います。たかじんさん
のおっしゃるように100Hzとかに抑えたほうが、rpiやbbgのような比較的非力なボードでは余計な負担をかけなくていいというの
は同感ですね。rtカーネルでしかも高い周波数にするのはどうし
もてそうしないとノイズで困るとか何か特別な事情でもある
場合だけでよいのではと最近は考えております。
384kHzについても同様です。pcm5102で普段聴いておりますが
44.1kHzでもほんといい音を聴かせてくれます。本当にpcm5102
が真に実力を発揮できる環境を整えているのか?を考える方が
楽しいんですよね。たかじんさんのDC-ARROWなんか組み合せるとまた違う表情を見せてくれるんじゃないか?とか。
ハイレゾだから絶対的に満足できる音に出会えるか?といえば
決してそんなことはないのではと思います。
buildrootに関してですが、以前にも申し上げましたが私の場合
カーネル、ルートファイルシステム、ブートローダーを目的
に最適化したもので一気に作り上げるのに非常にありがたい
仕組みだから利用させていただいております。
カーネルだけコンパイルできればいいとか、mpdだけでいいと
かでしたら、セルフコンパイルや別の仕組みのほうが簡単
です。(私も以前やっていました)
私の場合、intelcorei5にwindows10,その上にvmwareでubuntu
と仮想環境をつくりそこにbuildroot環境を構築しています。
とにかくビルド時間が速いんですよ。rpiやbbg用のシステムを
作るなら、20分かかるかどうかです。だから作ってだめなら
また作りなおすことがストレスなくできてしまいます。
まあ、万人におすすめできるしろものではございませんので
(私も宣伝する気はありません)、くれぐれも軽々しく手を
出されないほうが良いと思います。
投稿: takobozu | 2017年5月19日 (金) 12時30分
たかじんさん、buildrootはlightmpdで使用されているディストリです
例のupnp対応が発表されたのが昨年の9月で、その後掲示板でファイル構造についてデジファイさんが詳しく説明されたので、有志の方が色々移植されています、みみず工房さんもその一人です
とんぼのめがねさん
buildrootのmakeについて一番詳しく説明したものは、みみず工房さんの掲示板にある「buildrootで作ろう、完全にメモリ上で動くシステム」だと思います、興味が有れば見てみて下さい
投稿: オーシャン | 2017年5月20日 (土) 00時42分
オーシャンさん
「buildrootで作ろう、完全にメモリ上で動くシステム」を書いたのは
私です。恥ずかしいので宣伝しないでください。
探せば他にもっといいものがありますので。
英語が読めるなら本家のマニュアルで勉強するのが一番です。
(私は別に英語が堪能ではありませんがそれを基礎に独学です)
投稿: takobozu | 2017年5月20日 (土) 09時40分
オーシャンさん
はじめまして。
「buildrootで作ろう、完全にメモリ上で動くシステム」を紹介頂きありがとうございます。
今、「buildrootで作ろう、完全にメモリ上で動くシステム」と「rpiでつくるupnpアダプタ 」を一気に拝見しました。種々、個々の目的を努力され達成しておられ、皆さん素晴らしいですね。またまた、著者のtakobozuさんに感謝です。
みみず工房さんのサイトでBotic化の進行が行われていることは知っておりましたが、BBB/BBGを持っておりませんので踏み込んだ内容までは見ておりませんでした。
投稿: とんぼのめがね | 2017年5月20日 (土) 16時26分
takobozuさん、申し訳無いです
inthedarkさんと同一人物とは知りませんでした
謙遜されていますが、makeについて実例を挙げて非常に判りやすい説明だと思います。リアルタイムで見ていましたが、yoさんと同じ様に完了後に保存しました
とんぼのめがねさん
いきなりBBG2台は敷居が高いのでBBGとB4-DACで始められてはどうでしょう、スタンドアローンモードでも素晴らしいですよ
PCMが主流ならばですが
投稿: オーシャン | 2017年5月20日 (土) 17時14分
takobozu さん
とんぼのめがねさん
オーシャンさん
buildrootの方法、ありがとうございます。 メモリ上で動作するというのは理想的ですね。 私も試してみようと思います。
投稿: たかじん | 2017年5月21日 (日) 07時50分
管理人様、はじめまして。
先月ようやく私もRaspberry Pi ZeroWを手に入れて、オーディオレコーダーのようなものを目指して色々と弄っております。その際、起動時間をもっと速くできないものかと調査し、こちらのページを拝見しました。
そこでいきなり恐縮ですが、質問というかご相談があります。私の環境(最新Raspbian+DACドライバ)では電源投入からデスクトップが整うまで実測で1分半ほどかかります。ところが、systemd-analyze timeコマンドで調べた起動時間はカーネルとユーザースペース合わせて20秒ちょっとになっています。このギャップは何なのでしょうか(;´∀`)?systemd-analyze timeが各種サービスを読み込む時間に過ぎず、起動時にはそれとは別のもっと時間の掛かる事をやっているのでしょうか?
大分漠然とした話ですみませんが、何かアドバイスありましたらよろしくご教示願います。
投稿: タイチ | 2018年2月 9日 (金) 10時16分
タイチさん
systemd-analyze で計測している時間はsystemdで起動しているシーケンスまでなのだと思います。
ひと通り起動し終わったあと、デスクトップ画面(x windowシステム)の起動に時間がかかっているのだと思います。
投稿: たかじん | 2018年2月10日 (土) 14時39分
たかじんさん。お返事ありがとうございます。
なるほどそういう事なんですね。という事は貴方の環境でも、電源投入からデスクトップ画面の出現までの時間はもっとかかっていると言うことでしょうか?
何れにせよ、そのx windowsシステムをキャンセルしないと、本当に数十秒で立ち上げるのは無理みたいですね。
投稿: タイチ | 2018年2月10日 (土) 19時34分
タイチさん
いえ、HDMIに液晶画面を接続したりせず、デスクトップ画面を使っていません。
音楽サーバー本体には画面がいりません。スマホ画面から遠隔操作したり、キャラクタ型表示機に曲名を表示するくらいで、実際に10秒ちょっとで音楽を再生開始しています。
オーディオレコーダーをどう仕上げていくか、という部分ですね。デスクトップ画面が必要というのであれば、起動時間の1分半は我慢するしかないかも知れません。 軽量なデスクトップ(fvwmなど)を使っても1分切るのは厳しい可能性がありますね。
投稿: たかじん | 2018年2月10日 (土) 22時42分
たかじんさん。
「音楽サーバー」というのは上の写真でラズパイZeroの上に乗ってるボードの事でしょうか?するとラズビアンのデスクトップが立ち上がる前に、このボードで音楽を聴くことが出来るということでしょうか?
私の考えてるレコーダーも専用機的なものなので、ラズビアンのGUIを前提としません。表示装置は多分7セグLEDくらいで、あとはLED付きツイッチなどで全部コントロールする予定です。
ただあまり一般的ではないDACやADCのドライバが必要ですし、ボタン操作で録音して音声ファイルを作ったり、それをトリムして適切なタイミングで再生するといった制御にPythonを使おうと思っているので、そういう事が可能なディストリビューションが必要ですね。
多分Voluminoではムリっぽいし、そもそもVoluminoは起動時間があまり短くなかったですね。だからラズビアンをチューンナップしていくか、もっと軽量なディストリビューションをカスタマイズしていくか考え中です。もっとも私はそのへんの知識や経験が全然ないので、出来るかどうか全く判りませんが(^_^;)
投稿: タイチ | 2018年2月11日 (日) 11時10分
タイチさん
紛らわしい書き方ですみません。 音楽サーバーというのは具体的には「MPD」というソフトウェアのことです。
RaspberryPiに乗っている基板はDAC基板で、I2Sデジタル信号をアナログの音声に変換するだけです。
OSをRaspbianではなく、Raspbian Liteにすると、デスクトップ環境が無い状態になります。 Pi 3なら素の状態でも起動完了まで20秒ほどです。 Audio用のディストリビューションの多くは「Lite」をベースにしています。
参考になれば幸いです。
投稿: たかじん | 2018年2月12日 (月) 10時39分
たかじんさん。
なるほど、Raspbian LiteにMPDというサーバーアプリを入れて、スマフォなどからコントロールしてるんですね。
実はRaspbianのインターフェイスをGUIからCLIに変更してもあまり起動時間が短くならないので、どうしたものかと思っていたところです(^_^;) でも最初からヘッドレス仕様のRaspbian Liteなら、ほぼサービスの読み込み時間だけで起動しそうですね。
私のプロジェクトもその線で行こうと思います。有難うございました。
投稿: タイチ | 2018年2月12日 (月) 21時22分