2009年11月29日日曜日

KNOPPIX4RoboでArduinoが動きました

昨日、LinuxでArduinoを動かしてみたということを書きましたが、同じように拙作KNOPPIX4RoboでもArduinoを動かしてみることにしました。

既に環境は整っているので、以前に作っていたものを「cp -Rp」コマンドで別ディレクトリとしてコピーし、「Arduino-0017」とEtoys 4.0ベースの「Arduino.7」を展開して/home/knoppixに追加保存しました。

次に、「# apt-get install gcc-avr」と「# apt-get install avr-libc」をして、必要なパッケージをインストールしたら、またまたかなり大きくなってしまいました。このままではCDに納まらないので、「QEMU」「mplayer」「GIMP」を削除しました。compizもいらないのではないかと思って削除したら、できあがったCDのウィンドウ表示がおかしくなってしまったので、compizのプラグインと設定マネージャだけ削除することにしました。こうしてできあがったものを、例の長いコマンドでISOファイルにしてCDに焼きました。

動作確認もしてみましたが、今のところ問題ない状態です。ただ、現状ではデスクトップにシェルスクリプトを並べて、残りは/home/knoppixに保存してある各フォルダの中から起動するようになっています。今後はこれらを、LXDEのメニューから起動できるようにしたいと思っています。

2009年11月28日土曜日

LinuxでArduinoを動かしてみました

先日、Make:Tokyo Meetingに参加して、Scratchな皆さんのところへ行ってきました。ついでに、どんなイベントなのか興味があったのでふらふらと会場を回ってきましたが、手作り電子楽器やさまざまな電子工作の展示&デモがあって、血が騒いできてしまいました。会場内で、電子部品の即売をしていたのですが、以前から私の周辺で話題になっていた「Arduino」のはじめようキット(発光ダイオードとかブレッドボードなどのセット)が安売りされていたので、「Arduinoをはじめよう」と一緒に衝動買いしてしまいました。

販売していた方に、「Linuxでも動きますか?」と尋ねたところ、「自分はやったことがないけどArduinoを動かすソフトはJavaベースだし、Linux用のパッケージも用意されている」とのこと。早速自宅へ戻ってArduinoのWebサイトからLinux用のtgzパッケージをダウンロードし、Ubuntu 9.10とKNOPPIX 6.0.1で動作実験をすることにしましました。
#もちろん、Mac用もダウンロードしました。(^_^)Mac用のものは、すぐに使うことができました。

ArduinoのWebサイトの情報によると、「sun-java6」が必要とのこと。幸い既にインストールしてあるので、それ以外に必要なものを追加でインストールしました。(Synapticパッケージマネージャを使いました)
  • gcc-avr
  • avr-libc
これで、Arduinoのソフトが動くはずなのですが、ソフトは起動するもののプログラムしたものがうまく動きません。(「wiring_analog.c」の77行めの「pin」の辺りがおかしいと言われる)何がいけないのだろうと思ってあっちこっち検索してみましたが、それらしい情報に巡り会えません。これは、よほどマイナーなことか、あるいは、よほど簡単なことなのだろうと考えて、取り合えずパーミッションの設定を確認しました。すると、「lib」フォルダや「libraries」フォルダ内の「*.jar」ファイルのパーミッションが、ことごとくリードオンリーに設定されていて、これを実行可能に変更しました。すると、難なくプログラムまでうまく動いたので、Arduinoへ転送してみました。これも難なくクリアし、LinuxからArduinoを動かすことに成功しました。
#はじめにUbuntu 9.10で確認した後、同様の手順でKNOPPIX 6.0.1でも動作確認できました。

そもそも、前回紹介した「KNOPPIX4Robo」で動かせるものがミュウロボだけだったので、他のものも動かせるようにしたいと考えて、Arduinoを動かせるようにと考えたのでした。Scratch&ミュウロボなどに比べて、Arduinoは格段にレベルが高いのですが、Scratchから動かせるような話やEtoysでも動かせる話も聞いたので、次はKNOPPIX4RoboでもArduinoが動くようにしてみたいと思います。

2009年11月22日日曜日

KNOPPIX 6.0.1 for Roboが出来上がりました

これまで、KNOPPIX 6.0.1をカスタマイズしてEtoysやScratchを動かせるようにする実験をしてきましたが、ロボットをコンピュータで制御することを通して、子どもたちが「構成的」に学習できる環境を構築することを目標として、次のような条件で本格的なKNOPPIX 6.0.1のカスタマイズをはじめました。
  1. 小学生がプログラミングを通して学ぶのに適したソフトウエアを導入する
  2. ロボット制御に対応したLinux版(KNOPPIXで動作する)のソフトウエアを導入する
  3. 小学生を対象とした本活動に適した、安価で使いやすいロボットを制御できること
この条件に合うものとして、ソフトウエアは、(Squeak)Etoys 3.0、同4.0、Scratch 1.4、同MyuRobo 1.4(阿部さんに作って頂きました)、Dolittle 2.0、同2-1pre(兼宗さんに作って頂きました:未公開)の6つのソフトウエアを導入し、スタジオミュウ製のミュウロボを動かせるものを作ることにしました。

以前にやったことから発展させて、Javaを導入してDolittleが動くようにすることがはじめの課題でした。そのために、「apt-get update」ができなければなりません。あらかじめ、読み書き可能な状態でHDDをマウントし、ネットワークの設定(/lib/init/rw/resolvconf/resolv.conf)をカスタマイズのために用意した方へコピーします。これで、「apt-get update」できるようになりますので、リストを更新して「apt-get install sun-java6-jre」でJava6を導入し、同fontsと同pluginも合わせて導入しました。

この状態で、Etoys 3.0とScratch 1.4をdebパッケージファイルからインストールし、それ以外のソフトは展開した状態でKNOPPIXのホームにコピーしておきました。

さあ!これでCDのISOイメージを作ろう!と思ったら、700MBを軽く越えている感じ。これだとCDには納まらないので「DVDにするか!」とも思いましたが、そもそもCDで手軽に同環境を構築することを目指していたので、ここは必要ないものを削除しまくることにしました。

削除したパッケージは以下の通り。
  • Icedove
  • VirtualBox
  • Pidgin
  • Orca
  • Xgnokii
  • Linphone
  • GPRSコネクト
  • ISDNツール
ここまでで、かなりコンパクトにまとまりましたので、例の長いコマンドと格闘しながらどうにかISOイメージを作ることができました。

そして、起動実験を済ませて今ブログを書いているというわけです。目標としていたものは、無事すべて動作させることに成功しました。ご協力頂いた皆様、本当にありがとうございました。

2009年11月20日金曜日

Ubuntu 9.10をHDDにインストールなど

普段サブで使っているPC(そもそもは各種Linux OSのテスト用PC)のUbuntuを9.04から9.10にアップグレードしてみました。はじめは、アップデート・マネージャからアップグレードしてみたのですが、諸々インストールしていじりまくっているためか、あっちこっちでうまく動かない感じがしたので、思い切ってクリーンインストールすることにしました。

こういう「お引っ越し」で面倒なのは、必要なファイルのバックアップと復元です。Macで使わなくなったUSB2.0接続の外付けHDDがあるので、そちらにダウンロードしてインストールしたdebパッケージやzipファイルなどをコピーし、Wine上で動かしていたWindows用ソフトウエアもコピーしました。次に、自分のHOMEフォルダを丸ごとコピーして、引っ越し準備完了。

UbuntuのWebサイトから9.10のISOイメージファイルをダウンロードして、CDに焼いてPCを起動し、インストール作業を開始しました。(今回は本家のサイトからダウンロードしましたが、日本語を使うならJapanese Teamのサイトからの方が良いと思います。)

HDDへのインストール後、日本語環境に不足があるということで、いくつかのファイルが自動的にダウンロード&インストールされ、無事にUbuntu 9.10のインストールが完了しました。すぐさま、Synapticパッケージ・マネージャを使ってsun-java6、Wine1.2などをインストールしました。(Micropolice、FreeCIV、Simutrans、WesnothなどのゲームやMuseシリーズ、Rosegarden、ZynAddSubFX、Alsa Modular Synthなどの音楽関連ソフトもインストールしました)
#今まで、「jackd」の動かし方がイマイチ分からないところがあったのですが、英語のメッセージを頼りにしながら、簡単に動かすことができるようになりました。(次の課題は、デーモンとしてバックグラウンドで起動しておくこと)

最後の仕上げとして、ScratchやEtoysなどのdebパッケージをインストールして元の作業環境に戻すことができました。大きな変化はあまり感じられませんが、それぞれのソフトウエアのバージョンが微増し、ちょっとだけ使いやすくなった感じはあります。

ついでと言っては何ですが、電源のファンが起動時にけたたましい音をあげていたので、その対策にファンカバーを付けることにしました。こちらもあっさり作業を終了し(少々改造が必要でしたが…)、さらにケースファンの回転数を調節するファンコントローラーを付けて若干の静音化に成功しました。これで、夜中にPCを起動しても、家人を起こさずに済みます。(^_^;;;

2009年11月8日日曜日

KNOPPIX 6.0.1にScratch 1.4とEtoys 3.0を入れたISOイメージ作り

KNOPPIX 6.0.1をベースにした、ISOイメージ作りに挑戦してみました。
#「KNOPPIX HACKS(オライリー)」を参考にしました。

はじめに、用意したHDD(今回はUSB接続の40GB HDDを用意)をext3でフォーマットしてからルートに移動し、このHDD内に「source/KNOPPIX」というディレクトリを作成し、CD-ROMから起動したKNOPPIX 6.0.1の「/KNOPPIX/*」をコピーします。
# cp -Rp /KNOPPIX/* source/KNOPPIX
続けて、カスタマイズ作業の準備に入ります。まず、「/home/knoppix/」に入れておいて直接動かすScratchMyuRobo 1.4を、「source/KNOPPIX/home/knoppix」にコピーしました。合わせて、作業中に必要になるであろう「Desktop」「Documents」フォルダを「source/KNOPPIX/home/knoppix」内に作成し、Desktopフォルダには、ScratchMyuRobo 1.4を動かすシェルスクリプトをコピーしておきました。EtoysとScratchのdebパッケージとScratchの日本語版で使われるpoファイルは、「source/KNOPPIX/root」にコピーしておきました。

この後、chrootで「source/KNOPPIX」をルートとして起動し、カスタマイズ作業を開始します。はじめに、「mount -t proc /proc proc」とおまじないをかけます。(元の環境で作業をしたいときは、「umount /proc」をしてから「Control + D」でchrootを抜け出します。)次に、十分なディスク領域を確保するために、OpenOffice.org関連のファイルを削除することにしました。
# apt-get --purge remove openoffice.org-core
# apt-get --purge remove openoffice.org-common
# apt-get --purge remove openoffice.org-l10n-ja
※OOoを削除した後は、LXDEデスクトップマネージャーのタスクバーから、OOo関連の設定を削除する必要があります。「/home/knoppix/.config/lxpanel/LXDE/panels/panel」を開いてOOoに関する設定を削除しました。

次にEtoysScratchのdebパッケージを「dpkg -i」でインストールし、poファイルを「/usr/share/scratch/locale/」フォルダにコピーしました。仕上げに「# apt-get clean」でゴミを削除します。さらに細かなカスタマイズも可能ですが、KNOPPIXのカスタマイズは今回が初めての作業でもあり、早く動作実験をしたいこともあって、ここまででchrootでの作業を終了しました。

HDD内に「master」フォルダを作成し、ISOディスクイメージを作成するために、KNOPPIX CD-ROM内の/bootフォルダと/KNOPPIX/KNOPPIX以外の/KNOPPIXフォルダ以下のファイルをmasterフォルダにコピー(同期)します。
# rsync -a --exclude "/KNOPPIX/KNOPPIX" /mnt-system/ master/
続いて、source内に作ったKNOPPIXフォルダを圧縮イメージに変換します。恐ろしく長いコマンドを正確に打ち込む必要があるので、特に注意が必要です。
# mkisofs -R -U -V "〈任意の名前〉(filesystem)" -P "〈任意の名前〉" -hide-rr-moved -cache-inodes -no-bak -pad source/KNOPPIX | nice -5 /usr/bin/create_compressed_fs - 65536 > master/KNOPPIX/KNOPPIX
さらに、md5sumsのチェックサムリストを作るために、次のように打ち込みます。
[master]# find -type f -not -name md5sums -not -name boot.cat -exec md5sum {} \; >> KNOPPIX/md5sums
さて、いよいよISOイメージの作成です。このコマンドも長いので、正確に打ち込むよう注意が必要です。
# mkisofs -pad -l -r -J -v -V "KNOPPIX" -no-emul-boot -boot-load-size 4 -boot-info-table -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -hide-rr-moved -o knoppix.iso master/
これで、カスタマイズしたKNOPPIXのISOイメージが完成しました。CD-Rに焼いて動作確認しましたが、問題ありませんでした。時間はかかりますが、それほど難しくないところがありがたいです。これで、オープンソースを活用したコンピュータ制御(プログラミング)の学習環境が手軽に持ち運べるようになりました。

2009年11月2日月曜日

scratch_1.4.0.debian.12_i386.debのインストール

Linux版Scratchのdebian.12(scratch_1.4.0.debian.12_i386.deb)が出たので早速ダウンロードしてインストール作業をはじめました。

これまでにインストールしてあった「debian.*」は、「/usr/lib/scratch/」に「Scratch.image」などをインストールし、「/usr/share/scratch/」に「Plugins/」などをインストールする仕様になっていて、連携がうまくできていない(Scratchを起動しても「/usr/share/scratch/」の方は参照していない感じ)状態にありました。そのため、デフォルトで英語だけしか使えず、日本語などを使う場合は、「/usr/lib/scratch/」の方に必要なフォルダやファイルをコピーする必要がありました。

その点、今回の「debian.12」は、インストールされる場所そのものは変わっていませんが、「/usr/share/scratch/」を参照するようになり、日本語表示も簡単にできるようになりました。まだ、日本語のインライン入力はできないものの、テキストエディタなどで日本語文字列を作り、コピー&ペーストで日本語入力もできるようになりました。
#SqueakVM 3.7-7JPatchedを使わなくても良い。

普段使っているUbuntu 9.04(最近HDDを80GBにして、環境を再構築した)では、難なくインストール作業(dpkg -i)を終了し、動作も確認できました。録音にも対応して、ますます使いやすくなりました。

勢いに乗ってKNOPPIX 6.0.1でもインストール作業をしてみましたが、ことごとく失敗してしまいます。どうやら、「/etc/gnome/」というフォルダがないので作業が完了できなかったというようなことを言っているようです。(英語のエラーメッセージ)そこで、mkdirで「/etc/gnome/」フォルダを作りインストール作業を続行しました。すると、無事にdebian.12のScratchがインストールされました。
#合わせて阿部さんに作って頂いた「ja.po」などを「/usr/share/scratch/locale」に上書き保存しました。

これで、だいぶ実用レベルになってきました。すでにこれを使った活動を進めている最中です。子どもたちがどんなものを作ってくれるのか、とても楽しみにしています。

2009年11月1日日曜日

OSC 2009 Tokyo/Fallに行ってきました

今年、東京で2回目の開催となったOSC 2009 Tokyo/Fallに行ってきました。短時間で必要最小限のところを回って来ましたが、中でも一番のお目当ては、「KNOPPIX/Math 2009」でした。これをGetし、急いで帰路につきました。

帰宅して、早速動作確認をしました。部品を寄せ集めて作ったライブCDの動作確認用のPC(Celeron 2.0GHz搭載)で起動させたところ、8インチ液晶モニタの画面の表示がずれてしまうという現象に出会いました。「自動調整」もうまくいかなかったので、Celeron 2.66GHzを載せた別のマシーンで起動実験を続けました。こちらは問題なく起動しました。そこで、このマシーンを使って「CFカード」にKNOPPIX/Math 2009をインストールし、動作実験を継続することにしました。

先ほどの、ライブCDの動作確認用のPCでは、DVDから起動するとうまくいかないのに、CFカードから起動すると、普通にデスクトップが表示され、問題なく使えることが分かりました。また、以前に作ってあったリサイクルPCでも問題なく動作してくれました。

USBメモリやCFカードにインストールするメリットは、容易にカスタマイズができること。変更した所だけ、「継続的なKNOPPIXディスクイメージ」に保存しておいてくれるので、コンピュータの電源を落としても、次に起動した時には、カスタマイズした環境で使いつづけることができます。もし、カスタマイズに失敗しても、「knoppix.image」を読み込まずに起動して、もう一度「継続的なKNOPPIXディスクイメージ」を作り直せば、また元の状態から始めることができます。それに、CD-ROMから起動するよりも少し速く起動します。USBメモリはUSB 2.0が必須(1.1だと遅すぎる)ですが、CFカードはマザーボードに直接IDE→CFカード変換ボードを差し込んでいるので、余計に速く感じます。SSDも流行っているので、今後はHDDレスで安定したSSDなPCが出現するとおもしろくなってくると思っています。