Gentoo Linux on Thinkpad R31 2656-EGJ



インストールの注意
PCMCIA_CS導入時の注意
カーネルコンフィグ
XFree86の設定
APMの注意とACPI を使うための設定
内蔵Wireless LANの設定
Thinkpad Buttonの設定
捕捉




インストールの注意
Gentoo Linux 1.4 rc1でないとinstallerが起動しません。
rc1をインストールしてから
#emerge rsync
#emerge -u world
することで、最新のバージョンにアッ プグレードできます。

もしくはRC3の stage1,2,3ファイルをネットワークからダウンロードしてきて
展開してインストールすることでも問 題ないでしょう。

Gentoo Linux 1.4 Live CD を用いれば、なんなく起動できるようになりました。
インストールの注意として、ネットワークはwireless LAN を使うより、通常のLANを使うことをお勧めします。
Gentoo Linux 1.4 Live CD には、orinoco_pci という R31 の内蔵Wireless LAN チップ用のモジュールが付いてません。
wvlanというモジュールもあるようですが、私はこれを試したことがありません。
インストールのときは、おとなしく通常のLANで安全にインストールされることをお勧めします。


PCMCIA_CS導入時の注意
Linux kernel 2.4.20 の場合、kernelに含まれるPCMCIAのdriverでは
modprobe ds がloadに失敗し、pc-cardが利用できない場合があります。
ですが、必ず動かないというわけでは なく、
kernel config次第ではきちんと動くこともあります。

確実に動作させるためには、
kernel configで pcmciaを無効にし(Support for hot-pluggable devices は有効に)、
pcmcia-cs packageのdriverを使うことをお勧めします。

pcmcia-cs は現在動作しているkernel config を調査し、
kernel pcmcia driver がある場合は、 pcmciaの操作toolだけをinstallします。
kernel pcmcia driver がない場合は、driverも同時にinstallしてくれます。

2003/6/11 追記:
kernel-2.4.20 でもきちんとPCMCIAのカーネルドライバは動くようです。
以前うまく動かなかったのは、なにか別の問題のようです。
ちなみに、開発版カーネル2.5.70でも問題なくPCMCIAは使えています。

Gentoo Linuxの場合は、
#emerge pcmcia-cs
を行なうだけでinstallが完了します。
ここでちょっとした注意として、
pcmcia-csを、以前のkernelで動いていたときにinstallしていた場合、
/lib/modules/(以前のkernel)/  以下のpcmcia-cs関係のFileは削除されます。
なにか問題があって以前のkernelに戻す場 合は、
再びpcmcia-cs package をinstallしなおすことを忘れないでください。

カーネルコンフィグ
Gentoo Linux で Thinkpad R31を使う際、
必ず設定しなければいけない設定

Kernel 2.4.x での設定
 .config を直接みるのが早いかもしれません。ただし、このconfigはAPMでなくACPIの方で設定したものです。

In Code maturity level options
(Y) Prompt for development and/or incomplete code/drivers 
         ↑
      これを有効にしないと、これより下の設定を行なえない

In General Setup
(Y) Support for hot-pluggable devices
(Y) Power Management Support
(Y)      Advanced Power Management BIOS support  ← APMでないとBIOSが対応してない。
(N)          ignore USER SUSPEND
(Y)          Enable PM at boot time
(Y)          Make CPU Idle calls when idle
(Y)          Enable console blanking using APM
(Y)          Allow interrupts during APM BIOS calls
(N)          Use real mode APM BIOS call to power off

In Network device
    In Ethernet (10 or 100Mbit)
(Y) Ethernet (10 or 100Mbit)
(Y) EISA, VLB, PCI and on board controllers
(Y) EtherExpress Pro/100 support   ← 内蔵LAN
    In Wireless LAN
(Y) Wireless LAN
(Y or M) Hermes chipset 802.11b support          ← 内蔵Wireless LAN
(Y or M)       Hermes in PLX9052 basec......
(Y or M)       Prism 2.5 PCI 802.11b adaptor support

In File systems
(Y) Virtual memory file system support   ← Gentooの必須項目
(Y) /dev file system support    ← Gentooの必須項目
(Y)    Automatically mount at boot    ← Gentooの必須項目
(Y) ext3 journalling file system support      ← ext3でパーティションをフォーマットした人。
                                                              必ず(Y)と答えること。起動できなくなります。


In IDE, ATA and ATAPI Block devices
(Y) Generic PCI IDE chipset support
(Y)    Sharing PCI IDE interrupts support
(Y)    Generic PCI bus-master DMA support
(Y)    Use PCI DMA by default when available
(Y) Intel PIIXn chipsets support    ← これは必要かどうかわからない
(Y)    PIIXn Tuning support

In Character devices
(Y) /dev/nvram support    ← Thinkpad Button 用
(Y or M) /dev/agpgart
(Y)      Intel 440LX/BX/GX and ..... support
(Y)      Intel I810/I815/I830M (on-board) support
(Y) Direct Rendering Manager    
(M) Inetl I810
(M) Intel 830M    ← XFree86 4.3.0では使えないが、将来のため
   In Mice
(Y) Mouse Support
(Y) PS/2 mouse support   ←  trackpoint用

In Console drivers
(Y) Video mode selection support
 in Frame-buffer support
   (Y) Support for frame buffer devices
   (Y) VESA VGA graphics console
   (Y) Advanced low level driver options

In Sound
(Y or M) Sound card support   ← ALSAを使うならこれだけを(Y)にする。他は(N)

In USB support
(Y or M) Support for USB
(Y) Preliminary USB device filesystem
(Y or M) UHCI support
(N) UHCI Alternate Driver (JE) support
その他USBで使いたいものを(y)か(m)で答える。
USB strageを使いたい人は、
(Y or M) SCSI support
(Y or M) SCSI disk support
(Y or M) SCSI generic support
と答える。


他にもいろいろとありますが、書ききれないので
まぁ最小限ということで。

2003/11/15 追記

Frame Buffer Support でも動くことを確認しました。
/boot/grub/grub.conf のカーネルオプションの行に、
vga=791
を記述することで、1024x768 の解像度でコンソールが立ち上がるはずです。
Xに切替えても問題なく動作しました。

2004/05/29 追記

kernel-2.6.6で動かしました。

 .configはこちら。

基本的には上記の2.4.x系の設定と変わっていませんが、
2.4.xではきちんと動かなかったAPMのスリープなんかが働くようになったので、
Thinkpadではバグの多いACPIサポートはやめてAPMサポートに切り替えて使ってます。
APMだとXでログインしたままスリープに入っても、復帰した後に無線LANやな んかをきちんと戻してくれました。
(でも、やっぱりシャットダウン時に クロックを同期するところでフリーズしますが・・・)
APM + swsusp を併用できるのならスリープもサスペンドも両方そこそこ使えるようになりそうですけど、
swsuspってAPMサポートと同時に使えるんだったかな・・?
サスペンドするときは cat 4 > /proc/acpi/sleep とかやってた気がするので。
それとも systemの方にパッチあてて、shutdown -z nowを使えるようにすればいけるのかなぁ。
ちょっと調べた方が良さそうですね。追ってまたここに書き込みます。


XFree86の設定
全部の設 定が書いてあるファイルはこ ちら

必要なところだけ。

Section "Module"
    Load  "xtt"
    Load  "glx"
    Load  "dri"   ← 今は意味がないが、まぁ将来は使えるでしょう。
                         I830Mのドライバがver. 1.3以上でないとXFree86 4.3.0では動かない。
    Load  "dbe"
    Load  "extmod"
    Load  "type1"
EndSection

Section "InputDevice"
    Identifier "Keyboard 1"
    Driver  "Keyboard"
    Option "AutoRepeat" "500 30"
    Option "LeftAlt"  "Meta"       ← Alt キーをEsc の代わりに使う場合
    Option "XkbRules" "xfree86"
    Option "Xkb Model" "jp106"
    Option "XkbLayout" "jp"
EndSection

Section "InputDevice"
    Identifier "Mouse1"
    Driver    "mouse"
    Option  "Protocol" "PS/2"
    Option  "Device"  "/dev/mouse"
    Option "Buttons" "3"
    Option "EmulateWheel" "true"         ←青ボタンを押したときにホイールとして
    Option "EmulateWheelButton" "2"       使えるようにする
    Option "EmulateInertia" "10"
EndSection

Section "Monitor"
    Identifier "thinkpadmonitor"
    HorizSync 28-49
    VertRefresh 43-72
    Option "DPMS"
EndSection

Section "Device"
    Identifier "thinkpadvideo"
    Driver "i810"
    BoardName "i830M"
    BusID "PCI:0:2:0"
EndSection



APMの注意
・マウスカーソルの暴走
Thinkpad R31でAPMを利用したバッテリーチェッカのプログラムを
常時立ち上げていると、時々マウスカーソルとボタンが制御不能になります。
この関係のプログラムは使わないでください。

・サスペンドの問題
カーネル 2.4.20では、
Fn + F4 によるハードウェアスイッチによるサスペンドを行なうと
サスペンド状態にならずフリーズする場合があります。
#apm -s
をすることでサスペンドと復帰自体は可能になります。
……が、
一度サスペンドから復帰した後、
電源を落そうとシャットダウン処理に移行したとき
ハードウェアクロックをシステムクロックと同期する時点で
これまたフリーズしてしまいます。
現在は正常なサスペンドは行なえていません。

ACPIの設定:

2003/6/9 追記:
Thinkpad R31のバグの多いACPI BIOSをソフトウェア的にFixする方法が
ここに 載っています。
Intelのツールを使ってACPIのテーブルをいじるみたいです。
ツール類は ここからダウンロードできます。
"PMTools"と"IASL Optimizing Compier and AML Disassembler"を使うようです。
ハードウェアはいじらないので、カーネルが起動できなくなるくらいしか
副作用はないようですので、人柱になっても良いという方は使ってみて、
私に御報告ください ;-)

2003/6/10 追記:
結局自分で試してみました。
kernel 2.4.20 acpi patched , 2.5.70 の両方で出来ました。
R31 EGJ のACPI TableのDumpはdsdt.dsl.original
Disassenbleして、エラーを直したあとのdsdt.dsl
これを、実際にカーネルに組み込むためのdsdt.hex

dsdt.hexを/usr/src/linux/drivers/acpi/dsdt_table.h としてコピーし、 カーネルソースを自分で直す。
/usr/src/linux/drivers/acpi/osl.c の頭に
#include "dsdt_table.h" を付け足し、
さらに 208行めあたりの *new_table = NULL;の部分を
*new_table = (strncmp(existing_table->signature, DSDT_SIG, 4)) ? NULL : (struct acpi_table_header *) AmlCode;
に変更する。
あとは、カーネルのAPMを無効にし、ACPIをすべて有効になるようにconfigし、make。
最後にliloな人は/etc/lilo.confに起動オプション
append="pci=noacpi"
を指定する。
Grubな人はgrub.confに
pci=noacpi
を指定すれば完了。

で、実際にACPI使えました。
でも、sleepとかはやっぱりうまく動いてくれませんでした。。
上のリンクのページではSleepもうまく働くって書いてあったんだけどなぁ。。。
なにがいかんのかなぁ。
……と思ったら、
メモリ増設した関係で、スワップがメモリの容量より小さくなってた。。。
たぶんこれが問題ですね。
パーティション切り直しかHDD買ってインストールしなおそうかなぁ…。

みなさん、スワップは大きめに切っておきましょうね(T-T)

2003/11/3 追記
上のスリープってスワップは関係ないですね。よく考えたら。
ちなみに、Windowsでいうsleepは、
#echo 1 > /proc/acpi/sleep
です。ここで試して動かなかったのはこれ。
いわゆる休止状態(メモリの内容をHDDに落して電源を完全に落とす)のは、
#echo 4 > /proc/acpi/sleep
です。こちらはよくサスペンド,もしくはハイバネーションと呼ばれま す。
これを行なうには、NotePC自体がサスペンドに対応しているか、
linux-kernelに、2.4.22以上ならswsuspパッチを当てる、
もしくは2.4.22より低いバージョンならacpiパッチ+swsuspパッチを当てて
カーネル再構築を行なえば可能です。

私のThinkpad R31はswsuspパッチを当ててみたところ、サスペンドは正常に行 なえました。
ただ、pcmcia-csのcardmgrとXはサスペンドする前に落しておいた方がいいか もしれません。
スクリプトを使えばサスペンドから自動的にpcmciaをoffにしたり、
サスペンドから復帰するときにpcmciaをonにしたりできるはずです。
swsuspのアーカイブにsuspend.shなんてスクリプトもあったりします。
これだとhybernateコマンドなんてのを入れてくれたりします。
/etc/suspend.conf で設定をできたりします。

もしswsuspを使いたいなら、メモリより多い容量のスワップを確保しないとだ めだとおもいます。
メモリを確保したら、/boot/grub/grub.conf のカーネルオプションに
resume=/dev/hd?? ←自分のスワップパーティ ション
を書き加える。
LILOなら
append="resume=/dev/hd??"
かな。


内蔵Wireless LANの設定
上記 kernel configを行なっていれば、
#modprobe orinoco_pci
でeth1にWireless LANが認識する。
そこから先は、通常のLANの設定。
例として、私の設定を。
#ifconfig eth0 192.168.0.1 netmask 255.255.255.0 broadcast 192.168.0.255
#iwconfig essid my_issid key s:wepstring restricted
てな感じでしょうか。
iwconfigは wireless-tools というパッケージの中にあります。


ただし、現在のorinoco_pciドライバ(kernel 2.4.20 or pcmcia-cs 3.2.4附属)では約1時間置きくらいに
ネットワークがダウンします。
Error Message:
eth1: Error -110 writing Tx descriptor to BAP
こうなってしまったら、 #/etc/init.d/eth1 stop
した後、
#modprobe -r orinoco_pci
でモジュールを取り除いたあとにもう一度
#modprobe orinoco_pci
することで、 再び正常にネットワークを立ち上げられるようになります。

2003/5/31 追記:
開発版カーネル2.5.69以上では、上記エラーは発生しませんでした。
現在は開発版カーネル2.5.69で快適に生活してます。

2003/6/10 追記:
カーネル2.4.20でも、orinoco-cs 0.13eをインストールすることで
問題なくWireless LANを使用できるようになりました。
この前orinoco-cs 0.13のいくつかをコンパイルしようとしても
だめだったんですけど、これは問題なくいきました。
みなさんもお試しあれ。

2003/11/3 追記
RedHatに対応したWireless LANの設定法

----/etc/sysconfig/network-scripts/ifcfg-eth?----
TYPE=Wireless
DEVICE=eth?
BOOTPROTO=none
BROADCAST=XXX.XXX.XXX.XXX
IPADDR=XXX.XXX.XXX.XXX
NETMASK=255.255.255.0
NETWORK=XXX.XXX.XXX.XXX
ONBOOT=yes
ESSID=your_ess_id
MODE=Managed
KEY="s:wep_key_string restricted"
GATEWAY=XXX.XXX.XXX.XXX
RATE=Auto
CHANNEL=1
--------------------------------------------------
上記のファイルを書くことで, /etc/init.d/network startした時に自動的に Wirelessの設定も行なってくれます。XXXの部分は各環境において書き換えて ください。
WEPキーは、"s:"で始まるものは文字列のWEP keyです。
WEPの暗号bit数による文字の数の制限に注意してください。
数値の場合は"s:"をつけないでOKです。
また、restrictedなしだと、openモードになります。これはWEPによって暗号 化されていないパケットも受け入れてしまうので、できればrestrictedを指定 するようにすると良いと思います。

Thinkpad Button の設定
Thinkpad R31には、Thinkpad ボタンと音量調節ボタン3つがついています。

Thinkpad X シリーズ などでは音量調節がFn+F10キーなど、ハードウェアで出来るので、
OSに依存せず利用できます。
しかし、Thinkpad R31シリーズの音量調節ボタンはソフトウェアで実現しているため、
Linuxで使うにはミキサーと関連づけたりしなければなりません。

そこで、http://www.nongnu.org/tpb/ で公開されている
TPBというソフトウェアを利用します。
これはThinkpadボタンなどの上記ソフトウェア制御のボタンを
簡便に利用できるようにするものです。
現在(ver 0.4.2)動作が確認されているThinkpad は、
A31
R30 (no hardware mixer)
R31 (no hardware mixer)
S30
T20
T23
T30
になります。

TPBを利用するには、/dev/nvramが必要になります。
これを利用するためには、カーネルの再構築が必要になることがあります。
#modprobe nvram
でエラーがでないのなら、再構築の必要はありません。
もしくは静的に組み込まれていれば問題ありません。
もしnvramが使えないようなら、上記カーネルコンフィグを参照して
カーネルを再構築してください。

2003/3/22日現在、上記ホームページは見れなくなっています。
もし見れない場合は、ここか らver. 0.4.2をダウンロードしてください。
画面上に音量調節のグラフなどを表示したい場合は、
別途xosdをダウンロードして先にインストールを済ませて下さい。

tpbのインストールは簡単で、
#tar tpb-0.4.2.tar.gz
#cd tpb-0.4.2
#./configure
#make
#su
$make install
で終了。

使用方法は、
#tpb --daemon --osd=on --mixer=on --thinkpad=xmms
のようになります。
--daemon は、daemonとして起動します。
--osd=on は、音量調節などをOn Screen Display表示します。(xosdが必要)
--mixer=on は、ソフトウェア音量調節ボタンを有効にします。(R30, R31)
--thinkpad="hogehoge" は、Thinkpadボタンで起動するアプリケーションを指定します。
この他にもさまざまなオプションがあります。
もし起動できない場合は、/dev/nvramのパーミッションの問題があると思いま す。 現在のUserで/dev/nvramへの読み込み、書き込み権限があるかどうか確かめて ください。

このコマンドを実行することで、ソフトウェア音量調節のボタンが利用可能になります。
試しに 音量 小ボタンを押すと、

tpb

このように画面下にミキサーの状態が表され、音量が一段階小さくされます。




(捕捉)
AirH" on Linux

戻る
Top Pageへ