ホットロッド
2006年5月22日
今年の初めは出張が多く、執筆が完全に滞っていました。数週間前に帰宅し、多くの執筆をすることを期待していました。実際には少し書きましたが、手術で事故によるピンを抜いたり、洪水被害にあったりと、様々なことが起こって執筆から遠ざかっていました。しかし、最大の生産性低下要因は自分自身に起因するものでした。新しいコンピュータを購入したのです。
美しい計画
以前の私のセットアップは、Ubuntuを実行するデスクトップマシン、Windowsを実行する会社のDell D600、そしてPowerMacでした。D600は非常に大きいため、ほとんど持ち運ばず、Macに頼っていました。これらの機器はすべて約2歳で、新しいものを購入する私の閾値です。ThoughtworksはD600を非常に優れたDell X1(小型で2.5ポンドと軽量)に交換し、これによってMacを旅行用として置き換えることになります。(Macは好きですが、5ポンドは重すぎます。)そのため、デスクトップについてどうするかを自分で考え出す必要がありました。
私は自作のデスクトップマシンを組み立てるのが好きで、そうすることで、どのようなコンポーネントを入れるかを正確に選択し、知ることができます。問題は、どのコンポーネントの組み合わせがうまく動作するかを正確に知っていることです。たまたま私はよくArs Technicaを読んでいて、彼らは定期的にシステムガイドを公開しており、便利な構成を提供しています。そこで、彼らの2006年4月版ガイドに従って、"HotRod"を構築することにしました。
実際には、ホットロッドを正確にコピーしたわけではありません。Arsのガイドはゲーマーに焦点を当てている傾向があり、私はコンピュータゲームをしません。そのため、ビデオ出力に関して大幅にダウングレードし、予算ボックス用に選択したATI X800GTOを選びました。また、サウンドにはこだわらず、マザーボードのものを利用しました。音楽はSqueezeboxで処理します。ハードドライブはアップグレードし、推奨された10,000rpmのWD Raptorを追加しました。
新しいデスクトップを購入する際、通常は新しいモニタは購入しません。モニタの方がコンピュータよりもはるかに長持ちするからです。しかし、新しいものが必要な時期でした。「開発生産性を向上させるにはどうすればよいか」という私の好きな回答の1つは、必要だと思うよりも大きなモニタを購入するように伝えることです。画面の広さは、プログラミングでも執筆でも、生産性に大きな違いをもたらします。以前の私のセットアップである21インチのCRTは、かなり良かったのですが、今ではもっと大きなものが欲しくなりました。そこで、Samsung SyncMaster 204B 20インチLCDモニタを2台購入しました。
この新しいセットアップ、特にデュアルヘッド化は、別の問題をもたらしました。複数のオペレーティングシステムをどのように共存させるかです。以前は、古いデスクトップとD600をKVMスイッチで接続していました。それはうまく機能し、やりたいことによってUbuntuとWindowsを簡単に切り替えることができました。デュアルヘッドでのKVMスイッチングは面倒に聞こえました。しかし、ロンドンのオフィスの人々が仮想化を絶賛するのを聞いて、別の選択肢に決めました。彼らの見解では、Linuxをホストとして、Windowsを仮想的に実行する方が良いとのことでした。私はLinuxの仮想デスクトップ機能の方が好きなので、これは私に合っています。(WindowsにはPowerToysに仮想デスクトップマネージャがありますが、ほとんどのXウィンドウマネージャに付属するものほど優れていません。)
残酷な現実
これが計画でした。次に、(他に似たようなことを考えている人がいる場合に備えて)状況がどうなっているかです。
ハードウェアの組み立ては簡単でした。数時間かかりました。ライブLinux CD(Damn Small Linuxが最も近かったため)を使用して起動し、すべてが動作しているように見えました。
最初のステップは、Windowsを1つのパーティションにインストールすることでした。仮想的にWindowsを実行することを意図していましたが、このアイデアが私にとって最適な方法であるとは確信していませんでした。いつか高度なグラフィックスで何かをする必要があるかもしれません。これは完全に簡単ではありませんでした。ネットワークとビデオは、ストレートインストールでは正しく動作しませんでした。しかし、マザーボード(ネットワーク)とビデオのドライバを追加することで簡単に修正できました。
Windowsは通常ビデオで動作するため、このカードが少し余分な作業を必要としたという事実は、私を心配させました。なぜならXははるかに醜くなる可能性があるからです。Ubuntu Breezyをインストールして起動しようとすると、Xが起動しませんでした。これはUnixデスクトップにおける私の最大の悪夢です。Xの構成は、最悪のインストール体験の1つです。「暗号化されたブルー共分散適応をしたいですか?」(または私にとって同様に意味のあるもの)と尋ねられ、答えを推測して、私の不器用な操作が新しく高価なモニタを壊さないことを願う必要があります。
ここで唯一の解決策はGoogle検索であり、最終的にこのUbuntu Wikiページを見つけて、いくつかの追加パッケージをインストールするように指示されました。Ubuntuでのパッケージインストールは簡単です。
sudo apt-get install xorg-driver-fglrx sudo dpkg-reconfigure xserver-xorg
ウェブページが指示したようにfglrxを選択することを除いて、すべてにおいて推奨されるデフォルトを選択し、指を交差させました。Xはまだ起動しませんでしたが、ウェブページにはエラー(重複シンボルrol_long')とその修正方法が記載されていました。指示に従うと、Xが起動しました。(しかし、まだ完全に正しいわけではありませんでした。fglrxinfoを実行すると、アクセラレーテッド3Dを取得するための適切なドライバを使用していないことがわかりましたが、私は主に2Dの世界にいるので問題ありませんでした。)
または、より正確には、半分起動しました。私はこれらすべてを1台のモニタだけで行いました。一度に1つのステップずつ行うのが好きだからです。ここでも、何をすべきかを知るためにGoogle検索が必要でした。Windows(ましてや10年以上前にデュアルヘッドを実行していたMac)のような便利なコントロールパネルはありませんでした。
最初に決定することは、どのような種類のデュアルヘッドを使用するかです。Xは長い間複数のモニタを実行できますが、Windows/Macがそれを行う方法と同じではありません。古典的なXの方法は、各モニタで個別のXセッションを持つことです。この問題点は、完全に別々であり、ウィンドウを1つのモニタから別のモニタにドラッグできないことです。また、両方で動作するプログラムは、別々のインスタンスを実行する必要があります(つまり、異なるFirefoxプロファイルなど)。しかし、このアプローチの利点は、各々に個別の仮想デスクトップが得られることです。全体として、私は(今のところは)古典的なXで満足していました。代替案としてXineramaを使用することもできますが、それは別の機会に検討します。
fglrx-controlを使用してデュアルモニタを設定しようとしました。うまくいきませんでした。デュアルヘッドに設定できましたが、毎回忘れられてしまいました。最終的にfglrxconfigがトリックをやってのけました。
次のステップは、VMwareを試すことでした。ウェブサイトからVMware Serverをダウンロードしました(現在無料のベータ版です。気に入ったらリリース時に支払います)。起動するのは簡単ではありませんでした。このような時、本当にaptが恋しくなります。インストーラースクリプトを実行すると、依存関係に問題が発生しました。次のものが必要でした。
sudo apt-get install make sudo apt-get install gcc-3.4 sudo apt-get install linux-headers-amd64-generic
それを実行すると、VMwareは正常にインストールされました。Windows、Visual Studio、Visio、その他いくつかのものをインストールしました。すべてが正常に動作しているようです。
しかし、ホストではすべてがうまくいっていませんでした。数時間快適に作業した後、突然プライマリモニタ(XではScreen 0)の画面が黒くなりました。モニタは完全に信号を失いました。最終的に、ctrl-alt-f5を入力して仮想コンソールを取得すると(両方の画面に表示されます)、ctrl-alt-f7を入力してXに戻ることで、元に戻せることに気付きました。迷惑です。しかし、ctrl-alt-f5を入力して両方のモニタが信号を失ったときは本当にひどかったです。これにより、私は立ち往生してしまいました。別のマシンからログインしてXを再起動しても戻ってきませんでした。再起動する必要がありました。
しばらく我慢しましたが、あまりにも迷惑になりました。そこで、Dapper Drakeにアップグレードする必要があると思いました。DapperはUbuntuの次期バージョンで、まだベータ版ですが、かなり安定していると言われています。これが役に立つかもしれません。少なくとも、Javaをインストールするためにaptを使用できるようになります。
インストールは非常にスムーズに進みました。
gksudo "update-manager -d"
すぐにアップグレードによって正しいATIドライバが提供されたことに気付きました。(ビデオドライバが問題の一部だったのではないかと疑問に思っていました。)また、見苦しいオレンジ色のアイコンとアップグレードされたFirefoxも入手しました。悪いニュースは、遭遇した他のいくつかの問題です。
本当にひどいのは、xemacsが動作しなくなったことです。私はそれをたくさん使っているので、これは大きな問題です。問題は色の検索に関するものであり、このディスカッションスレッドで詳細と解決方法を確認してください。
もう1つの問題は、まだ解決していません。マシンがシャットダウンしません。シャットダウンしようとすると(どの方法でも)、画面が黒くなり、シャットダウン音が途中で止まり、すべてがハングします。メイン電源でオフにする必要があります。
良いニュースは、Dapperのインストール以降、黒画面になったことがないということです。
すべてがそれだけの価値があるのか?
emacsの失敗とマシンのクリーンな再起動ができないことに対処している途中で、結局Macを購入すべきではなかったかと考え始めました。WindowsやLinuxマシンよりもMacでファffingする時間ははるかに少ないことがわかりました。私がこれに取り組んでいたちょうどその時、ParallelsがMac用の仮想化環境をリリースしました。しかし、今は手に入れたので、これを機能させたいと思います。振り返ってみると、BreezyをすぐにDapperにインストールしなかったことと、amd 64アーキテクチャ(i386ではなく)を実行したことが2つの間違いだったと思います。Dapperには欠点がありますが、それをインストールすればビデオドライバがより適切に解決されたように思われ、Xの動作に時間を費やすことが少なくなります。また、i386コードと比較してamd64コードでは、動作しないものがあるかもしれません。(1つの問題は、Flash VMを起動できないことです。Linux on amd64用のものはまだありません。)
もちろん、それらが本当に間違いだったかどうかは分かりません。他の問題に同じくらいの時間を費やしていた可能性もあるからです。確実にクリーンな再起動ができないことは、私にとって非常に大きな苦痛の原因となっていましたし、今もなっています。
ホストOSをWindowsに切り替えるべきでしょうか?魅力的な考えです—そして、emacsを修正できなかったら、そうしていたかもしれません。Ubuntuでは簡単にソフトウェアをインストールできるのが気に入っていますし、仮想デスクトップの管理も非常に便利です。過去にはWindowsで何度も苦労した経験があります。総合的に判断すると難しい選択ですが、様子を見てみます。VMWareイメージの中にWindowsがあるのは気に入っています。別のLinuxインストールに切り替える必要があっても、インストール済みの全てを備えたVMWareイメージを新しいマシンに持ち込むことができます。Windowsでのソフトウェアのインストールは確実に多くの時間を奪われます—無料のダウンロードであっても、個別にアクセスしてダウンロードする必要があります。とは言っても、Visual Studioをそれほど長時間使用したわけではありません—それが仮想化の真の試金石となるでしょう。
更新 (6月16日)
Breezyからアップグレードするよりも、クリーンなDapperインストールを行う方が良いと提案してくれた人が何人かいました。今週は中国から帰国しました。私が不在の間にDapperがリリースされました。システムの更新後もクリーンシャットダウンを行うことができなかったので、最終的なDapper CDをダウンロードして、動作を確認してみました。結果はあまり encouragingではありませんでした。AMD 64とi386の両方のCDで、デフォルトの起動時にXが起動しませんでした。AMD 64でセーフグラフィックモードを試したところ、gnomeが起動した音が聞こえましたが、画面は真っ白でした。i386 CDのセーフグラフィックモードでは、(一つの画面で)動作するシステムを得ることができました。Ubuntuフォーラムでは、ATIグラフィックカードの動作に関する問題について多くの議論がされています。
そのため、現在の私の考えでは、私の設定はUbuntuにとってそれほど優れていませんが、動作はしています。Dapperのアップデート以降、作業中に画面が真っ白になる問題は発生していません。そのため、唯一の問題はクリーンシャットダウンができないことです。今のところ、それで我慢できます—これ以上あれこれいじくり回すのに時間を費やす気はありません。しかし、私の設定を他の人にお勧めすることはありません。