ThinkPad T42 と Puppy Linux

  T42 は中古で手に入れたマシンです。 T43 の予備機という位置付けです。 外見は T43 とそっくりですが、ビデオの性能がかなり劣ります。 Windows XP プリインストールのマシンで、メモリ 512MB というところから、XP のサポート終了に伴って退役したものと推測されます。 Precise Puppy 5.7.1 を試しに入れてみましたが、動画の再生に難があるので、Puppy 4.1.2 で使うことにしました。 (4.3.1 でもほとんど同じでしょうが、4.1.2 については既にノウハウの蓄積があるので)
  CPU も T43 と同じ Pentium M なので、ThinkPad T43 と Puppy Linux に記した設定を踏襲します。 ここでは、T43 と異なる設定についてまとめます。 ハードウエアの設定に関しては、主に thinkwiki を参考にしています。

1. ビデオドライバ

  このマシンのビデオチップは ATI Mobility Radeon 7500 です。 このビデオチップに対しては ATI は Linux 用ドライバを提供していません。 したがって、オープンなドライバに頼るしかありません。 以下のパッケージを追加します。

  xorg_xorg_dri-7.3-1.pet
  xorg_xorg_dri-7.3-2missing-files.pet  (412 Collection のサイトよりダウンロード)
  xf86-video-ati-6.12.4-i486.pet  (4.1.2 同梱のドライバよりも若干新しい)

xorg.conf の設定 (下記以外の項目はデフォルトのまま)
  Section "Device"
   Option  "GARTSize" "64"

  Section "Screen"
   DefaultDepth 24

   Subsection "Display"
    Depth 24

  ビデオ専用メモリは 32MB です。 16 ビットカラーでは xv が有効にならないので 24 ビットに設定します。 GARTSize はメインメモリからビデオに借用するメモリサイズです。 値は 32, 64, 128, 256 というふうに倍々になります。 メインメモリが 512MB なので、あまり大きな値を指定するとアプリケーションが利用できるメモリが減ってしまいます。 T43 のほうはビデオ専用メモリが 64MB であるうえに、メインメモリからも取ってくるので、ビデオ性能の差は歴然としています。 Puppy 5.7.1 を使ったとしても、T42 の Radeon 7500 は古すぎて vdpau に対応していません。

2. 指紋認証

  入手した T42 には指紋認証装置がついています。 同じ機種でもサブモデルによって、この装置がついているものとそうでないものがあります。
  Linux-PAM-1.2.0.tar.gz
  と thinkfinger-0.3.tar.gz をコンパイルしてインストールします。 PAM はアプリケーションで使われるユーザー認証 API らしいです。 Puppy でパスワード認証を用いるケースはほとんどありませんが、thinkfinger をインストールする前提として PAM が必要なので、とりあえずインストールします。
  次に、ディレクトリを作成します。

  # mkdir /etc/pam_thinkfinger

  以下のオプションをつけて thinkfinger をコンパイルします。

  # ./configure --prefix=/usr --sysconfdir=/etc --with-securedir=/lib/security --with-birdir=/etc/pam_thinkfinger

  起動時にモジュール uinput が組み込まれるよう「ブートアップの設定」で指定します。

  動作テストです。

  # tf-tool --acquire  で指紋を登録した後、
  # tf-tool --verify  で照合します。

  tf-tool実行例

  "Fingerprint does match." (指紋は確かに合っている) と応答があります。 実際、何の役にも立ちませんが、Linux でも指紋認証装置は動く、ということが確認できました。

3. スワップファイルの作成

  搭載メモリが少ないので、スワップの設定が必要になります。 Puppy はハードディスクにスワップの区画があれば起動時に読み込んでくれます。 GParted で区画を追加することもできますが、今回は 512MB のスワップファイルを作ってみました。

  # dd if=/dev/zero of=/mnt/home/pupswap.swp bs=1024 count=512k
  # mkswap /mnt/home/pupswap.swp

  再起動すると有効になります。

4. ブラウザ

  T42 では SeaMonkey 2.13.2 (Firefox 16 相当)と Flash Player 10.3 を使っています。 それぞれ最新版を使うよりメモリの節約ができます。 セキュリティ上はリスクがあるのかもしれませんが、このマシンを実用的に使おうとすれば、このような妥協が必要です。
  Puppy 4.1.2 はそのままでは Firefox 12 までしか動きません。 しかし、Firefox のこのバージョンは java script の処理に難があり、ショッピングサイトの利用がうまくいかないことがあるので、もう少しバージョンアップします。 Firefox と Youtube に記した、ライブラリのアップデートを追加します。

  glib-2.22.2-i486.pet
  glibc-2.10.1.pet
  glibc_locales-2.10.1.pet  (これを入れた後、time zone を"Asia Tokyo"に再設定)
  gtkdialog4-246-w5.pet
  puppy412-flash-fullscreen-fix.pet  (これは必須ではないが、全画面表示に必要)

  これらをインストールすると Firefox 16 (または 17 esr) まで利用できるようになります。 gtk+ もアップデートすれば、最新のバージョンが動きますが、メモリの消費が多くなるので、今回は入れません。
  余談ですが、ブラウザは tar を my-applications フォルダに解凍しただけで利用しています。 例えば SeaMonkey の場合は、/root/my-applications/seamonkey/seamonkey をデスクトップにドラッグしてアイコンを設定すれば、起動できます。 Firefox も同様の方法で利用できます。 また、このような使い方でもシステムに必要なライブラリがあれば、自動更新が可能です。
  ブラウザのレスポンスを改善するために、ディスクキャッシュの設定を 0MB にします。 これは通常の設定画面で可能です。 次に、メモリキャッシュを自動に設定します。 この設定を行うにはアドレスバーに about:config と入れて「高度な設定」画面を表示し、以下の項目を作成します。

  browser.cache.memory.capacity

右クリック→「新規作成」→「整数値」で作成し、値を -1 とします。 サイズを指定することもできますが -1 に設定すると物理メモリの量に応じて自動設定となります。 実際にどれだけのメモリが割り当てられているかは about:cache で見ることができます。
  Opera では通常の設定画面でメモリキャッシュの設定ができたのですが、SeaMonkey/Firefox ではこの設定はなぜか隠されています。 メモリキャッシュのみ使用するように設定するとページの読み込みが速くなります。 特に非力な PC では効果があります。



  Puppy は、初期状態ならメモリ 512MB あればスワップなしでも大丈夫ですが、OpenOffice や Firefox を使おうとすると、メモリ不足に陥ります。 動画を見るためには上記のような工夫が必要です。 Gyao は user agent を Windows に偽装しても Flash のバージョンではねられてしまいますが、Youtube や国営放送のオンデマンドは大丈夫です。 セキュリティ対策として、一応 bash と open SSL はアップデートを施し、アンチウイルス ClamAV を入れてあります。 もっとも、ClamAV が検出するのは Windows 用(笑)のウイルスらしいですが。 外部からの接続を受けるサーバーではないのであまり気にしないことにします。
2016年1月

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