RemastersysでカスタムライブDVDを作ってみた

いつか試してみようと思っていたライブCD(DVD)作成を試してみました。

今回試してみたのはRemastersysで、特にカスタム環境を作るのではなく、現在のUbuntu環境をそのままライブDVDにしてみることにしました。

で、手順は「箕面市役所Edubuntu日記」さんの「Remastersysの近況」に丁寧に書かれているので、そのまんまでバッチリいけます。非常に簡単です。こんなに簡単でいいのでしょうか、というくらい簡単です。

あえて補足するとしたらこんなところでしょうか。

  1. Ubuntuのバージョン(コードネーム)の確認方法
    Remastersysを配布元からダウンロードするためにRemastersysのリポジトリを対象システムに追加しなければならないのですが、その際にUbuntuのバージョン(コードネーム)を確認しなければなりません。
    これは /etc/lsb-release というファイルをみると確認できます。
  2. 生成するファイルの選択
    CD/DVDを作る場合にはISOだけあればよさそうなので「Distiso」を選んでみたのですが、なぜかうまくいきませんでした。「Dist」を選択すればうまくISOファイルが生成されました。
  3. Distributionの名前などの設定
    Option選択の画面で「Modify」を選ぶと変えられるみたいです。

で、できた1.1GBくらいのISOファイルをBraseroでDVDに書き込むと、無事にライブDVDが作成できました。それをPCで起動するとライブDVDとして動作し、さらに、そこから別のHDDへインストールも可能でした。

続・最小限のArduino

最小限のArduinoの続きです。

昨日なぜか書き込みの際にDTR信号でリセットがかからなかったのですが、一夜明けて冷静に見てみたら当たり前でした。

原因は「ブレッドボード上でDTR信号がつながってない」ということでした。(笑)

これで外付け部品は「パスコン+10kΩ抵抗+0.1uFコンデンサだけ」のArduinoが動くようになり、『基板がなくてもArduino』ができるようになりました!

最小限のArduino

実験するのに段々基板を準備するのが面倒くさくなってきました(おい)。

で、よくよく考えてみると、8MHzのArduino(つまり、3.3V版)としてブートローダを焼いて、その後ヒューズビットを内蔵8MHzオシレータ利用、分周なしに設定すればリセット周りの外付け部品(10kΩの抵抗と0.1uFのコンデンサ)とパスコンだけで動作するのではないかと考えました。

  1. ボードの準備
    ブレッドボードにATmega328pをセットし、電源とAVRISP mkIIを接続します。クリスタルの端子には8MHzのセラミック発振子をつないでおきます。
  2. ブートローダの書き込み
    Arduino IDEを起動して「Board」で「Arduino Pro or Pro mini (3.3V,8MHz) w/ ATmega328」を選択し、「Burn Bootloader」で、「AVRISP mkII」を選択します。すぐにブートローダの書き込みが終わります。
  3. 動作確認
    19pinにLEDを接続して、ExampleのBLINKを選択し、コンパイル&書き込みを行います。LEDがチカチカすればOK。
  4. avrdudeでヒューズビットを確認
    「# sudo avrdude -c avrisp2 -p m328p -P usb -t」としてターミナルモードを起動
    EFUSE=0x05、HFUSE=0xda、LFUSE=0xffとなっていました。LFUSEの値から、8~16MHzのクリスタル設定になっています。
  5. 発振回路設定の変更
    内蔵RC発振回路とするため、CKSEL=0010、SUT=10に変更します。つまり LHUSE=0xe2 に変更します。
    「>>> w lfuse 0 0xe2」としてヒューズビットを書き込みます。
  6. セラミック発振子を外す
    セラミック発振子を外した状態でプログラムのダウンロード・実行ができればOK・・・のところですが、DTR信号でのリセットがかからないようです・・・(涙)

もう少し調べてみる必要がありそうです。

Arduino用LANインタフェース(ソフト編)

イーサネットシールドライブラリ(Ethernet Shield Library)はこちらのページにあるものを使用しました。ArduinoとENC28J60の接続も同じページにあるものを参考に接続しています。(ただし、3.3Vロジック→5Vロジックのレベル変換は通常実力的には問題ないので省略しています。)

このページ(ページの一番下の「6. Links & Downloads」)でダウンロードできるライブラリとサンプルプログラムはArduinoのバージョン0010用のものですが、ライブラリ内の #include で指定しているファイル名の大文字/小文字が間違っていてそのままではコンパイルエラーを出す(対策は当然 #include の中のファイル名修正)以外は問題なく0022でもサンプルプログラムはコンパイル/動作し、デジタル4pinに接続してあるLEDをブラウザから点灯/消灯させることもできました。

次に、linuxからpingでパケットロスのテストをしてみましたが、0.2秒周期、データ長456バイト(受信バッファが500バイトに設定されているのでこれより長いパケットは受けられない)で一晩連続テストしたり、多数のpingを起動したりしましたが、特にパケットロスが起きることもありませんでした。

このライブラリとサンプルプログラムはこちらの「HTTP/TCP with an atmega88 microcontroller (AVR web server)」が元になっていて、そちらに使い方が書いてあります。このプロトコルスタックは少ないメモリでTCP/IPを何とか扱うためにTCPでも1パケットの範囲に収まるデータを扱うことに限定しています。(趣味の範囲の)通常の遠隔操作やリモートセンシングではWebベースでも1パケット分のHTMLデータに収まる、という考え方です。

今後、もうちょっと掘り下げてみたいと思います。

Arduino用LANインタフェース(ハード編)

Arduinoで使えるLANインタフェースを作ってみました。イーサネットコントローラは秋月で売っているENC28J60です。トランス内蔵RJ-45モジュラジャックも秋月で売っているJ0011D21BNLです。

回路はオプティマイズさんのSPIイーサネットモジュールそのまんまです。これも基本的にはデータシートに載っている回路とほぼ同じなのですが、オプティマイズさんの回路図はENC28J60のシンボルがピン番号順に記載されているので、実体配線するのにすごく都合がよかったです。(オプティマイズさんのを買ってもよかったのですが、部品が全部手元にあったのと、ITプラザに行くのが面倒くさかった・・・。)

ただ、違うのは抵抗が49.9Ωの代わりに51Ω、2.3kΩの代わりに2.4kΩ、フェライトビーズの代わりに22uHのインダクタを使っていること、5V→3.3Vの降圧回路を同居させていること、ホストインタフェースの端子配置をICの3~10ピンの並びをそのまま使っていることくらいでしょうか。あと、誤配線による破損防止に電源のところにポリスイッチ(リセッタブルヒューズ)を入れてあります。

部品面はこんな感じになりました。

抵抗・コンデンサは大部分はチップ部品を使ったので、部品面はすっきりしています。半田面はこんな感じになりました。

終端抵抗の周りの部分で勘違いをしてしまったのでちょっと汚くなってしまいましたが、オプティマイズさんの回路図を見ているとチップ部品を使えば意外に簡単にユニバーサル基板で組めることがわかります。

全景はこんな感じです。

シールド形式(イーサネットシールド)にしてもよかったのですが、後でATmega644などでも使えたらいいな、と思い、今回は敢えて単独の基板にしました。

気圧計・温湿度計を改造

以前作った気圧計・温湿度計はLinuxのPCに接続して記録をとるのが元々の目論見でしたので、表示デバイスなどは設けずUSB-UARTでデータ採取し、Webブラウザ越しに見れるだけとしていました。しかしDebianノートPCが壊れてしまい、それもできなくなったので直接表示するLCDを付けてみました。

といっても、スマートではなく、この写真のように無理やり接続しています。このArduino互換ボードは3.3V動作ですので、接続しているのは秋月の3.3V動作LCDキャラクタディスプレイモジュール[16×2行][バックライト付白抜き]です。

本当は消費電力が増える=温度が多少なりとも上がるということでバックライトなしにしたかったのですが、3.3V動作のバックライトなしで見えるタイプのものがなかったので、バックライト付きを付けました。

100円ショップの半透明(ポリプロピレン?)のプラケース越しなのでやや曇りがちですが、今の温度、湿度、気圧がわかるようになりました。

gNewSenseを試してみる

たまたまFSF(Free Software Fundation)のことを調べていたら、gNewSenseというUbuntuベースのFSF公式支援のディストリビューションがあることを知りました。もちろんLiveCDがあるようなので、ちょっと試してみることにします。

Wikipediaによると、最新版は2.3(実際にダウンロードできるものも2.3)で2009年リリース、ubuntu8.04がベースのようです。ちょっと古いのですが、試してみようと思ったきっかけは、パーソナライズ版の作成ができるBuilderというツールに関する記述があったからです。

で、CD-Rにイメージを焼いて起動してみると・・・・ちょっとデザインが違うだけで、まんまUbuntuでした・・・。(当たり前か・・・)

結局、Ubuntuもインストールできず・・・

Phoronix Test Suite をインストールしてPC不調の原因を切り分けるためにUbuntuをインストールしようとしたのですが、結局Ubuntuもインストールできませんでした。インストールはそれなりに終わるように見えるのですが、やや時間がかかる上に、インストール後のアップデートの際に固まってしまいます。

意を決して、D945GCLF2(Atom330・・・AtomのDualCoreのマザーボード)を古いGC-230D(Atom230・・・過去に270と書いたかもしれませんが230の間違いでした・・・。電源が逝ってしまったやつです。)に入れ換えてみたところ、何もかもがすんなりいくようになりました。

結局のところ、マザーボード自体が逝ってしまっていたようです。あ~、この何週間かの時間を返してくれ~~~って感じです。ようやく、とにかくなんとかまともに動くようになったので、こいつに一旦WindowsXPをインストールしてWindowsでなければできない雑用をこなす環境まで持っていかなければなりません。(しかし、Atom230では荷が重いですね・・・。330なら結構使い物になるのですが・・・。)

それが終わればようやくCore2Quadマシンの復旧が始められます。その前にCore2QuadマシンのWindowsXP環境が立ち上がらなくなったりしないように祈るばかりです。

Linux用のハードウェアテストスイート

PC環境が崩壊していくので何とか整理&再構築しようとがんばっています。

今のところ、最初に崩壊したDebianが動いていた古いノートPCは廃棄することにしました。次に崩壊した初代Atom(N270だったかな?)が動いていた静かな薄型デスクトップ(Ubuntuで使用)はHDDを取り出して廃棄することにしました。その次に崩壊したのはDualCoreのAtom(N330だったかな?)が動いていた爆音マイクロタワーで、今日はこいつがネタです。

HDDにマルチブートでインストールしてあるUbuntuは問題なく動くけど、WindowsXPが動かなくなってしまいました。こういうケースの場合、通常ならばHDDの中のファイルを疑う所ですので、これを機会に2台内蔵していたHDDを1台に減らし、爆音はたまらないのでノースブリッジのファンを低速回転のタイプに変更(変更前が8000rpmくらい、変更後が4800rpmくらい)することで静音化しました。memtestを実施したりBIOSのまま放置(PCによってはこれが結構熱を持つような気がするんです)したりした状態でヒートシンクを触ってもほんのりする程度なのであまり問題はないと思います。熱電対とかつけてもいいんですけど、面倒なのでパス。

で、WindowsXPから再度インストールしなおそうとしていたのですが、なぜか必ずインストールの途中でフリーズしてしまいます。雰囲気としては再インストール前のフリーズと似たような感じで、完全にフリーズするのではなく何かのイベントをひたすら待ちつづけている感じです。何度か試していると、ついにはインストーラ自身がフリーズするようになってしまいました。

が、こんな状態にも関わらず、LinuxのライブCDを試してみると、まったく問題なく動作します。

で、ハードウェアのテストをしてみたいのですが、大抵のツールはWindows用だったりします。・・・が、そのWindowsがインストールできないのですからどうしようもありません。

で、Linux用のものがないか調べてみると、「Phoronix Test Suite」というのが GPL v3 で存在するようです。Downloadページを見ると、Debian/Ubuntu用のPackageも用意されているようですので、とりあえずUbuntuをインストールして試してみることにします。

カラーバーLEDを点灯させる

秋月に新規に登場したカラーLEDバーアレイですが、早速入手してみました。

手軽に動かすため、Arduinoと接続して点灯させてみました。

タイマ割り込みを使用してRGB各色16階調のPWM制御をおこなっています。写真ではわかりにくいですが、結構きれいに見えます。

静止画だけではわかりにくいので、点灯のようすを無理やり動画に収めてみました。

P7120470.mpg(2.0MB)