2014年1月13日月曜日

Libretto 50 (とopencocon + RDP)で Windows8 を動かす

先日、店員Mさんの、Libretto 50 で Windows98 が動いているツイートを見て、そういえばウチには最強の Libretto 50 あるなぁ、というのを思い出し、こんな投稿をしてみました。


この写真は半年以上前のOSC大阪クラウドのもので、写真はおかのさんが撮ったのを使わせてもらいました。再放送で面白くもないやろと思ったのですが、どうも知ってたのはオープンソース界隈だけだったようで、先の投稿はそれ以外の皆さんに広がり、瞬く間にスマッシュヒットしてしまいました。

いやはや、知名度ないにも程がありましたね。

本当に Libretto 50 で Windows8 が動くんかいな、という話もいくつか頂いていますので、ここではカラクリの答えと、実際に動かす方法をお伝えしようかと思います。

あの写真は何だったのか

まず、僕は Windows の内部はそれほど詳しくないので、Libretto 50 マシン自体で Windows8 を走らせた訳ではありません。おそらく試されてる方は他に居そうな気がしますが、どちらにしろ非常に厳しいものと思います。

では、それはハリボテかというとそういう訳でもなく、ちゃんと動きます。

というのも、実は Libretto 50 上で、opencocon(おーぷんここん) という名前の Linux ディストリビューションが動いており、別の Windows8 マシンをリモートデスクトップ(RDP)プロトコルにて接続しているのです。

実際の動作はどうなってるかは、次のムービーをご覧ください。
非常に遅い上、タイルアプリは動きませんが、なんとかなっていることが判るかと思います。

 
(こんな感じに動きます。なお、SSH のポートフォワーディングを張ってる関係で、接続先ホスト名は localhost になっています。)

opencocon ってなんだ

ということで、この opencocon という名の、謎の Linux ディストリビューションは何かといいますと、旧型コンピュータをリモートデスクトップ(RDP)やVNC等のクライアント専用として、簡単に使えるようにしよう、という一点のみを目標としています。ですので、デスクトップ環境やカスタマイズ性がほとんど無い代わりに、RDPやVNC等の環境中にスムーズに入ることができるのです。


本来はライブCD形態にて配布しており、メモリ64MB以上を積んだ多くのPC/ATマシン(あと最近はRaspberry Pi)でお使いいただけます。それより古いマシンは動作対象外...とは表では言っているのですが、実際は Extreme Edition (勇者版)ということで tarball を提供しており、知識のある方は初代 Pentium 系のマシンに全手動インストールができるようにしています。

最近の Linux では、初期の Pentium 対応が壊れはじめており、なかなか苦戦していますが、そんな中でも opencocon では Libretto への執念を常に燃やしており、特に Libretto 50/60 はパイロットマシンとして、現在も頻繁に動作チェックを行っています。

ちなみによく聞かれますが、opencocon は私が製作しています。


Libretto 50 で opencocon を動かす

では、Libretto で Windows8 を動かすべく、opencocon を入れてみます。今回、簡単に導入できるように、取り急ぎ試作ディスクイメージを作ってみました(なお、改定のため置き換える可能性があります)。面白そうやなという勇者の皆様に、以下の方法を用意しました。
なお、RasPi の OS を入れ替える程度の Linux 知識が必要になります。また、無保証ですので、そこはご了承ください。

まず以下の環境を用意しましょう。
  • Libretto 50 / 60 (それ以外の機種ではテストできていません)
      メモリ 32MB  (16MBでも動かなくはありませんが、数段遅くなります。)
      ハードディスク 800MB以上、7GB以下 (スワップを多く使うため、CFカードは避けたほうがよいでしょう)
      ※ 旧型コンピュータは壊れていることがあります。異音、異臭等がありましたら直ちに使用を中止してください。
  • PCMCIA LANカード  (ここでは  ELECOM Laneed LD-CDL/T を使います。多くのPCMCIA LANカードが動くと思いますが、一部動かないものがありますのでご注意ください)
  • ネジ回し
  • USB-IDE変換ケーブル (ディスクイメージを流し込むのに使用します)
  • 接続先のWindows8マシン(8.1でも7でも構いませんが、Proである必要があり、またリモートデスクトップを有効にする必要があります。詳しくは、(少し古いですが)こちらの記事が参考になります。)

まずはネジ回しを使いハードディスクを取り出し、USB-IDE変換ケーブルに装着し、USBを搭載した別の Linux マシンに接続します。

(USB-IDE変換ケーブルを使ってインストールします。)

ハードディスクが見えたら、いったん認識されたパーティションをアンマウント(umount)して、 dd コマンドで現在のLibretto環境をバックアップしましょう。opencocon は他のディストリのようなデュアルブートは考慮していません。貴重な Windows は安全に保管しましょう。ここでは Libretto のハードディスクを /dev/sdb とします。

※ デバイス名をよく確認して、関係ないところに書きこまないよう気をつけてください。以下の操作はもちろん無保証です。

# dd if=/dec/sdb of=libretto-50.img

次に、opencocon v8a の Libretto 用イメージ(試作)をダウンロードします。

opencocon-v8a-libretto50-tmp-image.hdd.gz
(200MB  MD5:  22ffe7aa9e0db0c07338a91dbc9d12b6 )

ダウンロードしたイメージを解凍し、dd コマンドでハードディスクに書き込みましょう。

# gzip -d opencocon-v8a-libretto50-tmp-image.hdd.gz
# dd if=opencocon-v8a-libretto50-tmp-image.hdd of=/dev/sdb


これで準備は完了です。Librettoにハードディスクを戻し、元通りにネジを止めます。

あとはPCMCIA LANカードを取り付け、Libretto を起動しましょう。ブートメニューが表示されたら、[Enter] を入力します。しばらくするとメニューが表示されますので、後は 「Connect RDP」 を選択し、コンソールの指示にしたがい、ホスト名・ユーザ名などの情報を入力してください。これだけで接続が開始されます。

なお、DHCPがうまく取得できてないのを直したい等、コンソールに用事のある場合、メニュー画面(コレ自体がコンソール上で動いています)を右クリックし、[New Tab]を選択してください。


(opencocon のメニュー画面です。ほかにも X, VNC, SPICE にも対応しています。)

いかがでしょうか。opencocon の簡単さと、旧型コンピュータへの適応性を体験していただけるかと思います。

なんの意義があるのか

ところで、こんな環境作ってどうするんだ?という話が聞こえてくるかと思いますが、その答えは「客寄せパンダになるから」というのが最も明快でしょう。

最近の旧型コンピュータは性能が高く、そこで opencocon を使いRDP接続の実演をしていても、「無理してWindows8入れたんやな」と思われてしまうので、インパクトがまったくありません。なので、ある意味極端なマシンの動作実績が必要なのです。

その中でも、初期の Libretto は高い知名度を誇っていますし、現在でも熱心な愛好者が居ます。こういうステータスにあるマシンは息が長いのも見逃せません。



ということで、今年も各地のオープンソースカンファレンス(OSC)関西オープンフォーラム(KOF)で、opencocon と共に Windows8 の使える Libretto を実演していこうと思っていますので、よろしければお越しいただき、実際に触っていただければと思います。

さいごに

こういった旧型マシンを活用させるのは容易ではなく、相性や経年劣化、マシンの機嫌との闘いになるケースが多いです。この方法がうまくいくかは機嫌次第ってのもあるかと思いますが、参考になればと思います。

(ちなみに、ご不要なLibretto等の謎マシンがありましたら、お譲りいただければありがたいです。opencocon の開発に活用させて頂きます。)

写真を撮ってくれたおかのさん、Windows8 on Libretto 50に興味を持ってくれた皆様に感謝するとともに、思い出のマシンを思い出にさせない、その熱気を感じていただければ幸いです。ありがとうございました。