2016年の買ってよかったもの3つ

例年こういったエントリを見かけるけど、気がつくとyear++されていました。今年こそは!
※上限を設けないとただの「今年買ったもの一覧」になってしまうので3つとします。

SabreBerry32

一部のデジタルオーディオな人たちで流行っている(?)RaspberryPiをオーディオとして使うためのDACです。

http://nw-electric.way-nifty.com/blog/sb32j.html

SabreBerry32にlightMPDを組み合わせることで、スマホから気軽に操作できるオーディオプレイヤーのできあがり。
ちょっとした時間でも気軽に使えるのがいいオーディオだと思っているので、
電気代を気にせずアンプの電源を入れるだけでいい音が聴けるプレイヤーは重宝しています。

無印良品 パラグライダークロスたためるボストンバッグ


http://www.muji.net/store/cmdty/detail/4549337669048
ちょっとした旅行や出張の供に最高だったバッグ。
ただでさえ荷物の重たい旅行で、カバンまで重たいとげんなりしますよね。
このバッグ、2泊3日くらいの荷物を飲み込むのに重量145gで済みます。

UNIQLO MEN オックスフォードシャツ(長袖)+E


http://www.uniqlo.com/jp/store/goods/187594
今年度最大の買ってよかったもの。
クリストフ・ルメール*1のコレクションのシャツ。
写真だと普通のオックスフォードシャツですが、手に取ると細かなこだわりにビビります。
着た時のラインがキレイ。襟のボリュームがいい感じ。無駄なポケットがない。色がいい(特に青)。
しかも安い。こんないい感じのサイズ感でキレイ目なシャツが2,900円だなんて!最後には1,900円で売られていたなんて!*2

このコレクション、UNIQLOでも大型店舗にしか置いてないので今まで知りませんでしたが、結構前から何度か出ていたそうです。
もっと早く知っていれば…!!と思わずにはいられませんでした。



まとめ

他にもいろいろと衝動買い購入したのですが、ブログではとりあげることができませんでした。
来年こそはもう少し取り上げられるといいなぁ…。

*1:ググるまで誰か知らなかったけど

*2:思わず3色購入したのは秘密

キーマップ入れ替え

Windows10の端末にAnniversary Updateを適用したところ、レジストリに設定していたキーマップが吹っ飛びました。

設定していたのは以下のキーマップ

  • CapsLockキーを追加の左Ctrlキーにする
    • CapsLockいらない
  • 変換キーをWinキーにする
    • Win+何かのショートカットキーを多用するので楽な位置に欲しかった

ということで、今後のメモ。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout]
"Scancode Map"=hex:00,00,00,00,00,00,00,00,03,00,00,00,1d,00,3a,00,5b,e0,79,00,\
  00,00,00,00


やっぱりこれじゃないと効率が・・・

SabreBerry32 + Raspberry Pi3 でVolumio2を使う

ようやくSabreberry32とその他パーツが届きました。
SabreBerry32: new_western_elec


今回はRaspberry Pi3 + Sabreberry32 + Volumio2のRC版でmpd用の再生機を作成しました。
ただ、Volumio2のRC版にドライバを導入した際、微妙に手順が違ったので一部メモ。

ドライバを導入する

ドライバ自体はビルド済のドライバが提供されています。
あとはWebにあるとおり導入するだけですが、インストール用のShellScriptが最後に失敗しました。


中を読んだ結果、具体的にはpatch当てに失敗している様子。
どうやらVolumioの設定にDACを追加するのに失敗しています。


ということで、Vim入れて、patchにある追記部分を手で追加してお茶を濁しました。

volumio@volumio:~/Sabreberry32$ vim /volumio/app/plugins/system_controller/i2s_dacs/dacs.json
{ "devices":[
  {"name":"Raspberry PI 2/3","data":[
    {"id":"SabreBerry32DAC-Master","name":"SabreBerry32DAC-Master","overlay":"sabreberry32","alsanum":"1","mixer":"Digital","modules":"","script":"","needsreboot":"yes"},
    {"id":"SabreBerry32DAC-Slave","name":"SabreBerry32DAC-Slave","overlay":"sabreberry32,Slave","alsanum":"1","mixer":"Digital","modules":"","script":"","needsreboot":"yes"},
ついでに

オンボードのオーディオは不要なので止めておきます。

volumio@volumio:~$ sudo vim /etc/modules


# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.


#snd_bcm2835
ということで

今まで使っていたRaspberryPi2とSabreBerry+からの入れ替えでさらに幸せになりましたとさ。
あとはエージングしてる間にケースを作成します。

OMRONのUPSに乗り換えたので作業メモ

自宅で使っているUPSをリプレースしました。
今まではAPCUPSでしたが、今回導入したのはOMRONのBY50Sです。安いっていいよね
このUPSにESXiサーバを接続します。
UPSと接続するのは常時稼働のESXiの1VMとして、ネットワーク経由で他のVMとハイパーバイザのシャットダウンができるようにします。
※具体的なシャットダウン方法は前エントリ参照。
ESXiをSSH経由でシャットダウンする方法メモ - i_aose(旧polaroidoon)の日記


OMRONのネットワーク連携シャットダウン機能を持つツールが付属しています・・・が、無償版ESXiでは使えないとのこと。
http://datchi-u.blogspot.jp/2013/05/esxi.html


気を取り直して、OSS版であるSimple Shutdown Softwareを導入します。
http://www.omron.co.jp/ese/ups/product/soft/sss.html


が、Linux版がどうも使用している環境だと動きが怪しい。。。
仕方がないのでWindows版を使用しました。

Shutdown.iniの設定
[ShutdownParam]
SearchType = 2
PortType = 1
PortNum = 1
ACFailDelayTime = 30
ExternCommand = "C:\ESXi_poweroff.bat"
CommandDelayTime = 30
ShutdownNeedTime = 60

[End]
ESXi_poweroff.bat
@set PATH="C:\zip_program\OpenSSH-Win64\";%PATH%
ssh.exe -i "C:\zip_program\OpenSSH-Win64\id_rsa_ESXi_nopw" root@192.168.0.xx

ということで、これでESXiサーバは停電に耐えられるようになりました。
あとは常時稼働ではないファイルサーバにも連携できる方法を考える必要があります。
batに起動確認入れて、ESXiのハイパーバイザ同様にSSH接続でシャットダウンしましょうかね。。。

ESXiをSSH経由でシャットダウンする方法メモ

諸説あったり、微妙にそれぞれふるまいが違ったので実際に試してみたメモです。
これ以降は試行錯誤の記録なので、結論だけ先に書いておくと、以下コマンドでOKでした。

# poweroff

やりたかったこと

停電の際、キレイに復旧できる仕組みをつくる

  1. 電源喪失
  2. UPS付属ツールからなにかしらの仕組みでESXiをキック
  3. ESXi上の仮想マシンをシャットダウン
  4. ESXiハイパーバイザをシャットダウン
  5. 電源復活
  6. ESXi起動
  7. 仮想マシンも起動

今回、仮想マシンとハイパーバイザをシャットダウンするコマンドを調べました。

esxcliでシャットダウン

メンテナンスモードに切り替えてシャットダウンします。
が、メンテナンスモードに切り替えるには事前に仮想マシンをすべてシャットダウンする必要あり。
しかも、次回起動時にはメンテナンスモードのままなので仮想マシンは自動で起動しません。

# esxcli system maintenanceMode get
# esxcli system maintenanceMode set --timeout 0 --enable yes
# esxcli system maintenanceMode get
# esxcli system shutdown poweroff -r PowerFailed

参考:http://qiita.com/takech9203/items/87988afe0f5f8bfefea5

shutdown.sh

シャットダウンスクリプトです。
ハイパーバイザに関連するサービスはシャットダウンされましたが、仮想マシンはシャットダウンされず。
haltでVMは強制シャットダウンされてしまいました。。。

# /sbin/shutdown.sh && halt
poweroff

仮想マシンがシャットダウンされ、そのあと電源が切れました。
これでOK!

poweroff

参考:https://kb.vmware.com/selfservice/search.do?cmd=displayKC&docType=kc&docTypeID=DT_KB_1_1&externalId=2053214

SSHをきっかけにコマンドを実行する

VMware vSphere ClientからSSHを常時有効にします。
あとはUPS付属ツールを実行するマシンで、パスワードなしのSSHの公開鍵・秘密鍵を作成し、
公開鍵の値をESXiのauthorized_keysに追記します。
※今回は上記の鍵とは別に通常の操作用の公開鍵の値も追記しました。

# vi /etc/ssh/keys-root/authorized_keys
ssh-rsa ***
from="192.168.0.xx",command="poweroff" ssh-rsa ****

重要なのはauthorized_keysの2行目。
fromとcommandを追加することで特定IPからのSSH接続で指定されたコマンドが実行されます。
誤ってSSHで接続するとVM全部落ちるという危なっかしい仕組みですが、あくまで自宅サーバですので許されるハズw


最後に/etc/ssh/sshd_confgにパスワードログインを禁止する設定を追記して完了です。

# vi /etc/ssh/sshd_config
ChallengeResponseAuthentication no

# /etc/init.d/SSH restart
SSH login disabled
SSH login enabled


ということで、特定サーバからSSHでつなぐとESXiがキレイに電源が切れる仕組みができました。

Subsonic用のDockerコンテナを作ってHE-AACを聞く

何年か前から運用したりやめたりしていたSubsonic*1環境を作り直しました。
悪銭苦闘の結果はこちら。
https://bitbucket.org/aose/docker_subsonic


Subsonicとは?

自前のサーバから音楽配信できるソフトウェアです。
クライアントとしてはPCのWebブラウザAndroid用などがリリースされています。
そんなもの定額制の聴き放題サービスがあるじゃん。と思うでしょうか。えぇ、思いましたとも。
でも、聴き放題サービスでは聴きたい曲に限って見つからないし、
どうせハイレゾ音源を購入してるのでそれが使えたほうがラクだという結論に至りました。


さて、今回のSubsonic環境作り直しのテーマは以下2点です。

  • Dockerコンテナ化
  • トランスコーディングによるハイレゾHE-AAC変換
  • Dockerコンテナ化

最近は自宅サーバ環境を順次Dockerコンテナ化しています。
コンテナだと途中からやり直しが効くので不慣れなサーバ構築もハードルが下がる感じがあります。

ハイレゾ音源を購入する機会も増えてきて、スマホで直接再生できないことが多くなりました。
スマホの音質もハイレゾが必要そうなスペックでもないし、圧縮音源で十分でしょう。
ハイレゾ音源が勝手に圧縮されるといいですよね。できればHE-AACあたりで。

トランスコーディングが鬼門だった

エンコードといえばffmpeg
ここまでは知っていましたが、Ubuntuで用意されているffmpegHE-AACに対応してないのは知りませんでした。
HE-AACはライセンス等の関係上自分でビルドするしかないとのこと。
結局HE-AAC付きのffmpegをコンテナ作成時にビルドすることになりました。

HE-AACエンコードするには

Subsonicのトランスコーディング設定でffmpegを指定します。

Android配信向けのオプション

ffmpeg -i %s -vn -c:a libfdk_aac -profile:a aac_he -ab 256k -ar 44100 -ac 2 -afterburner 1 -movflags +faststart  pipe:0.aac

WEBブラウザ向けのオプションは…作ってみましたが、動かないソースもありました。よく分からぬ…

ffmpeg -i %s -c:a libfdk_aac -profile:a aac_he -ab 256k -ar 44100 -ac 2 -afterburner 1 -movflags +faststart -f flv -

ということで

どこでも自分の聴きたい音楽が手に入る環境は素晴らしいですね!

*1:※ライセンスは昔購入したので€10だったけど、いまは月額制に劣化したみたい。。。正直どうかと思う

余生を過ごすU24Eをリフレッシュ

2012年に購入したノートPCですが、現役を引退し、家族のもとで余生を過ごしています。
ASUS U24Eを購入 - i_aose(旧polaroidoon)の日記


そろそろOSを入れ直したい状態だったこと、埃が詰まっていたことなどの理由に
ハードウェア・ソフトウェア共にリフレッシュすることにしました。


ハードウェアは分解記事を調べたところ、分解に失敗した事例がいろいろと・・・
頑丈さを感じない筐体が怖かったので、おとなしく排気口からのエアダスター+掃除機で筐体のホコリを掃除。
あとは外装を軽く掃除して完了。


ソフトウェアはWindows10への無償アップグレードも済ませることにします。
プリインストールのWindowsからクリーンインストールのWindows10環境にするには以下の手順が必要です。

  1. Windows7 → Windows10へアップグレード
  2. Windows10クリーンインストール

最初のアップグレード後にライセンスがデジタル認証されていることを確認する必要があります。
確認せずに次の手順でインストールした結果、またWindows7から入れ直すハメになったとかありえない


一部ドライバ(Fnキー関連、SDカードリーダー)は認識されませんでしたが、
Windows8 x64用のものをインストールしてやれば普通に使える状態になります。


掃除したおかげで静かになったし、Windows10のほうが軽いみたいだし、まだまだ長い余生を過ごしてくれそうです。