Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ラズパイオーディオで学ぶLinuxシステム構築

1,206 views

Published on

4月6日開催のラズパイオーディオの会 勉強会用の資料です。
Raspbianをベースに、オーディオ再生用の設定をしていく中でシステム構築についても学べます。
少し中身を直しました。

Published in: Software
  • Be the first to comment

ラズパイオーディオで学ぶLinuxシステム構築

  1. 1. ラズパイオーディオで学ぶ Linuxシステム構築 宮原 徹(@tmiyahar)
  2. 2. このコースの目標 • Raspberry Piで音楽を鳴らします • Raspbianを使ってシステムを構築します – Volumioなどは使いません • 基本的なネットワークの知識を学びます • 基本的なLinuxの操作、システム構築を学 びます 2
  3. 3. 全体的な手順 1. Raspbianのインストール – Etcherを使って 2. ネットワーク接続 – かなりケースバイケース 3. MPDのインストールとオーディオ再生の設定 – オーディオI/Fによって異なる部分 4. Sambaのインストールと設定 – PCからネットワーク経由で楽曲データを管理する ため 3
  4. 4. ヘッドレス接続で Raspberry Piを操作する 4
  5. 5. なぜヘッドレス? • 複数のHDMIディスプレイの用意が難しい – 大人数のハンズオンなど • ノートPCなら用意できる – 参加者持ち寄り方式 • SSHやVNCで接続してRaspberry Piを操作 • HDMIディスプレイ、キーボード、マウスを 準備できるなら気にしないでいいプロセス 5
  6. 6. ネットワーク接続を検討 • 一番楽なのは有線直結 ←今回はこれを選択 – ノートPCに有線LANポートが必要 – macOSの「インターネット共有」がとても楽 – Windowsは「インターネット接続共有(ICS)」を使う – インターネット共有が使えない場合は事前に /boot/cmdline.txtにIPアドレスを記述 – Raspberry Pi Zeroの場合にはUSB OTG接続 • スイッチングハブで有線接続 – インターネットにアクセスさせたい場合など – 配線が大変 • 無線LANで接続 – 事前に/boot/wpa_supplicant.confを作成しておく •6
  7. 7. ヘッドレス起動のための設定 • IPアドレスの設定 ←ここが少し面倒 CLIだけの場合 • SSHサーバーの起動 – デフォルトではオフ GUIも使うなら • HDMI接続無しの設定 – HDMI接続がなくてもHDMIに出力 • デフォルト画面サイズの設定 – VNCで接続した際の画面サイズになる • VNCサーバーの起動 – Raspberry PiにSSHでログオンして起動 7
  8. 8. 準備するもの • Raspberry Pi本体 • 電源 – ACアダプタ or モバイルバッテリ • microSDカード • ノートPC – 有線LANポート(内蔵 or USB) – SDカードリーダー/ライター • Raspbianのイメージファイル • LANケーブル 8
  9. 9. 基本的な手順 1. RaspbianイメージをmicroSDカードに焼く 2. microSDカード内で設定 – SSHサーバーのブート時有効化 – ヘッドレスで画面サイズを指定 – IPアドレスの指定 3. Raspberry Piを起動 4. SSHで接続 5. VNCを有効化 6. VNCで接続 9
  10. 10. イメージのmicroSDカードへの書き込み 10 イメージファイルの中身 microSDカードに この構造のまま 書き込み
  11. 11. イメージをmicroSDカードに書き込む • Etcherを使用 – https://etcher.io/ – Windows、Mac、Linuxをサポート – ZIP形式のままイメージ書き込み可能 – 書き込み後、自動的にアンマウントされる
  12. 12. IPアドレスの指定 • テキストエディタで/boot/cmdline.txtを編集 • 末尾にIPアドレスを記述 – dwc_otg.lpm_enable=0 (略) plymouth.ignore- serial-consoles ip=192.168.0.100 • ノートPC側のIPアドレスを192.168.0.10、ネット マスクを255.255.255.0(24ビット)に指定 – 外部ネットワークに接続しないのでゲートウェイの 設定は不要 – DNSも使用しないので設定は不要 12
  13. 13. SSHサーバーのブート時有効化 • SSHサーバーはデフォルトでOFF – セキュリティ強化のため • /boot/sshファイルを作っておくと起動時にSSH サーバーを起動する – ファイルの中身は空(サイズ0)でよい – SDカードをノートPCでマウント – シェルならtouchコマンドを実行 • $ touch /PATH/TO/boot/ssh – Windowsなら空のファイルをコピーする • 新規作成できない!? • メモ帳などで作成してコピーしてこないとダメ 13
  14. 14. ヘッドレスと画面サイズの指定 • テキストエディタで/boot/config.txtを編集 – 設定しないとVNC接続時画面が小さい – GUI設定ツールで後から変更も可能 • 以下のコメントアウトを外す(有効化) – hdmi_force_hotplug = 1 • HDMIが繋がっていなくてもHDMI出力を選択 – hdmi_group = 2 • hdmi_group = 1:CEA(テレビなど) • hdmi_group = 2:DMT(PC用モニターなど) – hdmi_mode = 9 or 16 • hdmi_mode = 9:800x600 60 Hz • hdmi_mode = 16:1024x768 60 Hz •14
  15. 15. Raspberry Piを起動 • 初回起動時にルートパーティションを拡張 – SDカードの空き領域をすべてルートパーティ ションに結合 – すぐに再起動がかかります • 起動の状況はアクセスランプを見ていると なんとなく分かる – 大体40秒ぐらいで起動完了 • pingでRaspberry Pi(192.168.0.100)と通信 できるか確認 15
  16. 16. SSHで接続 • SSHクライアントからRaspberry PiのIPアド レスに接続 • ユーザー名:pi • パスワード:raspberry • $ ssh pi@192.168.0.100 – Macからなら ssh pi@raspberrypi.local でも接 続可能(Bonjourによる名前解決) 16
  17. 17. Bonjourを使った名前解決 • BonjourはAppleが作ったゼロコンフィグな 名前解決の仕組み – macOS/iOSはデフォルトでサポート – WindowsはiTunesをインストールする – LinuxはAvahiをインストールする • raspberrypi.localでアクセスできる – 同じネットワークに同時にRaspberry Piがいる と名前が衝突する – ホスト名を変更すれば名前衝突は回避可能 17
  18. 18. VNCの有効化と接続 1. raspi-configを起動 – $ sudo raspi-config 2. Interfacing OptionsからVNCをEnableに 3. VNC Viewerから接続 – Raspberry Piで使用しているRealVNCサーバ ー対応のVNC Viewerが必要 – https://www.realvnc.com/download/viewer/ 18
  19. 19. 基本的な設定を変更 1. 左上のメインメニュー → Preferences → Raspberry Pi Configurationを起動 – SSHの場合はraspi-config 2. Localisationタブで各種設定を変更 – Locale:ja_JP.UTF-8 – Timezone:Asia→Tokyo – Keyboard:Japan-Japanese – Wi-Fi Country:JP Japan 3. 再起動するとGUIも日本語表示に変わる 19
  20. 20. 無線LANの接続 1. SSIDとパスワードの設定 – $ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf 1. 設定の適用のために再起動 – $ sudo reboot – 再起動以外にうまく適用できる方法が無い? 20 country=JP ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ ssid=”SSID" psk=”PASSWORD" }
  21. 21. MPDのインストールと オーディオ再生の設定 21
  22. 22. Raspbianのアップデート 必須ではないが 1. APTのアップデート – $ sudo apt-get update 2. バージョンアップ – $ sudo apt-get dist-upgrade – $ sudo reboot 3. もう1回APTのアップデート – $ sudo apt-get update – やらないとMPDがインストールできない 22
  23. 23. MPDのインストール 1. MPDのインストール – $ sudo apt-get install mpd mpc – 一緒にMPDクライアントmpcをインストール • 音質にこだわる人はソースコードからオプ ション付きでビルドすると良い – 情報はネット上に色々とあります 23
  24. 24. I2Sの設定 1. overlayの名称の確認 – $ ls /boot/overlays – ○○.dtboの○○の部分が必要 – どれが必要かはDACのマニュアル等を参照 2. /boot/config.txtの末尾にDAC使用の記述を追加 – $ sudo vi /boot/config.txt – dtoverlay=○○ – 例:dtoverlay=hifiberry-dac 3. オンボードオーディオを無効化 – #dtparam=audio=on (頭にコメントアウト) 4. 再起動し、デバイス認識を確認 – $ sudo reboot – $ aplay –l – 目的のデバイスだけ認識されていればOK 24
  25. 25. MPDの設定 • 基本デフォルトで、必要に応じて変更 – 何を設定するかはVolumioやMoode Audioを参考に学ぶ 1. ソフトウェアミキサーに変更(ハードウェアミキサーが無 くボリューム調整できないDAC) – $ sudo vi /etc/mpd.conf 25 # An example of an ALSA output: # audio_output { type "alsa" name "My ALSA Device" # device "hw:0,0" # optional # mixer_type "hardware" # optional mixer_type "software" # optional # mixer_device "default" # optional # mixer_control "PCM" # optional # mixer_index "0" # optional }
  26. 26. MPDの起動 1. MPDの起動 – $ sudo systemctl start mpd 2. MPDの自動起動の設定 – $ sudo systemctl enable mpd 26
  27. 27. Sambaのインストールと設定 27
  28. 28. Sambaのインストールと設定 1. Sambaをインストール – $ sudo apt-get install samba 2. Sambaの起動 – $ sudo systemctl start smbd – $ sudo systemctl start nmbd 3. Sambaの自動起動を設定 – $ sudo systemctl enable smbd – $ sudo systemctl enable nmbd 28
  29. 29. ファイル共有の設定 1. 共有するディレクトリのパーミッション変更 – $ sudo chmod 777 /lib/mpd/music – 誰でも書き込みできるように変更 2. Smb.confの末尾に共有設定を追加 – $ sudo vi /etc/samba/smb.conf – 設定詳細は次のスライド – ゲストでも書き込み可能に設定 3. Sambaの再起動 – $ sudo systemctl start smbd 29
  30. 30. smb.confでの共有の設定 [Music] path = /var/lib/mpd/music browseable = yes read only = no guest ok = yes veto files = /._*/.DS_Store/ delete veto files = yes 30
  31. 31. 共有接続と楽曲データのコピー 1. PCからファイル共有に接続 – Windows:¥¥raspberrypi.local¥ – Mac:Finderで「移動」→「サーバ」へ接続 →「smb:// raspberrypi.local」 – Music共有に接続 2. 適当な楽曲データのファイルをコピー 31
  32. 32. mpcコマンドの基本的な使い方 1. 楽曲DBのアップデート – $ mpc update 2. 楽曲の一覧表示 – $ mpc ls 3. 楽曲の再生キューへの追加 – $ mpc add 楽曲ファイル名 4. 楽曲の再生/停止 – $ mpc play | stop • 再生楽曲の送り/戻し/一時停止 – $ mpc next | prev | pause 32
  33. 33. Raspberry Pi Zeroの インターネット接続について 33
  34. 34. RasPi Zeroのインターネット接続 • 無印:USB経由で何とかする – OTGケーブル+LANアダプタ • キーボードを繋ぎたい時はUSBハブが必要 – OTGモードを利用 • PC経由でインターネット接続 • W:無線LANが使える – あらかじめ/bootにwpa_supplicant.conf を設置 34
  35. 35. RasdPi Zero+OTGモード 1. /bootにsshを作成 2. cmdline.txtの修正 – rootwait modules-load=dwc2,g_ether quiet 3. config.txtの修正 – dtoverlay=dwc2 を末尾に追加 4. Raspberry Pi ZeroとPCをUSBケーブルで接続 – 内側のUSBポートに接続 – PC側からはネットワークI/Fとして認識される 5. PC側でインターネット共有を作成 – Macだとかなり楽 6. PCからRaspberry Pi Zeroにアクセス 35
  36. 36. 接続図 36 Internet USB接続有線/無線 インターネット共有(NAT)
  37. 37. Macからの見え方 37 単なる出入り口なので IPアドレスの割り当て は気にしないでよい
  38. 38. Macでインターネット共有を作成 38 MacからRaspberry Pi Zeroに DHCPでIPアドレス等を付与 指定したインターフェースから 外部ネットワークに接続

×