IBM ThinkPad 600 に Linux をインストールし、2年以上使ってきました。 性能的にはまだまだ十分だし、画面は大きいし、キーピッチは広いし、 Linux に関する情報は豊富だし、といいことづくめなのですが、 出張先でメールを読むためだけに持っていくには少々重すぎます。
代わりに SHARP のザウルスを使ったこともあるのですが、 今度は画面が小さすぎて読みにくくなってしまいます。 また、普段 Emacs をがんがんにチューンして使っている 身にとっては、操作性にも不満が残ります。
というわけで、小さくて、かつ Linux が動くモバイルマシンとして Sony の VAIO C1XE を導入しました。 約 1kg という重さを考えれば、 1024x480 ピクセルの画面、キーピッチ17ミリ は耐えられる範囲内と言えるでしょう。
色々考えて Linux は Debian-2.1 (slink) にしました。 しばらく快調に使っていたのですが、 事故のためにシステム全体を再インストールする必要が生じ、 新たに Debian-2.2 (potato) をインストールしました。 その後 woody へのアップグレードを経て、 現在は sid を使っています。
とりあえずの目的は、国内および国外の出張先で、
だったのですが、 最近ではそれだけにとどまらず、 サウンド関係のソフトを色々とインストールして遊んでいます。
まずはホスト名を決める。 小さくて賢い (そして本体がねずみ色) だということで、 algernon と命名。 もちろんダニエル・キイスの有名な小説にちなんでのこと。 時間とともに輝きを失い、 数年後には誰にも見向かれなくなるようになるだろう、という含みもある。
C1XE に Sony 純正の CD-R ドライブ PCGA-CDR51 を接続。 ドライブ本体下側のスライドスイッチを Recovery に合わせ、 プロダクトリカバリ CD-ROM Vol. 1 of 3 をセットして起動。
まずは
3. パーティションサイズの変更
を選択し、続いて
1. Cドライブを 3GB とし、残りをDドライブにする
を選択。
しばらく待つと次の CD を入れろと言ってくるので Vol.2 of 3 を挿入。
これで Windows がフレッシュインストールされる。
Windows の初期設定を終えたら Windows の FDISK を起動し、 以下の手続きをとる。
この「論理ドライブ削除」をやらないと、 後で Debian のインストーラがパーティションテーブルを認識できなくなってしまう。 (もしハイバネーション専用パーティションを作らないのなら、 このステップは省略可能。)
FDISK を終了し、Windows を再起動する。
C:\debian というディレクトリを作り、 プロダクトリカバリ CD-ROM Vol.3 of 3 をドライブにセット。 Q:\VAIO\TOOLS\Phdisk\PHDISK.EXE を C:\debian にコピーする。
続いて MS-DOS モードで Windows を再起動し、
C:\debian に移動。
DOS のプロンプトに対し、
phdisk /create /partition /ram128
と打って 128MB 分のハイバネーション用パーティションを作成する。
手元に Debian の CD-ROM がなかったのと、 高速なインターネットアクセスが可能な環境が利用できたことから 「loadlin + FTP」によるインストールを行うことにする。
Windows を立ち上げたらイーサネット用の PCMCIA カードを挿入し、
ドライバ情報データベースを作成させる。
マイコンピュータ -> コントロールパネル -> ネットワーク
で IP アドレスその他を適切に設定した後、
「今すぐ起動しますか」に「はい」と答える。
Windows が再起動されるのを待って Debian の FTP サイトに接続。 stable/main/disks-i386/current に cd し、次の7つのファイルを C:\debian の下にバイナリモードでコピー。
一度リブート。
SONY のロゴが消え始めたら、そこですかさず F8 を押す。
Microsoft Windows 98 Startup Menu が表示されるので、
6. の Safe mode command prompt only を選択。
「キーボードのタイプを判定します」のところで[半角/全角]キーを押す。
「106キーボードが選択されました」のメッセージが出て、
DOSのコマンド待ちとなる。
ここでdebian\compactに移動し、
installと打てば
Debianのインストールが始まる。
今回試した設定は以下の通り。
これで LILO から Linux が立ち上がる。
X を選択すると anXious に色々聞かれるが、どうせ このすぐ下 で設定し直すので適当に答えておけばよい。
Debian がインストールできたら、 何はともあれ、取り敢えずはX。 PCG-C1XE のグラフィックスチップは NeoMagic NM2200 で、 これは XF86-3.3.3 以降の XF86_SVGA なら標準でサポートされている。 しかし内蔵液晶ディスプレイが 1024x480 ピクセルという非標準的な構成のため、 XF86Setup 等のセットアップソフトは使えない。
Web 上を色々と探し回り、さらにそれに手を加えて作った XF86-3.3.6 の XF86_SVGA サーバ用の設定ファイル /etc/X11/XF86Config が これ。 一方 XF86-4.0.2 の XFree86 サーバ用の設定ファイル /etc/X11/XF86Config-4 は これ。
いずれも、何もオプションを付けないで X サーバを起動すると内蔵 LCD 用の設定 (1024x480 ピクセル、24ビットカラー) になり、 xinit -- -bpp 16 のようにオプションを付けると外部ディスプレイ用の設定 (1024x768ピクセル、16ビットカラー) になる(はず)。
映像出力信号の切替は「Fn キー + F7」。 押すたびに 内+外 → 外だけ → 内だけ → 内+外 と切り替わる。
ちなみに XFree86-4.0.2 の 新しいサーバプログラム XFree86 は、 3.3.6 の XF86_SVGA に比べてかなり高速化が図られているようだ。 x11perf で両サーバの性能を比較した結果が これと これ。
Debian-2.2 (potato) から woody へとバージョンを越えてアップグレードする際の手順は次の通り。
まずエディタで /etc/apt/sources.list を以下のように編集。
deb http://http.us.debian.org/debian woody main contrib non-free deb http://non-us.debian.org/debian-non-US woody/non-US main contrib non-free deb ftp://ftp.jp.debian.org/debian woody main contrib non-free deb ftp://ftp.jp.debian.org/debian-jp woody-jp main contrib non-free deb ftp://ftp.jp.debian.org/debian-non-US woddy/non-US main contrib non-free
この後 root になって、
# apt-get update # apt-get -f dist-upgrade
とすれば最版の woody 版へのアップグレードが終了。 この後さらに sid にアップグレードするなら、 /etc/apt/sources.list の中の woody と書かれた部分を unstable に変更して同様の手続きを繰り返せばよい。
一度 unstable 版をインストールしたら、 次の日からは毎日のように最新版を追いかける生活が始まる。 この場合のアップグレード手順は次の通り。
# apt-get update # apt-get upgrade
しかしまあ、すごいペースで開発が進んでいるもんだ。
待望の新カーネル2.4.0が登場したのでさっそく試してみる。 PCG-C1XEにはPS/2ポートがないので、 USBマウスやUSBキーボードに対応したカーネル2.4はありがたい。
まず/usr/src/linuxにカーネルソースを展開し、 make menuconfig (X上ならmake xconfigも可) で このように設定。 ここでmake zliloとやりたいのをぐっとこらえ、 Debian流にカーネルパッケージを作成してインストールする。 リビジョン番号の付け方はpcmciaのドキュメントで推奨されているように、 「マシン名.X.XX」(Xは数字)とした。
# make-kpkg --revision algernon.1.00 kernel_image # cd .. # dpkg -i kernel-image-2.4.0_algernon.1.00_i386.deb
dpkg -iしたときに聞かれる質問に対しては、 単にリターンを打ってデフォルトどおりにすればよい。 (ブートフロッピーは「作らない」、 現在の設定でliloをインストール「する」)
カーネルを再構築する場合は、 まずmake-kpkg cleanしてから リビジョン番号を上げてカーネルイメージを作成する。 また、インストールする前に/lib/modules/2.4.0 をリネームするのも忘れないようにする。
# make-kpkg clean # make-kpkg --revision algernon.1.01 kernel_image # cd /lib/modules # rm -rf 2.4.0.old # mv 2.4.0 2.4.0.old # cd /usr/src # dpkg -i kernel-image-2.4.0_algernon.1.01_i386.deb
出張先からネットに繋ぐ場合、大抵はPCモデムカードを使うことになる。 カーネル2.4.0からはpcmciaモジュールがカーネル本体に組み込まれたので、 カーネル再構築のたびにpcmciaを作り直す必要がなくなった。 今回動作確認したカードは以下の2種類。 どちらもちゃんと使えている。
PPP のセットアップには pppconfig を使った。
接続開始コマンドは pon。第1引数に接続先名を与える。 引数なしで起動すると provider という名前で登録した接続先に接続する。 接続終了コマンドは、poff。
少なくとも有名どころの 10Base-T イーサカードは何の問題もなく使えるようだ。 インストール時から Planex の ENW-3503-T を使っていたが、 PCMCIA の標準設定で素直に使えていた。 カーネルを作り直すなら
Network device support -> Y
PCMCIA network device support -> Y
のところで必要な項目に Y または M と答えればよい。 ちなみに上記の ENW-3503-T は NE2000 compatible PCMCIA support に当たる。
一方多少手間取ったのが 3Com の Megahertz 10/100 LAN CardBus PCカード (3CCFE575BT)。 せっかくだから100Base-Tで使いたいと思い、とりあえず 3Com の PC カードをすべてモジュールとして組み込むようにカーネルを設定したのだが動作せず。 cardmgr が出力するログを見ると
socket 0: 3Com 3CCFE575B/3CXFE575B Fast EtherLink XL executing: 'modprobe -r 3c575_cd' modprobe: Can't locate module 3c575_cd
となっている。
PCMCIA のマニュアルを読むと、「CardBus のネットワークドライバは PCI ドライバに統合された」という記述があるのを発見。 さらに3c575_cb は 3c59x ドライバに統合されたとあるので、
Network device support -> Y
Ethernet (10 or 100MBit) -> Y
3c590/3c900 sereies (592/595/597) "Vortex/Boomerang" support -> M
とカーネルを設定。 また、CardBus のコントロールには cardmgr ではなくて hotplug サブシステムが使われるので、 apt-get install hotplug しておく。 カーネルを再コンパイルしてリブート、 その後件のPCカードをスロットに挿入すると見事動作した。
ホイール付きの光学式USBマウスを買った (KYE needs cordin+ Scroll Optical Mouse)。 ケーブルは長さが1mしかないものの極細で、 しかも使わないときは本体内に巻き取っておけるというすぐれもの。
まずはUSBマウスが使えるようにカーネルを設定する。
General setup
Support for hot-pluggable devices --> Y
Input core support --> Y
Mouse supoort --> Y
USB support
Support for USB --> Y
Preliminary USB device filesystem --> Y
UHCI (Intel PIIX4, VIA, ...) support --> Y
USB Human Interface Device (full HID) support --> Y
もちろん本体内蔵のスティックも使えるように、以下を確認しておく。
Character devices
Mice
Mouse Support (not serial and bus mice) --> Y
PS/2 mouse (aka "auxiliary device") support --> Y
この後、 カーネル2.4の項 に従ってカーネルを再構築する。
次にUSBマウス用のデバイスファイルを作る。
# cd /dev # mkdir input # mknod input/mice c 13 63
コンソールでスティックおよびUSBマウスが使えるように、 /etc/gpm.confを以下のように設定する。
device=/dev/psaux responsiveness= repeat_type=ms3 type=ps2 append="-M -m /dev/input/mice -t imps2"
X内ではgpm経由でマウスイベントを取得するようにする。 XF86-3.xの場合は/etc/X11/XF86Config内にこう書く。
Section "Pointer"
Protocol "IntelliMouse"
Device "/dev/gpmdata"
BaudRate 1200
Buttons 5
ZAxisMapping 4 5
EndSection
XF86-4.xの場合ならこうなる。
Section "InputDevice"
Identifier "Mouse1"
Driver "mouse"
Option "Protocol" "IntelliMouse"
Option "Device" "/dev/gpmdata"
Option "Buttons" "5"
Option "ZAxisMapping" "4 5"
EndSection
ここまで準備ができたら新カーネルでリブート。 コンソールとXの両方で動作を確認する。 Emacsを使っている場合は両手が常にキーボード上にあるので、 あまり有難みがわかないが、 Netscapeの画面がホイールでスクロールできるのはたしかに便利。
実はこのマウス、 親指の位置にも前後に動くホイール状のスイッチが付いている。 本来ならこれが更に2つのボタンとして働き、 全部で7ボタンのマウスになるはずなのだが、 今のところこの親指スイッチはbutton1およびbutton3として反応するだけ。 7ボタンマウスとして動作させるには、どうやら何らかの初期化が必要らしい。 XFree86-4.0.2のExplorerPS/2プロトコルなども試してみたのだが、 今のところ7ボタン化には成功していない。
キーボードはやっぱりKinesisが好き、でもUSB版はまだ売っていない、 というわけでPS/2とUSBの変換アダプタを購入。 audio-technicaのATC-USBPS2という製品で、 PS/2キーボード1台とPS/2マウス1台をまとめて1つのUSBポートに接続するもの。 MS Windowsではドライバソフトなしで動作するようなので、 Linuxでも動くだろうと予想。
まずはカーネルの設定。 USBマウスの設定と重なる部分がほとんど。
General setup
Support for hot-pluggable devices --> Y
Input core support --> Y
Keyboard supoort --> Y
USB support
Support for USB --> Y
Preliminary USB device filesystem --> Y
UHCI (Intel PIIX4, VIA, ...) support --> Y
USB Human Interface Device (full HID) support --> Y
マウスの場合と違って特別なデバイスファイルは作る必要なし。 カーネル2.4の項 に従ってカーネルを再構築し、 一度シャットダウン。 変換アダプタにKinesisのキーボードとPS/2マウスを接続してUSBポートに差してから システム再起動。 キーボードは一応動作したが、 PS/2マウスの方はまったく反応なし。 またキーボードも動作が不安定。 ときどきキーボードにリセットがかかっている模様。 ログには
Manufacturer: Digital Stream Corp. Product: USB - PS/2 Active Adapter
と記録されていたのでWeb上でいろいろ調べてみたところ、 Linuxでこの変換アダプタを使っている人はみな同じような状況らしい。 特に活線挿抜すると問題が生じるとの報告例あり。 MS Windowsでは特別なドライバソフトなしで動作するというのに、 なぜLinuxではうまく行かないのか原因は不明。
マウス、キーボードに続いてUSBデバイス第3弾。 USBポートに接続される記憶装置はSCSIデバイスとして認識されることを考慮して カーネルを再構築する。
SCSI support --> Y
SCSI disk support --> Y
USB support
Support for USB --> Y
Preliminary USB device filesystem --> Y
UHCI (Intel PIIX4, VIA, ...) support --> Y
USB Mass Storage support --> Y
新カーネルでブートし、USBフロッピーを接続する。 計算機からは1台目のSCSIディスクと認識されるので
# mount /dev/sda /mnt
などとすればフロッピーディスクが /mnt以下にマウントされる。 あとは普通のファイルシステムとして読み書きできる。
PCG-C1XEのサウンドチップはヤマハのYMF744で、 これはALSA-0.5.8 以降でサポートされている。 現在使っているのは0.5.10bというバージョン。
設定方法は以下のとおり。
Sound
Sound card support --> M
これだけ。他の sound 関連項目はすべて off にする。
カーネル2.4の項
に従ってカーネルを再構築する。
# cd /usr/src # tar xfvz alsa-driver.tar.gz # cd linux # make-kpkg modules_image # dpkg -i ../alsa-moduleとしてALSAをインストールした後にリブート。
サウンド再生関連のアプリケーションは aplay, mpg123, timidity, festival 等を agt-get でインストールすればOK。 MS Windows のパーティション (本機の例では /dev/hda1) を /vfat にマウントすれば、 /vfat/Program Files/yamaha/MIDIFILES/ および /vfat/Program Files/yamaha/YAMAHA XGStudio/ 以下に色々と MIDI ファイルが見えるので、 timidity を使って再生するのも面白い。
参考にさせていただいたページです。