Raspberry PiをAirPlayサーバにする

Raspberry PiにShairport Syncをインストールした時のメモ。 AirPlayはBluetoothのようにペアリングが必要なく家に帰ってきてWifiに接続するだけでワイアレスでスマホから音楽をかけられるのでたいへん便利。

Shairportには色々な派生バージョンがあるけど、評判のいいShairport Syncをチョイス。 長いので以下Shairportと書くことにする。

Shairport Syncのインストール

基本的にはREADME.mdの通り。

必要なパッケージのインストール

sudo apt-get install libshairport2 autoconf libtool libdaemon-dev libasound2-dev libpopt-dev libconfig-dev avahi-daemon libavahi-client-dev libssl-dev libsoxr-dev

libsoxr-dev(The SoX Resampler)は音を良くする(?)ためのライブラリ。あってもなくても良いけど使うとCPU負荷が高くなるらしい。

ビルド

git clone https://github.com/mikebrady/shairport-sync.git
cd shairport-sync
autoreconf -i -f
./configure --with-alsa --with-avahi --with-ssl=openssl --with-metadata --with-systemd
make

SoXを使いたい人は./configureのオプションに --with-soxr を付け加える。

ユーザーの追加

Shairport用のユーザーを追加する必要があるらしいのでユーザーとグループを追加。

sudo getent group shairport-sync &>/dev/null || sudo groupadd -r shairport-sync >/dev/null
sudo getent passwd shairport-sync &> /dev/null || sudo useradd -r -M -g shairport-sync -s /usr/bin/nologin -G audio shairport-sync >/dev/null

インストール

sudo make install

設定

/etc/shairport-sync.confが設定ファイル。

general = {
  name = "%H";

nameを変更するとAirPlayサーバーの表示名が変わる。お好みで変えると良いです。

USBから音声を出力する

デフォルトだと3.5mmのジャックから音声が出力されるけど音はあまりよくないのでUSBに繋いだDACから音を出すことにする。 DACを繋いでから

aplay -l

無事認識されてればcard 0以外のデバイスが表示される。

pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

上の例だとcard 1のSubdevice #0がUSBDAC。 このcard と Subdeviceの番号を覚えとく。

/etc/shairport-sync.confの中に

alsa = {
  output_device = "default";

とあるのでdefaultをhw:1,0と変える。数字は上で出てきたもの。

systemctl start shairport-sync

でShairport起動。

AirPlay出力先の設定

LAN内にAirPlayサーバーがある状態でコントロールセンター(名前合ってたっけ?)を開くとボリュームの下に見慣れない物がある。 設定がうまくいってればタップして出力先にAirPlayサーバーを選択できるはず。 後はテキトーに音楽を流してスピーカーから音が出れば終了です。お疲れ様でした。

ちなみにShairport "Sync"というだけあって映像と音楽の同期を取ってくれるのでYoutubeとか見てもちゃんと音ズレせずに再生される。すごい

CBR250R(MC41)のタイヤ交換

 走行距離15000kmでタイヤの溝が無くなったので交換することに。

 

選んだタイヤはIRCのRX02

 

 現行250ccクラスのメーカ指定であるRX01の一つ上のグレードのタイヤ。

前後で14000円ちょい。

 

さて、タイヤを交換するにはメンテナンススタンドっつー物を使ってタイヤを地面から浮かせる訳だけどコレが結構いい値段する上に大きくてかさばる。そこで今回は車用のパンタジャッキで前後のタイヤを交換してみた。

 

という訳で今回はメンテスタンドは買いたくないけどタイヤ交換は自分でやりたい人向けのお話。

 

 

 ↓使ったジャッキ。

【アストロプロダクツ】AP 1.5TON パンタグラフジャッキ

【アストロプロダクツ】AP 1.5TON パンタグラフジャッキ

 

 まずはフロントタイヤが動かないように輪ゴムでフロントブレーキを固定する。

次にサイドスタンドにカマボコ板くらいの厚さの何かを噛ませてバイクを水平に近づける。 

 

リアを浮かせる場合はリアサスの下の部分にウエスを噛ませてリフト。

f:id:pu2x:20160813200921j:image 

f:id:pu2x:20160813215400j:image

フロントの場合はエキパイにジャッキを噛ませる。

f:id:pu2x:20160813201230j:image

f:id:pu2x:20160813215410j:image

 

チューブレスタイヤの交換に関しては他のブログ等に山ほど情報があるので割愛。

チューブレスタイヤの交換は初めてだったけど思ったよりは簡単にできた。ただホイール外したことがない人は練習しといたほうがいいと思う。

 

ビードを落とす際タイヤレバーを使うとどうしてもホイールに傷が入るので頻繁にタイヤ交換をする人はビードブレーカーを買ったほうがいいかも。3000円くらいで買えるし。

 

ビード上げは原付にホイールを乗せて近所のガソリンスタンドで空気入れを拝借して一発。

タイヤの中に可燃性のガスを入れて爆発させることによってビードを上げる「爆発ビード上げ」なるものもあるらしい。よく思いつくなこんなの。

爆発ビード上げのやり方 ~引っ張りタイヤ~ - YouTube

シールチェーンの交換にえらく手間取った話

「チェーン交換なんて一瞬で終わるでしょー。」

 

 CBR250R(MC41)のチェーンが走行距離15000kmを超えたあたりで伸びきって波打ってしまったので交換することに。

 

選んだチェーンはEK(江沼)チェーンの520SR-X2のスクリュージョイント

 

 

 一般的に二輪車に使われているチェーンはカシメジョイントといって取り付けに専用工具が必要になるがスクリュージョイントは専用工具なしでカシメジョイントと同様の強度を発揮できる、らしい。

 

 交換にあたって最初に古いチェーンを切らなくてはいけないが、最初にピンの頭を削ってカシメてある部分を平らにしないといけないらしい。

普通はディスクグラインダーを使って一瞬で削ってしまうらしいけどそんなモン持ってないのでダイソーの棒ヤスリでひたすら削る。

カシメてある部分は穴の径より大きいのでそのままでは抜けないf:id:pu2x:20160813181021j:image

 

ピンの頭とプレートが同じくらいの高さになったらチェーンカッターでピンを抜く…が、全く抜けない

 アレコレやってるうちに3つあったチェーンカッターを全部駄目にしてしまった。

どうもピンを完全に削りきる前に何度か試しにチェーンカッターを使ったせいでピンを圧入してしまった模様。

 

何が言いたいかと言うと、

  • 棒ヤスリで削る場合はヤスリが負けてすぐ駄目になるのでたくさん用意すべき
  • 多分最初からディスクグラインダーを買ったほうが安くて楽(アマゾンで3000円くらい)
  • ピンを削りきる前にチェーンカッターを使ってはいけない

 

それにしても新品のEKチェーンは簡単に抜けたのにDIDチェーンはなんであんなに硬いのか。

 

追記

ディスクグラインダー使ったら一発でチェーン切れた。

テレビが見れるようになった

押し入れで眠ってた地デジチューナー(plex PX-S1UD)を久しぶりに引っ張り出してきてサーバーと格闘すること数十分、あっさり地デジの受信に成功。録画も問題なし。

ドライバのインストールはここを参考にした。
http://blog.lwlv.net/archives/tag/px-s1ud


自室の環境で受信できた物理チャンネルとチャンネル名はそれぞれ
16: MX
21: フジテレビ
22: TBS
23: テレ東
24: テレビ朝日
25: 日テレ
26: NHK教育
27: NHK
の8つだった。千葉テレビがギリギリ映らないのが残念。


番組表の管理・録画はChinachuに任せることにした。

リアルタイム視聴

リアルタイムで視聴するには、
PX-S1UDで使える録画コマンドのrecdvbを使って、

recdvb --b25 --strip --sid hd --http 8000

とすると8000番ポートでhttpデーモンが立ち上がる。
後は vlc http://localhost:8000/<物理CH>とするとrecdvbデーモンから配信されてくるのでリアルタイムで視聴できる。

一々コマンドを打つのは大変なのでショートカットを作成。

function channel() {DISPLAY=:0 vlc http://localhost:8000/$1 & ; sleep 5; xte -x :0 'key f'}
_channel() {
  _values \
    'channels' \
    '16[TOKYO MX]' \
    '21[フジテレビ]' \
    '22[TBS]' \
    '23[テレビ東京]' \
    '24[テレビ朝日]' \
    '25[日本テレビ]' \
    '26[NHK教育]' \
    '27[NHK]'
}

compdef _channel channel

DISPLAY=:0としているのはssh越しにコマンドを打った時にVLCCUIモードで立ち上がらないようにするため。
xte -x :0 'key f'の部分はVLCを起動した後fキーを送信してフルスクリーンになるようにしている。
_channel()はzshの補完関数。

ひとまずこれでそこそこ快適な地デジ環境が手に入った。



あとこれは夢の話だけど、BCASカードを失くしちゃったからsoftcasを導入したら問題なく見れた。夢の話。

タコパ

夕飯は何にしようかと考えていたらふとタコスが食べてみたくなってダメ元でカルディを眺めていたらバッチリなものが置いてあった。

 

f:id:pu2x:20160120022504j:plain

タコスを作るのに必要な、タコスシェル(コーンで出来たやつ)12枚・サルサソース・シーズニングが入ってすぐにタコスづくりが始められるその名も「Taco Kit」税込み648円。

あとはレタス、トマト、ひき肉、細切りチーズを用意する。コロナビールも忘れずに。

 

ひき肉を炒めてシーズニングと水を混ぜて少し煮込む。あとはテキトーにはさんでサルサソースをかけて出来上がり。チリパウダーをかけるとスパイシーでいい感じ。

シェルは電子レンジで温めたほうが美味しい。

 

f:id:pu2x:20160120022458j:plain

良い意味で期待通りの味だった。豪華なドンタコスといったところか

たまにはいいですね。

 

一食1000円近くするのでかなり贅沢。次からはサルサソースとシーズニングは自分で作ったほうがいいかな。

 

 

シェルに挟む代わりにトーストにタコスを載せたタコトースト。

こっちのほうが美味しかった。

f:id:pu2x:20160120022501j:plain