[English]



■ linux on VAIO PCG-TR2

ここでは、Sony のVAIOノート PCG-TR2AP3 にlinuxを入れる際の注意点をまとめておきます。 筆者はVAIOを使用するのははじめてですが、さすがに前評判どおりくせのあるマシンなので ハードが無事動くようになるまではいろいろと調整が必要であるため、 最低限kernel再構築ができる程度の知識を持っていることを前提としておきます。

[Topic]
Tips on Fedora Core3
- FC2からのアップグレード
- ATOK for linux (atokx2) の導入その2 (IIIMECFとか)
- FC3でのkernel再構築
- 開発におけるgettextの問題
Tips on Fedora Core2
- ATOK for linux (atokx2) の導入
- kernel2.6.10でのmadwifi
- 外部ディスプレイへの表示 (i855crt)
- iPod(第四世代)のマウント
- タッチパッド (ALPS Glidepoint, synaptics)
Upgrade from Fedora Core 1 to 2
- kernel再構築
- Wireless LAN (madwifi)
- AtokXで発生する問題解決
Installation of Fedora Core 1
- ハードウェア概要
- ディストリビューションの選択
- インストール
- kernelの設定 (ACPI, cpufreqd)
- Fn-keyを使う (sonypi, jdmouse)
- サウンド (ALSA, intel-8x0)
- Accelerated-X
- XFree86 with 1280patch
- Wireless LAN (madwifi)
- Tips






■ Fedora Core 3上でのTips


ディストリビューションをさらにFedora Core 3(FC3)にアップグレードしてからの Tipsです。 FC3はそれほどFC2と大きな差はありません(kernelは同じ2.6系ですし)ので、 FC2のTipsもほぼそのまま使えます。


FC2からのアップグレード

アップグレードはFC2の環境でそのままFC3のDVDROMをブートして行いました。 FC2でもkernelを2.6.10にあげていたためかFC3のkernelは入りません。 その後yumでupdateをかけるとインストールされますが、 勝手にgrubに優先登録されるので注意が必要です。
FC3ではfirefoxがデフォルトブラウザとしてインストールされますが、 非日本語版ですので、別途入れている日本語版の方を使います。
Atok for linuxはFC3へのアップグレードにてiiim関連のパッケージが 上書きされてしまいますので、再インストールが必要となります。


ATOK for linux (atokx2) の導入その2 (IIIMECFとか)

justsystemのサポートページにてFC3用のインストールスクリプトが用意され ていますので、それを使うだけです。
また、キーバインドをAtok17にしておかないとemacsでのIIIMECFでの挙動が おかしくなったりするようです。 また、記号類を変換したりするためにIIIMECFに
patch をあてるといいかと思います。


FC3でのkernel再構築

FC3ではkernel sourceのパッケージがありません…………脱力(--;。
したがって、自分でsrc.rpmをとってきて
   # rpm -ivh (src.rpm file)
   # cd /usr/src/redhat/SPECS
   # rpmbuild --bp --target i686 kernel-2.6.spec
   # cp -r /usr/src/redhat/BUILD/linux-2.6.10/ /usr/src
などとしてsource treeを作ってやる必要があります……もうやめようかなFC使うの(--;。


開発におけるgettextの問題

開発やってる人じゃないと関係ないでしょうが、FC3ではgettxtではなく glib-gettextが入っており、従来の環境で開発していたプログラムソースに 対してautogen.shなどをかけるとおこられます。 ……ので、手っ取り早く yum install gettext gettext-devel して gettextizeができるようにする必要がありました。








■ Fedora Core 2上でのTips


ディストリビューションをFedora Core 2(FC2)にアップグレードしてからの Tipsです。 いくらかはFC1や他のディストリビューションにも転用できるかもしれませんが、 kernel-2.6が必要とされることが多いかもしれません。

ATOK for linux (atokx2) の導入

以前からかな漢字変換にはjustsystemのAtokXを使っていましたが、 それの後継版である ATOK for linux (ATOK17に相当)が出ましたので、 優待版を手に入れて導入してみました。
インストールはcdrom中のsetupスクリプトと、/etc/X11/xinitrc.d/xinput の編集(マニュアル中redhat9について説明されているものと同じでよい)、 chkconfig --add で atokx2 と IIim が起動時にスタートしておくように するだけで基本的によいはずです。 現在ではjustsystemのサポートページにFC3用のインストールスクリプトが 導入されているので、そちらを使った方が楽かもしれません。
ただし、emacs(-21.3)においてどうしてもXIMによる入力を見てくれない (~/.Xdefaultsに Emacs*useXim: true などとしてもダメ)ので、
こちらのページを参考にして Mule-UCSとIIIMECFでatokx2に接続しての変換をおこないます。 これは旧AtokXでも同じでしたのでほぼそのままの設定でOKなはずだったのですが、 atokx2相手では旧AtokXの設定だけでは変換開始キー(C-\など)を押したときに おこられてかな入力ができません。 これを解決するには、 IIIMECFのなかのiiimp.elに
    --- iiimp.el~   2002-07-15 20:18:13.000000000 +0900
    +++ iiimp.el    2005-01-10 12:53:03.000000000 +0900
    @@ -68,6 +68,8 @@

     (defvar iiimp-text-warning-char ?!)

    +(defvar iiimp-helper-path "iiimp")
    +
     (defconst iiimp-basic-opcode-spec-list
       '((iiimp-im-no-protocol
          0 (nil . nil)
    @@ -391,7 +393,10 @@
                  (set-buffer-multibyte nil))
           (buffer-disable-undo buf)
           (setq proc
    -           (open-network-stream iiimp-process-name buf host port))
    +           (cond ((string= host "unix")
    +                  (let ((process-connection-type nil))
    +                    (start-process "iiimp" nil iiimp-helper-path)))
    +                 (t (open-network-stream iiimp-process-name buf host port))))
           (process-kill-without-query proc)
           (set-process-coding-system proc 'binary 'binary)
           (set-process-sentinel
というパッチをあててbyte-compileしなおし(emacs -batch -f batch-byte-compile iiimp.el)、/etc/iiim/htt.xml.conf中で
         <listen type="tcp">
            <hostname>localhost</hostname>
            <port>9010</port>
        </listen>
という部分のコメントアウトをはずして有効にする必要がありました [参照ページ]。 これがおわったあとでIIimをリスタートして、 .emacsのCannaなどの指定をコメントアウト、
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;; Atok for linuX の設定
    ;;  IIIMP 経由で実行します
    ;; (要 MULE-UCS, IIIMECF)
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    ;(setq emacs-ime (getenv "EMACS_IME"))     ;; 環境変数 EMACS_IME に従う
    (setq emacs-ime "atokx")                  ;; atokx を使う
    (if (or (equal emacs-ime "atokx")
            (equal emacs-ime "atok")
            )
        (progn
    
          (require 'un-define)      
          (setq coding-category-utf-8 'utf-8)
    
          (setq iiimcf-server-control-hostlist '("localhost"))
          (setq iiimcf-server-control-default-language "ja")
          (setq default-input-method 'iiim-server-control)
          (require 'iiimcf-sc)
    
          ;(define-key global-map "\C-\\" 'toggle-input-method)
          (setcar default-mode-line-format "")
        )
    )
というような記述を加えてからemacsを起動し、C-\を押してAtokが動けばOK です。
なお、IIimはATOK独自のものを使うので、yumで勝手に上書きされ ないように /etc/yum.confでは[main]内に
exclude=iiimf*
といれておくとよいです。


kernel2.6.10でのmadwifi (Wireless LAN)

kernel-2.6.10において、下記でとってきた以前の madwifiの source Archiveは構築時にエラーが出ます。
したがってまたCVSからとってきた最新版をmakeするのですが、 とってくるのがめんどくさい場合は こちらのページにて、 毎日CVSバージョンをアーカイブしていてくれるらしいので利用してみました。
インストールはアーカイブを展開して make installするだけです。


外部ディスプレイへの表示 (i855crt)

"i855crt" というソフトによって、 プレゼンテーションでの使用など外部ディスプレイへの表示が可能です。
インストールはきわめて簡単で、上記のリンクからsourceをダウンロードしてきて それを使うだけです。 今回ダウンロードしたversion0.4のsource archive内にはすでにcompile済みのbinaryも 同梱されていますのでそれを使用しました。
まず、
   # cp i855crt.conf /etc/X11
として設定ファイルを/etc/X11にコピーしておきます。 また、実行ファイル"i855crt"も/usr/local/binなど適当なディレクトリに コピーしておくとよいでしょう。これでインストールは完了です。

一番簡単なモードとしては、rootで
   # i855crt on rawpipe
のように実行すると本体LCDとおなじ1280x768で外部ディスプレイに表示ができます。 ただし、TRの場合は外部ディスプレイとは通常アスペクト比が違いますので、 出力を指定する以下のようなモードでやった方よいでしょう。
   # i855crt [swcursor] [overlaycrt] on 1024x768@85
上記のように出力ピクセルサイズおよびディスプレイ周波数を指定します。 ……とはいってもこれは/etc/X11/i855crt.confにそういう名前で登録されて いるだけですので、お使いの環境にあわせてこれを編集したり、 名前をもっと短くしたりと工夫するとよいでしょう。
"swcursor"はソフトウェアカーソルを使えるようにするらしいんですが、 実際どういうときに必要になるのか私にはよくわかりません。 "overlaycrt"はオーバーレイ出力(xineでのDVD再生とか) も外部に表示させたい場合に使用するようです。

また、本体を1280x768のままでたちあげて1024x768などで外部表示すると、 本体表示の右端側の表示が切られてしまうので、 本体を1024x768で立ち上げ直す、もしくは何らかのツール使うなどの 工夫が必要になると思います。


iPod(第四世代)をlinuxでマウントして使用

なんとなく買ってしまったiPod(第四世代 40GB)をこのTR2に接続させてみました。 TR2のIEEE1394は4pin(iPodは6pin)なので、USB2の方に接続しています。
まず、FedoraJPのFAQ にあるように、 この世代のiPodはkernelによってはマウント時に問題が生じるらしいため、 kernel configuration中の"Partition type"内で CONFIG_EFI_PARTITIONを"n"としてkernelを再構築しておきます。
hotplugやUSB関連のモジュールなどは標準で入っているため、あとは /etc/fstab で
   /dev/sdb2       /mnt/ipod       vfat    rw,user,noauto,noatime  0       0
のように記述しておけば接続したのちに "mount /mnt/ipod"とするだけで 認識がされます(もちろんマウントポイントは作成しておくこと)。
なお、 上記は普段Windowsで使用しているもので、 Windowsで初期化済みのiPodを接続する場合になります。
GtkPodなどを 使えばプレイリストの編集も可能です。


タッチパッドの認識 (synaptics + alps.patch)

VAIO TR本体のタッチパッドは標準でもPS/2の2ボタンマウスとして問題なく 使用できますが、 以下の作業によってWindowsでのように パッドの右端をスクロールにわりあてることができます(XFree86およびXorg)。
使用するのは synaptics というXFree86およびXorgのモジュールを作成してくれるツールで、 さらにsynapticsアーカイブ内に付属しているALPS GlidePoint用の patchをkernel本体にあててkernelの再構築が必要になります(kernel-2.6の場合)。
手順は以下の通り。

▼ アーカイブ synaptic-0.13.6.tar.bz2 をダウンロード。

▼ アーカイブ中のalps.patchをkernelに適用
      % su
      # cd /usr/src/linux
      # patch -p1 < alps.patch
さらに
      # cd drivers/input/mouse
して psmouse.h に
      #define PSMOUSE_CMD_DISABLE	0x00f5
の一行を加える必要があった(kernel-sourcecode-2.6.8-1.521)。
おわったら
      # cd /usr/src/linux
      # make gconfig (いらないか)
      # make
      # make modules_install
      # make install
▼ synaptics-0.13.6のインストール
      % cd synaptic-0.13.6/
      % make
      % su
      # make install
▼ /etc/X11/xorg.confの変更
(1)Section "Module" 内に
      Load "synaptics"
を追加。

(2) 以下のInputDevice項目を追加。
     Section "InputDevice"
      Driver        "synaptics"
      Identifier    "Synaptics Mouse"
      Option        "Device"                "/dev/input/mouse0"
      Option        "Protocol"              "auto-dev"
      Option        "LeftEdge"              "120"
      Option        "RightEdge"             "830"
      Option        "TopEdge"               "120"
      Option        "BottomEdge"            "550"
      Option        "FingerLow"             "14"
      Option        "FingerHigh"            "15"
      Option        "MaxTapTime"            "180"
      Option        "MaxTapMove"            "110"
      Option        "EmulateMidButtonTime"  "75"
      Option        "VertScrollDelta"       "20"
      Option        "HorizScrollDelta"      "20"
      Option        "MinSpeed"              "0.15"
      Option        "MaxSpeed"              "0.3"
      Option        "AccelFactor"           "0.02"
      Option        "EdgeMotionMinSpeed"    "20"
      Option        "EdgeMotionMaxSpeed"    "20"
      Option        "UpDownScrolling"       "1"
      Option        "CircularScrolling"     "1"
      Option        "CircScrollDelta"       "0.1"
      Option        "CircScrollTrigger"     "2"
      Option        "RBCornerButton"        "2"
    EndSection
マウスの操作感に違和感がある場合は、 "MinSpeed", "MaxSpeed", "AccelFactor"あたりをいじってみるといいかもしれません。 右下隅のコーナーのタップでマウスのmiddle buttonクリックと認識するよ うになっています。

(3) Section "ServerLayout"内で    古いマウスの指定をコメントアウトし、Synapticsでのマウスの指定を追加。
     #     InputDevice    "Mouse0" "CorePointer"     (コメントアウト)
           InputDevice    "Synaptics Mouse" "CorePointer" 
これらが終わった後のTR2の /etc/X11/xorg.conf は こちら






■ Fedora Core 1 → 2 アップグレード時のメモ


2004年10月Fedora Core 1 (FC1) をインストールした(下記参照)TR2をFedora Core 2(FC2) にアップグレードしました(再インストールではなくアップグレードです)。 アップグレード自体はFedora Core 2のDVDでブートし、 ほぼ問題なく終了しましたが、いくつか修正が必要な点があったのでメモしておきます。

FC2ではkernelが2.6系に変更、XFree86がX.orgに変更など いくつか大きな変更点があるため、 FC1で正常動作していたハードウェアの認識がうまくいかなくなることもあります。 とりあえず、アップグレード直後のカーネルには何点か問題があるようなので、 まずはyum upgradeなどで最新のものに変更してから調整を行うのがいいと思 います(eth0は問題なく再認識されているはず)。 アップグレードの前に/etc/yum.confが編集されていると、更新されるべきファ イルは/etc/yum.conf.rpmnew となってしまうため、これを/etc/yum.confと 置き換えてからコマンドを実行しましょう。 同様に up2date の sourceファイル /etc/sysconfig/rhn/sources も同じディレクトリ内のsources.rpmnewから置き換えておくといいでしょう。

カーネルアップグレード後の各コンポーネントの動作状況を以下にまとめてお きます (×印があるものもすべて下まで読めば解決ができます)。
         
CPU kernelはPentium-Proで最適化されたもの
cpureqd ×?speedstep-centrino モジュールがデフォルトで はコンパイルされていない。 /proc/cpufreqがデフォルトではサポートされていない。
100baseTX (eth0) 初回再起動時から問題なし
Wireless LAN (ath0) ×認識されない。 また、2.4で使えたmadwifiもそのままでは使えない。
ディスプレイ 1280patchを入れたまま(XFree86で使用)でアップグレードしたが、 そのままXorgでも1280x768で初回から起動した。 HOME$/.Xmodmapで設定していたCTRL/CAPSのスワップ はGNOME起動時に怒られらので、 GNOMEのキーボード設定で行うようにした。
サウンド 初回から問題なく認識されていた。
sonypi 初回起動時は認識されなかったが、 カーネルアップデート後は問題なし。
USB Controller 初回起動時は認識されなかったが、 カーネルアップデート後は問題なし。
日本語変換(AtokX) ほぼ問題はないが、 アップグレード後にemacsでの変換ができなくなる。


▼kernel再構築
まず、kernel設定での問題を解決するためにkernelの再構築を行う。
     Processor Family = Pentium M
     Power Management - CPU Frequency - /proc/cpufreq interface = y
                                      - Intel Speedstep on ICH-M chipsets = m 
                      - APM BIOS Support = n
あたりを気をつければよい。 make xconfig (gconfig) → make → make modules_install → make install でkernelのアップデートはOK。

cpufreqに関してはkernel2.6自体ですでにCPUスピードのコントロールをする 機能があるようであるが、従来的なユーザー定義のできる
CPUFreqd を使うためには上記の設定が必要となる(FC2標準ではモジュールではなく、 kernelにインクルードされている)。 ついでにCPUfreqdも最新版(1.2)にあげておく。 なお、kernel2.6ではPentium-M 1GHzがサポートされているため、 speedstep-centrinoへのパッチは必要ない。
また、AtokX使用時には、kernel再構築に際にXIM関連のエラーが出て make xconfig がうまく立ち上がらないため、かわりに make gconfigなどを 使うといいかもしれない。

▼Wireless LANの設定
kernel2.6では2.4で使えていたmadwifiドライバが使用できない。 このため"非公式パッチ"をmadwifiドライバに当てた上でmake, インストール をした。現在のところ問題なく使用できている。
詳しくはこちら を参照のこと。

▼AtokXの問題解決
FC1では日本語かな漢字変換にAtokXを使用していたが、FC2でも FC1の設定のまま利用できる。 ただし、FC2ではデフォルト(ja_JP.UTF-8 locale)ではemacs上での変換ができなくなっている。 これを解決するためには ja_jp.eucJP ロケールでemacsを実行する必要があった。
     alias emacs="LANG=ja_JP.eucJP emacs"
などと HOME$/.bashrc で指定してあげるとよい。






■ Fedora Core 1 インストール時のメモ


ハードウェア概要
わたしの購入したTR2はSonyStyle.comから購入した1GBメモリのもので、しかもUS版です。
チャームポイントは1280x768の横長クリアブラック液晶と、 DVD-ROM搭載(これのおかげでインストールはだいぶ楽です)なところでしょう。
基本スペックはかなりいいかげんに書くと以下のとおり。

CPU 超低電圧 Intel Pentium M 1GHz
標準OS MS Windows XP Professional (c:15GB, d:21GB)
LCD 10.6inch Wide (1280x768) TFT Display
Graphic intel 855GM (64MB from Main RAM)
Memory 1GB
HDD 40GB
Optical Drive CD-RW/DVD combo 内蔵 (MATSHITA : UJDA755)
FDD なし
Ethernet Intel Pro/100 相当
Wireless LAN IEEE 802.11g Bus/Interface: mini PCI Radio frequency band: 2.4GHz
Sound intel 8x0相当 AC97準拠


Motion Eyeとか、Memory Stickもlinuxで使えますが、とりあえず通常の使用では 用がないので放っておきます。(後者はlinuxでもデフォルトで使える場合が多いみたいですが)
ちなみに /sbin/lspci -v の結果は こちら

基本作戦およびディストリビューションの選択
このマシンに限らず最近のVAIO全般に言えるのかもしれませんが、ACPIを克服することが サウンド等の機能を使い切る上で必要不可欠です。 したがって、使用するlinux kernelは2.4.22以降、もしくは2.6系ということを前提と した方が何かと無難かと思われます。
どうせ最初から入れるならこのあたりのkernelを最初から使っているものにしようと いうことで、雑誌付録(日経linux 2004年1月号)についていたFedora Core 1を いれてみることにしました。
あと、やはりFDDが無いのはちと不安ですので、ブートローダーには LILOより安心感のあるGRUBを使った方がいいかもしれません。

CDからインストール
ほんとに何も考えず、CDからブートしてインストールができます。 別にkernel起動オプションも要りません。 内蔵ドライブっていいですね。
私はC:のWindows XPを残してD:をつぶして、そのままそこにFedora Core 1をインストール しましたが、hda1に5GBのレスキュー領域があったりするので、気になる人はKNOPPIXなどで 起動してパーティションを整理しなおしてからやるのがいいかもしれません。
Xに関しては、特に何もしなくても1024x768はXFree86で出すことができます (Fedora Core 1 の標準だとXから抜けた後のコンソールがちらちらする症状が 出るかもしれません)。

kernelの設定 (ACPI, cpufreqd, HIGHMEM)
▼ kernel
使用しているkernelはkernel-2.4.22-1.2149.nptl(2004年1月現在)です。 これのsrcもインストールして(yumでインストール可)再構築をしています。
FedoraがそうなのかRedhatの仕様なのかしりませんが、kernelをmake install すると、<version名>custumというkernel名でインストールされ、grubの メニューにも登録されます。 moduleに関しても/lib/modules/<version名>custum というディレクトリに インストールされるのですが、make modules_installでそのディレクトリが作成され ないでエラーが出るため、自分でmkdirしたような気がします。 また、ALSA等の外部のmoduleを入れる際には uname -r でkernel versionが 参照され、それに相当する/lib/modules/<version>ディレクトリにインストール されるのですが、この uname -r の返り値には customがつきません。 この対策として、
    mv /lib/modules/2.4.22-1.2149.nptl /lib/modules/2.4.22-1.2149.nptl-backup
    ln -s /lib/modules/2.4.22-1.2149.nptlcustom /lib/modules/2.4.22-1.2149.nptl
と、オリジナルをリネームしたあとでシンボリックリンクを貼っています。
また kernel sourceの場所に関しても、ALSA等 /usr/src/linux を参照するものが 多いのですが、/usr/src/linux-2.4 というシンボリックリンクまでしかオリジナルでは存在 してませんので、
    ln -s /usr/src/linux-2.4 /usr/src/linux
としています。

とりあえず、kernel-2.4.22-1.2149.nptlでの私の .config は こんなかんじです。 めんどくさいのであまりちゃんと削ってませんが。

▼ ACPI
何はともあれACPIを使えないとなかなか安定動作してくれないのでONしてみます。 これは標準kernelでも起動オプションで"apm=off acpi=on"を入れればOK。 モジュールでACPIサポートがされます (私自身はACPI機能はmoduleではなくkernelに取り込んでしまっています)。
なお、VAIOがAPM BIOSを持たないためAPMを切っています。
また、ACPI機能で電源切断等も可能になりますが、APMのときと同様kernelの ProcessorでSMPやAPCI(not ACPI ……笑)をONにすると電源が切れなくなりますので ご注意下さい。

▼ cpufreqd
TR2に搭載されているPentium Mは負荷に応じてCPU速度を切替えるIntel SpeedStep Technology……だっけ? に対応しており、linuxからも利用することができます。
kernelのProcessor→Frequency scalingで CONFIG_X86_SPEEDSTEP_CENTRINO=m としてspeedstep-centrino moduleを 作成します。 ただし、kernel-2.4.22-1.2149.nptl ではTR2のPentium M 1GHzには対応していない ため、/usr/src/linux/arch/i386/kernel/speedstep-centrino.c に patchをあてて使用します。
こうしてできたspeedstep-centrino moduleをmodprobe すると
    [root@sei chimari]# cat /proc/cpufreq
              minimum CPU frequency  -  maximum CPU frequency  -  policy
    CPU  0       600000 kHz ( 60 %)  -     900000 kHz ( 90 %)  -  performance 
のように、CPUの動作周波数範囲を見ることができます。 また
    echo -n "0%100%100%performance" > /proc/cpufreq
のようにすると常に100%(つまり1GHz)での動作をするようになる……というように CPUの動作周波数を変化させることができます。 また、/proc/cpuinfoをみることで 実働周波数がわかると思います。

また、 CPUFreqd なるソフトを使えば、 WInXPでやっているように定期的にCPU負荷をモニターして動的にこの動作周波数を かえるということもできます。 インストールはごく簡単でソース(1.1を使用)から
    ./configure;make;make install
でほぼOK。 動作設定を /usr/local/etc/cpufreqd.conf におきますが、私の設定は このようなものを使っています。 AC電源ONでもWinXPを見てる限りではかなりCPU動作を抑えているようなので、 なんとなくそれをならっていたりします。
また、起動スクリプト /etc/rc.d/init.d/cpufreqdで speedstep-centrinoのmodprobe, rmmodを行うようにして、
    chkconfig --add cpufreqd
で起動時にCPUFreqdが動くようにしています。

▼ HIGHMEM関連のトラブル
私のTR2は1GBのメモリを積んでいるため、kernelのHIGHMEMサポートを"y"にして いたのですが、なぜかしばらく動かしていると kernel が HIGHMEM関連のエラーをはいて、 ライブラリがロードできなくなったりハングアップ気味になったりと非常に不安定な 動作をするようになりました。
結局現在は /etc/grub.conf 中の起動パラメータに "mem=896M" を加えて HIGHMEMがなくなるようにして安定動作しています。
1GBのメインメモリから128Mをおとしていることになりますが、 純粋にHIGHMEM関連のアクセスがおかしいのか、 それともグラフィックのintel 855GMが消費するであろうメインメモリの領域と かちあうのか、いまいち原因はよくわかりません。 TR2のintel 855GMはWinXPによると64MBのメインメモリを消費するようで、 Accelerated-Xのxsvcモジュールの起動時にも
      xsvc: v3.0 (devrel@xig.com) [$XiGDate: 2003/09/05 15:58:08 $]
      xsvc: Intel 855G, 64MB at 0xe8000000 (00000000/00)
とメッセージがでます。 これはメモリのkernel使用領域で上から数えて128MBの番地から64MBを使用するという ことになると思うのですが、これはちょうどHIGMEMアクセス時のバッファに使用される 領域と重なるような気がしています。 ……ていうか、バッファ確保したってその相手である1GB超のメモリがないんだから、 そもそもメモリ1GBちょうどのときってHIGHMEM="y"にする必要がない気が してるんですけど……どうなんだっけ?
Accelerated-Xのドライバのconfig (/usr/X11R6/lib/X11/AcceleratedX/boards/intel/i852.xqa) では32MBと記述されていて、さらに lspci -v の結果 を見ると128MB消費するような気もして……AGPだからVRAMとまた別だっけ? もーなんなんだか。

Fn-keyを使う (sonypi, jdmouse)
VAIOのすごいところは、なんといってもFn-キーによるオペレーションが BIOSのみで制御されていないため、linuxだとそのままでは輝度/ボリューム調整も できないところにあると思います。 …………これって普通なんですか? 少なくとも前のLet's Note (CF-M1)ではできてましたけど。
てゆーか、起動時のBIOSメニューの出し方はメッセージはおろかマニュアルにも 載ってないらしい(見てないけど)……ステキすぎ。
というわけでFn-キー等ソニー特有のハードのイベントを監視するモジュール(sonypi)と、 実際に操作するソフト(jdmouse)をいれる必要がでてきます。

▼ sonypi モジュール
これはFedora Core 1 標準のカーネルにすでに入っていますので、 起動できるようにするだけです。/etc/moudles.confに
    alias char-major-10-250 sonypi
    options sonypi minor=250 camera=1 nojogdial=1
を追加し、
    mknod /dev/sonypi c 10 250
というコマンドでデバイスを作成します。

▼ jdmouse
この jdmouse ですが、ジョグダイアルのあるVAIOに特化されているため、そのままではジョグダイアルの ないTRでは使用できません。
そこでこのようなpatchで、Fn-key + F2-6の 操作のみで輝度/ボリューム調整ができるようにしています。
    Fn + F2 : ボリューム下げ
    Fn + F3 : ミュート
    Fn + F4 : ボリューム上げ
    Fn + F5 : 輝度下げ
    Fn + F6 : 輝度上げ  
となっています。
あとは
    mkfifo /dev/jdmouse
としてFIFOを作成し、jdmouseを起動すればsonypiモジュールも自動的に組み込まれ、 輝度/ボリューム調整ができるはずです。 /etc/rc.d/rc.localあたりから jdmouseを起動するようにしておけばよいでしょう。

サウンド (ALSA intel-8x0)
サウンドはintelの8x0互換で、kernel-2.4標準のOSSのドライバ(i810_audio)も 何ごともなく入るのですが、ミキサーをうまく制御できていないのか音がでません。 そこで、OSSはあきらめてALSAを使用しています。
ALSA関連ファイルはFreshRPMsFedora用のページから 落してくるとよいと思います。
kernel自体は、OSSの設定(モジュールだと思います)は残しておいて、サウンドを モジュールで使用するようになっていれば問題ありません。
まずは alsa-driver のsrc.rpmを落してきてそのままインストール。 /usr/src/redhat/SOURCES/ に展開されたsourceを自分でmakeします。 この際にkernel sourceが /usr/src/linux 以下にないとおこられますので、 前述のようにシンボリックリンクでも貼っておきましょう。
     cd /usr/src/redhat/SOURCES/alsa-driver-1.0.1
     ./configure  --with-cards=intel8x0
     touch include/linux/workqueue.h
     make
     make install
でドライバのインストールは完了です。 変なtouchが入っているのはバグ対応です。 これをやらないとmakeはできますが、/sbin/depmod -a したときにエラーがでます。
あとは alsa-libと alsa-utilsをそれぞれインストールします。 dirverをsourceでインストールしてしまっていますが、私はめんどくさいので あとのふたつはrpmでいれてしまいました。 依存関係がめんどくさいので driverのrpm → driver をmakeしてinstall → libと utils のrpm の順番でいれちゃってます(いいのか? ^^;)。
全部完了したら /etc/modules.conf は
      # --- BEGIN: Generated by ALSACONF, do not edit. ---
      # --- ALSACONF verion 1.0.1 ---
      alias char-major-116 snd
      alias char-major-14 soundcore
      alias sound-service-0-0 snd-mixer-oss
      alias sound-service-0-1 snd-seq-oss
      alias sound-service-0-3 snd-pcm-oss
      alias sound-service-0-8 snd-seq-oss
      alias sound-service-0-12 snd-pcm-oss
      alias snd-card-0 snd-intel8x0
      alias sound-slot-0 snd-intel8x0
      # --- END: Generated by ALSACONF, do not edit. ---
      post-install snd-intel8x0 /usr/sbin/alsactl restore >/dev/null 2>&1 || :
      pre-remove snd-intel8x0 /usr/sbin/alsactl store >/dev/null 2>&1 || :
というように書いて(なって)います。 前半部分は alsaconf を実行すればintel 82801DBを勝手に認識してくれて /etc/modules.confに書き加えられるはずです。
モジュールが正常に起動できたら、次に alsamixerでミキサーの設定をします。 たぶん初回はミュートされています。ミキサーを調整して音がでるようになったら、 alsactl store コマンドで現在のミキサーの設定をセーブしておきましょう (/etc/asound.stateにセーブされます)。次回からこの設定でスタートすることができます。

ALSAによるサウンドはおおむね良好ですが、何点かこまったことがあります。
ひとつはCDDAがなりません。 WinXPでは鳴るので、おそらくデジタルで出力してSPDIFにいれてどうこう…… という問題なのだと思いますが、あまりつめていなくてきちんと解決していません。
もうひとつはxmmsでノイズがわりとのります。他(たとえばDVD再生)ではまったく だいじょうぶなのですけど……。
とりあえず、xmmsのの問題はxmms側で「オプション」→「設定」→「出力プラグイン」 のALSA出力プラグインの詳細設定でバッファタイムを1000ms程度(デフォルトは500)に 変更することでほとんどノイズはのらなくなり回避することができます。 また、CDDAに関しても同様に「入力プラグイン」のCDオーディオプレイヤの設定で 再生モードをデジタルオーディオ抽出にすれば再生可能です。 ただちょっとこれですとCDの回転数が高くて振動がおおきい気がします。

あと、kernelを再構築した際にはalsa-driverも再構築・再インストールが 必要になる場合があります。 sourceファイルはそのまま残しておきましょう。

X (Accelerated-X intel-855GM 1280x768) [XFree86も使用可能となりました。↓次項を参照。]
VAIO-TRをlinuxで使う上でいちばんトリッキーなのはやはり横長1280x768の液晶でいかにして Xを使うかという問題でしょう。
結論からいえばXFree86では現時点(2004年1月)では対応おらず、1024x768でしたら 動作します(2004年6月になってXFree86を1280x768で使用可能であることがわ かりました。詳しくは次項を参照してください)。 XFree86 Project チームも解散したいまとなっては、 intelがドライバを書いてくれるか、もしくは誰かがハックしてくれるのを待つしかなくなって しまっているわけですが、だからといってTRのいちばんのチャームポイントを捨てて linuxを使うのはアホらしすぎます。
というわけで商用のXサーバーであるXiG のAccelerated-Xを導入しました。 正確には Accelerated-X Summit Line LX(Laptop)のSilverを導入しています。 このシリーズはダウンロード販売専用のようで、 お試し版をダウンロードしてインストールし、その後webからライセンスを購入 (要 クレジットカード)するというスタイルになっています。 お試し版は25分間(回数は無制限)で落ちてしまいますが、 機能制限等はありません。 設定をしてちゃんと動くようでしたら購入をされればいいかと思います。 アメリカのウィークデイならば、 webで注文してから1時間もすればライセンスキーが送られてくると思います。
お試し版のインストールはアーカイブ中のSummit_LX-LINUX.txtを見ればいいかと思いますが、
      rpm -i --nodeps xsvc-3.0-3.i386.rpm
      rpm -i --nodeps Summit_LX-Silver-2.2-14.i386.rpm
としたあとで、コンソールからXsetup コマンドを実行して設定を行います。 いちおう私の設定は以下のようになっています。
      Graphic Board : Intel 852, 32MB
             Colors : 16M
           Monitor1 : LCD Panoramic (1024x600) ← LCDならなんでもよさそう
         Resolution : 1280x768
            Desktop : Disabled
               DPMS : Off
            Keyboad : US American
         Mouse Type : PS2 Mouse
       Mouse Device : /dev/psaux
          Font Path : (長いので略)
                Bus : AGP 2x/1x
このあとで、 WinXPのデバイスマネージャーを見る限りではTRの852/855GMはAGP 4xに対応しているようなので 4xにしてみましたが、これでもOKなようです。 また、Accelerated-Xのボード設定ファイル
    /usr/X11R6/lib/X11/AcceleratedX/boards/intel/i852.xqa  
を書き換えてDisplayMemoryを32768 → 65536としています。
これらの設定は /etc/Xaccel.iniに書かれます。いちおう私の環境のは こちらです。 また、XFree86で使われるagpgartモジュールは使用しないようです。 xsvc モジュールがかわりに走りますが、これの設定
      alias char-major-10-179 xsvc
もインストール時に /etc/modules.conf に自動で書かれます。 xsvcモジュールのsourceは /usr/src/xig/xsvc/ 以下にインストールされていますので、 再makeが必要なときはここでmake;make installすればOKとなります。

あと、自動で入るフォントのパスではフォントXFree86のときと比較して少ないので、 Xsetup中で手動で足す必要があります。 XFree86ではフォントサーバーの設定(/etc/X11/fs/config)中にすべてフォントパスが 書かれていますので、これを見ながら設定します。 私の環境のXaccel.iniでは
      [FONTPATH]
        "/usr/X11R6/lib/X11/fonts/misc/",
	"/usr/X11R6/lib/X11/fonts/75dpi/",
	"/usr/X11R6/lib/X11/fonts/100dpi/",
	"/usr/X11R6/lib/X11/fonts/Speedo/",
	"/usr/X11R6/lib/X11/fonts/Type1/",
	"/usr/X11R6/lib/X11/fonts/TTF/",
	"/usr/share/fonts/default/Type1/",
	"/usr/lib/openoffice/share/fonts/truetype/",
	"/usr/share/fonts/ja/misc/",
	"/usr/share/fonts/ja/TrueType/",
	"/usr/X11R6/lib/X11/AcceleratedX/fonts/misc/"
としています。

ちなみに、Xの設定をしくじってXが立ち上がらなり、非グラフィカルログインで立ち上げたい 場合は、起動時のgrubで"a"を押して起動オプションに" 3"を追加してください。 (意外と最近はこういうのを知らない人がおおいようで……)

X (XFree86 intel-855GM 1280x768)
2004年6月になってドイツの方から1280x768でXFree86も動くよということを教えて頂きました。 XFree86にpatchをあてるわけではなく、 非常に簡単に動作しましたので、以下にその方法を紹介しておきます。
まず、1280x768のモード情報をVIDEO BIOS中のテーブルに認識させるための "1280pacth"プログラムを作成します。 ソースをこちら からダウンロードして、
   gcc -o 1280patch 1280patch.c
としてコンパイルし、できた実行ファイル"1280patch"を適当なディレクトリ (ここでは/usr/X11R6/bin/とします)にコピーします。 このプログラムを実行(root権限が必要)するとVAIO-TRでは
   [root@sei-sama]# 1280patch
   Chipset: 855GM
   BIOS Configuration area offset: 0x0c20 bytes
   BIOS Version: 29
   Timing parameter block: 025b
   Patch complete.
というようなメッセージがでるはずです。 このVBIOSへの情報操作はリブートすると消えてしまうため、 再起動することに実行してあげることが必要です。 私は/etc/rc.d/rc.localで1280patchを呼び出して実行しています (これをするとFedora Core起動時のFrame Buffer画面は1024x768だが、 wdm画面はちゃんと1280x768になります)。

次に/etc/X11/XF86Configを編集します。
これもいたって簡単で Section "Monitor"に
   Modeline "1280x768" 80.14 1280 1344 1480 1680 768 769 772 795
の行を追加し、Section "Screen"のModesの先頭に"1280x768"を 追加するだけです。 ちなみにわたしのXF86Configはこんな感じです。

Accelerated-Xを使用していた場合はXFree86に切替える必要があります。 これは/usr/bin/X11R6/bin/X のエイリアスを変えて、xsvcを立ち上がらない ようにすればいいだけなので、
   cd /usr/X11R6/bin
   rm X
   ln -s XFree86 X
   vi /etc/modules.conf
として modules.conf中の xsvcの行をコメントアウトすればいいわけです。 modules.confを書換えるので/sbin/depmod -a するのをお忘れなく。

Wireless-LAN (madwifi)
LANについては有線側はe100 ドライバで問題ありません。 また、無線LANに関しても madwifi (Multiband Atheros Driver for WiFi)ドライバで 特に工夫することもなく使用可能です。
CVS版をダウンロードして使用します。
      cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi login
      cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi
とすると madwifi/ディレクトリにソース一式がダウンロードされます。 パスワードを聞かれてもそのままでEnter、混んでいるので何回かこけると思います。
次にmakeですが、kernelの設定にて
     CONFIG_NET_WIRELESS=y,CONFIG_NET_RADIO=y
     CONFIG_CARDBUS=y,
     CONFIG_HOTPLUG=y, CONFIG_HOTPLUG_PCI=m
として無線LANおよび、CardBus、PCI-HotPLugを使用できるようにしておいてから 始めます。
makeはmadwifiディレクトリで
     make clean
     make
     su
     make install
するだけで問題無しです。 make install時にuuencode/uudecode コマンドが無いといったエラーが出るようなら sharutils パッケージをインストールします。 インターフェース名はath0となるため、/etc/sysconfig/network-scripts/ifcfg-ath0 を作成・編集します。 また、起動時の自動認識ではeth1にふられるため、
      cd /etc/sysconfig/network-scripts/
      ln -s ifcfg-ath0 ifcfg-eth1
としてしまっています。 ちなみに私のとこのifcfg-ath0はこちら
無線LANを使う場合は起動中でもWireless-LANのスイッチをONにしてから
      su
      ifdown eth0
      ifup eth1
としています。

Fedora Core 1 での Tips
▼ emacsでUTF-8のコードしか読み書きできない
(Fedora JP ProjectのFAQより)
/usr/share/emacs/site-lisp/site-start.d/lang-coding-systems-init.el で、 言語環境が日本語に設定されないため、 デフォルトでは日本語をうまく扱えません。 lang-coding-systems-init.el を下記のように修正することで、 日本語をうまく扱えるようになります。
      --- lang-coding-systems-init.el.orig    2003-10-27 22:40:42.000000000 +0900
      +++ lang-coding-systems-init.el 2003-12-22 02:05:18.000000000 +0900
      @@ -13,6 +13,9 @@
                 ;; CJK utf-8 locale needs Mule-UCS
		 (require 'un-define)
		 ;; use Mule-UCS utf-8 coding-system for subprocess IO
      +          (cond ((equal lang "ja")
      +                 (set-language-environment "Japanese")))
      +          (set-terminal-coding-system 'utf-8)
                 (prefer-coding-system 'utf-8))
               (set-keyboard-coding-system 'utf-8))
              ((equal lang "ja")
と修正をいれることで直すことができます。

▼ Cannaの変換が馬鹿
~/.canna ファイル中の
      ;"fuzokugo"
      ;"iroha"
となっている部分のコメントアウト( ; )をはずします。
それにしても馬鹿なのではやいとこWnn7をいれることにします。

▼ latex関連
漢字コードはeucを使います。 xdviではなくpxdviを使わないと日本語表示はできません。
VFlib2-conf-jaとVFVFlib2-VFjfmパッケージをいれた方がいいかもしれません。 (私はyumでいれました)

▼ DVDを見る
Xineを入れて
      ln -s /dev/scd0 /dev/dvd
とするだけです。非常に簡単。
全画面表示も問題ありません。再生時のCPU負荷は10数%程度です。 DVD再生時はVideo→de-interacedをONにすること。
ちなみにリージョンチェックをしてないようで、北米版(Region1)、日本版(Region2)とも 再生可能です(ドライブ自体はRegion1のまま)。

リンク
ここは基本的に以下のサイトの情報をまとめ直したってだけかもしれません(汗)。 いろいろ参考にさせていただきました。大感謝なのです。

Linux on SONY PCG-TR2/B
Panasonic Let's note CF-T2へLinuxをインストール
VAIO PCG-Z1R/P で Fedora Core
(Unofficial) Fedora JP Project Wiki

トップページへ

           Last modified: 2005/02/28 02:18:46 HST

くるみ ちまり
e-mail : chimari_at_rosegray.sakura.ne.jp
("_at_"を"@"に書き換えてください)