Raspberry Pi 日記

長嶋 洋一


2013年5月24日(金)

もう金曜日である。先週の金曜日は阪大に向かっていたのでゼミが1週お休みになったので、今日は学生の進捗報告が楽しみである。 明日から週末は岡山大に向かうので、今日も作業としては「区切り」を狙っていこう。 何故か朝一番に、Wikipediaで綾瀬はるかの血液型がB型である、と確認して一日がスタートした(^_^;)。

昨日の帰り間際に突如、解決したSSHであるが、ふーみんに「ssh-keygen -R 172.16.65.###」というのを教わって試した時に駄目だったのは、続いて「ssh pi@172.16.65.###」と普通のsshと同じようにやっていたからである。 解説ムービーにあるように、昨日は最初に「ssh -X pi@172.16.65.###」とやったところ、開通したのである。 あらためて再度、今度は「-X」を付けないで「ssh pi@172.16.65.###」とやると、以下のようにOKであった。 「-X」は最初だけのおまじないのようである。

さて、朝イチで昨日からのニュースなどを読んでいると、立て続けにトリガがかかってきた。 まずメイルで届いたのは、KickStarterからの「Project Update #2: Maker Faire!」という知らせである。 Sketchingで知り合った友人たちのプロジェクトについては、既に2つ、 Blink(1)BrightEyes を、KickStarterで賛同出資して購入してきた(「日記」といいながらまったく続きがストップしているのはご愛嬌である(^_^;))。 この第3弾として、先日Sketchingコミュニティから届いたメイルに賛同出資したのが、 Clyde である。 あと19日で、目標としている45,000ドルに到達するかどうか、現在30,000ドルなのでちょっと微妙である(^_^;)。 今回届いたメイルはその続報で、アメリカで開催されたMaker Fairに出展した、という情報である。 なんとか、プロジェクトが実現して欲しい。

そして事務局財務室のMさんから電話があり、昨日の午後に提出していた「モバイルWiFiルータの購入のための申請書」が受理されたので買ってもOK、という事だった。 さすが、素晴らしいスピードに感謝である(^_^)。 そこで速攻で このページ に行って、ゼミ学生が集まるまでの10分間で、カード決裁の購入申込みを完了させてしまった。 1分後に届いたメイルは以下である。 いつ届いて、どのように使うのかまったく不明であるが、楽しみである。

このたびは、UQ WiMAXにお申し込みいただき誠にありがとうございます。
新規お申し込みの手続きが完了いたしましたので、ご連絡いたします。
お申し込みいただきました内容は以下のとおりです。

【お申込内容】              新規ご契約
【受付番号】                K027170###
【契約者ID】                C100278###
【料金契約番号】            U100640###
【料金プラン】              UQ 1 Day
【WiMAX搭載機器名】         AtermWM3800R白 × 1台
【WiMAX搭載機器名】         AtermWM3800R専用 クレードル × 1台

お申込内容の詳細は、弊社ホームページの「My UQ」よりご確認ください。
<パソコンからは>
http://www.uqwimax.jp/service/support/myuq.html
ご利用の際には、お客様が設定されたMy UQ IDとパスワードが必要です。
※My UQを初めてご利用になるお客様のMy UQ IDとパスワードは、以下の番号
 となります。
   My UQ ID :上記の受付番号(半角英数字10桁)
   パスワード:お申し込み手続き時に入力された「暗証番号」 (半角数字4桁)

■UQ 1 Day(1日利用プラン)のご利用について
UQ 1 Dayをご契約のお客様は「ご利用時間」をご購入いただく必要がござい
ます。詳しくは下記URLをご参照ください。
http://www.uqwimax.jp/service/price/price2.html 

UQ 1 Dayは、ご契約いただいた時点で「ご利用時間かんたん購入」が
有効になっています。最後にご利用された日の翌日から90日間は
My UQ ID/パスワードの入力をしなくてもWiMAX接続後ブラウザー
を起動するだけでご登録いただいたクレジットカードを
用いたご利用時間のご購入、および月額契約への変更が可能です。
ご利用にあたっては以下の点をご確認ください。

・意図せずWiMAX搭載機器を第三者に利用されてしまった場合、
 これらの手続きに伴う料金が発生する可能性があります。
 WiMAX搭載機器を盗難・紛失された際は、UQお客様サポートセンターに
 早急にご連絡いただけますようお願いします。

※「ご利用時間かんたん購入」を利用しない場合、My UQから
 無効にすることができます。無効にした場合は、ご利用時間のご購入、
 および月額契約への変更にあたって、手続きごとにMy UQ ID/パスワード
 によるログインが必要となります。

こちらは自動配信メールのため、当メールアドレスへの返信はできません。

今後ともUQ WiMAXをご愛顧いただきますよう、よろしくお願いいたします。
そしてふーみんからも以下のメイルが届いた。 確かに、昨日、うまくいったと確認してMacをシャットダウンする時に、起動したつもりの無かった「X11」というのがターミナルと別に立ち上がっていて、ヘンだと思ったのだった。
うーん・・・
> 最初だけ「-X」が必要のようです。
この「-X」は X11の転送を許可する、というオプションなんですよね。
なんでこんなもんが関係するのか、すごくpuzzlingです^^;
そこで、ゼミで学生に見せるために研究室中央のデスクに移動させていたRaspberry Piを再び元の場所に戻して、起動したところDHCPサーバから取得したIPアドレスが「172.16.65.154」と新しくなったのを確認して、再び、Macのターミナルから以下のようにやってみると、なんとssh出来てしまった。

これまた謎である。 このIPはたぶん初めての登録なのに、今度は「-X」を付けずに、つまり以前に駄目だった方法でも出来てしまったのである。 違いがあるとすれば、今回はRaspberry Piがssh元のコンピュータを既に認識している、という可能性ぐらいである。 まぁ、とりあえず出来てしまったので、これ以上の深入りはナシにしよう。

モバイルWiFiルータが来るまで棚上げするのは「apt-get」などの部分である。 「VNC」も別途にインストールする必要があるので、「apt-get」の後となる。 昨日、本命のテーマに関するあたりで こんなリスト も作っているのだが、焦らずに進めていこう(^_^;)。

そこで次のターゲットとしては、ふーみん本の「apt-get」や「VNC」を飛ばして、その次の「サウンド」である。 Macのターミナルからsshでログインしての作業なので、Raspberry Piの作業のログを、以前のようにいちいちSDカードの「/boot」領域に書き込んではシャットダウンしてMacにSDカードを差し込んで読み出す・・・という煩雑な作業が不要となり、ターミナルからのコピペで済むのはとても快適である(^_^)。 まずはサウンドドライバモジュールの確認である。 以下のように「sudo lsmod」とすると、「snd_bcm2835」というのが見つかった。

pi@raspberrypi ~ $ 
pi@raspberrypi ~ $ sudo lsmod
Module                  Size  Used by
snd_bcm2835            15846  0 
snd_pcm                77560  1 snd_bcm2835
snd_seq                53329  0 
snd_timer              19998  2 snd_pcm,snd_seq
snd_seq_device          6438  1 snd_seq
snd                    58447  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc          5145  1 snd_pcm
leds_gpio               2235  0 
led_class               3562  1 leds_gpio
joydev                  9316  0 
evdev                   9426  6 
pi@raspberrypi ~ $
サウンドの再生パッケージは既にインストールされている筈だ、ということで、以下のように「sudo apt-get install alsa-utils」と入れると、無事に確認できた。 もし入っていなければ、「apt-get」がまたインターネットに捜しに旅立つところであった。(^_^;)
pi@raspberrypi ~ $ sudo apt-get install alsa-utils
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
alsa-utils はすでに最新バージョンです。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
pi@raspberrypi ~ $
これでいよいよ、サウンド再生のテストである。 Max6で3分ほどかけて作った以下のレコーディングツールを使って、 以下のコマンドで、無事に女性の声で「Front, Center」という声が聞こえてきた(^_^)。 こんな音である

pi@raspberrypi ~ $ sudo aplay /usr/share/sounds/alsa/Front_Center.wav
再生中 WAVE '/usr/share/sounds/alsa/Front_Center.wav' : Signed 16 bit Little Endian, レート 48000 Hz, モノラル
pi@raspberrypi ~ $
そして次は、「hello_audio」というテスト用のパッケージである。 おまじないの連続であるが(^_^;)、まずは「cd /opt/vc/src/hello_pi/libs/ilclient」へ行け、という。 ここには以下のものがあり、Makefileの内容は以下である。
pi@raspberrypi ~ $ cd /opt/vc/src/hello_pi/libs/ilclient
pi@raspberrypi /opt/vc/src/hello_pi/libs/ilclient $ ls
Makefile  ilclient.c  ilclient.h  ilcore.c

pi@raspberrypi /opt/vc/src/hello_pi/libs/ilclient $ cat Makefile
OBJS=ilclient.o ilcore.o
LIB=libilclient.a
include ../../Makefile.include

pi@raspberrypi /opt/vc/src/hello_pi/libs/ilclient $
ここで、各プログラムの中身は、 ilclient.hilclient.cilcore.c である。 ここで「make」とすると、 こんな表示 が出た。 続いて、「cd ../../hello_audio」へ行け、という。 ここには以下のものがあり、Makefileの内容は以下である。
pi@raspberrypi /opt/vc/src/hello_pi/libs/ilclient $ cd ../../hello_audio
pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ ls
Makefile  audio.c  audioplay.h  hello_audio.bin  sinewave.c

pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ cat Makefile
OBJS=audio.o sinewave.o
BIN=hello_audio.bin
LDFLAGS+=-lilclient
include ../Makefile.include

pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $
ここで、各プログラムの中身は、 audioplay.haudio.csinewave.c である。 ここで「make」とすると、 こんな表示 が出た。 ここでふーみん本には「./hello_audio 0」でサウンドが鳴る、とあったが以下のようにエラーで怒られた(^_^;)。 正解は「./hello_audio.bin 0」であり、 こんな音がした
pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ ./hello_audio 0
-bash: ./hello_audio: そのようなファイルやディレクトリはありません
pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ ls
Makefile  audio.c  audioplay.h  hello_audio.bin  sinewave.c
pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ ./hello_audio.bin 0
Outputting audio to analogue
pi@raspberrypi /opt/vc/src/hello_pi/hello_audio $ 
ふーみん本のバグ発見でちょっとだけでも貢献できたとしたら・・・嬉しい(^_^)。 この音 の作り方としては、 audio.c の中の、以下の部分ということになる。 C言語だと安心して読めるなぁ。

引き続きのトピックとして「タイムゾーン」「パスワード」「ユーザ登録」「無線LAN」「外部ストレージ」「runレベル」「メモリ配分」と続くが、とりあえず今回はパスして、必要になったら戻ってくることにした。 次の「ネットワーク設定」は、DHCPでなく固定IPを設定して、MacなどとOSCで連携する場合には必要になりそうなので、ここで色を付けておいた(^_^;)。 さらに「時計合わせ」「DNS」「hostname」「システム情報」と続いたが、これもとりあえず今回はパスして、必要になったら戻ってくることにした。

そしていよいよ、ふーみん本のトピックが「外部入出力」になった。 ここから残りの部分がメインである。 これは昨日メモした このリスト とも関係してくる世界である(^_^)。 ただし、実際にRaspberry PiのGPIOコネクタから外部に信号線を引き出して・・・という作業をするには、明日から2日間の出張を前にして、あと1時間ほどとなった今日は適さない(^_^;)。 そこで、「rcp」コマンドを調べて実験した。 以下のような手順で、ホストのMac内にターミナルウインドウを2つ開けて、片方はRaspberry Piにsshでログインしておき、もう片方はホストのMacを管理すると、それぞれのコンピュータ内のデータをネットワーク経由で自在にコピー出来るのである。

当然ながら、ホスト側からでもリモート側からでも、送信も受信も出来る。 これは今後、重宝することだろう。


「Raspberry Pi日記」トップに戻る