Fedora Coreの不具合を回避
x86-64プロセッサ向けのディストリビューションの導入例として,Fedora Coreを取り上げ,その注意点を紹介する。
まず,Fedora Core1の場合には,EM64T対応のXeonやPentium4にはインストールすること自体できない(写真2[拡大表示])。原因は,Fedora Core1がリリースされた当時にそれらのプロセッサが存在しなかったことから,インストーラがx86-64対応プロセッサであることを識別できず,「インストール不可」と判断するためである。現行のFedora Core2であれば,EM64T対応Xeonプロセッサなどに対応している。
また,直接x86-64プロセッサには関係ないが,これら64ビット拡張が施されたプロセッサを搭載するサーバー機は,比較的新しいデバイスを装備していることが多い。対応するデバイス・ドライバが存在しないがゆえに,インストール時に不具合が生じることがある。例えば,今回動作検証に利用した日本HPの「HP Workstation xw6200」(写真3[拡大表示])では,標準装備のイーサネット・デバイスがFedora Core2では認識されず,ネットワークを利用できなかった(結局,他のイーサネット・カードを装着し,yumコマンドを使ってカーネルを最新版にアップグレードすることで,標準搭載デバイスの認識に成功した)。
無事にインストールできたとしても,その後に多少の作業が必要になる。標準設定のままでは,gnome-terminalやNautilusといったアプリケーションが正常に起動しないからである。特にgnome-terminalはほぼ100%不正終了してしまう。
原因は入力メソッドにある。Fedora Coreの標準入力メソッドの「htt」がx86-64環境ではうまく動作せず,それにより接続するアプリケーションが不正終了してしまう。対策は,入力メソッドの切り替えである。切り替えには,次の通りim-switchコマンドを実行する。
$ im-switch -m kinput2
gnome-terminalなどの端末エミュレータが起動できないので,CtrlキーとAltキー,F1キーを同時押しして仮想コンソールを表示させて,そこで作業する必要がある。または,ログイン・セッションを「フェイルセーフなコンソール」に切り替えると表示されるコンソール(写真4[拡大表示])で作業するのでもよい。設定後にログインし直せば,入力メソッドの変更が反映される。設定は各ユーザーごとに実施する必要がある。
ロケール(言語設定)に起因する問題もある。例えば,米Intel社の「Intel C++ Compiler」のEM64T対応版は,バージョン8.1.018,8.1.020,8.1.022のいずれも,コンパイル時に図6[拡大表示]のエラーが出てコンパイル作業を実施できない。これは,環境変数LANGの設定が原因である。次の通り,同環境変数に「C」などの値を設定すれば問題は解消する。
$ export LANG=C
なお,Intel C++ Compilerは強力な最適化機能で知られている。Linux版については,非商用利用であれば無償で利用できることもあり人気が高い。ただし,EM64T対応版については,まだ開発されたばかりということもあり,最適化能力はそれほど高いわけではないようだ。浮動少数点演算性能を図るベンチマーク・プログラム「flops.c」をビルドし,GCCと比べた結果を図7[拡大表示]に挙げた。場合によってはGCCの方が好成績を上げている。
エミュレータでx86-64プロセッサ環境構築に挑戦
フリーのPCエミュレータ「Bochs」(http://bochs.sourceforge.net/)は,プロセッサのエミュレーション機能も持っている。最新版のバージョン2.1.1では,x86-64アーキテクチャにも対応している。そこで,Bochsを使ったx86-64環境構築に挑戦してみたのだが,結論から言うと成功しなかった。 Bochsをx86-64対応にするインストール手順は,図B-1[拡大表示]の通りである。ここでは,インストール先を/opt/bochsディレクトリにし,ある程度の高速化機能を有効にした場合の導入手順を紹介している。また,インストール後,図B-2[拡大表示]のような内容を持つ「.bochsrc」ファイルをユーザーのホーム・ディレクトリに作成する必要がある。 これで,/dev/cdromというデバイス名で示されるATAPI接続のCD-ROMドライブからシステムを起動できるようになる。ここでは「Knoppix 64」のCD-ROMを利用した。 Bochsの起動には,図B-3[拡大表示]の通りBXSHARE環境変数に値をセットしてから,bochsコマンドを実行する。実行後,メニューが表示される。そこで「5」を入力するとエミュレーションが開始され,写真B-1[拡大表示]のようなKnoppixの起動画面が表示される。 しかし,残念ながら起動処理中にリセットがかかる不具合が発生した。カーネルそのものは稼働できているようなので,ブート・オプションの調整で何とかなる可能性はある。腕に覚えのある方はぜひチャレンジしていただきたい。なお,Gentoo Linuxのx86-64版のLiveCDで試しても,やはり起動途中でエラーとなった。一方,Fedora Core2のインストールCDでは,インストーラが起動する直前まで処理が進んだ。こちらも調整次第でうまくいく可能性がある。 |