IBM ThinkPad X20 で Debian を使う


3月31日

ThinkPad の BIOS を管理するプログラムがあるらしいので,要調査.

4月3日

VMware 上で稼働している Windows からネットワークに接続できるように設定を試みる. Packet Filtering HOWTO を参考にして,以下のように設定した.

  1. Ethernet から入って来るパケットについて,ssh(22) と http(80) に対するアクセスを受け付ける. それ以外の新規パケットと無効パケットは受け付けず,かつフォワードもしない.
    # iptables -t filter -A INPUT -i eth+ -p tcp -m tcp --dport 80 -j ACCEPT 
    # iptables -t filter -A INPUT -i eth+ -p tcp -m tcp --dport 22 -j ACCEPT 
    # iptables -t filter -A INPUT -i eth+ -m state --state NEW,INVALID -j DROP
    # iptables -t filter -A FORWARD -i eth+ -m state --state NEW,INVALID -j DROP
    
  2. Tunnel device から入って来るパケットについて, 新規パケットおよび無効パケットは受け付けず,かつフォワードもしない.
    # iptables -t filter -A INPUT -i tun+ -m state --state NEW,INVALID -j DROP
    # iptables -t filter -A FORWARD -i tun+ -m state --state NEW,INVALID -j DROP
    
  3. VMware が使っている内部ネットワークから出て行くパケットをマスカレードする.
    # iptables -t nat -A POSTROUTING -s 192.168.xxx.0/255.255.255.0 -j MASQUERADE
    
  4. IP フォワーディングを ON にする
    # echo 1 > /proc/sys/net/ipv4/ip_forward
    
  5. これらの設定を有効にするため,
    1. /etc/default/iptables を編集.
    2. /etc/init.d/iptables save_active というコマンドを実行して,設定を保存しておく.
    3. 常に IP forwarding が有効となるように,以下のように編集しておく.
      --- /etc/init.d/iptables.orig	Tue Apr  9 11:28:34 2002
      +++ /etc/init.d/iptables	Sun May 12 15:37:13 2002
      @@ -115,6 +115,7 @@
       
       case "$1" in
         start|restart|reload|force-reload)
      +    echo 1 >/proc/sys/net/ipv4/ip_forward
           initd_load active
           if test ${enable_autosave-false} = true; then
             touch $autosave
      
  6. dnsmasq をインストール.このプログラムは,DNS のキャッシュサーバとして動作するので, VMware の内部で動作する OS などから参照するために利用できる.
9月4日

apache の proxy サーバーを使う設定を研究.

9月23日

ファイルシステムとして ext3 を使っていたが, resume した時にファイルシステムがエラーを発生することが多く気になっていた. この問題は,IBM の技術記事に解説されている問題と同じものなのかもしれない. とりあえず,/etc/fstab の設定を変更して ext3 を ext2 に戻して様子を見ることにする.

そのため,kernel 構築のオプションを見直し始めたのだが, 以下のようにオプションを設定した kernel に置き換えてみると, 確実に resume 時に凍るようになってしまった.

CONFIG_BLK_DEV_PIIX=y
CONFIG_PIIX_TUNING=y
10月5日

最近,自分で build した kernel ではなく,Debian が配布している標準の kernel を使っている. すると,resume 時のファイルシステムエラー問題が殆んど発生しなくなった. kernel は,自分で必要に応じて再構築して使うものと思っていただけに,ちょっと悔しい.

そこで,ある意味では先祖返りなのだが, ALSA のドライバを使わずに音を鳴らす設定について研究する.

  1. /etc/modutils/sound に以下の内容を記述.
    alias sound-slot-0 cs4281
    
  2. update-modules を実行.
  3. libesd-alsa0libesd0 に交換.

これで,xmms などで音が鳴るようになった. なお,通常の PC の場合は,xmms-cdrom をインストールしておくと, CD の演奏も出来るようになる.ただし,/dev/cdrom の所有グループを cdrom に変更し,利用するユーザーを cdrom グループに追加する必要がある.

10月9日

最近,自分で build した kernel ではなく, Debian が配布している標準の kernel を使っている. そのため,幾つかの module package をインストールしないままで使っていたのだが, debian-users の記事を参考にして,標準 kernel に対して追加の module を build するスクリプトを作成した.

それにしても,kernel までも再構築しなくなるとは…. 古い常識はさっさと捨てなければいけないな.

10月17日

ノートパソコンを持ち歩いていると,ネットワークに接続するたび proxy の設定を切り替えなければならず,かなり面倒. しかも,w3m と galeon を使い分けていると2倍面倒なので,何とかしたい.

Debian では laptop-net パッケージを使うと,cable を接続すると自動的に dhcp してくれるようになる. この時,network の状況に応じて,適当なファイルを上書きすることもしてくれる. ということは,次のような方法を使えば何とかなるのではないか,と考えた.

  1. 適当な local proxy server を設定する.
  2. ネットワーク接続時に local proxy server の上流サーバーを変更する.

まず,apache の proxy サーバーを使う設定を研究. /etc/apache/httpd.conf に以下のように記述すると, 無事に apache を proxy サーバーとして使えるようになった.

LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so

<IfModule mod_proxy.c>
    ProxyRequests On
    Include /etc/apache/proxy.conf
    <Directory proxy:*>
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0
    </Directory>

    # キャッシュした contents に関しては,default charset を追加しないよ
    # うにする.この記述がないと,charset が欠けている全ての contents に
    # 対して,charset=iso-8859-1 を追加してしまう.
    AddDefaultCharset Off
</IfModule>

# キャッシュを少し長く保持する
CacheRoot "/var/cache/apache"
CacheSize 500
CacheGcInterval 24
CacheMaxExpire 168

ただし,/etc/apache/proxy.conf は以下のような内容.

ProxyRemote * http://proxy-server:8080/
NoProxy .local.domain

後は,これを書き換えるように laptop-net を設定すれば良い.

ついでというか,mod_mime_magic も設定した.

# 以下の指定をコメントアウト
LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so

# magic ファイルとして /etc/apache/magic を用いる
<IfModule mod_mime_magic.c>
    MIMEMagicFile magic
</IfModule>
10月21日

squid の cache を namazu で検索」の情報を参考にして,apache の cache を検索するための filter を作成した.作業手順は以下の通り.

  1. apachecache.pl を,/usr/share/namazu/filter/ にインストール.
  2. mknmz -L ja -a --replace=apachecache::replacecode /var/cache/apache

これで,作成されたインデックスを用いて検索を行うと, これまでに訪れたページ限定の検索エンジンとして利用できる.

(追記: 10月31日に namazu の CVS に取り込んで貰った)

11月10日

研究室の Sun Enterprise 450 のキャラクタ端末として X20 を利用するために, USB to Serial 変換器(ELECOM UCS-GT01)を買ってきた.

標準カーネルでは vendor code が未登録で認識に失敗するので, パッチを適用して kernel を作り直した(2.4.20 ではパッチが不要になった). その後,modprobe pl2303 とドライバを組み込んでから, 無事に認識された.usbmgr を使えば,自動組み込みが実現できるのかもしれないが,今回はそこまでは追求していない. さらに,以下のように device file を作成しておく.

# mknod /dev/ttyUSB0 c 188 0

次に,キャラクタ端末エミュレータ(kermit)の設定を行う. 以下の内容の ~/.kermrc を作成.

set line /dev/ttyUSB0
set speed 9600
set parity none
set flow-control rts/cts
set carrier-watch off

これで,kermit を実行すると,端末側の準備は完了. それにしても,本当に久しぶりに kermit を使った. 最初うまく動かなかったので,他のプログラムがないかと思って探してみたのだが, 最近はこんなプログラムの需要は少ないのか,他の選択肢は見つからなかった.


[Top] / [Debian Tips] / [ThinkPad X20] / [作業日誌 , 2002年, , 2004年]