Linux On The Palmax 1100
概要
Palmax 1100 は
Cyrix MediaGX ベースのパーム/ミニノートブック PC です.
IBM PC110 の替わりとなる持ち運び可能な開発マシンとして
これを選びました.理由をいくつかあげます.
- MediaGX は比較的標準に近いコンポーネントです.
そのため,特に大きな問題はありませんでした.
- PC110 とは違って, 2.5 型のハードディスクをサポートしています.
これで 512Mb を超えるディスクスペースを手ごろな値段で手に入れることができます.
- 実用的なマウスインターフェースを備えています.
PC110 のマウスは出来が悪く,
その小さなタッチパッドのためのいんちきマウスドライバをこしらえなければなりませんでした.
Palmax 1100 はタッチスクリーンインタフェースを使っています.
- 大容量バッテリパックで 4 時間もちます.
ネットでの報告や手元の計測では実際に得られる駆動時間は
3 時間か 4 時間というところです.
- 色は黒です.
Linux のインストール
私は Red Hat を入れました.Lorax beta スナップショットを使いました.
Red Hat 6.0 でも大丈夫でした.CD からインストールしました.
Lorax を使う場合はテキストモードでインストールします.
このマシンは IDE ハードディスクと
CD が普通の IDE インターフェースでつながっています.
インストーラがほとんどすべて自動的にやってくれます.
タッチパネルは Red Hat ではサポートされていません.でもご心配なく.
あとで解決策を説明します.
X server は拡張ユニットの PS/2 マウスで使うことができ,
セットアップで役に立ちます.
今のところ 8 ビットデプスモードでしか動きません.
これは X server のバグかあるいは Cyrix VSA か,あるいは両方なのか,
はっきりしません.
タッチパネルを有効にするには,
下のリンクのセクションで Xserver をダウンロードしてください.
そのままではオーディオが使えません.
カーネルにパッチをあててリコンパイルするか,
または Linux カーネル 2.2.13pre6 以降を使えば直ります.
これは Cyrix MediaGX のエミュレーションにバグがあるためです.
Cyrix MediaGX のエミュレーションにはもうひとつバグがあって,
録音ができません.こちらはまだ私にも解決策が見つかっていません.
互換性
ミニノートブックマシンで Linux を使おうとすると互換性の問題がつきまといます.
マシンを
小さくするため,
電力消費を低くするために
ベンダはいろいろと
トリッキーなことをするからです.
Palmax 1100 ではその点たいへんうまくいっています.
- フロッピードライブ
-
ドッキングステーションのフロッピードライブは Linux で使えます.
パラレルポートとフロッピードライブが同時に使えないのが
ちょっと奇妙ですが,互換性は完全です.
- CD-ROM
-
ドッキングステーションの CD-ROM ドライブは
IDE 接続で /dev/hdc となります.
ひとつだけ問題があるとすれば,ドッキングステーションを
着脱するときは必ず電源を落とさなければいけないことです.
Suspend-to-disk が使えない Linux にとってはつらい仕様です.
- ハードディスク
-
2.5 型ドライブです.
ドライブ自体は UDMA をサポートしていますが
BIOS が UDMA サポートを有効にしてくれないので
Linux で UDMA を有効にする方法はわかりません.
PIO モードでの転送レートは約 2.5Mバイト/秒 です.
2.2.15pre カーネルで UDMA がサポートされるようになりました.
- オーディオ
-
MediaGX は Soundblaster 16 互換をうたっています.
とんでもない.ちっとも互換ではありません.
私は MediaGX サウンドのバグを調べて
再生側の問題は解決し,
音が出るようになりました.
- MediaGX の Soundblaster
エミュレート は DMA のやり方に間違いがあります.
このせいで MP3 の再生時などには
ぶつぶつとノイズがのってしまいます.
この回避方法を付け加えました.
-
MediaGX は 録音用の DMA チャネルを有効にする前に
録音コマンドを発行するとクラッシュします.
Soundblaster は待ってくれます.
これには対処することができたのですが,
録音側には他にも問題があるようです.
この暫定 fix が 2.2.15 に入っています.
- MediaGX の uart401 は使われかたが間違っています.
これを無効にすれば回避することは可能です.
ドライバは直していませんが,
"mpu_io=0xF00" と設定しエラーを発生させることで
MPU401/UART401 の機能を無効にすることができます.
2.2.13pre6 以降でこれは解決しています.
現在は実用的なオーディオ再生ができるようになりました.
- ビデオ
-
コンソール切り換えにおいて色がおかしくなることを除くと
8 ビットカラーモードは問題なく使えます.
16 ビットモードはバーチャルで 1024 ピクセルにした場合のみ使えます.
これについては私も調べてみたのですが
Cyrix の怪しげなファームウェアの奥深くで死んでいるようです.
3.3.3.1 SVGA X Server を使用してください.
近いうちに 3.3.5 サーバが Palmax で動くようにしたいと思います.
それまでの回避策はバーチャルスクリーンにすることです.
これで X サーバクラッシュの原因であるビデオ圧縮機能がオフになります.
バーチャルスクリーンがいやならば横 641 にしてください.
1 ピクセルの違いなら気にならないと思います.
Cyrix MediaGX にはテキストモードはありませんが,
たいへん低いレベルでそれをエミュレートしています.
Palmax 1100 では Linux で問題なく使えます.
- キーボード
-
キーボードはおかしな配列で 77 個のキーがあります.
この配列になれるにはちょっとかかりますが,
77 個キーがあるということは PC110 よりは本物のキーボードに
近いということになります.
配列はファームウェアでマッピングされているようで,
一般的な UK 配列で使えます.
うれしい誤算.
- パワーマネジメント
-
うまく動いています.
Linux では ACPI を使いたいところですがそうはいきません.
BIOS で APM サポートを有効にすることができます.
サスペンドは単に画面の消去になります.
ホットキーによるサスペンドが動作します.
Suspend to disk は Linux では動作しません.
かわりに Linux swsuspend パッチを試してみようと思っています.
見つかった問題の中では Suspend to disk ができないことが
一番がっかりさせられました.
BIOS の設定で CPU をアンダークロックすることができますが,
リセットしないと変更が適用されないので
PC110 のスピードホットキーの便利さに比べたらないも同然の機能です.
Linux から CPU のスピードを設定する方法があればいいのですが.
大容量バッテリパックは4時間駆動をうたっています.
X11 でゲームをしたり一般的な作業をするぶんには間違ってはいませんが,
カーネルのビルドをさせると真実とはいえません.
ルートファイルシステムを "noatime" に設定し,
1.5 分でディスクの回転を止めるようにしてやりました.
そうそう,スクリーンセーバは凝った表示をさせるのではなく
画面をオフにさせるものと心得ましょう.
- ペン入力
-
Palmax 1000 専用の XInput デバイスが入手できます.
これをインストールすると Palmax 1100 のペンが気持ちよく使えるようになります.
精度はまずまずで,
他の小型ラップトップのマウス代用デバイスにくらべたら
ずっと快適です.
- PCMCIA
-
PCMCIA コントローラは Linux pcmcia_cs で快調に動いています.
Red Hat では PCMCIA を有効にしてインテル式に設定しただけで
すべてうまくいっています.
タイプ II が 1 スロット.ネットワークカードに.
- IRDA
-
Itai Nahshon さんの報告によれば
2.2.14 に 2.2.14-irda1 patches をあてて (つまり 2.2.15pre)
うまく動いたそうです.
Palmax には NSC PC97338VJG コントローラが
シリアル,フロッピー,パラレルに使われています.
IRDA が使えるようにするにはつぎのように設定します.
setserial /dev/ttyS1 uart unknown
modprobe nsc_fir dongle_id=9
irmanager &
ifconfig irda0 up
- USB
-
Linux 2.3.x の USB が Palmax で動作します.
現在開発中のコードではサスペンドしたあとに USB を使うのには問題があります.
まとめ
Palmax 1100 はナイスな Linux パームトップです.
Cyrix MediaGX の
サウンドとビデオのサポートには少々難がありますが,
致命的なものではありません.
ハードウェアはうまく動いており,
非 Windows ユーザをおとしいれる汚い罠は見当たりません.
二つ,とてもがっかりしたことがあります.
Linux で Suspend to disk ができないこと,
Cyrix がいつまでたっても
エミュレーションが正しく動作する
ファームウェアを提供できないでいることです.
Linux suspend to disk パッチというものがあるので
これが Palmax 1100 でうまくいかないかと模索しています.
Cyrix はあてになりませんね.
追加情報: Cyrix が Mark Lord さんに 5530 チップセットで
UDMA を使うための情報を提供してくれました.
また私にも十分な情報をくれたので,オーディオのバグを回避できるかもしれません.
これで Palmax は Linux の基本部分をすべてサポートできることになります.
残る問題は BIOS Suspend to Disk だけです.
リンク
- XServer
-
Palmax 1000/1100 のタッチスクリーンをサポートした XFree86 3.3.3.1 です.
ファイルが壊れているというレポートが出ますが
Xserver 自体は問題ありません.
ペンを有効にするには XFree86 コンフィグレーション
を適切に設定してやる必要があります.
- Amherst Electronics
- 私はこの店から Palmax 1100 を購入しました.
このお店とはトラブルもなく,購入前の問い合わせにも親切に対応してもらえました.
- Cyrix Tools
-
ここから set6x86 を手に入れると
MediaGX CPU のパワーマネジメントを有効にすることができます.
スタートアップの設定は,私の場合 /etc/rc.d/rc.local に以下の記述を加えています.
mount -o remount,rw,noatime /
/sbin/hdparm -S 15 /dev/hda
/sbin/hdparm -u 1 /dev/hda
/usr/local/sbin/set6x86 -p 0xC2 -s 0x08
"noatime" の設定で「最後にアクセスした日時」を
記録しないようにします.
ファイルをオープンしたり読み込んだだけで
ディスクの回転がはじまらないようにするためです.
hdparm -S 15 は 1分 15秒たったらディスクの回転を
停止する設定です (数字はお好みで変更できます).
hdparm -u1 でディスクアクセス時の IRQ マスキングを無効にします.
音が途切れないようにするためです.
set6x86 で MediaGX CPU のパワーマネジメントを有効にしています.