IBM ThinkPad X31 に Debian をインストール

Last Updated at $Date: 2009-03-02 15:34:50 $.

注意事項
目次

作業日誌

(2004年〜)
3月22日

研究室で借りていた Thinkpad X20 の代替機として X31 を購入した.最初に危険な作業から先に処理しようと, BIOS アップデートを行う.現段階なら,壊れても痛くも痒くもないし.

単体の X31 にはフロッピードライブも何も付属してこないので, インストーラを起動するためのメディアが大問題になる. 今回は,X20 に付属していた USB フロッピードライブを流用し, sarge 用に開発されている Debian Installer Beta 3 のイメージを利用してみることにした.

superformat /dev/fd0
dd if=boot.img of=/dev/fd0 bs=512 conv=sync
superformat /dev/fd0
dd if=root.img of=/dev/fd0 bs=512 conv=sync

とりあえず,起動画面にロゴマークが出るようになっていたり,表示が完全に日本語化されていたりして, かなり見映えの良いインストーラになっているという印象を受けた. ただ,パーティションを作成するためのコマンドが, 慣れていた cfdisk から partman に変更されていたために,かなり時間をロスした. 一応は cfdisk も使うことが出来るようなのだが,こちらを利用すると base system のインストールの最終段階で kernel のインストールに失敗してしまった. その時のエラーメッセージは以下の通り.

/usr/sbin/mkinitrd: Cannot determine root device

このバグ報告と同じ問題に遭遇しているようだ. なので,インストールマニュアルの 「6.3.5. Partitioning Your Disks」を良く読んで,正しく partman を利用する必要がある. これ以外は,かなり良い出来だったように思う.以前のインストーラよりも質問項目が少なくなっていて, 短時間にインストールできるように仕上がっていた.

3月24日

インストール作業続き.

  1. Debian がインストールされている他のパソコンについて, 導入されているパッケージのリストを得る.
    # dpkg --get-selections > file
    
  2. これらのパッケージをインストールする.
    # dpkg --set-selections < file
    # apt-get dselect-upgrade
    
    ただし, kernel-image-*, alsa-modules-*, thinkpad-modules-* など,再コンパイルが必要なパッケージは,あらかじめリストから削除しておく. それでも,既に存在しないパッケージが問題になる場合があるので, 以下のようにして個別に対処する.
    # dpkg -l '*' | egrep '^in'
    # echo not-found-package unknown | dpkg --set-selections
    
3月25日

細部の設定作業.

  1. PPP やサウンド,フロッピーを利用するためには,適切なグループに属している必要がある.
    # adduser foo dialout
    # adduser foo floppy
    # adduser foo audio
    # adduser foo dip
    # adduser foo src
    # adduser foo users
    
  2. /etc/sudoers の設定
  3. XF86Config-4 の Files セクションに defoma 用の FontPath が正しく挿入されるように defoma-dexconf モジュールをインストールして, XF86Config-4 を再生成するように以下のコマンドを実行.
    # dexconf
    
  4. /etc/X11/Xmodmap/etc/X11/Xsession.d/40custom_load-xmodmap をインストールして,「半角/全角」キーを Escape キーとして使えるように設定.
  5. Apache を proxy サーバとして設定. ただし,
    LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so
    
    の設定は,/etc/apache/modules.conf にファイルが分割されている上に, 以下のように専用のコマンドで設定する必要がある.
    # /usr/sbin/modules-config apache enable libproxy
    
3月26日

今度も,とりあえずは Debian の標準のカーネルを使っている. いつも通りにスクリプトを使って alsa-modules をインストールしたのだが,サウンドドライバとして ALSA 由来のドライバとカーネル標準のドライバが衝突して,音がうまく鳴らなかった. とりあえず,libesd-alsa0 パッケージの代わりに libesd0 パッケージをインストールして, カーネル標準のドライバを使うようにした.

3月27日

/etc/home のバックアップを取るための外付けハードディスクとして,Logitec の LHD-HA250FU2 を購入.

とりあえず,簡単に使ってみようと思って USB 経由で接続し, バックアップの作成を試みたのだが,とてつもなく遅い. USB1.1 として認識されているらしく,1MB/sec くらいしか出ていないようだ. /home は現在でも 14GB あるので,これでは全くお話にならない.

というわけで,IEEE1394 経由での接続を考える. 何か設定が足りないのかも知れないが,とりあえずケーブルを挿しただけでは認識されない. とりあえず, @IT の記事を参考にして, スクリプトを書き,適当に手作業でバックアップを取ることにする.

3月29日

いよいよ,XFree86-4.3.0 が sarge にインストールされた.

noflushd を upgrade したところ, devfs がマウントされていないので,デーモンが起動できないと文句を言われた. 仕方がないので,devfs を使うように設定を変更してみる.

すると,Fn キーが使えなくなってしまった. Fn + F3 で画面を消灯したり,Fn + F4 でサスペンドさせたり,Fn + F5 で画面を切り替えたり,いずれもできない. apm -s とコマンドを使えば普通にサスペンドできるので,カーネルの問題ではないはず. これでは,プレゼンテーション時に不都合があるから,元に戻すしかないなあ….

しかし,そうするとハードディスクのアクセスが止まらなくなった(かもしれない). X31 は,以前使っていた X20 に比べて, とてもモーターの回転音が小さくなっているから,実は良くわからないのだけれど.

代わりに cpudyn を導入してみることにする. cpudyn は,バッテリー動作時間を延長するために CPU のクロックを変更するためのデーモンなのだが, ハードディスクを監視して spin down させるための機能もあるらしい.導入手順は以下の通り.

  1. 最初に,CPU の動作クロックを変更できるカーネルをインストールする. そのためには,
    1. 2.6 系列のカーネルを使う.
    2. 2.4 系列のカーネルにパッチを適用する.
    と言う2通りの方法がある.しかし, kernel-image-2.6.4-1-686 を試しにインストールしてみたところ,APM 周りが正常に動かなかったので, 後者の方法を採ることにした[*]. パッチの配布元には 2.4.22-pre6 を対象とするパッチしかなかったが, 2.4.25 にパッチを適用して reject された部分は Makefile ばかりだったので, 比較的簡単に修正が可能だった(修正済みのパッチ).
  2. /etc/modulesspeedstep-centrino を追加する.
  3. apt-get install cpudyn
  4. /etc/default/cpudyn に次の2行を追加して,ハードディスクのアクセスを停止するようにする.
    TIMEOUT=20
    DISKS=/dev/hda
    

初期状態では,たとえ AC アダプタが接続されているときでも, 動作クロックは無条件に上限まで引き上げられるわけではなく,常に負荷に応じて調節されるようになっている. これが気に入らない場合は,cpudynd に以下のシグナルを送るようなスクリプトを apmd に実行させれば良いだろう.

kill -USR1 `cat /var/run/cpudyn.pid`
パフォーマンスを優先し,動作クロックを上限まで上げる.
kill -USR2 `cat /var/run/cpudyn.pid`
バッテリーの保持時間を優先し,動作クロックを下限まで下げる.
kill -HUP `cat /var/run/cpudyn.pid`
負荷に応じて自動的に上下するようにする.

しばらく使ってみた感触では,修正する必要はなさそうだったが….

tpctl をインストールしていると, バッテリー動作時には apmiser が起動されるようになっている. これは,CPU の動作状態を監視して ThinkPad の BIOS をコントロールするデーモンだが, cpudyn と機能が重複しているし,私の環境では正しく動いているのかどうかも良く分からない. とりあえず,/etc/default/apmiser を編集して,apmiser を起動しないようにしておいた.

SAVE_LINE_POWER="no"
SAVE_BATTERY_POWER="no"

その後,2.6 系列のカーネルの利用方法について,もう少し詳しく調べてみた. 起動時にカーネルのオプションとして apm=on acpi=off という指定を行えば, 2.4 系列と同様に APM が使えた.また,speedstep-centrino に加えて, cpufreq_powersave と cpufreq_userspace を組み込めば,cpudyn も動くようだ. ただ,power managment の実装の変更の影響なのか, サスペンドにとても長い時間(約1分)かかるようになってしまっているので, 2.4.25 + backport patch に戻した.

3月30日

Apache のキャッシュファイルなどを locate database に登録しないように設定を修正した

4月1日

遅ればせながら,w3m を 0.5 に更新した. 以前から使い続けている bookmark が文字化けするようになってしまったので, 先頭に以下のような META タグを挿入した.

<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">

原因不明なのだが,USB マウスが接続時に認識されないので. hotplugmurasaki に入れ替えた.

4月1日

初めて,X31 を本格的に持ち出して利用してみる. 膝の上で長時間使っていると,やっぱりほんのりと熱くなってくる. 公称では標準バッテリーで6時間ほど保つことになっているが, 軽く使ってみた限りでは,3時間ほどしか保たなさそうだ.

4月3日

八田さんの日記によると, 「ウイルスメールをそのまま bogofilter に学習させてしまうと認識率が落ちる」らしい. そこで,Clam Antivirus を導入してみることにした. メールの振り分けには procmail を使っているので,~/.procmailrc に以下のような指定を加えると,うまく動いているようだ.

:0 HB
* ? sh -c 'clamscan -mi --disable-summary -; test "$?" == 1'
virus/

Clam Antivirus がどれくらい使い物になるかについては, メモが参考になる.

4月8日

現在の常用環境では静的なアドレスの割り当てを受けているので, laptop-net を使って自動的に割り当てを行っている.しかし,同時に murasaki によって DHCP クライアントも起動されてしまっていて,アドレスの設定が無効化されていた. とりあえず,/etc/murasaki/murasaki.call に含まれている以下の設定を削除して対処した.

[net]: net
4月18日

dvipdfmx の設定. /etc/texmf/texmf.d/50dvipdfmx.cnf に以下のような設定を記述してから、 update-texmf を実行.

CMAPINPUTS = .;/usr/share/fonts/cmap/adobe-japan1//;/usr/share/fonts/cmap/adobe-japan2//:/usr/share/fonts/cmap/gs-cjk-resource//
6月4日

サウンドの設定を見直して,alsa に戻した.

  1. sudo apt-get install libesd-alsa0 alsa-base alsa-utils alsa-source
  2. alsaconf を実行して,Intex8x0 を選択.
  3. build-modules スクリプトを利用して, alsa-modules パッケージを作成,インストール.
7月31日

ようやく,ADSL に申し込んだ. 届いた ADSL モデム(ATermWD606CV)に付属している CD-ROM には, Windows 用の簡単設定ウィザードしか同梱されていなかったが, 適当に http://192.168.0.1/ をブラウザでアクセスすると設定できた.

更に,家の中で PC を持ち歩けるように無線 LAN を使い始めることにした. カードは ATermWL54AG である(注: X31 には無線 LAN が内蔵されているモデルもあるが, 私の場合は購入時に予算が足りなかったため,無線 LAN が内蔵されていないモデルを使っている). ちょっと調べてみるmadwifi のドライバが必要なようだったので,以下の手順でインストールした.

cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi login
cvs -d :pserver:anonymous@cvs.sourceforge.net:/cvsroot/madwifi co madwifi
cd madwifi
make
sudo make install

この時,kernel 再構築時のソースツリーが /lib/modules/2.4.26/build/ 以下に残っていれば, 問題なくコンパイルできるのだが,私の場合はソースツリーを削除してしまっていたので, 以下のエラーでコンパイルが失敗した.

make: *** /lib/modules/2.4.26/build: No such file or directory.  Stop.

そこで,必要なソースツリーを以下の手順で復旧してから,再度 make を行った.

cd ~/kernel
tar xjf /usr/src/kernel-source-2.4.26.tar.bz2
cd kernel-source-2.4.26
cp -p /boot/config-2.4.26 .config
make oldconfig
make dep

とりあえず,以下のように設定すると,手動では接続できるようになった.

  1. ADSL モデムで無線 LAN の設定を行う.
    • ESSID の設定(ex. HOME-NETWORK)
    • WEP 鍵の設定(ex. XXXXX)
    • MAC アドレスフィルタの登録
  2. 必要なモジュールを組み込む.
    # modprobe -a ath_pci
    
  3. /etc/network/interfaces に以下のような記述を加える.
    iface ath0 inet dhcp
    	wireless_essid	HOME-NETWORK
    	wireless_mode	managed
    	wireless_key	s:XXXXX
    
  4. 実際にネットワークを有効化する.
    # ifup ath0
    

さて,無線 LAN カードを挿入したら全自動で接続・設定まで完了するようにするには, どうしたら良いのだろうか?

調べてみたところ,無線 LAN カードを挿入すると murasaki によって ath_pci ドライバが自動的に組み込まれるように,いつの間にか設定されていた. どうやら,/lib/modules/2.4.26/modules.pcimap にドライバ情報のデータベースがあって,murasaki はこのデータベースを参照しているらしい. そうすると,ath_pci ドライバが組み込まれた時点で, 適当なスクリプトを実行するように murasaki を設定すれば良いはずだ.

そこで,まず最初にスクリプトを /etc/murasaki/bin/wireless-lan という名前で作成した.

次に,/etc/murasaki/murasaki.call に以下の行を追加して,上述のスクリプトが自動的に呼び出されるようにした.

ath_pci: /etc/murasaki/bin/wireless-lan

これで,無線 LAN カードを挿入すると, 自動的にネットワークの設定・接続が行われるようになった.

なお,無線 LAN の設定を確認するには iwconfig とか iwlist などのコマンドが利用できる.

8月23日

mozilla-firefox-0.9.3 を使おうとしたところ, デザインなどの調節にかなり手こずらされたので,備忘録を残しておくことにする.

  1. sid 版のコンパイルとインストール
    apt-get build-dep mozilla-firefox
    apt-get source mozilla-firefox
    cd mozilla-firefox-0.9.3
    debchange -i
    dpkg-buildpackage -us -us -rfakeroot
    cd ..
    sudo dpkg -i mozilla-firefox_0.9.3-1sarge1_i386.deb
    
  2. JLP の導入.
    firefox のバージョンと JLP のバージョンの整合性の問題などにより, 導入できなかった場合は,about:config に移動して以下の設定をしておく.
    intl.charset.detector
    ja_parallel_state_machine
    intl.accept_languages
    ja, en-us, en
    intl.charset.default
    Shift_JIS
    後の2つは,「Edit」→「Preferences」→「General」→「Languages」からも設定できる.
  3. Tab Browser Extensions の導入.
    1.0RC1 以後は「Edit」→「Preferences」→「Advanced」→「Tabbed Browsing」から,
    • Open links from other applications in: a new tab in the most recent window をチェック.
    • Hide the tab bar when only one web site is open のチェックを外す.
    と設定すると,大体似たような感じのシングルウインドウモードにすることができる.
  4. User Agent Swithcer を導入.日本語対応版も存在するが,特に必要ないと思う.
  5. Language Menu を導入.
  6. Qute というテーマを導入.「表示」→「ツールバー」→「カスタマイズ」とメニューを選択して, 「小さい絵を使う」という項目をチェック.
  7. 通常のフォント設定後,更に以下のコマンドを実行して, XLFD 経由でフォントを使う場合にも同じフォントを利用するように設定.
    env GDK_USE_XFT=0 mozilla-firefox
    
  8. ロケーションバーで Emacs 風のキーバインドが有効になるように, 以下のような設定を ~/.gtkrc-2.0 に記入.
    gtk-key-theme-name = "Emacs"
    
8月24日

気休かもしれないが,ハードディスクとのアクセス時に 32bit I/O を使うように設定してみた. さて,どうなるかな?

# hdparm -c1 /dev/hda
9月1日

なんとなく,動画の再生もできるようにしようかという気になった.

  1. LAME をインストール.
    wget http://unc.dl.sourceforge.net/sourceforge/lame/lame-3.96.1.tar.gz
    tar xzf lame-3.96.1.tar.gz
    cd lame-3.96.1
    dpkg-buildpackage -us -uc -rfakeroot
    sudo dpkg -i ../lame_3.96.1-0.1_i386.deb ../liblame0_3.96.1-0.1_i386.deb ../liblame0-dev_3.96.1-0.1_i386.deb
    
  2. mplayer をインストール.
    wget http://ftp3.mplayerhq.hu/MPlayer/releases/MPlayer-1.0pre5.tar.bz2
    tar xjf MPlayer-1.0pre5.tar.bz2
    cd MPlayer-1.0pre5
    dpkg-buildpackage -us -uc -rfakeroot
    sudo dpkg -i ../mplayer_1.0cvs_i386.deb
    
  3. mozilla-mplayer をインストール.
    sudo apt-get install mozilla-mplayer
    

これで,Goo 動画ニュースなんかも見れるようになったけれど, Mozilla Firefox を使っているとかなり頻繁に落ちるなあ….

9月4日

Fn キーなどが使えるようになるという,tpb をインストールしてみた. 以前,Fn + F7 で画面が切り替わらずに,プレゼンテーションに失敗したことがあるのだが, これで直るかな?

sudo apt-get install tpb
sudo adduser tsuchiya thinkpad
11月3日

Microsoft Office 関係のファイルを,どうしても扱わなければいけないことになってきたので, VMware の設定をもう少し工夫して,日本語を含むファイル名をなんとかすることを考える. 最初は,VMware 付属の samba を以下のように設定してみたのだが, うまくいかなかった(文字化けしたファイル名が表示された).

client code page = 932
coding system = EUC

そのため,Debian で配布されている samba をインストールして, VMware からもそちらを参照するように変更することにする.

vmware-config.pl を実行して, 「NAT は使わず host-only networking のみを使い,VMware 付属の samba は実行しない」 という設定にする.具体的には,以下のように質問に答える.

VMware の仮想マシンから外部への通信は,Linux カーネルに組み込まれている NAT 機能を用いて転送することにする. そのため,/etc/vmware/vmnet1/dhcpd/dhcpd.conf に, 以下の指定を追加しておく.

option routers 192.168.xxx.1;

ついで,samba-3.0.7 の設定. 以下の指定を /etc/samba/smb.conf の global セクションに書くと, とりあえず日本語ファイル名は正しく表示されるようになった.

unix charset = EUC-JP
dos charset = CP932
display charset = CP932
11月20日

これまでずっと fvwm2 を使っていたのだが,このままでは立派な oldtype になってしまうので, Xfce4 や Gnome を試してみることにした.急に移行するのは大変なので,xdm の代わりに gdm を使って, session manager を切り替えられるようにしようと考えた.

そうすると,いきなり日本語入力ができなくなって慌てたのだが, 要は ~/.xsession が呼び出されていないので, kinput2 が起動されていないという問題のようだ.この問題は, 青木さんの HOWTO で紹介されている技法を使うと修正できる. とりあえず,/etc/X11/Xsession.d/80custom_load-ximrc/etc/X11/Xim を用意した.

gnome-terminal で Backspace キーが正しく動作しなくて困った. Backspace/Delete mini-HOWTO に書かれている対策が必要らしい.

11月26日

職場のマシンに無停電電源装置(APC ES-500)を接続した. これまで使っていた無停電源装置はシリアル接続だったのに対して, 今回の装置は USB 接続だったので,いくつか分からないことがあり時間がかかった. 作業手順は以下の通り.

  1. 説明書通りに各種ケーブルを接続.
  2. /etc/modules に以下のエントリを追加して, USB 関連のドライバが起動時に組み込まれるようにする.
    usb-uhci
    hid
    
  3. 以下のコマンドを実行して,必要なデバイスファイルを作る.
    # mknod /dev/usb/hiddev0 c 180 96
    
    devfs を使っている場合には省略できる?
  4. apcupsd パッケージをインストール.
    # apt-get install apcupsd
    
  5. /etc/apcupsd/apcupsd.conf の設定を確認.
    UPSCABLE usb
    UPSTYPE usb
    DEVICE /dev/usb/hiddev0
    
  6. 以下のコマンドを実行して,正しく設定されているか確認.
    # apctest
    
  7. 起動用スクリプト /etc/init.d/apcupsd を, コメントにしたがって編集した上で,apcupsd を起動.
    # vi /etc/init.d/apcupsd
    # /etc/init.d/apcupsd start
    

(以下,2009年3月2日追記)APC の UPS を USB に接続すると,Linux-2.6 + udev 環境下では /dev/usb/hiddev[数字] というデバイスファイルが出現する.他にも hiddev* というデバイスファイルを作るような USB 機器を使っていると,初期化順序によってデバイスファイル名が変化してしまう.

この問題を避けるために,以下のような内容の /etc/udev/rules.d/z25_my-apcupsd.rules を用意して,/dev/apc にシンボリックリンクが出現するようにしておく.

SUBSYSTEMS=="usb", KERNEL=="hiddev*", ATTRS{product}=="APC *", SYMLINK+="apc"

その上で /etc/apcupsd/apcupsd.conf に以下のように書くと良い.

UPSCABLE usb
UPSTYPE usb
DEVICE /dev/apc
3月27日

これまで無線 LAN の暗号化には WEP を使ってきていたのだが,ネットワーク内に Windows マシンが加わったので,より強固な暗号化形式である WPA に移行することにした.

  1. sudo apt-get install wpasupplicant
  2. vi /etc/wpa_supplicant.conf
    ctrl_interface=/var/run/wpa_supplicant
    ctrl_interface_group=dialout
    
    network={
      ssid="HOME-NETWORK"
      key_mgmt=WPA-PSK
      pairwise=CCMP
      group=CCMP
      psk="hogehoge"
    }
    
  3. vi /etc/network/interfaces
    iface ath0 inet dhcp
    	pre-up    /usr/sbin/wpa_supplicant -Bw -iath0 -Dmadwifi
    	up        /usr/share/laptop-net/profile-change ath0
    	down      /usr/share/laptop-net/profile-change ath0 down
    	post-down /usr/bin/killall wpa_supplicant
    

ただし,ESSID ステルス機能は使えなくなってしまった.

9月16日

出張先の無線 LAN を利用しようとすると,JAVA 実行環境が必要になったので, 「でびあんでじゃば」のページを参考に設定した. http://java.sun.com/j2se/ から自己解凍パッケージを download しておいて,以下の手順を実行.

# apt-get install java-package
# make-jpkg j2sdk-1_4_2_09-linux-i586.bin
# dpkg -i sun-j2sdk1.4_1.4.2+09_i386.deb
# cp -p font.properties.ja_JP /usr/lib/j2sdk1.4-sun/jre/lib/font.properties.ja_JP

まだフォントの設定が不完全みたいだけれど,とりあえず JAVA Applet は動くようになった.

その上で,以下の手順で無線 LAN に接続した.

# ifconfig ath0 up
# iwlist ath0 scan
# iwconfig ath0 mode managed essid EXAMPLE key open channel NN
# pump -i ath0

やっぱり面倒だよなあ…. 今更必要なのかどうか分からなけれども,madwifi のドライバを利用するときに, 国別コードを設定するようにした.

# vi /etc/modutils/madwifi
# update-modules

linux-2.6 に移行を試みたところ, murasaki が使えなかったので, hotplug に入れ替えた. その際,以下のように suspend / resume 時に実行されるスクリプトを用意すると, USB マウスがきちんと認識されるようになった.

# vi /etc/apm/scripts.d/hotplug
# cd /etc/apm/suspend.d && ln -s ../scripts.d/hotplug 99hotplug
# cd /etc/apm/resume.d && ln -s ../scripts.d/hotplug 00hotplug
9月21日

参考情報の通りに /etc/X11/fs/config/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType を追加すると,Flash Player で日本語フォントが出るようになった.

12月08日

これまでずっと印刷用デーモンとして LPRng を利用していたのだが,CUPS に移行を試みた.

  1. 関連パッケージをインストール.
    # apt-get install cupsys cupsys-client cupsys-bsd
    
    最後の cupsys-bsd は, 従来の lpr コマンドと互換のあるコマンドを利用できるようにインストール.
  2. 次に,PPD ファイルを入手してこなくてはならない. プリンタメーカーのダウンロードページから入手するか, LinuxPrinting.org で探す. どうしても見つからない場合は,近い型番のプリンタ用の PPD ファイルを探してきて, PPD ファイルの解説を参考に作成する.
  3. 以下のコマンドで,プリンタを追加.
    # lpadmin -p example -P example.ppd -v example-URI -E
    
    接続先(この例では example-URI)を指定するには, プリンタがどのようなプロトコルをサポートしているかを調べる必要がある. ローカル接続であれば簡単だが,ネットワーク接続の場合は CUPS Printing Setup Mini-HOWTO の記述に従い,nmap コマンドで調べると良い.
  4. プリンタの接続先を確認するには,以下のコマンドを実行.
    % lpstat -v
    
    プリンタの設定を確認するには,以下のコマンドを実行.
    % lpstat -l -p
    

とりあえず,手元の PostScript プリンタについては,殆んどトラブルもなく CUPS に移行できた.

従来,両面印刷しようとする時は自前のスクリプトを使って, 両面印刷用の PostScript 命令を追加していたのだが,CUPS ではもう少し楽ができる. 以下のように印刷時にオプションを指定してやれば良い.

% lp -o Duplex=DuplexNoTumble example.ps

なお,どのようなオプションが指定できるかは, lpoptions -l というコマンドで確認できる. ただし,マルチバイト文字を含む PPD ファイルの場合は正常に表示されないようなので, 適当に推測しなければならなかったりする.

EPSON LP-2400 がつながっている環境では, エプソンアヴァシスで配布されている eplaser ドライバを組み込んだ gs-esp をインストールし, linuxprinting.org の PPD ファイルを用いて設定したところ,適切に印刷されるようになった.

  • sarge に付属している gs-esp にも,多少古い版の eplaser ドライバは組み込まれており,LP-2200 には対応している. PPD ファイルを一部改変して LP-2200 相当で印刷させてみたが, LP-2200 と LP-2400 では印刷可能範囲が微妙に異なっているらしく, ほんの一部だけだが欠けてしまった.そのため,上記のように gs-esp を作り直した.
  • エプソンアヴァシスでも PPD ファイルは配布されているのだが, そちらの PPD ファイルを利用すると,前後に余分なプリンタコードが出力されるらしく, 余計な紙が印刷されてしまった.
12月31日

Vmware のキーマップを変更した. ディスクも拡張した. ああ,インターネットって便利.

管理している複数の Debian マシン間でパッケージレポジトリを共有するために ssh メソッドを使うようにした. 通常の http メソッドなどの設定と同様に,/etc/apt/sources.list に下記のように書く.

deb ssh://user@host/path

それで,root ユーザがパスワードなしに遠隔サーバにログインできるようにしておく. 私の場合は,以下のようにした.

  1. ssh-keygen を使って,適当な公開鍵・秘密鍵を作成.
  2. 公開鍵を遠隔サーバの ~/.ssh/authorized_keys に登録.
  3. ssh-add を使って,秘密鍵を手元の ssh-agent に記憶させる.
  4. この段階で,この作業を実行中の一般ユーザは,パスワード入力なしにログインできるようになっているはず.
  5. root は,一般ユーザの使っている ssh-agent に秘密鍵を問い合わせるようにする. 私の場合は,以下のような設定を /etc/sudoers に加えて, sudo コマンドを実行したときに, 環境変数 DISPLAYSSH_AUTH_SOCK は継承するようにした.
    Defaults:ADMIN  env_reset,env_keep="DISPLAY SSH_AUTH_SOCK"
    
  6. このように設定した後で,sudo apt-get update と, sudo を使って update や upgrade を行えば良い.
2月11日

最近,FireFox に必ず入れている拡張.

Windows 環境の場合は,この2つに加えて IE Tab を入れている.

2月25日

デスクトップの /home/ の残り容量が心許なくなってきたので,ディスクを追加した. ただし,元のディスクも使わないともったいないので,LVM で大きな空間に見えるようにした. 「LVM HOWTO」 (和訳)の通りに作業すれば良い. 私の場合の手順は以下の通り.

  1. 新しいディスクを追加.
  2. 必要なパッケージをインストール.
    # apt-get install lvm2 jfsutils
    
  3. 新しいディスクにパーティション(/dev/sdb1)を準備し, パーティションタイプを 0x8e (= Linux LVM) に設定.
  4. /dev/sdb1 に新しい物理ボリュームと, それを含むボリュームグループ vg1 を作成.
    # pvcreate /dev/sdb1
    # vgcreate vg1 /dev/sdb1
    
  5. 新しい論理ボリューム home を用意し, その論理ボリューム上にファイルシステムを作成.
    # lvcreate -L 300G -n home vg1
    # mkfs -t jfs /dev/vg1/home
    
  6. 従来の /home/ の内容を完全にコピーし,ファイルシステムを置き換える.
    # mount /dev/vg1/home /mnt
    # mirrordir /home /mnt
    # umount /mnt
    # umount /home
    # vi /etc/fstab
    # mount -a
    
    この辺で一旦 reboot して,設定が正しいことを確認しておく.
  7. 従来のパーティション(/dev/sda2)のパーティションタイプを 0x8e (= Linux LVM) に変更.
  8. 従来のパーティションに物理ボリュームを作成し,その物理ボリュームを追加.
    # pvcreate /dev/sda2
    # vgextend vg1 /dev/sda2
    
  9. 論理ボリュームを大きくし,ファイルシステムをリサイズする. JFS はオンラインリサイズが可能なので, 以下のように非常に簡単.
    # lvextend -L +20G /dev/vg1/home
    # mount -o remount,resize /home
    

/home/ に使うファイルシステムは,かなり悩んだ. journaling file system でなければならないことは当然だが,それでも, Ext3, ReiserFS, JFS, XFS と4種類も選択肢がある.

まあ,一長一短があって当たり前なんだが. とりあえず,ちょっと天の邪鬼になって,利用例の少ない JFS を採用してみた. これから,ちょっと信頼性が高いサーバを構築しないといけない事案を抱えているので, テストも兼ねてみることにする.

同時に,S.M.A.R.T.(Self-Monitoring, Analysis and Reporting Technology) を使って, ハードディスクの状態を監視しておくことにする. ただ,SATA のディスクを使っているので,最新のバージョンのカーネルとツールが必要のようだ. 「SATA for Linux」(和訳)によると,カーネルは linux-2.6.15 以後,smartmontools は 5.33 以後が必要らしい. どちらも,Sarge には収録されていないので,カーネルは backports.org からインストールし, smartmontools は自前で backport した.

  1. とりあえず,以下のようにオプションを指定して実行すると,情報が取得できることを確認.
    # smartctl -d ata -a -i /dev/sda
    
  2. /etc/defaults/smartmontools を編集して,smartd を起動するように変更.
  3. /etc/smartd.conf を以下のように編集.
    diff -u -r1.1 ./smartd.conf
    --- ./smartd.conf       2006/02/25 07:00:38     1.1
    +++ ./smartd.conf       2006/02/25 07:06:49
    @@ -21,7 +21,7 @@
     # Directives listed below, which will be applied to all devices that
     # are found.  Most users should comment out DEVICESCAN and explicitly
     # list the devices that they wish to monitor.
    -DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner
    +#DEVICESCAN -m root -M exec /usr/share/smartmontools/smartd-runner
     
     # First (primary) ATA/IDE hard disk.  Monitor all attributes, enable
     # automatic online data collection, automatic Attribute autosave, and
    @@ -93,3 +93,5 @@
     # If the test string DEVICESCAN is the first uncommented text
     # then smartd will scan for devices /dev/hd[a-l] and /dev/sd[a-z]
     # DEVICESCAN may be followed by any desired Directives.
    +/dev/sda -d ata -H -m root -M exec /usr/share/smartmontools/smartd-runner
    +/dev/sdb -d ata -H -m root -M exec /usr/share/smartmontools/smartd-runner
    
3月21日

HP Color Laser Jet 3000dn が職場に届いたので,印刷できるように設定.

  1. 必要パーケージをインストール.
    # apt-get install hplip hplip-data hplip-ppds hpijs foormatic-filters
    
  2. IP アドレスを指定して以下のコマンドを実行し,プリンタの URI を得る.
    % hp-makeuri xxx.yyy.zzz.www
    
  3. 以下のコマンドを実行して,プリンタを追加.
    # lpadmin -p example -P /usr/share/ppd/hplip/HP-Color_LaserJet_3000-hpijs.ppd -v hp:/net/HP_Color_LaserJet_3000?ip=xxx.yyy.zzz.www -E
    
  4. なお,何か失敗して,プリンタを削除する場合は,以下のコマンドを実行.
    # lpadmin -x example
    
TODO

設定ファイル集


リンク集


[Top] / [Debian Tips] / [ThinkPad T42p,X31,X20,s30,560 / Portage SS3330]