VAIOLOGY
SONY VAIO PCG-C1XE で Debian GNU/Linux を使う

English version is here.

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 を使っています。

とりあえずの目的は、国内および国外の出張先で、

  1. Emacs を使ったメールの読み書き
  2. magicpoint を使ったプレゼンテーション
  3. Netscape (あるいは Mozilla) を使った Web ブラウジング

だったのですが、 最近ではそれだけにとどまらず、 サウンド関係のソフトを色々とインストールして遊んでいます。


目次


命名

まずはホスト名を決める。 小さくて賢い (そして本体がねずみ色) だということで、 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 を起動し、 以下の手続きをとる。

  1. 「3. 領域または論理 MS-DOS ドライブを削除」
  2. 「3. 拡張 MS-DOS 領域内の論理 MS-DOS ドライブを削除」
  3. 「どのドライブを削除しますか」 D
  4. 「ボリームラベルを入力して下さい」 Enter
  5. 「よろしいですか」 Y

この「論理ドライブ削除」をやらないと、 後で Debian のインストーラがパーティションテーブルを認識できなくなってしまう。 (もしハイバネーション専用パーティションを作らないのなら、 このステップは省略可能。)

FDISK を終了し、Windows を再起動する。

目次へ


ハイバネーション領域の確保

C:\debian というディレクトリを作り、 プロダクトリカバリ CD-ROM Vol.3 of 3 をドライブにセット。 Q:\VAIO\TOOLS\Phdisk\PHDISK.EXEC:\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 の下にバイナリモードでコピー。

  1. resc1440.bin
  2. root.bin
  3. drv1440.bin
  4. linux
  5. base2_2.tgz
  6. install.bat
  7. loadlin.exe

目次へ


Debian のインストール

一度リブート。 SONY のロゴが消え始めたら、そこですかさず F8 を押す。
Microsoft Windows 98 Startup Menu が表示されるので、 6. の Safe mode command prompt only を選択。
「キーボードのタイプを判定します」のところで[半角/全角]キーを押す。
「106キーボードが選択されました」のメッセージが出て、 DOSのコマンド待ちとなる。
ここでdebian\compactに移動し、 installと打てば Debianのインストールが始まる。

今回試した設定は以下の通り。

これで LILO から Linux が立ち上がる。

X を選択すると anXious に色々聞かれるが、どうせ このすぐ下 で設定し直すので適当に答えておけばよい。

目次へ


XF86

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 のアップグレード

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

待望の新カーネル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 モデムカード

出張先からネットに繋ぐ場合、大抵はPCモデムカードを使うことになる。 カーネル2.4.0からはpcmciaモジュールがカーネル本体に組み込まれたので、 カーネル再構築のたびにpcmciaを作り直す必要がなくなった。 今回動作確認したカードは以下の2種類。 どちらもちゃんと使えている。

PPP のセットアップには pppconfig を使った。

  1. su で root になる。
  2. pppconfig コマンドを起動し、各種質問に答える。 provider というのがデフォルトの接続先名になる。 ポートは /dev/ttyS0 を指定。
  3. 設定された情報は、 /etc/ppp/peers および /etc/chatscripts という2つのディレクトリ内のファイルに格納されるので、 もし微調整が必要ならばこれらを編集する。
  4. PPP 接続を許可するユーザをグループ dip に入れる。

接続開始コマンドは pon。第1引数に接続先名を与える。 引数なしで起動すると provider という名前で登録した接続先に接続する。 接続終了コマンドは、poff。

目次へ


PC Ethernetカード

少なくとも有名どころの 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マウス

ホイール付きの光学式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ボタン化には成功していない。

目次へ


USBキーボード

キーボードはやっぱり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フロッピー

マウス、キーボードに続いて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以下にマウントされる。 あとは普通のファイルシステムとして読み書きできる。

目次へ


ALSA

PCG-C1XEのサウンドチップはヤマハのYMF744で、 これはALSA-0.5.8 以降でサポートされている。 現在使っているのは0.5.10bというバージョン。

設定方法は以下のとおり。

  1. BIOSで Plug and Play OS を off にする。
    これをしないとフリーズすることがあるらしい。
  2. カーネルを再構築する。
      Sound
        Sound card support --> M
    
    これだけ。他の sound 関連項目はすべて off にする。 カーネル2.4の項 に従ってカーネルを再構築する。
  3. alsa-source をインストール。
    root になって apt-get install alsa-source とすると必要なファイルをダウンロード後、 alsa-source の設定画面になるので 最初の設定画面で ymfpci が存在することを確認し、 次の設定画面で ymfpci のみにチェックを入れる。 ISA PnP は必要なし、debugging code も必要なし。
    alsa-source 導入に当たっては debhelper パッケージが必要であるにもかかわらず 依存関係が depend になっていなかった (recommended にはなっている) ので debhelper を手で導入する必要があった。 念のため他の recommended パッケージも apt-get installしておいた方がいいかもしれない。
  4. ソースの展開とコンパイル。 上で再構築したカーネルのソースが /usr/src/linux でアクセスできることを確認する。 apt-get でカーネルのソースをインストールした場合は /usr/src/kernel-source-2.4.0 のようになっているので適宜シンボリックリンクを張る。 その後、
      # 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 を使って再生するのも面白い。

目次へ


その他

目次へ


リンク

参考にさせていただいたページです。


最終更新日 : 2006年8月14日