Select Your Language

免責事項

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

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

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

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

スポンサー

« ハイレゾとCDの波形比較の興味深い考察 | トップページ | ラズパイオーディオの会 »

2017年4月21日 (金)

Raspberry Pi Zeroを10秒以内で高速起動する最も簡単な方法

Raspbian jessie lite (2017-03-02) を使って手間をかけずに高速起動する方法を試してみました。カーネルのビルドなど手間と時間のかかる方法は除外して、どこまで速くできるのでしょうか?

注記) Strech にも対応しました。 

結果から報告しますと、下のsystemd-analyze plot 画像のように、ギリギリ10秒を切ることが出来ました。

Fast_boot

このあと、さらに/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でネットワークを完全に止めてしまうと、設定の変更も出来なくなってしまいますね。

Rasp_boot1 

こちらが、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

Strechでdhcpcdを止めるときは、こちらの設定を参考にIPアドレスを固定してください。 

 

 

■/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秒 にて起動できるとの情報を頂きました。 ありがとうございます。

Rasp_mpd 

この起動高速化したRaspbianは何に使ったのかと言うと コレです。 

 

実際に音がでるまでの時間は、最初にSDカードへアクセスするブートローダー部分やmpdの再生開始の時間があるので約16秒ほどになっています。 

この実験機(試作機) は、4/29、4/30のヘッドホン祭りに展示される予定です。 もし、よろしかったら見てみてください。

シャットダウンは停止ボタンのダブルクリックです。 

ただ、マイクロUSBコネクタが貧弱なので、抜き差しを繰り返すと、壊れるかもしれないですね。 電源の入れ直しは、ケーブルの反対側USB-Aコネクタで行うほうがよさそうです。

 

 

にほんブログ村 PC家電ブログ PCオーディオへ にほんブログ村

ブログランキングに参加中です。 めざせ1位! 

もしよろしければ「ぽちっと」お願いします。 

 

« ハイレゾとCDの波形比較の興味深い考察 | トップページ | ラズパイオーディオの会 »

Raspberry Pi」カテゴリの記事

Z-MPD」カテゴリの記事

SabreberryDAC ZERO」カテゴリの記事

コメント

たかじんさん こんにちは

Moode Audio が、3.1 -> 3.5になり、Pi-zero Wをサポートしているようです。

ダウンロードして、解凍するときに、プロダクトキーを入れるようになりました。PayPalでは$10払うと、すぐにメールでキーを送ってくれました。
年間2回のメジャーアップデート。マイナーアップデートの時は無料になるように、考えているようです。

払う前に、お試しできないのが、ちょっと辛いですが、シンプルでCPUパワーのないPiでも動かせるシンプルなところが好きなので
これからも使っていこうと思います。

「SabreBerry+」 + 「Pi3」にて、アドバンストカーネルで動かしております。
アドバンストカーネルは、2つから選べるようになっていて、
選択枝の下を選んで、動かしております。
シンプルな画面はそのままで、SSIDを読み込んで、選択できるようになりました。有線LANは、IPアドレスを入れるようになっていて、おしい気がします。
AirPlayは、まだ使っておりませんが、最新のものが入っているようです。

ES9023で来ましたか、操作SWまで搭載でよく納まりましたね~。
クロックは80~120kHz?の1個かな。
ZEROの小ささ生かすとこう言う形になりますよね!
ポータブルの専用ケースも出そうだな。

ポータブル/HPしない私はこれ2枚使って左右完全分離とか出来ないか妄想しちゃう。

ポータブルは、起動が速くないとタイミングを逸しますね。
後は電池ですね。

Zero用Sabreberry、素晴らしい…大期待です。
通勤中がメインの音楽聴きの時間の私にはまさに理想。
実はGWに何か作ろうかといろいろ計画してたのですが、これが出るなら待てます!!
家用環境の改善に時間を使いたいと思います。

春のヘッドフォン祭りへのご参加おめでとうございます。 
今回も行く予定です。
たかじん様にお会いできるのを楽しみにしています。
宜しくお願いします。

この方法はPi3にも適応出来ますか?
Pi3なら何秒で起動できますか?

いつも参考になる情報ありがとうございます。
ラズパイ3で試したところ5秒ほどで起動できることがわかりました。

このほか、Bluetoothのサービスをとめました。 参考まで。

高速起動、Zero DACとも素晴らしいですね!!
高速起動はGWにゆっくり試させていただきます。
Zero DACは・・・GWには無理そうですね(^^;;

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に間に合わなくてすみません。 


たかじんさん

5V電源のランドを見つけました。ありがとうございます。
micro-USBのポートは壊れそうですもんね。

totoさん

私もmoode audioを主に使っています。
早速3.5を導入してみましたが、3.1に比べて少し動作が不安定な感じがします。
うちでは、プレイリストが保存出来ない、Configureで設定中にハングする事がある為、ひとまず3.1に戻しました。


たかじんさん

急かすみたいな書き方をしてしまってすみません。
やっとDC-Arrowの部品が揃ったので、GWはDC-ArrowとSB32の組み合わせを堪能しようと思います。

たかじんさん

RPi zoroWが出るまで待とうと思っているので、それまで様子見です。
もし、技適を取るのに、何か問題だとすると、Pi zero Wのアンテナは、基板上に設けた。三角形の空間なので、いじるところがすくなそう。

通りすがりのおじさん

Pi zoroが動くので、とっても期待してたのですが、そういえば、SDに曲をコピーする時止まったし、設定した後、再起動しても、再起動しなかったし、
アドバンスドモードのせいだと考えておりました。
私も、安定が一番なので、Moode 3.1に戻しておこうと思います。

高速起動goodです!!!

IoT使用でArchからRaspbianに移行していたけど、遅かったのが気になっていました。

この設定ならArchよりも速いかも(^_^;;

情報ありがとうございます。 ありがたく使わせて貰います。

書きわすれました。 Pi 2 が7.2秒で起動します。

Archは14-15秒くらいでした。

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

ありがとうございます。 3.5を買おうか迷っていますが、まだ購入していません。 不安定なのは、ちょっとですね。 3.1もダウンロードできなくなってしまったので、これからMoodeを試そうという人には敷居が上がってしまいましたね。


toto さん

技適は、海外に比べて厳しいのでしょうかね。。。 詳細は私もわかりませんが、引っかかるとしたらスプリアスレベルが規定を超えてしまった等でしょうか。  おっしゃる通り、アンテナがプリントパターンで形成されているので、修正するなら時間がかかりますね。

Moode 3.1でもPi Zeroで動きます。 Zero W が3.5からということなんですね。


elemain さん

お役に立てたようでよかったです。 方法を調べたり試行錯誤したりで4日ほどかかりました。 Linuxの情報は古くなると使えなくなることが多く、現時点で正しく動く方法を導き出すのは結構苦労します。

Pi 2 だと 7秒ちょっとなのですね。 情報ありがとうございます。

ところでIoTって何に使うのでしょうか?

たかじんさんはじめまして

Moode Audio 3.5なのですが、SabreBerry32のドライバがインストールできないようです。
データベースへの登録が失敗してるようなので直接書き換えてみましたが、それでもうまく動作させることができませんでした。
現在は3.1に戻して快適に使っておりますが、3.1のダウンロードもできなくなったのは残念ですね。

たかじんさん、通りすがりのおじさん

Moode Audio3.5を再インストールしました。音楽をnasから再生している時は、音飛びもなく、安定していたので、やり直してみました。
SDをデジカメでフォーマットした後、PCで再度、クイックじゃないフォーマットをやり。
StanderdカーネルのままMoode Audioの設定を終えて。。
その後、アドバンスドカーネルに変えたら、ちゃんと動く。

有機ELの表示もつけて、再起動もできております。
SDのフォーマットを失敗してたのかな。

fuwawa さん

なるほど、スクリプトではなく手動インストールした方がいいかもしれないですね。 近いうちに試してみようと思います。

toto さん

SDカードのフォーマットでなおるケースはvolumioでも経験したことがありました。 イメージデータで上書きするので関係なさそうに見えて、なにかあるんでしょうね。

>> ところでIoTって何に使うのでしょうか?

PoEを使って構内各所の空調ダクトに温度・フローセンサーを搭載したPi2を15個配置。 サーバーにUPしてします。

ダクトはトタン製なのでWifiはNG。

外部のネットに接続していないので厳密にはIoTといえないがセキュリティの観点からクローズした環境で運用してます。

時々応答が無いPiが出てきたりすると、PoE-HUBごと落として再起動してます。

そのとき、速やかに起動できると助かるのです。

elemainさん

なるほど。 それはもう、個人の趣味というレベルのものではありませんね。 実用的、かつ、業務用のシステムでRaspberryPiを活用している事例なんですね。

ネットワークオーディオ的な使い方で1ヶ月くらい電源をONしっぱなしでも、特にもんだいなく動くのは試したことがあるのですが、あくまでも趣味レベルでの話でした。

無駄にSDカードにアクセスするsyslogなどをRAMDISK等に移すなどしてSDカードの書き込みを制限する方法が良いかもしれませんね。 ご存知かと思いますがSDカードは書き換え回数により寿命があります。

この記事の方法では、ROM化までやっていません。 ご注意いただけると幸いです。

totoさん

遅まきながら、totoさんと同じ処理で再インストールをしようと思ったのですが、ふとmoodeのHPを見ると3.6がリリースされていました。

リリースーノートに
- FIX: Playlist save not working
があったので、これから3.6をインストールしてみます。
(3.5では結構動かなかった機能があったみたいです)

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

そういえば、MoodeのAdvancedカーネルは、Pi2、Pi3用だったような気がしますね。 つまり Pi1、Zero、 Zero Wでは、使えない。

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でいろいろ試しています。

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

irberry DACは、standerdカーネルで、動かしております。
Moode3.5からSysten configurationから、3.6にバージョンアップできました。メニューに見つけられなかったのですが、System configurationの文字のすぐ下の緑の文字[check]でした。
でも、メニューから[reboot]ができない。( ; ; )
やりなおしか?


totoさん

再インストールです!w
リモコンも液晶もこれまで通り使えて快適です!w

h.imagine さん

おっしゃる通り、記述が消えてますね。。。
実際どうなんだろう。
とりあえず、ノーマルカーネル用のsabreberry32ドライバを用意しました。 Advancedの方は、これからです。 もう少しお待ち下さい。


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

バージョンアップは、SDカードへの転送からやり直す方が安心感がありますね。

> リモコンも液晶もこれまで通り使えて快適です!w
さすがです。

朝気づいたらMoode 3.6用ドライバが!! ありがとうございます。
build環境構築しようかと思っていたところでしたが、助かりました。
早速導入して何とも言えない音の密度にニンマリしているところです。
DAC zeroを待たずとも、強固なケースを調達してこれを持ち歩こうかなという気になります。

そうそう。zeroにadvカーネルを導入してみましたが起動しませんでした。まあ単なる実験です。
Moodeは設定が整理されて導入が楽になったので、何かあったら即イメージ焼き直して元通りです。

h.imagine さん

やはりPi1のCPUではadvancedカーネルは対応していないのかもしれませんね。

advancedカーネル用のsabreberry32ドライバは、近いうちに対応しようと思います。
よろしくお願いいたします。

SabreBerry32のページが更新されているのに先ほど気づいたので、advカーネル用のドライバを試させていただきました。
moode 3.6、RTカーネル、32bit/384kHzで問題なく使えることを確認しました。ありがとうございます。
ただ、チュートリアル中のVol.カーブの設定はmoode 3.5以降ではなくなってしまっているようです。聴感ではデフォルトでlogになっていると思います。
手持ちのヘッドホン、イヤホンをずらりと並べて取っ替え引っ替えしばらく楽しんでますが、ES9018Q2Cのヘッドホンドライブ能力はなかなかのものですね。

h.imagineさん

ご指摘、ありがとうございます。 Advanced-LL対応させたときに訂正しようと思います。
細かいところで設定が変わってきてますね。

9018Q2Cのヘッドホンドライバは、12Ω以下のインピーダンスが低いヘッドホンだと、少しきつくなってきますが、30Ωや50Ω程度のヘッドホンならわりと良いところいきますね。 下手なヘッドホンアンプを噛ますよりも細かい音まで聴くことができるように感じます。

RT用とLL用は別バイナリだったのですね。LLも試してみたいと思います。
ここのところ、Sabreberry32とT50RPmk3nの組み合わせがとても気に入って、これでひたすら音楽を聴いています。
ところで、新しいドライバはalsamixerにDPLL, IIR Filter, Over Sampling Filterといった設定項目が増えてますね。
従来のFilter TypeにもUserという設定が増えてますが、これはユーザー定義が使えるということでしょうか。

h.imagineさん

LLとRTとで別のカーネルになっていて、ドライバも別々に用意しないと動かないことがわかりました。

T50RPですか。 フォステックスも良い音のヘッドホンをだしていますね。 今まで聞いたことが無かったのですが、先日、漆塗りのモデルを聞いてびっくりしました。

フィルタ設定は、ユーザーにすると、係数を独自のものにすることが可能です。
/etc/SabreBerry32/coeff_tbl.txt
というテキストファイルを読み込んでいますので、それを差し替えるだけです。

たかじんさん

takobozuと申します。楽しくサイトの方拝見させていただいております。
moodeでrtカーネルを選択して音出しをした場合、ノイズなどございませんでしょうか? 
私はmoodeは無料のころに一度試しただけなのですので最新の3.6のことがわかりませんのでできれば実際にお使いの方にお聞きしたいと思い、投稿させていただきました。

お使いのdacがi2sdacかusb-dacかも教えていただけますと幸いです。

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ラインに負担が集中するのです。

たかじんさん

お忙しい中、ご回答いただきましてありがとうございます。
i2sdacならrtカーネルでも192kHzくらいならノイズレスで再生できる
ということでしょうか。時間があればmoodeを試してみたいと思います。

takobozuさん

私のところではSabreberry+というI2S-DACで384kHzのWAVデータでも音飛び、ノイズは発生しません。 NASはRockDiskNextという製品です。 バッファサイズを大きめに設定しています。

192kHzまでならMoodeAudioの標準カーネルでも、raspbiaanでも、Volumioでも殆どの場合大丈夫だと思います。
NASを使わずにWindows-PCのファイル共有だと、PC側で重い作業をすると音が飛ぶことがありました。 

結局はRaspberryPi側は平気でも周りの環境次第ですね。これは、市販のネットワークオーディオ機器でも一緒だと思います。

takobozuさん

はじめまして。

まずはお礼から。takobozuさんの別のサイトでの投稿内容を勝手に参考にさせて頂きました。ありがとうございました。参考にさせて頂いた内容は、「MPDをソースコードからコンパイルしてPi 2 Pi 3に最適化する方法」の私の投稿をお読みいただければわかるかと思います。

ところで、最近私もMoodeに興味(おそらく、takobozuさんと同じ視点かと思います)を抱いて導入してみました。RTカーネルは試験的との表示もあり、RTカーネルで起動して、ネットラジオは聞けましたが自分のUSB-HDDに入った音楽ライブラリは再生できませんでした。(1度トライしただけで、まだ原因を追求できておりません。)
ノーマルカーネルの音色は、MPDらしい音だと思いました。ただ、音の分離、透明感等ではtakobozuさんのシステムの方が恐らく好みの様な感じが致します。

勝手に憶測だけで書き込みを致しました。違っておりましたら申し訳ございません。

たかじんさん

色々解説して頂き恐縮です。384khzの音というのは未だかつて聴いたことが
ありません。想像もつきません。Sabreberry+は以前から興味がございました。
たかじんさんのボードを購入できたらと考えております。

とんぼのめがねさん

はじめまして。lightmpdの掲示板のことでしょうか。盛り上げようと思いまして
つい投稿を繰り返しましたが、たかじんさんのサイトのようにはいきませんね。
ここはハード、ソフト両面で様々な内容が取り上げられるので楽しいです。
rtカーネルにこだわりがあるわけではありません。私はカーネル、ルート
ファイルシステム、ブートローダーなど音楽再生環境をbuildrootというソフト
を使って一気につくらせています。その時にraspberry piとusb-dacの組合わせ
で音出しをするときにrtカーネルだとどうしてもノイズに悩まされました。
raspberry pi のusbドライバとrtカーネルがどうも相性が悪いということまでは
わかったのですが、どうも素人では限界がありましてlowlatencyカーネルで
音出しをしておりました。それでも音にはさして不満はありませんでしたが、
今回の、moodeの話を拝見しまして、rtカーネルでi2sdacでノイズレスの
再生ができるならどんな設定をしたらいいのか参考になるなあと思いまして
このような投稿をさせていただきました。
これからも気軽にお声がけください。

takobozuさん

私は、たかじんさん魔力に魅了され「たかじんグッツ」は殆ど所有しているのではないでしょうか。Sabreberry+に至っては、3台購入してしまいました。(子供に奪われたからですが......)
電源やネットワークからのノイズに悩まされたことはありましたが、たかじんさんの作品自体は極めて低ノイズなものだと思っております。それよりも音のバランスが私のツボです。

別のスレで投稿しましたが、今も「mpd+upmpdcli+polipo」+Sabreberry+の音にはまっております。(ちなみにlightMPD/upnpgwではなく、基本的にそれぞれのアプリをapt-get installしただけです。)ネットワーク分離とメモリー再生は様々なノイズを低減することによって、音の分離や透明感を引き出す効果があるように感じています。

私もtakobozuさんの様にbuildrootを使えるようになりたいと思っています。具体的に下記のことを実施したいのですが、どの様にすれば実現できるのか全くわかりません。

①buildrootでSabreberry32のドライバを組み込みたい。
②RTカーネルのコンパイルと同時にMPDにパッチをあてたものを組み込みたい。
③必要なものだけ組み込んで不要なものは排除したい。

ド素人でも理解できる何か参考となるネット等はないでしょうか?

とんぼめがねさん

lightmpdのサイトでdigififanさんがbeagleboneのイメージの
作り方を解説されてます。
https://sites.google.com/site/digififan/home/digifi-labo/lightmpdnorootimejino-zuo-cheng-fang-fa

あまり日本語で解説されているところは少ないですね。
色々探してみてください。

takobozuさん

ありがとうございます。

少しづつ勉強して行きたいと思います。

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時間で終わります。

たかじんさん

また色々教えていただきありがとうございます。
私もたかじんさんのお考えに近い感じです。(私のは素人考えです)
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分かかるかどうかです。だから作ってだめなら
また作りなおすことがストレスなくできてしまいます。
まあ、万人におすすめできるしろものではございませんので
(私も宣伝する気はありません)、くれぐれも軽々しく手を
出されないほうが良いと思います。


たかじんさん、buildrootはlightmpdで使用されているディストリです
例のupnp対応が発表されたのが昨年の9月で、その後掲示板でファイル構造についてデジファイさんが詳しく説明されたので、有志の方が色々移植されています、みみず工房さんもその一人です

とんぼのめがねさん
buildrootのmakeについて一番詳しく説明したものは、みみず工房さんの掲示板にある「buildrootで作ろう、完全にメモリ上で動くシステム」だと思います、興味が有れば見てみて下さい

オーシャンさん

「buildrootで作ろう、完全にメモリ上で動くシステム」を書いたのは
私です。恥ずかしいので宣伝しないでください。
探せば他にもっといいものがありますので。
英語が読めるなら本家のマニュアルで勉強するのが一番です。
(私は別に英語が堪能ではありませんがそれを基礎に独学です)

オーシャンさん

はじめまして。

「buildrootで作ろう、完全にメモリ上で動くシステム」を紹介頂きありがとうございます。

今、「buildrootで作ろう、完全にメモリ上で動くシステム」と「rpiでつくるupnpアダプタ 」を一気に拝見しました。種々、個々の目的を努力され達成しておられ、皆さん素晴らしいですね。またまた、著者のtakobozuさんに感謝です。

みみず工房さんのサイトでBotic化の進行が行われていることは知っておりましたが、BBB/BBGを持っておりませんので踏み込んだ内容までは見ておりませんでした。

takobozuさん、申し訳無いです
inthedarkさんと同一人物とは知りませんでした
謙遜されていますが、makeについて実例を挙げて非常に判りやすい説明だと思います。リアルタイムで見ていましたが、yoさんと同じ様に完了後に保存しました

とんぼのめがねさん
いきなりBBG2台は敷居が高いのでBBGとB4-DACで始められてはどうでしょう、スタンドアローンモードでも素晴らしいですよ
PCMが主流ならばですが

takobozu さん
とんぼのめがねさん
オーシャンさん

buildrootの方法、ありがとうございます。 メモリ上で動作するというのは理想的ですね。 私も試してみようと思います。 

管理人様、はじめまして。

先月ようやく私もRaspberry Pi ZeroWを手に入れて、オーディオレコーダーのようなものを目指して色々と弄っております。その際、起動時間をもっと速くできないものかと調査し、こちらのページを拝見しました。

そこでいきなり恐縮ですが、質問というかご相談があります。私の環境(最新Raspbian+DACドライバ)では電源投入からデスクトップが整うまで実測で1分半ほどかかります。ところが、systemd-analyze timeコマンドで調べた起動時間はカーネルとユーザースペース合わせて20秒ちょっとになっています。このギャップは何なのでしょうか(;´∀`)?systemd-analyze timeが各種サービスを読み込む時間に過ぎず、起動時にはそれとは別のもっと時間の掛かる事をやっているのでしょうか?

大分漠然とした話ですみませんが、何かアドバイスありましたらよろしくご教示願います。

タイチさん

systemd-analyze で計測している時間はsystemdで起動しているシーケンスまでなのだと思います。

ひと通り起動し終わったあと、デスクトップ画面(x windowシステム)の起動に時間がかかっているのだと思います。

たかじんさん。お返事ありがとうございます。

なるほどそういう事なんですね。という事は貴方の環境でも、電源投入からデスクトップ画面の出現までの時間はもっとかかっていると言うことでしょうか?

何れにせよ、そのx windowsシステムをキャンセルしないと、本当に数十秒で立ち上げるのは無理みたいですね。

タイチさん

いえ、HDMIに液晶画面を接続したりせず、デスクトップ画面を使っていません。

音楽サーバー本体には画面がいりません。スマホ画面から遠隔操作したり、キャラクタ型表示機に曲名を表示するくらいで、実際に10秒ちょっとで音楽を再生開始しています。

オーディオレコーダーをどう仕上げていくか、という部分ですね。デスクトップ画面が必要というのであれば、起動時間の1分半は我慢するしかないかも知れません。 軽量なデスクトップ(fvwmなど)を使っても1分切るのは厳しい可能性がありますね。

たかじんさん。

「音楽サーバー」というのは上の写真でラズパイZeroの上に乗ってるボードの事でしょうか?するとラズビアンのデスクトップが立ち上がる前に、このボードで音楽を聴くことが出来るということでしょうか?

私の考えてるレコーダーも専用機的なものなので、ラズビアンのGUIを前提としません。表示装置は多分7セグLEDくらいで、あとはLED付きツイッチなどで全部コントロールする予定です。

ただあまり一般的ではないDACやADCのドライバが必要ですし、ボタン操作で録音して音声ファイルを作ったり、それをトリムして適切なタイミングで再生するといった制御にPythonを使おうと思っているので、そういう事が可能なディストリビューションが必要ですね。

多分Voluminoではムリっぽいし、そもそもVoluminoは起動時間があまり短くなかったですね。だからラズビアンをチューンナップしていくか、もっと軽量なディストリビューションをカスタマイズしていくか考え中です。もっとも私はそのへんの知識や経験が全然ないので、出来るかどうか全く判りませんが(^_^;)

タイチさん

紛らわしい書き方ですみません。 音楽サーバーというのは具体的には「MPD」というソフトウェアのことです。

RaspberryPiに乗っている基板はDAC基板で、I2Sデジタル信号をアナログの音声に変換するだけです。

OSをRaspbianではなく、Raspbian Liteにすると、デスクトップ環境が無い状態になります。 Pi 3なら素の状態でも起動完了まで20秒ほどです。 Audio用のディストリビューションの多くは「Lite」をベースにしています。

参考になれば幸いです。


たかじんさん。

なるほど、Raspbian LiteにMPDというサーバーアプリを入れて、スマフォなどからコントロールしてるんですね。

実はRaspbianのインターフェイスをGUIからCLIに変更してもあまり起動時間が短くならないので、どうしたものかと思っていたところです(^_^;) でも最初からヘッドレス仕様のRaspbian Liteなら、ほぼサービスの読み込み時間だけで起動しそうですね。

私のプロジェクトもその線で行こうと思います。有難うございました。

コメントを書く

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

トラックバック


この記事へのトラックバック一覧です: Raspberry Pi Zeroを10秒以内で高速起動する最も簡単な方法:

« ハイレゾとCDの波形比較の興味深い考察 | トップページ | ラズパイオーディオの会 »

サイト内検索(new)

2024年11月
          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