QEMU+Qemu Launcher

せっかく仮想化支援機能であるVT-xが使えるCore-i3を導入したので、使ってみたくなりました。

というわけで、Ubuntuで動く仮想マシンの「qemu」「qemu-kvm」とそのGUIインタフェースである「Qemu Launcher」をSynapticからインストールしました。

で、使い方ですが、

  1.  qemu-launcherをコマンドラインから起動(メニューからでも起動できるようです)
  2. 「Disks and memory」で
    1)CD-ROMにmountコマンドで調べたマウントポイントを記入します
    2)Hard disk 0 に「New」で「empty QCOW2 image」を作ります
    3)「Use  CD-ROM」にチェックを入れます
    4)「Boot disk」を「CD-ROM」にします
  3. 他のタブを設定します。
    1)キーマップはデフォルトから変更してはいけません
    2)サウンドはお好みでイネーブルにします
  4. 「Lanuch」を押します

で無事に動きました。(2回目以降はDiskImageを作らなくてもよいはず・・)

今回は試しにWindows2000をインストールしてみましたが、ドライバも特に必要なく、QEMU自体には特に大きな問題もなくインストールできました。

ただ、Windows2000自体が古いのでInternetExplorer 5.0 しか入っておらず、MicrosoftのWebサイトも正常に表示できないので6.0へのアップデートやFirefoxのインストールには少々難儀しました。また、アンチウイルスソフトとしてAvira AntiVir Personal をインストールしたのですが、WindowsUpdateとの関係でなかなかうまくいきませんでした。(結局、WindowsUpdateをインストールし直し(?)でうまいくいきましたが・・・・)

また、WikipediaではUSBが使えそうなことを書いてありますが、とりあえずQemu LauncherのUIの範囲ではそれらしいものは見つかりませんでした。
ワンチップマイコンの開発ツールでどうしてもWindowsを要求するものもあるので、そういうケースで使えればと思ったのですが、ちょっと残念・・・。

 

Atomマシン復活

Mini-ITX版のZ68マザーボードでCore-i3な雑用マシンを組んだおかげで、Atom230なマザーボード(GA-GC230)が余ってしまいました。ケースがない(ケースの電源が逝ってしまっている)ので捨てようかと思っていたのですが、逝ってしまったと思われた電源は12VのACアダプタ入力でATX電源出力の変換基板なので、ケース内で丸見えです。直接AC100Vを扱う部分だと考えもしないことですが、低圧電源なので電解コンデンサを交換すれば直るのではないかと考えました。

で、基板を取り出してじっくり見てみたのですが、特に膨らんだりして劣化している様子もありません。しかたがないので電解コンデンサ全交換を覚悟して電解コンデンサの仕様を一通りメモした上で、一旦元に戻してみました。ただ、外した際に12Vの入り口のコネクタの接触面が黒くなっているのが気になったので、何度か差し直して接触性を改善してやった上で、余っているHDDを取り付けてUbuntu10.04LTSのインストーラをUSB-CDROM経由で起動すると・・・・特に問題なくインストーラも動いてインストールできてしまいました。(ただし、HDDは壊れていて、カッコンカッコン言ってインストールできませんでしたので、再度別のHDDに交換しました)
以前はちょっと負荷が重くなるとすぐにリセットがかかっていたのでUSB機器はセルフパワーのHUBを経由していたのですが、今回は直接外付けのUSB-CDROMとUSB-HDDを接続してもまったく平然と動いています。

スペックは以下の通り(笑)

  • マザーボード GIGABYTE GA-GC230(CPUオンボード)
  • メモリ DDR2-800 1GB
  • HDD 2.5inch IDE 12GB 4200rpm
  • 光学ドライブ なし
  • OS Ubuntu 10.04LTS (32bit)

ひたすら余り物の寄せ集めですが、こいつをしばらくは自宅のLinux実験サーバにしてみたいと思います。

Z68マシンへのXPインストール(3)

というわけで、500GBのHDDの速度を3Gbpsに制限した状態でWindowsXPのインストール(AHCIドライバを組み込んだCD-ROMを使用)してみたところ、まったく問題なくインストールすることができました。

Asrockの添付CD-ROMのドライバの組み込みもすんなりいってあっという間でした。一体、この2日間の苦労は何だったんだろう、という感じです。

最終的には、HDDを差し替えた時のことを考えて、マザーボードのSATA-3のポートではなくSATA-2のポートにHDDを接続することにしました。なんかちょっともったいない感じはしますけど。

三陸沖北部の地震

今日の明け方から立て続けに比較的大きな地震が起きています。

下記の資料はすべて防災科学技術研究所の高感度地震観測網の震源情報からの引用です。

まず、発生した地震のうちの主なものは以下の通りで、時刻、場所、震源深さ、マグニチュードです。

2011-09-17 16:34:03	岩手県北東沖	        40.2N	142.8E	44km	5.6
2011-09-17 10:19:00	岩手県北東沖	        40.2N	142.9E	17km	4.3
2011-09-17 07:40:54	三陸東方はるか沖	40.2N	143.1E	23km	5.6
2011-09-17 06:36:45	三陸東方はるか沖	40.0N	143.2E	23km	5.7
2011-09-17 06:08:16	岩手県北東沖	        40.2N	142.8E	11km	5.9
2011-09-17 05:11:24	三陸東方はるか沖	40.2N	143.2E	21km	5.5

次にここ24時間の震源マップです。

薄いピンクで囲った部分に比較的大きな地震が立て続けに起きていることがわかります。しかも直線上に並んでいるようにも見えます。

次の資料は、直近7日間の震源マップです。

今回の一連の地震が起きている直線を境に南側は日本海溝に沿って東日本大震災の余震が起きていますが、北側の日本海溝沿い(ピンクの領域)はあまり地震のない領域に見えます。ここ最近、北海道の日高地方でも地震が頻発していますが、これもピンクの領域の辺縁にあたるので、ちょっと気になります。

Z68マシンへUbuntuインストール

Z68マシンにUbuntuをインストールしてみました。11.04の新しいインタフェースは好きになれないので、いまだに10.04LTSです。ただし、せっかくなので64bit版を入れてみます。インストール自体は32bit版と何も変わるところはありません。500GB全部をUbuntuに割り当てました。

さくっとインストールを終わって、再起動すると・・・・起動しません。これは明らかにおかしいので、よく考えてみると、今回購入した500GBのHDDではインストールの際にはHDDは認識するものの、起動はできないということになります。HDDに絡む比較的新しいスペックというと、SATA3の6Gbps転送が浮かび上がりました。実際、HDDにも3Gbpsに制限するためのジャンパがありましたので、ここをセットして再度起動してみたところ・・・無事に起動しました。

実際のところ、6Gbpsが原因なのか、使用しているハードディスクリーダライタが3Gbpsまでしか対応していないことが原因なのかはわかりませんが、一瞬あせりました。

実はWindowsXPの方もこれが原因なのかもしれませんので、試してみたいと思います。

Z68マシンへのXPインストール(2)

引き続きZ68雑用マシンへのWindowsXPのインストールです。

WindowsXPのインストーラはHDDを認識するようになったのですが、ファイルのコピー後にリブートした後、通常ならHDDから起動するところでHDDから起動せずに再度CD-ROMから起動してしまいます。こりゃ、お手上げかな、と思って現実逃避していたのですが、ふとAsrockのWebサイトをみてみると、BIOS(UEFI)のアップデートが出ていました。最新版は1.20で、今入っているのは1.10です。なので、アップデートを試してみることにしました。

  1. 4GBのUSBメモリを用意して、FAT32でフォーマットします。
  2. AsrockのWebサイトから最新のBIOS(Instant Flash用)をダウンロードしてきます。
  3. ダウンロードしたファイルをZIP展開してUSBメモリに入れる
  4. USBメモリを挿して電源を入れてBIOS設定画面を出す
  5. 「Advanced」→「Instant Flash」を選択
  6. なんか文字化けしますが、「OK」を押すと「1.20」という表示が入った行が出ますので、押すとアップデートが始まる
  7. アップデート終了後に、再起動してバージョンアップしていることを確認

です。

しかし、結果は変わらず・・・。もう、諦めます(笑)。
<9/18追記>解決できました原因はハードディスクリーダライタがSATA3に対応していないことでした。

なぜなら、調べてみるとWindowsXPでUEFIをサポートしているのは64bit版のみ。つまり32bit版ではブートの部分が対応してないっぽい気がします。

雑用はWindows7でも入れてやらせるようにするしかないかな・・・。ただ、NASのSambaとの相性とかで引っかかったりしないか不安だったりします。

Z68マシンへのXPインストール(1)

雑用マシンにWindowsXPをインストールします。インストールにはServicePack3まで統合したCD-ROMを使ったので、すぐ終わると思っていたのですが、これが実は落とし穴でした・・・。Z68マザーにWindowsXPをインストールするのは結構骨が折れるかもしれません。

まず、インストーラがHDDを認識しません。ディスクコントローラがSATAのコントローラを認識してくれません。これはインテルのWebサイトから「ラピッド・ストレージ・テクノロジー F6 ドライバー・ディスク」のx86版を持ってきて、FDDに展開して追加ドライバとして読ませればいいはず・・・でした。

実際にもってきて、FloppyDiskに展開したドライバを書き込んで、USB-FDDドライブに挿入した状態でインストールCDを起動すると、追加ディスクの読み込み確認のところでとまるので、そこで「S」を押してFloppyを読ませると、AHCIドライバとRAIDドライバがあることが表示されます。そこでAHCIドライバを選択したのですが、結局ディスク(HDD)がないと言われて終わってしまいます。

半ば途方にくれていたところで、よく画面を見ると、ドライバの種類は選択できる(つまり、途中まではFDを読めている)にも関わらず、「FloppyDiskからドライバを読み込むためのFloppy Driveがない」という表示をしています。つまりUSB-FDDでは途中からFDが見えなくなってしまうようです。しかたがないので、nLite(画面のど真ん中に広告イメージ&リンクがあるので注意)でドライバをインストールCDに統合してトライしてみたところ、無事にその先に進むことができました。

・・・が、また途中で固まってしまいました。よく考えると、WindowsXP自身もAHCIなんて知らないはずですので、ドライバを突っ込んでやらないといけない気がします。今日は遅くなってしまったので、続きは明日考えます。

雑用マシンアップグレード

先にWindows雑用マシンが崩壊してしまい、やむを得ずAtom230なマザーボードにWindowsXPを入れたことは書きましたが、やはりAtom230にWindowsは荷が重すぎて、環境復旧が進んでいませんでした。かといって、そのままではどうにもならなかったのですが、この度ようやくアップグレードしました。

元のマシン

  • MotherBoard – GC230D
  • CPU – Atom230(On Board)
  • Memory – PC2-5300(DDR2-667)1GB×1枚
  • HDD – 320GB SATA
  • Case – MiniITX

更新後のマシン

  • MotherBoard – Asrock Z68M-ITX/HT
  • CPU – Core i3 2100
  • Memory – ADATA PC3-12800(DDR3-1600) 4GB×2枚
  • HDD – WesternDigital 500GB SATA
  • Case – 流用

となりました。HDDは5インチベイに容易に抜き差しできるようにハードディスクリーダライタ経由で取り付けてあります。用途に応じてHDDを差し替えて使うためですが、このハードディスクリーダライタはインナートレーが不要なことと、ファンがついているので熱的な心配をしなくてもいいことが優れモノです。

それ以外はお店で適当にMiniITXの条件で安そうな組み合わせを選んだだけです。ChipSetはZ68ですが、そもそもメインがLinuxなのでSRT(Smart Response Technology)というSSDをキャッシュにする機能も興味なし(そもそもLinuxで使えるのだろうか??)ですし、QSV(Quick Sync Video)もよくわからないけど興味なし。メモリはPC3-12800の4GB×2枚セットで 3980円でしたので8GBにしました。PC3-10600なら3000円弱だったのですが、メモリの速度はCPUの周波数以上に効くのでちょっとだけ贅沢してみました。もっとも、8GBあってもWindowsXPの32bit版にはもったいないですが、ハードディスクリーダライタですぐにHDDを交換して64bit版のLinuxなども試せます。OSについてはWindows7 Professional 64bit版を入れることも一瞬考えたのですが、最近Windowsを使うこともめっきり減ってしまったのでやめました。

組み立てた後、試しに元々ついていた320GB SATAのHDDを取り付けてSATAのモードをIDE互換にBIOSで設定してみたら、あっさり中に入っていたUbuntu10.04が動きました。この投稿も更新後のマシンのUbuntuから書いていますがパフォーマンス的には非常に快適です。これからWindowsXPをインストールしなおして、環境再構築です。

UBWを試す(続編)

とりあえず動くようになったが、いまいち使いにくいので試行錯誤してみます。

fsusbについて

fsusbは千秋ゼミに改良版があるようです。UBW開発ツールアーカイブの中にある「UBW用tool」の fsusb-20090218.zip を取ってきて展開、srcフォルダで make、sudo make install でインストールできました。インストールは容易なのですが、やはり root権限がないと動作しません。

sdccUSB-cdcを書き込んでみる

こちらのページにある仮想COMポートのスケルトンを取ってきて、展開、hexフォルダにあるhexファイルを書き込んで動かしてみます。ブートモードに変更してから

$ sudo fsusb cdcusb.hex

で書き込んだ後、リセットをかけて、

$ screen /dev/ttyACM0

で仮想COMポートに接続してみると無事にエコーバックが帰ってきました。「Ctrl-A \」で切断して終了です。

sdccUSB-cdcをコンパイルして書き込んでみる

Synapticからsdccをインストールした後、srcディレクトリで make をかけるとパスのエラーが出ました。途中の「MY_BASE=C:/SDCC」を「MY_BASE=/usr」に修正すると make に成功しました。

その後、

$ sudo fsusb cdcusb.hex

で書き込んだ後、

$ screen /dev/ttyACM0

でエコーバックを確認できました。さらに、小文字大文字変換をするように変更して再度 make して書き込んで接続すると変更が反映されていることが確認できました。

まとめ

これでとりあえずUBW + sdccで仮想シリアルポート付きの何かを作る環境が整いました。

ただ、sdccUSB-cdcを改造しようとしてすぐに気づいたのですが、これはMicrochip社のUSBフレームワークをベースにしているようです。このフレームワークはずいぶん前にMPLAB上で弄ったことがあるのですが、割り込みではなくポーリングで動作しています。そのため、処理に時間がかかるとUSBプロトコル上で問題がありそうで、いまいち使いにくかったように思います。とはいえ、Linux上で開発できるのはありがたい話です。

UBWを試す

これまでAVR中心に扱ってきましたが、AVRにおけるArduinoと似たような存在として、PICの方でもUBW(USB Bit Whacker)というものがあることを知りました。こちらはマイコンにUSBコントローラを内蔵しているPIC18F2550を使用可能で、しかも、秋月で売っている18F2550マイコンボードをほぼそのまま使えるようです。しかも、ホストとの通信にはデバイス内臓のUSBコントローラを使うということで、極小サイズでデバッグができるようです。

というわけで、試してみることにしました。

ハードウェアの準備

ハードウェアは千秋ゼミのサイトを参考に、AE-18F2550を使ってブレッドボード上に構成しました。

ブートローダの書き込み

UBWでは、ブートローダのことをFirmware Bと呼ぶようです。このFirmware Bは、こちらのページの「UBW driver」というリンクの先にあるB.zipファイルに入っています。これを展開すると、FW_B_20MHz.hexというファイルが「output_20MHz」フォルダの下にあるので、これをWindows上の「PICkit 2 Programmer」で書き込みます。

書き込み完了後、UbuntuマシンにAE-18F2550を接続しても・・・・なにも起きません。動いてないと困るので、ポートRC2をGNDに落としながらMCLRをリリースすると、LEDが交互点滅し、どうやらブートローダが動いていることがわかりました。

ダウンロード用プログラムのコンパイル

次にダウンロード(ブートローダにアプリケーションを流し込んで書き込む)用のプログラムをコンパイルします。

こちらのサイトを参考に fsusb-0.1.11-2.tar.gz をダウンロード、コンパイルします。一次配布サイトなのかどうかよくわからなかったのですが、make一発でコンパイルします。

ファームウェアの書き込み

次に、Firmware D と呼ばれるアプリケーションをダウンロードします。こちらのページの途中に「・・・・ UBW Firmware D released」というリンクがありますので、それをクリックすると、Firmware D の圧縮ファイルが入手できます。これを展開したら、ポートRC2をGNDに落としながらMCLRをリリースして、LEDを交互点滅させます。この状態でブートローダが待機しているようですので、

$ sudo ./fsusb FW_D_2553.hex

として書き込んで、再度MCLRでリセットをかけると、異なるパターンのLED点滅が始まりました。

追伸

fsusb をルート権限で動かすのは面倒くさいので、こちらの記事で追加した /etc/udev/rules.d/60-local.rules に

# PICkit2 programmer
ATTRS{idVendor}=="0d48",ATTRS{idProduct}=="0033",GROUP="usbuser",MODE="0660"
# UBW bootloader
ATTRS{idVendor}=="0d48",ATTRS{idProduct}=="000b",GROUP="usbuser",MODE="0660"

を追加してみました。再起動しないと効果がわからないので、うまくいくかわかりませんが・・・。

追伸の追伸

やっぱりダメでした・・・。何でroot権限要求するのかソース読んでみないと・・・。