ThinkPad T43 と Puppy Linux

  ThinkPad T43 で Puppy Linux を使うための情報は、日本語サイトにはほとんどありません。英語サイトの ThinkWiki や、Ubuntu のユーザーフォーラムなどを参考にしました。 ここでは Puppy 4.1.2 について記していますが、他のバージョンに応用できる項目もあると思います。

1. NumLk を有効にする方法

   /root/Startup/StartIme に以下の1行を追加する。 どういうわけか Num_Lock を2回書きます。
   xmodmap -e "keycode 77 = Num_Lock Num_Lock"

  これで、[Shift]+[NumLk] を押せば、NumLk が有効になる。

2. OpenGL の direct rendering を有効にする。

  ATI のドライバを入れる前に、xorg_dri が必要です。 インストールするパッケージは、

  xorg_xorg_dri-7.3-1.pet
  xorg_xorg_dri-7.3-2missing-files.pet (これを入れると Xorg.0.log のエラーが皆無になる)
  Ati-Catalyst-8.12-xorg7.3-k2.6.25.16.pet

  /etc/X11/xorg.conf.ATI_MOBILITY_RADEON を編集する。
  ATI のドライバを入れると英語キーボードになるので、日本語キーボードに設定し直す。
  "pc102" とあるのを "jp106" に直す。
  xv を有効にするには、"Device" セクションに以下の記述を加える。
  Option "VideoOverlay" "on"

  xv が有効になっているか確認するため xvinfo-1.0.2.pet をインストールする。
  コマンドは # xvinfo

3. 無線LAN接続の改善

  私の環境では、ネットワークウィザードで無線LANの設定をしても次回起動時につながらないことがあるので、対策を考えました。eth0 (有線)と eth1 (無線)が入れ替わってしまうのを避けた上で、eth1 に関連付ける essid を指定します。

  テキストエディタで udev の設定ファイルを作り、eth0, eth1 を固定する。 MACアドレスを指定する。

  /etc/udev/rules.d/010_netinterfaces.rules
  KERNEL=="eth*", SYSFS{address}=="xx:xx:xx:xx:xx:xx", NAME="eth0"
  KERNEL=="eth*", SYSFS{address}=="yy:yy:yy:yy:yy:yy", NAME="eth1"

  essid を指定する。以下のコマンドをスタートアップに登録しておく。
  iwconfig eth1 essid xxxx

4. fan のコントロール

  thinkfan-0.9.2.tar.gz をコンパイルしてインストールする。以下のコマンドを スタートアップに登録しておく。
  modprobe thinkpad_acpi fan_control=1
  /usr/local/sbin/thinkfan restart

  thinkpad_acpi モジュールのロードは、/etc/rc.d/MODULESCONFIG に書いてもよい。 直接書いてもよいが、「メニュー」→「システム」→「ブートアップの設定」から指定できる。

  thinkfan はサービスとして常駐するので本来は rcscript で起動させるべきですが、手抜きで単純にコマンドを実行しています。シャットダウン時にサービスの終了が正常に行われないためかエラーが表示されますが、 特に問題はありません。念のため、"thinkfan restart" としています。

  thinkfan コマンドは /etc/thinkfan.conf を読み込みます。 thinkfan.conf.simple というサンプルが添付されているので、これを編集します。詳細は readme ファイルを参照してください。

  /etc/thinkfan.conf
  tp_fan /proc/acpi/ibm/fan
  tp_thermal /proc/acpi/ibm/thermal (0, 0, 15, 0, 0, 0, 0, 0, 0, 0)

  (0,    0,    55)
  (1,    50,    58)
  (2,    52,    60)
  (3,    54,    62)
  (4,    56,    64)
  (5,    58,    66)
  (7,    63,    32767)

  これはサンプルをもとにして、私がマシンの温度をチェックしながら考えたものです。マシンによって適切な値は異なります。不適切な値を指定すると、最悪の場合故障しますので注意してください。 thinkfan の作者も「自分で考えるから thinkfan なのだ」と記しています。T43 の場合、ファンの回転速度は実際には7段階あるわけでなく、おおよそ低速 3200 rpm 中速 4000 rpm 高速 4800 rpm の3段階で変化します。

例 : 無線LAN固定とファンコントロールのためのスクリプト。 Startup フォルダに入れておくと起動時に実行される。
  wireless_and_fan.sh
  #!/bin/sh
  iwconfig eth1 essid xxxx

  modprobe thinkpad_acpi fan_control=1
  /usr/local/sbin/thinkfan restart

5. 赤外線インターフェースでプリンタを使う。

  irda-utils-0.9.18.tar.gz をコンパイルしてインストールする。

  赤外線印刷のデバイスを作成する。
  # mknod /dev/irlpt0 c 161 16

  /etc/modprobe.conf に以下の記述を追加する。
  options nsc-ircc dongle_id=0x09
  alias irda0 nsc-ircc

  赤外線機能は頻繁に使うわけではないので、必要な時に有効にするため、スクリプトを書きました。

  irda.sh
  #!/bin/sh
  modprobe ircomm
  modprobe ircomm-tty
  modprobe nsc-ircc
  irattach irda0 -s

  cups のプリンタ設定

  Device URI: serial:/dev/ircomm0?baud=115200+bits=8+parity=none+flow=none


  新しく作成した /dev/irlpt0 を使うこともできるし、/dev/ircomm0 を使うこともできる。

  データ送受信の状態を表示するコマンド
  # irdadump

6. CPU Frequency Scaling Tool

   cpu-scaling-ondemand-1.3-2.pet をインストールし、「メニュー」→「ユーティリティー」から起動して設定します。私は 800MHz〜1.6GHz に設定しています。 このツールと thinkfan を併用することで、無駄な発熱とファンの高速回転(たいへんうるさい)を抑制することができます。

7. tp_smapi と hdaps

  バッテリーやアクティブ・プロテクションに関するモジュール tp_smapi-0.40.tgz をインストールします。ただし、Puppy 4.1.2 のカーネルでは、これをインストールしても、衝撃を感知してハードディスクのヘッドを退避させる機能は使用できません。厳密に言うと、カーネルにパッチを あてて hdapsd をインストールすれば可能ですが、カーネル 2.6.25 に対するパッチ自体がシステム障害を起こす恐れがあるということなので、諦めました。2.6.28 以降ならパッチをあてる必要がないようです。おもしろくないので、アニメーションを表示するアプリをインストールしてお茶を濁しています。
 
  hdaps (ハードディスク・アクティブ・プロテクション・システム) モジュールにパッチを当てて tp_smapi と互換性を持たせるには、次のようにします。カーネルソースが必要です。 hdaps モジュールは、傾きや衝撃を感知するだけです。ハードディスクを停止させる機能はありません。

  # make install HDAPS=1

  hdaps, tp_smapi, thinkpad_ec の3つが追加モジュールとして読み込まれるように、「ブートアップの設定」で設定する。

  傾きの数値を表示するコマンドは  # cat /sys/devices/platform/hdaps/position

  hdaps-utils_0.1-1.1_i386.deb を deb2pet で pet 形式に変換してインストールする。
  ThinkPad の傾きをアニメーションで表示するコマンド  # hdaps-gl
  パソコンを傾けると、それに応じてアニメーションが動く。

hdaps-gl

  バッテリーの詳細を表示するには、 thinkpad-smapi.sh をダウンロードして使用する。ターミナルから実行する。

8. acpitool と acpid

  acpitool-0.5.1-i486.petacpid-1.0.10-1.pet をインストールします。 acpitool はディスプレイ(蓋)を開けたままでスタンバイ状態にすることができます。コマンドは、

  # acpitool -s

  この後、蓋を閉じることもできます。コマンドを打つのは面倒なので、スクリプトを書いてショートカットをデスクトップに置いておくと便利です。

  acpid をインストールすると、蓋を閉じることでスタンバイに入れることができます。また、電源ボタンを押すと確認のダイアログボックスが表示されて、「OK」するとシャットダウンします。ノートパソコンを使うのであれば、このような機能は必須だと思います。Puppy 4.1.2 に初期状態でこれらが含まれていないのは、システムをできるだけ小さくするためであると理解できます。



  Windows 8.1 や 10 も持っていますが、 最近は専ら Puppy Linux を使っています。 Windows をたまに起動する目的は、アップデートのためだったりします。(笑) Puppy に出会う前は Vine Linux をしばらく使っていました。しかし、他のディストリビューションもそうですが、インストールメディアが DVD になるほど肥大化していくのに閉口しました。 Puppy は小さなところから出発して、必要なものだけを足していけば十分実用になります。 いろいろ実験して、正常に動かなくなったこともありましたが、frugal インストールでは個人ファイルのバックアップをとっておけば、簡単にもとに戻すことができます。 難点は、Ubuntu などと比べて情報が少ないことでしょうか。利用者が増えて情報交換がもっと盛んになるといいのですが。(Puppy 5.7.1 は一応 Ubuntu 互換ではありますが。)
2015年11月

[雑感目次へ] [ホームへ]