エンタープライズ:特集 | 2002/11/28 18:24:00 更新 |
Linuxでハイパー・スレッディング――Pentium4/3.06GHzで遊ぼう
第1回 Linux上でなかなか動かないHT (5/6)
インストーラがSMPを未認識
さてインストールが終わって立ち上げてみる。topコマンドを実行すると…CPUが1個しかいない(画面1)。/proc/cpuinfoの内容も1CPUのみ(画面2)で、要するにHTが動いていないようだ。RedHat8のインストールマニュアルのこのあたりを見ると、デュアル構成のXeon(Prestonia)であれば問題なく4プロセッサとして自動認識されるようで、逆にいえば単にHTを搭載というだけではマルチプロセッサの認識が行われないようだ。実際、インストールされているカーネルパッケージを見ると、シングルプロセッサ用となっており(画面3)、このままでは絶対に認識されない。
画面1■topコマンドは、マルチCPUの場合「CPU states」の欄がCPUの数だけ表示される。従ってここでは1CPUしか認識されていないことになる
画面2■flagsの項目を見ると「ht」の文字があるので、CPUIDをちゃんとチェックしていることは分かるが、プロセッサは1つしか見つからない
画面3■パッケージリスト一覧から「kernel」で始まるものを表示させてみる。必要なのは「kernel-smp-2.4.18-14」である
こうした場合、普通ならカーネルの再構築をかけて解決…となるのだが、RedHat8の場合はこの手順が結構面倒くさい。一応レッドハットのWebサイトにそのための手順は示されているが、むしろ別のカーネルモジュールパッケージをインストールすることが薦められている。
インストールの手順は
- CD-ROMの1枚目の「/RedHat/RPMS/kernel-smp-2.4.18-14.i686.rpm」をHDDにコピーしておく
- rpmコマンドでインストールする(画面4)
- /etc/lilo.confを書き換え、再登録する(画面5〜8)
で終わりだ。ちなみにGRUBを使っていれば、3の手順は不要である(2の中で自動的にGRUBのエントリも追加される)。
画面4■この例では、CD-ROMからrootにいったんコピーして実施しているが、まあ直接「rpm -ivh /mnt/cdrom/RedHat/RPMS/kernel-smp-2.4.18-14.i686.rpm」なんてやっても多分できるはずだ(筆者は、なんとなく癖で一度コピーすることにしている)。ちなみにfatal errorは、GRUBのエントリがないというものだが、これはそもそもLILOを使っているためで、GRUBを使っていればこんなメッセージは出てこない
画面5■これが変更前のLILO
画面6■こちらが変更後のLILO
画面7■/bootを見ると、vmlinuzやconfig、initrdなどにsmp対応のものが入っているのが分かる
画面8■LILOの再登録はこれだけで完了
[大原雄介,ITmedia]