4月 192016
 

Raspberry Pi 2 に Volumio をインストールしてハイレゾ楽曲を再生して楽しんでいる環境が整ったのですが、そのために Raspberry Pi 2 の 40PIN には「サインスマート HIFI DAC サウンドカード モジュール I2S インターフェース」を挿しました。これでコンソールは使えなくなるんですね。

せっかく Raspberry Pi 2 用に USB シリアルコンソールケーブルを購入しているので、これを Volumio で利用できれば嬉しいです。

IMG_3997_RPI2_Volumio_csl_1

しかし「サインスマート HIFI DAC サウンドカード モジュール I2S インターフェース」 にはピンが出っ張ってないので USB シリアルコンソールケーブルを接続することができない。

それならば。と、いうことでハンダでピンを取り付けてみました。 40PIN スロットの 6,8,10 番にピンを立てて、ここにシリアルコンソールを接続できるように改造です。電子工作だぁ。非常に簡単だけど;-)。

IMG_3990_RPI2_Volumio_csl_2

完了後はこんな感じになりました。これでサウンドカードモジュールと USB シリアルコンソールケーブルの両方が利用可能になりました。ぱちぱちぱち。

と、いうことで、早速 Volumio を起動しましょう。もう HDMI とかディスプレーとか必要ないしぃー。みたいな。まぁ、 Volumio は zeroconf が動作しているのでアクセスに関しては楽なんだけどね。

FreeBSD から以下のコマンドでシリアルコンソールを利用します。

$ cu -l /dev/cuaU0 -s 115200

 
オプションに指定する速度に注意でしょうかね。そして Raspberry Pi 2 に電源を投入するとコンソールが流れ始めます。おぉ。無事に使えるねぇ。良かった良かった。なんてのはつかの間。表示されるだけで入力できないじゃーん。 orz
Volumio はシリアルコンソールの設定が完結してないのかい?などと思い、ここから先は、起動した Volumio のシリアルコンソールを有効化していきます。

Volumio は OS に Ubuntu を利用しているので /etc/default/grub 辺りか? などと思い眺めますが x86 アーキテクチャではないのでそんなファイルは無いようです。

ふむ。

コンソールを使うなら /etc/inittab に何かしらの設定が必要だべ。とか思い眺めると『あ。多分のこの辺りを有効にすると行けそうだね。』という行が現れます。この辺りは FreeBSD とかやっていると知らない OS (『そこはかとなく、良く解らない OS』と言ったほうが良いか;-) でもなんとかなります。

# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

 
上記の上の行をとりあえず 115200 にして設定してみした。

# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

 
変更後は kill -HUP 1 で反映させます。間違っても kill -9 1 とかしないように;-)。 その後 ps で確認すると getty のプロセスが起動するので設定は有効になったようです。

しかし、相変わらずキーボードからの入力は受け付けてくれない状態。うむー。
多分 -L ttyS0 の部分が合っていないのだろうというのは容易に想像が付くのですが、では何を設定したら良いの? ってことになります。 Ubuntu で利用できる tty の種類は /etc/securetty の中に色々書いてあります。ただ、色々たくさん書いて有り過ぎますf(^^;;。

一応 dmesg | grep uart や dmesg | grep tty などのコマンドを打って確認。情報を色々仕入れます。あぁ。なるほどー。
dmesg | grep tty すると表示される Kernel command line: の行にどの tty を利用したら良いか書いてありますね。これを指定してみましょう。

# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 115200 vt100
T0:23:respawn:/sbin/getty  -L ttyAMA0 115200 vt100
#T1:23:respawn:/sbin/getty -L ttyS1   9600 vt100

 
設定完了。今度は kill -HUP 1 してもダメだったので再起動してしてみましょう。

お。コンソールに文字が表示され、おぉ。ログインプロンプトが出てきましたっ!! やった;-)。

これで Volumio でもシリアルコンソールが使えるようになりました。ハンダ当てて改造した甲斐が有りました。
今後はディスプレーも USB キーボードも必要なくなります。一件落着です;-)。

あ。最後にですが、今回利用した Volumio は 1.55 になります。