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

More Related Content

What's hot (7)

5分で分かるRaspberry Piでハイレゾオーディオ再生
5分で分かるRaspberry Piでハイレゾオーディオ再生5分で分かるRaspberry Piでハイレゾオーディオ再生
5分で分かるRaspberry Piでハイレゾオーディオ再生
 
linux基礎_新卒エンジニア勉強会20130404
linux基礎_新卒エンジニア勉強会20130404linux基礎_新卒エンジニア勉強会20130404
linux基礎_新卒エンジニア勉強会20130404
 
Voyage koedo-2
Voyage koedo-2Voyage koedo-2
Voyage koedo-2
 
1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版1次ベーシック講座情報第1回 修正版
1次ベーシック講座情報第1回 修正版
 
「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編「Adx2 LE」Unity活用編 初~中級編
「Adx2 LE」Unity活用編 初~中級編
 
fdコマンドを使おう
fdコマンドを使おうfdコマンドを使おう
fdコマンドを使おう
 
音声データの扱い方と基礎知識・Audacity基本操作
音声データの扱い方と基礎知識・Audacity基本操作音声データの扱い方と基礎知識・Audacity基本操作
音声データの扱い方と基礎知識・Audacity基本操作
 

Similar to ラズパイオーディオで学ぶシステム構築入門

自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
Masahiko Hashimoto
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
Yutaka Tsumori
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
hiro345
 

Similar to ラズパイオーディオで学ぶシステム構築入門 (20)

Osc2013 tokyospring
Osc2013 tokyospringOsc2013 tokyospring
Osc2013 tokyospring
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入NGS速習コース:UNIXの基礎の理解/Linux導入
NGS速習コース:UNIXの基礎の理解/Linux導入
 
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
PXE で linux インストールな本 -1 スピンドルマシンも Linux 化-
 
Introduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and DracutIntroduction to Initramfs - Initramfs-tools and Dracut
Introduction to Initramfs - Initramfs-tools and Dracut
 
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
PFIセミナーH271022 ~コマンドを叩いて遊ぶ コンテナ仮想、その裏側~
 
20170124 linux basic_1
20170124 linux basic_120170124 linux basic_1
20170124 linux basic_1
 
FreeBSDで行こう for small server
FreeBSDで行こう for small serverFreeBSDで行こう for small server
FreeBSDで行こう for small server
 
NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料NPCA夏合宿 2014 講義資料
NPCA夏合宿 2014 講義資料
 
ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!ラズパイでネット対応 学習リモコンをつくろう!
ラズパイでネット対応 学習リモコンをつくろう!
 
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
RDOを使ったOpenStack Havana - Neutron 構築編 :補足資料
 
Firefox OS + Raspberry Pi
Firefox OS + Raspberry PiFirefox OS + Raspberry Pi
Firefox OS + Raspberry Pi
 
Hadoop on LXC
Hadoop on LXCHadoop on LXC
Hadoop on LXC
 
自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう自分色のLinuxホームサーバーを作ってみよう
自分色のLinuxホームサーバーを作ってみよう
 
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
 
Samba4でADしよう!
Samba4でADしよう!Samba4でADしよう!
Samba4でADしよう!
 
systemdを始めよう
systemdを始めようsystemdを始めよう
systemdを始めよう
 
Nseg20120825
Nseg20120825Nseg20120825
Nseg20120825
 
Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例Dockerの仕組みとIIJ社内での利用例
Dockerの仕組みとIIJ社内での利用例
 
Osc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 jOsc201703 tokyo-clonezilla-v1.2 j
Osc201703 tokyo-clonezilla-v1.2 j
 

More from VirtualTech Japan Inc./Begi.net Inc.

More from VirtualTech Japan Inc./Begi.net Inc. (20)

爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
爆速DB「PG-Strom」について 『PG-Strom v5リリース記念 GPUを活用したビッグデータ分析基盤を構築しよう」』
 
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
Linuxサーバー構築学習のポイントと環境構築 ~『Linuxサーバー構築標準教科書』の執筆者が超解説!~
 
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
OSC2023福岡LT「希望の船に乗って」みやはら とおる(@tmiyahar)
 
今さら聞けない人のためのSSH超入門
今さら聞けない人のためのSSH超入門今さら聞けない人のためのSSH超入門
今さら聞けない人のためのSSH超入門
 
OSCのこれまでを振り返るとしたらこんな感じ?
OSCのこれまでを振り返るとしたらこんな感じ?OSCのこれまでを振り返るとしたらこんな感じ?
OSCのこれまでを振り返るとしたらこんな感じ?
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
爆速!DBチューニング超入門 〜DB性能の基礎とGPU活用による高速化〜
 
今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編今さら聞けない人のためのDevOps超入門 ODC2023編
今さら聞けない人のためのDevOps超入門 ODC2023編
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
DBチューニング超入門
DBチューニング超入門DBチューニング超入門
DBチューニング超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
MIRACLE LINUX 9にAnsibleをインストールした話
MIRACLE LINUX 9にAnsibleをインストールした話MIRACLE LINUX 9にAnsibleをインストールした話
MIRACLE LINUX 9にAnsibleをインストールした話
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
最近のOSCと今後について
最近のOSCと今後について最近のOSCと今後について
最近のOSCと今後について
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
オープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメオープンソースカンファレンスへの参加のススメ
オープンソースカンファレンスへの参加のススメ
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツMIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
MIRACLE LINUX 8をVirtualBoxに入れる時のいくつかのコツ
 

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