Sharp Mebius (PC-MM1-H3E)にRedHat9を入れてみる

事の発端

事の発端は、いままで愛用していた、Mebius PC-PJ1-M3の電源コネクタの接触が悪くなり、Laptop運用が困難になったことにある。 私は週に1、2回高速バスで2時間ほど移動するので、この事態は極めて重大だ。(おいおい)ということで、これを期に新しいNote PCを買うことにした。

ちなみに今まで使っていたMebius PC-PJ1-M3は、かれこれ5年以上使っていた。一度だけ基盤交換という大修理とバッテリの交換を行なったが、それ以外は実用上支障無しだった。

Sharp Mebius PC-MM1-H3E

今回購入したSharp Mebius PC-MM1-H3Eは、Transmeta Crusoe TM5800 1GHzを登載したB5ノートでメモリは256MByte固定である。グラフィックもXGAが出るのもうれしい。 詳しい仕様はここ。 店の人に、「MS-Officeとクレイドルは付いていないがいいか」と聞かれたが、どうせWindowsはすぐ消してしまうのだ、いらないと答える。それにしてもクレイドルは何に使うんだ?

Install RedHat9

さて私が所属している研究室には、おなじシリーズのNote PCがある。それも純正CD-ROMドライブ付きで。私が買ったモデルはもちろんCD-ROMドライブなど別売りであるので、研究室のCD-ROMドライブを借りることにした。
しかしここでミスしてしまった。私はDebian派なのだが、DebianのCD-ROMを自宅に忘れてきてしまったのだ。ということで泣く泣く後輩のH氏の机にあったRedHat9を借りることにした。(借り物ばっかりだな)

以下に今までに遭遇した問題と、解決できた問題の解決策を列挙する。

問題:Install中に原因不明のハング

Install作業は、Xも無事に立ち上がり、順調に進んだかのように見えた。しかしパッケージの展開のところで3回Installerがハングアップした。CD-ROMドライブのアクセスランプが点滅したまま画面に変化がないのだ。コンソールに落ちてテンポラリディレクトリを見つけ、パッケージのファイルサイズを監視したが変化はない。おそらくハードウェアの問題だろう。3回ともハングした場所は違っていた。諦めかけた頃インストールが成功した。おそらくこれはまぐれだろう。ネットワークでのインストールを試してみる価値があるかもしれない。

ひとまずlspci -vdmesgを。

問題:内蔵LANカードが存在しない

このLANカードが存在しないという問題の解法は、実は知っていた。以前使っていたPC-PJ1-M3も同じ症状を見せたからだ。この解法は、BIOSメニューのPnP OSをDisableにすることである。

問題:gnomeのバッテリ監視アプレットの表示がおかしい

バッテリ運用中でありながら、battstat-appletはAC電源運用中と宣う。バッテリ残料は0だし。どうもAPMが動いていないようなので、kernelをコンパイルしなおして、APMではなくて、ACPIを使うようにしたら問題無く動作した。kernel documentationのpm.txtにAPMとACPIを同時に有効にできないとあるので、APM Supportを'N'にして、ACPI Supportを'Y'にする。

ここで余談だが、kernelコンパイル時のテクニックを。はっきり言って、どのKernelオプションを撰べばいいか、よくわからないという人が多いのではないか。そこで、ディストリビュータが提供しているカーネルのカーネルオプションを叩き台にすることを提案したい。これはRedHatだろうがDebianだろうが関係ない。少なくとも私はこのふたつのDistributionでこの方法でカーネルをコンパイルしている。

  1. ディストリビュータが提供しているカーネルの設定を取得する。
    これはだいたい/boot/config-*というファイルになっていることが多い。これをカーネルのソースディレクトリに.configという名前でコピー。
    # cp /boot/config-2.4.20-8 /usr/src/linux-2.4/.config
  2. カーネルソースディレクトリに移動して、make oldconfig
    # cd /usr/src/linux-2.4
    # make oldconfig
  3. make xconfig or make menuconfigでオプションを変更
  4. あとはmake
    # make dep
    # make 2>&1 | tee compile.log
    # make install 2>&1 |tee install.log

Distributerはどんな環境でも動くようなカーネルを提供することに努力するために、ほとんど全てのオプションが選択され、モジュールが可能なものはほとんど全てモジュールになっている。則ちこの方法は無駄が多すぎる。「せっかくカーネルをコンパイルするんだったらいらないものは削ればいいじゃないか」という意見もあるだろう。私もそう思う。しかし現状からの変更が最小限になるので、不測のトラブルは少くなる。安全側で行動するという見地からこの方法を提案したい。

問題:内蔵無線LANカードが見えない

これはドライバがロードされていないからである。[Fn]+[F1]で無線LANを有効にして、orinoco_pciをロードする。

# modprobe orinoco_pci
起動時に無線LANドライバを有効にしたいなら、modules.confに
alias eth1 orinoco_pci
を追加する。

問題:無線LANが時々切れる

RedHat9が提供するカーネル(2.4.20-8)で内蔵無線LANカードで運用していると、しばらく通信するとLANが切れることがある。これは後述するUSBの問題で、カーネルを2.4.22-pre2にしたところバッテリが切れる寸前を除いて、症状がでなくなったように思える。 kernel 2.4.21のChangelogを見ると、2.4.21-pre5でorinocoドライバがアップデートしているので、この時に直ったのかな。

問題:サウンドドライバにアクセスするとXが落ちる

例えばGnomeが何か音を鳴らそうとすると、画面がフェードアウトして何もできなくなってしまう。BlueCurveを終了させるときも然り。これはインストーラが自動的にインストールするサウンドドライバtridentとの相性が原因のようだ。ALSA-0.9.4にすると解決。

USB1.1デバイスが使えない

どうやらUSB1.1ドライバusb-ohciのロードに失敗している。これがロードできないとUSBフラッシュメモリが使えない。しかしカーネルのバージョンを2.4.22-pre2にしたら直った。Changelogを見ると、USBがかなりアップデートされている。

まとめ

以上がSharp Mebius PC-MM1-H3EにRedHat9をインストールしたときに生じた問題と、私なりの解決策である。やったことは次の通り、

これらの問題をクリアしたことで、このPCの全てのハードウェアにアクセスできるようになった。まだ使い始めて一週間足らずだが、快適なLinux Lifeをおくることができている。