2010年10月31日日曜日

KNOPPIX4Robo 2.xの更新

前回の1.x系の更新に引き続き、KNOPPIX4Roboの2.x系の更新作業を行いました。更新の中心は、1.x系の更新と同じ作業をすることと、Arduino-IDEProcessingをインストールすることです。今回は、今まで$HOME(/home/knoppix/)にインストールしていたものを、できるだけ「/usr/local/bin/」に移動し、$HOME内をスリム化することも作業リストに入れました。
#同様の作業を1.x系でも行って、作業環境としての共通性を保持することにしました。

必要なファイルとフォルダを所定の場所に配置した後、chrootで作業開始。etoys(3.0)を削除したり、Scratchのソースから作って頂いた各種Scratchを1つにまとめて、それぞれをシェルスクリプトで起動できるように(この作業は1.x系でも行った)したり、更新したApplicationをLXDEメニューから起動できるようにdesktopファイルを書いたり、必要ないファイルやフォルダ(更新のために使って必要なくなったものも)を削除したりして、無事に更新作業は終了しました。

ところが、この作業が終わった段階で、sourceフォルダが1.9GB近くまで膨れ上がってしまいました。これでは、圧縮しても700MBのISOに収めるのは難しいです。そこで、あっちこっちフォルダを覗き込んでいらないファイルを削除した後、Processingのexampleフォルダから、フィジカル・コンピューティングに関係ないファイルを削除しました。

さて、おもむろにあの長いコマンドを打ち込んで、KNOPPIXを圧縮します。今回は、「create_compressed_fs」に「--best」オプションをつけてみました。すると、その作業時間の長いこと!圧縮作業が終わるまで、約3時間もかかりました。1回目は700MBオーバーしたためにやり直して、2回目はdesktopファイルの設定ミスでやり直して、三度目の正直でようやく完成しました。(合計約9時間!!!)

一応、必要なソフトウエアは動作することを確認しました。(ハードウエアをつないでいないので本当に動くか微妙ではありますが…)今回は、いろいろな作業の合間をぬって行ったので、本当に疲れました。(^_^;;;

2010年10月23日土曜日

KNOPPIX4Robo 1.xの更新

授業で使うために、約1年ぶりにKNOPPIX4Robo 1.1を更新することにしました。これまでの経緯は、リンク先からたどって頂ければありがたいのですが、いかんせん、本職が忙しくてなかなか本格的な更新作業に取り組めません。そこで、純粋に授業に使うものだけを収録した1.x系列の更新のみを行うことにしたのでした。

とは言え、既に1年前の話となっているので、sourceファイルを探すところからスタート。自宅にあるHDDのどこかにあったような気がしていたのですが、諸々の作業の合間に削除してしまったらしく、どこを探しても見当たりません。しかたがないので、昨年作ったKNOPPIX4Robo 1.1のCDから起動して、取り出すことにしました。
#この方法は、ある意味で効率的です。

更新作業は、(1)Scratchを更新してWeDoが使えるようにする、(2)Dolittle 2.1をインストールしてミュウロボが使えるようにする、の2つの作業を行いました。

(1)については、最新版のScratch 1.4のdebパッケージをインストール(sudo dpkg -i 〜)し、これまでと同様に、日本語poファイルを上書きしました。続いてWeDoに対応させるために、OLPC用のScratch-16.xoをダウンロードし、「.xo」を「.zip」にリネームして展開し、以下の作業を行いました。
#例によってabee2さんに教えて頂きました

$ cd Scratch.activity
$ sudo cp WeDoPlugin-disabled /usr/lib/scratch/Plugins/WeDoPlugin
$ sudo ./installWeDoRules.sh

#「WeDoPlugin」ファイルのパーミッションを一般ユーザまでリード可能にしておかないと、思い通りの動作をしてくれません。

これで、Linux版のScratchでもWeDoが使えるようになります。

(2)については、わたやんさんのdebパッケージを利用して、インストール作業(Scratch 1.4と同様)を行いました。debパッケージを作って頂いたおかげで、本当に作業が楽になりました。今までLinux用にカスタマイズした状態で$HOMEに保存していたフォルダも、きれいさっぱり削除しました。これで、ちょっと軽くなりました。

ついでに、Etoys 4.0を同4.1(今見たら、4.1.1になっている…)に置き換えました。こちらは、debパッケージがないので手動でLinux用にカスタマイズし、LXDEのメニューに登録する作業を行いました。

という訳で、またいつもの長いコマンドと格闘しながらどうにかKNOPPIX4Robo 1.2のISOファイルを作ることができました。CDに焼いて動作確認をしましたが、2度の失敗の後、ようやく満足できるものができ上がりました。次は時間を見つけて、2.x系列の方に入っている、Arduino-IDEやProcessingの更新作業をして行きたいと思います。

2010年10月16日土曜日

KNOPPIXのソフトを更新できません

先日、ハードウエア的なトラブルに見舞われてUbuntu 10.04での運用を断念したマシーンをKNOPPIXで再生しようと考えて、以前にKNOPPIXをインストールしてあったHDDに再インストールしてみました。インストールそのものは難なく終わったのですが、そのままでは味もそっけもない感じ。そもそも、インストール直後はデスクトップが真っ黒で「Compiz」も動いていないので、使いにくいことこの上なしです。

そこで、カスタマイズを始めたのですが、ソフトウエアを更新したりインストールしたりしようと思ってSynapticパッケージマネージャを動かすと、パッケージリストの更新作業中にエラーを吐いて停止してしまいます。繰り返し行ってもダメなので、一度閉じて再び作業をしようとすると、パッケージマネージャ自体が起動しなくなりました。どうやら、リポジトリに関する設定ファイルが開けないと言っているらしいことが分かりました。

しかたなく、いろいろなサイトを見て回って、何となく「/etc/apt/sources.list」や「/var/lib/dpkg/status」あたりの問題ではないかと考えてパーミッションの設定を変えてみましたが、まったく改善されません。「/etc/apt/apt.conf.d/」の中身のファイルもパーミッションを変更してみましたが意味がなかったようでした。

このままだと、来週使う予定の「KNOPPIX4Robo」の更新がままならないので、とても困った状況になりました。とはいえ、いつまでもこんな作業ばかりをしているわけにもいかないので、各種ソフトウエアは古いまま、必要最小限の更新で我慢するしかありません。いずれにしても、これまで苦労してきたことが報われない状況にありますので、このままで終わらせるのはちょっと悔しい気がします。また、時間を見つけてリベンジしてみたいと思います。

2010年10月10日日曜日

Mac & LinuxでPepperの動作テスト

そろそろフィジカル・コンピューティングの授業(←サービス終了につき閲覧不可)のために準備をしようと考えて、購入したキットを組み立てる作業をはじめました。手始めに、Pepperから作り始めよう(部品数が少なくてすぐに作れるから)と考えて、以前にスイッチサイエンスさんで購入して組み立てたままになっていたのPepperがあったのを思い出し、まずはこいつから動作テストをすることにしました。

軽い気持ちでUbuntu 10.04で動かしているPCとPepperをつなぎ、Processingからそれらしいプログラムを流してみました。しかし、どうにもうまく行きません。Linuxだからダメなのかもしれないと思ってMac OS X 10.5.8からもやってみましたが、やっぱりダメです。「ハンダ付けが下手なのか?」と疑ってみましたが、それぞれの環境で「/dev」以下を覗いてみると、ちゃんと認識されているのです。さてはProcessingに関する問題だろうと推察し、いろいろと調べて回りました。すると、次のような手順でセッティングをしないと、Pepperを動かすことができないということがわかりました。
#やらなければならないことは、MacもLinuxも同じですが、やり方が少し違うので注意が必要です。

  1. Pepper用の「gainer.jar」を導入する
    デフォルトのGainerライブラリだと、Pepperをうまく認識してくれないようなので、PepperのダウンロードサイトからPepper用のgainer.jarをダウンロードして、Processingに導入します。
  2. Pepperに対応した「RXTXcomm.jar」を導入する
    Pepperを接続した際、Macでは「/dev/cu.usbmodem****(「*」は数字とアルファベット)」として認識され、Linuxでは「/dev/ttyACM*(「*」は数字)」として認識されます。この状態で、デフォルトのRXTXライブラリではProcessingとPepperをつなぐことができないため、Pepperに対応したRXTXcomm.jarを導入します。
    #ページの中央付近にリンクされています。
  3. Processingのpdeファイルに接続先を明示する
    いわゆる「Lチカ」で動作確認するために、Pepper用に書かれたpdeファイルを探した(横着ですみません…)ところ、エレキジャックさんのWebサイトにフォローアップ記事があり、これを使うことにしました。それぞれの環境で「/dev」以下を確認し、どのように認識されているのかを確認した上で修正します。
    • 修正前:gainer = new Gainer (this, Gainer.MODE1);
    • 修正後(Mac):gainer = new Gainer (this, "/dev/cu.usbmodem****", Gainer.MODE1);
      修正後(Linux):gainer = new Gainer (this, "/dev/ttyACM*", Gainer.MODE1)
    #フォントが導入されていない場合は、続く「myFont…」と「textFont…」の行をコメントアウトしてください。
  4. 回路を組んでPepperをつないで動作確認する
    記事の通りに回路を組んで、Processingからpdeファイルを動かす(Run)と、ちゃんと期待通りに動いてくれました。他のものも試してみましたが、問題ありませんでした。

はじめは、すぐに済むだろうと思ったPepperの動作テストでしたが、思いの外時間がかかってしまいました。KNOPPIX 6.2では、Ubuntuと同じ方法でやっても動きませんでした。こちらはもう少し時間がかかりそうです。たぶん私以外にも苦労されている方がいらっしゃるだろうと思って、ここにまとめてみましたので参考にしてみてください。
#「自己責任で」というのは、いつものパターンですが…。