ラズパイオーディオで学ぶ
Linuxシステム構築
宮原 徹(@tmiyahar)
このコースの目標
• Raspberry Piで音楽を鳴らします
• Raspbianを使ってシステムを構築します
– Volumioなどは使いません
• 基本的なネットワークの知識を学びます
• 基本的なLinuxの操作、システム構築を学
びます
2
全体的な手順
1. Raspbianのインストール
– Etcherを使って
2. ネットワーク接続
– かなりケースバイケース
3. MPDのインストールとオーディオ再生の設定
– オーディオI/Fによって異なる部分
4. Sambaのインストールと設定
– PCからネットワーク経由で楽曲データを管理する
ため
3
ヘッドレス接続で
Raspberry Piを操作する
4
なぜヘッドレス?
• 複数のHDMIディスプレイの用意が難しい
– 大人数のハンズオンなど
• ノートPCなら用意できる
– 参加者持ち寄り方式
• SSHやVNCで接続してRaspberry Piを操作
• HDMIディスプレイ、キーボード、マウスを
準備できるなら気にしないでいいプロセス
5
ネットワーク接続を検討
• 一番楽なのは有線直結 ←今回はこれを選択
– ノートPCに有線LANポートが必要
– macOSの「インターネット共有」がとても楽
– Windowsは「インターネット接続共有(ICS)」を使う
– インターネット共有が使えない場合は事前に
/boot/cmdline.txtにIPアドレスを記述
– Raspberry Pi Zeroの場合にはUSB OTG接続
• スイッチングハブで有線接続
– インターネットにアクセスさせたい場合など
– 配線が大変
• 無線LANで接続
– 事前に/boot/wpa_supplicant.confを作成しておく
•6
ヘッドレス起動のための設定
• IPアドレスの設定 ←ここが少し面倒
CLIだけの場合
• SSHサーバーの起動
– デフォルトではオフ
GUIも使うなら
• HDMI接続無しの設定
– HDMI接続がなくてもHDMIに出力
• デフォルト画面サイズの設定
– VNCで接続した際の画面サイズになる
• VNCサーバーの起動
– Raspberry PiにSSHでログオンして起動
7
準備するもの
• Raspberry Pi本体
• 電源
– ACアダプタ or モバイルバッテリ
• microSDカード
• ノートPC
– 有線LANポート(内蔵 or USB)
– SDカードリーダー/ライター
• Raspbianのイメージファイル
• LANケーブル
8
基本的な手順
1. RaspbianイメージをmicroSDカードに焼く
2. microSDカード内で設定
– SSHサーバーのブート時有効化
– ヘッドレスで画面サイズを指定
– IPアドレスの指定
3. Raspberry Piを起動
4. SSHで接続
5. VNCを有効化
6. VNCで接続
9
イメージのmicroSDカードへの書き込み
10
イメージファイルの中身
microSDカードに
この構造のまま
書き込み
イメージをmicroSDカードに書き込む
• Etcherを使用
– https://etcher.io/
– Windows、Mac、Linuxをサポート
– ZIP形式のままイメージ書き込み可能
– 書き込み後、自動的にアンマウントされる
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
SSHサーバーのブート時有効化
• SSHサーバーはデフォルトでOFF
– セキュリティ強化のため
• /boot/sshファイルを作っておくと起動時にSSH
サーバーを起動する
– ファイルの中身は空(サイズ0)でよい
– SDカードをノートPCでマウント
– シェルならtouchコマンドを実行
• $ touch /PATH/TO/boot/ssh
– Windowsなら空のファイルをコピーする
• 新規作成できない!?
• メモ帳などで作成してコピーしてこないとダメ
13
ヘッドレスと画面サイズの指定
• テキストエディタで/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
Raspberry Piを起動
• 初回起動時にルートパーティションを拡張
– SDカードの空き領域をすべてルートパーティ
ションに結合
– すぐに再起動がかかります
• 起動の状況はアクセスランプを見ていると
なんとなく分かる
– 大体40秒ぐらいで起動完了
• pingでRaspberry Pi(192.168.0.100)と通信
できるか確認
15
SSHで接続
• SSHクライアントからRaspberry PiのIPアド
レスに接続
• ユーザー名:pi
• パスワード:raspberry
• $ ssh pi@192.168.0.100
– Macからなら ssh pi@raspberrypi.local でも接
続可能(Bonjourによる名前解決)
16
Bonjourを使った名前解決
• BonjourはAppleが作ったゼロコンフィグな
名前解決の仕組み
– macOS/iOSはデフォルトでサポート
– WindowsはiTunesをインストールする
– LinuxはAvahiをインストールする
• raspberrypi.localでアクセスできる
– 同じネットワークに同時にRaspberry Piがいる
と名前が衝突する
– ホスト名を変更すれば名前衝突は回避可能
17
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
基本的な設定を変更
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
無線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"
}
MPDのインストールと
オーディオ再生の設定
21
Raspbianのアップデート
必須ではないが
1. APTのアップデート
– $ sudo apt-get update
2. バージョンアップ
– $ sudo apt-get dist-upgrade
– $ sudo reboot
3. もう1回APTのアップデート
– $ sudo apt-get update
– やらないとMPDがインストールできない
22
MPDのインストール
1. MPDのインストール
– $ sudo apt-get install mpd mpc
– 一緒にMPDクライアントmpcをインストール
• 音質にこだわる人はソースコードからオプ
ション付きでビルドすると良い
– 情報はネット上に色々とあります
23
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
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
}
MPDの起動
1. MPDの起動
– $ sudo systemctl start mpd
2. MPDの自動起動の設定
– $ sudo systemctl enable mpd
26
Sambaのインストールと設定
27
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
ファイル共有の設定
1. 共有するディレクトリのパーミッション変更
– $ sudo chmod 777 /lib/mpd/music
– 誰でも書き込みできるように変更
2. Smb.confの末尾に共有設定を追加
– $ sudo vi /etc/samba/smb.conf
– 設定詳細は次のスライド
– ゲストでも書き込み可能に設定
3. Sambaの再起動
– $ sudo systemctl start smbd
29
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
共有接続と楽曲データのコピー
1. PCからファイル共有に接続
– Windows:¥¥raspberrypi.local¥
– Mac:Finderで「移動」→「サーバ」へ接続
→「smb:// raspberrypi.local」
– Music共有に接続
2. 適当な楽曲データのファイルをコピー
31
mpcコマンドの基本的な使い方
1. 楽曲DBのアップデート
– $ mpc update
2. 楽曲の一覧表示
– $ mpc ls
3. 楽曲の再生キューへの追加
– $ mpc add 楽曲ファイル名
4. 楽曲の再生/停止
– $ mpc play | stop
• 再生楽曲の送り/戻し/一時停止
– $ mpc next | prev | pause
32
Raspberry Pi Zeroの
インターネット接続について
33
RasPi Zeroのインターネット接続
• 無印:USB経由で何とかする
– OTGケーブル+LANアダプタ
• キーボードを繋ぎたい時はUSBハブが必要
– OTGモードを利用
• PC経由でインターネット接続
• W:無線LANが使える
– あらかじめ/bootにwpa_supplicant.conf を設置
34
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
Internet
USB接続有線/無線
インターネット共有(NAT)
Macからの見え方
37
単なる出入り口なので
IPアドレスの割り当て
は気にしないでよい
Macでインターネット共有を作成
38
MacからRaspberry Pi Zeroに
DHCPでIPアドレス等を付与
指定したインターフェースから
外部ネットワークに接続

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