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分後に届いたメイルは以下である。 いつ届いて、どのように使うのかまったく不明であるが、楽しみである。
そしてふーみんからも以下のメイルが届いた。 確かに、昨日、うまくいったと確認してMacをシャットダウンする時に、起動したつもりの無かった「X11」というのがターミナルと別に立ち上がっていて、ヘンだと思ったのだった。このたびは、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をご愛顧いただきますよう、よろしくお願いいたします。そこで、ゼミで学生に見せるために研究室中央のデスクに移動させていたRaspberry Piを再び元の場所に戻して、起動したところDHCPサーバから取得したIPアドレスが「172.16.65.154」と新しくなったのを確認して、再び、Macのターミナルから以下のようにやってみると、なんとssh出来てしまった。うーん・・・ > 最初だけ「-X」が必要のようです。 この「-X」は X11の転送を許可する、というオプションなんですよね。 なんでこんなもんが関係するのか、すごくpuzzlingです^^;
- Macのターミナルを開く
- 「ssh-keygen -R 172.16.65.154」とRaspberry PiのIPに対するKeyを作成する
- 「ssh pi@172.16.65.154」と「-X」を付けずにsshをかける
- 「yes」としてパスワードを入れると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」というのが見つかった。
サウンドの再生パッケージは既にインストールされている筈だ、ということで、以下のように「sudo apt-get install alsa-utils」と入れると、無事に確認できた。 もし入っていなければ、「apt-get」がまたインターネットに捜しに旅立つところであった。(^_^;)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 ~ $これでいよいよ、サウンド再生のテストである。 Max6で3分ほどかけて作った以下のレコーディングツールを使って、 以下のコマンドで、無事に女性の声で「Front, Center」という声が聞こえてきた(^_^)。 こんな音である。pi@raspberrypi ~ $ sudo apt-get install alsa-utils パッケージリストを読み込んでいます... 完了 依存関係ツリーを作成しています 状態情報を読み取っています... 完了 alsa-utils はすでに最新バージョンです。 アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。 pi@raspberrypi ~ $
そして次は、「hello_audio」というテスト用のパッケージである。 おまじないの連続であるが(^_^;)、まずは「cd /opt/vc/src/hello_pi/libs/ilclient」へ行け、という。 ここには以下のものがあり、Makefileの内容は以下である。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 ~ $ここで、各プログラムの中身は、 ilclient.h と ilclient.c と ilcore.c である。 ここで「make」とすると、 こんな表示 が出た。 続いて、「cd ../../hello_audio」へ行け、という。 ここには以下のものがあり、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 $ここで、各プログラムの中身は、 audioplay.h と audio.c と sinewave.c である。 ここで「make」とすると、 こんな表示 が出た。 ここでふーみん本には「./hello_audio 0」でサウンドが鳴る、とあったが以下のようにエラーで怒られた(^_^;)。 正解は「./hello_audio.bin 0」であり、 こんな音がした。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 $ふーみん本のバグ発見でちょっとだけでも貢献できたとしたら・・・嬉しい(^_^)。 この音 の作り方としては、 audio.c の中の、以下の部分ということになる。 C言語だと安心して読めるなぁ。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 $
引き続きのトピックとして「タイムゾーン」「パスワード」「ユーザ登録」「無線LAN」「外部ストレージ」「runレベル」「メモリ配分」と続くが、とりあえず今回はパスして、必要になったら戻ってくることにした。 次の「ネットワーク設定」は、DHCPでなく固定IPを設定して、MacなどとOSCで連携する場合には必要になりそうなので、ここで色を付けておいた(^_^;)。 さらに「時計合わせ」「DNS」「hostname」「システム情報」と続いたが、これもとりあえず今回はパスして、必要になったら戻ってくることにした。
そしていよいよ、ふーみん本のトピックが「外部入出力」になった。 ここから残りの部分がメインである。 これは昨日メモした このリスト とも関係してくる世界である(^_^)。 ただし、実際にRaspberry PiのGPIOコネクタから外部に信号線を引き出して・・・という作業をするには、明日から2日間の出張を前にして、あと1時間ほどとなった今日は適さない(^_^;)。 そこで、「rcp」コマンドを調べて実験した。 以下のような手順で、ホストのMac内にターミナルウインドウを2つ開けて、片方はRaspberry Piにsshでログインしておき、もう片方はホストのMacを管理すると、それぞれのコンピュータ内のデータをネットワーク経由で自在にコピー出来るのである。
- 以下の例ではホスト(nagasm)のIPは「172.16.65.31」、Raspberry PiのIPは「172.16.65.154」
- ホストからRaspberry Piにデータをコピーする (ホスト画面からの操作)
- ホストから送りたいデータの置かれた場所に移動する(cd)
- Raspberry Piのデータ受け取り場はホームとする(/home/pi)
- ここでは送るデータを「senddata.dat」とすれば↓
- rcp senddata.dat pi@172.16.65.154:
- バスワードを聞いてくるので入力すると転送、完了(^_^)
- Raspberry Piからホストにデータをコピーする (ホスト画面からの操作)
- Raspberry Piから送りたいデータはホーム(/home/pi)に置く
- ホストのデータ受け取り場はカレントディレクトリ
- ここでは受け取るデータを「receivedata.dat」とすれば↓
- rcp pi@172.16.65.154:receivedata.dat .
- バスワードを聞いてくるので入力すると転送、完了(^_^)
- ホストからRaspberry Piにデータをコピーする (Raspberry Piにsshログインしたリモート画面からの操作)
- Raspberry Piのデータ受け取り場はホームとする(/home/pi)
- ここでは受け取るデータを「Desktop/senddata.dat」とすれば↓
- rcp nagasm@172.16.65.31:Desktop/senddata.dat .
- バスワードを聞いてくるので入力すると転送、完了(^_^)
- Raspberry Piからホストにデータをコピーする (Raspberry Piにsshログインしたリモート画面からの操作)
- Raspberry Piから送りたいデータはホーム(/home/pi)に置く
- ホストのデータ受け取り場はnagasmのDesktop
- ここでは送るデータを「receivedata.dat」とすれば↓
- rcp receivedata.dat nagasm@172.16.65.31:Desktop/
- バスワードを聞いてくるので入力すると転送、完了(^_^)
当然ながら、ホスト側からでもリモート側からでも、送信も受信も出来る。 これは今後、重宝することだろう。
「Raspberry Pi日記」トップに戻る