いつの間にやら,kernel-2.2.14 が登場しているらしい.入れ替えたいが,暇が….
久しぶりに,apt-get upgrade
しようとしてはたと気が付く.
potato って freeze したんですよね….ということは,
freeze された時にバグが残ってたパッケージは全部削除されてしまったはず….
チェックしてみる.やっぱり.というわけで,upgrade 諦める.
何せ,まともに TeX の環境が使えるのが,研究室の WS とノートしかないという現状と,
修論締め切りまであと20日という状況を考えると,とても危ない橋を渡る気にはなれません.
東芝 Linux users メーリングリストでも話題になっていたのですが,SS3330 や SS3380 などの SS3300 系列のキーボードはチャタリングが発生しやすいらしく,ちょっと使いにくい場合があります. 例えば,Emacs を使用中に C-y を入力すると, 何もしていないのに複数回押してしまったことになったりして苦労します. このような場合は,以下のコマンドを実行すると症状が改善するかも知れません.
kbdrate -d 500 -r 30.0
ただ,このコマンドを実行すると,キーボードの反応が悪くなったように感じられるので, もう少し適切な値に調節する必要がありそうです.
久しぶりに,apt-get upgrade
を実行すると,
200個以上のパッケージが置き換えられてしまった.更に,
/etc/apt/sources.list
を書き換えるのを忘れていたので,woody
になってしまった.うーん.しばらくは potato で暮らすつもりだったのに….
更にうっかりと pcmcia-modules を hold にしておくのを忘れていたので, ネットワークカードが使えなくなってしまった.それにしても, 手元で調節したカーネルに併せてコンパイルしたカスタム・パッケージが入っているのに, どうして上書きされてしまうのだろうか.何か,設定に間違いがあるような気がするなぁ.
カーネルを再構築した.
なぜか,depmod -a
を実行すると大量の Unresolved Symbols
が警告されたので,何回かパッケージを作り直し,/lib/modules/2.2.14/
の下を大掃除する必要があった.
前述の理由により,カーネルパッケージの入れ替えを繰り返していたところ, いきなりブートしなくなったので,かなり焦った.が,レスキューディスクを使って再起動し, 以下の手順でブートローダを再インストールすることによって何とか回復した.
mount /dev/hda1 /target cp -p /target/boot/vmlinuz-2.2.14 vmlinuz cp -p /target/boot/vmlinuz-2.2.13 vmlinuz.old sed s,/boot/,/target/boot/, /target/etc/lilo.conf > lilo.conf lilo -C lilo.conf
ようやく内蔵モデムが使えるようになった. 色々試行錯誤したので,無茶苦茶に疲れました.具体的な手順は次の通り.
CONFIG_SERIAL=m CONFIG_SERIAL_EXTENDED=y CONFIG_SERIAL_MANY_PORTS=y CONFIG_SERIAL_SHARE_IRQ=y CONFIG_SERIAL_MULTIPORT=y
ltinst
というコマンドを実行するか,
そのスクリプトと同じことを手動で行う.
ltmodem.o
を適当な場所に配置する.
unzip linux568.zip cp -p ltmodem.o /lib/modules/`uname -r`/misc
mknod /dev/ttyS14 c 62 78 chown root /dev/ttyS14 chgrp dialout /dev/ttyS14
/etc/modules.conf
を適当に設定する.
私は以下のように設定しておいて,内蔵モデムが必要になる度に
modprobe -k serial
を実行している.
alias char-major-62-78 ltmodem install ltmodem insmod -f ltmodem pre-install ltmodem modprobe -k serial post-install ltmodem ln -sf /dev/ttyS14 /dev/modem post-remove ltmodem rm -f /dev/modem
Debian を使用している場合は, ドライバのバイナリ配布からモジュールパッケージを作成するためのパッケージを作ったので, これを利用すると楽にインストールできる.
シリアルドライバをモジュールとしている場合は,特に注意が必要で, シリアルドライバを先に組み込んでおかないと,すぐにカーネルがフリーズしてしまう. おかげで,昨日からのたったの1日で10回以上もリブートと fsck を繰り返してしまった.
それにしても一応は動作するものの,あまりにも不安定. その上,普通のモデムカードよりも通信速度が遅いときた. そんなわけで,とりあえず常用は無理だと思われる.
遅ればせながら,Emacs-20.6 をコンパイルした.
それから,SEMI を使うために必要な metamail をインストールし,mimencode
を
mmencode
という別名で使えるようにシンボリックリンクを張って誤魔化した.
cd /usr/local/bin && sudo ln -s ../../bin/mimencode mmencode
キーボードのチャタリングの症状が改善されず,非常に使いづらい(この問題は, 後にパッチのミスであることが判明した.7月20日の記述を参照). そこで,パッチに指定されている 定数を次のように書き換えて kernel の再構築を行うことにした.
#define CONFIG_CHATTER_INTERVAL 90000
遅ればせながら,Emacs-20.7 をコンパイルする.
tar xzf emacs-20.7.tar.gz tar xzf leim-20.7.tar.gz cd emacs-20.7 gzip -dc ../emcws-20.7-20000614.gz | patch -p1 -E CFLAGS='-O2 -DX_I18N_INHIBITED -pipe -mcpu=pentiumpro -march=pentiumpro' ./configure --with-x-toolkit --with-wnn6 --with-wnn-includes=/usr/include/wnn --with-wnn-libraries=/usr/lib --with-line-space make sudo make install sudo chown -R root:staff /usr/local/share/emacs/20.7
ようやくにしてサウンド関係の設定を行った.
と言っても,必要そうなパッケージを導入して,alsa-modules
をコンパイルするだけで,あっけなく音が鳴ったんだけど….
この記事が大変参考になる.
ii alsa-base 0.5.8b-2 ALSA driver common files ii alsa-modules-2 0.5.8b-2+custo Advanced Linux Sound Architecture (drivers) ii alsa-source 0.5.8b-2 ALSA driver source ii alsa-utils 0.5.8-1 Advanced Linux Sound Architecture (utils) ii alsaconf 0.4.3b-2 ALSA configurator ii alsautils 0.5.7-2 Advanced Linux Sound Architecture (utils) ii libasound1 0.5.8-1 Advanced Linux Sound Architecture (libraries)
alsa-modules-2.2.x
パッケージを作成してインストール.
alsaconf
を実行し,ESS Maestro2 を選択する.
こうすると,/etc/modutils/alsa
が生成される.
この設定によって,以下のようにドライバが組み込まれる.
snd-pcm-oss 16840 0 (autoclean) snd-pcm-plugin 12840 0 (autoclean) [snd-pcm-oss] snd-mixer-oss 4308 0 (autoclean) [snd-pcm-oss] snd-card-es1968 2140 0 snd-es1968 11164 0 [snd-card-es1968] snd-pcm 28760 0 [snd-pcm-oss snd-pcm-plugin snd-es1968] snd-timer 8064 0 [snd-pcm] snd-mpu401-uart 2244 0 [snd-es1968] snd-rawmidi 9112 0 [snd-mpu401-uart] snd-seq-device 3400 0 [snd-rawmidi] snd-ac97-codec 23904 0 [snd-es1968] snd-mixer 22608 0 [snd-mixer-oss snd-ac97-codec] snd 35564 1 [snd-pcm-oss snd-pcm-plugin snd-mixer-oss snd-card-es1968 snd-es1968 snd-pcm snd-timer snd-mpu401-uart snd-rawmidi snd-seq-device snd-ac97-codec snd-mixer] soundcore 2564 4 [snd]
少し悩んだのは,Sound-HOWTO
の記述にしたがって,/dev/sndstat
を調べようとした時だが,
これは,/proc/asound/sndstat
が正しいようだ.
それから,サンプルになる MP3 ファイルか何かがないと,動作確認できないので,かなりしんどい.
ヘッドフォンで聞く分には何とか許せる音質だが,内蔵スピーカで鳴らすのは,ちょっとつらい. まるで安物のラジオみたいな音がする. まあ,この機械を購入したときは, サウンドのことなんか何も考えてませんでしたからねぇ….しょうがないでしょう.
ところが.一度 suspend してしまうと,うまく音が鳴らなくなることが判明した.
snd_card_es1968
および snd_es1968
をメモリから一旦取り外し,mixer などの設定を元に戻すと再び音が鳴るようになるようだ.
# -- suspend alsactl -f foo store rmmod snd-card-es1968 rmmod snd-es1968 # -- resume insmod snd-es1968 insmod snd-card-es1968 alsactl -f foo restore
従って,この処理を自動化すれば,安定して利用できると考えられる.
apmd
を使うと,APM
の状態が変化したときに特定のコマンド(Debianでは
/etc/apm/apmd_proxy
)を実行することが出来るので,
これを利用するとうまく行きそうなのだが.
wmtuxtime
のボタンを押して suspend させる場合
apmd
によって状態変化が検出されるよりも速く,suspend が実行されてしまうようだ.
そのため,/etc/apm/apmd_proxy
は,resume 時にしか実行されない.
SoftwareSuspend
関数で何らかの処理を呼び出す必要がありそうだ.
apm -s
と標準のコマンドを実行して suspend させる場合
標準の apmd とは,どうも相性が悪いようだ. この方法での suspend を試みたところ,2回目の resume の後でキーボードが正常に入力できないようになった. ただし,これが本当に apmd のせいかどうかは,今のところ良く分からない.
昨日,「標準の apmd とは相性が悪い?」と書いたが,
これはどうも間違いのようだ.蓋を閉じて suspend させた場合には,標準の
apmd に基づく制御が行われているらしい形跡があるので,apm -s
による手動の suspend のみがおかしいというのは,あまり説得力がない.
もっとも,この部分のソースコードをきちんとあたってみないと,正確なところは分からないが.
でも,今日はもう眠いので,また今度.
キーボードのチャタリングの症状が改善されないことに不審を感じて, パッチを検討してみると,マクロの名前が間違っていることを発見した. 道理でチャタリングの間隔を調節しても改善されないわけだ…. この問題を修正したパッチを適用して kernel を再構築すると, ほぼ完全にチャタリングを抑止できるようになった. これで随分と使い易くなりそうだ.
DHCP で研究室によく接続して使うようになったので,改めてセキュリティの点検をしてみると, SMTP に反応してしまっていることが気になった. よそのホストから SMTP でメールを受け取ることは有り得ないはずなので,
という2通りの対策が考えられる. 本当は,後者の方が正しいのだろうけれど,今回は安直に対策することにした.
/etc/inetd.conf
を編集して,smtp を受け付けないようにする.
/etc/init.d/exim
を起動時に実行しないようにする.
これをしておかないと,起動時に自動的に daemon として exim が実行されてしまい,
対策の意味がなくなる.
sudo update-rc.d -f exim remove
なお,きちんと対策する場合は tcpserver や tcpwrapper がある.
USBマウスを使ってみようか,などと設定を始める. 「USB Mania」や SS3380V の設定例を眺めて,少し勉強する.
sudo mknod /dev/usbmouse c 10 32
/etc/modutils/usb
を作成して,
/etc/modules.conf
を更新する.
sudo update-modules
sudo apt-get install imultimouse
/etc/XF86Config
を編集.
通常は "ZaxisMapping 4 5"
と設定するはずだが,
私の環境ではホイールの回転が逆方向になったので,入れ替えている.
Section "Pointer" Protocol "IMPS/2" Device "/dev/mumse" ZaxisMapping 5 4 EndSection
sudo /etc/init.d/xdm restart
(linux-2.2.18 で USB ドライバの構成が大幅に変更されたため, この設定は無効になった)
gnuplot に日本語化パッチを適用してみる.
apt-get source gnuplot cd gnuplot-3.7.1p1 tar xzf ../gnuplot3.7.1+1.1.9.patch.tar.gz patch -p0 -E <gnuplot3.7+1.1.patch
このまま,普通にパッケージを作ろうとすると, 日本語化パッチに含まれているバイナリファイルが邪魔になって, source package を作成できないという問題が発生する. そこで,以下のように uuencode して保存しておき,build 時に展開するようにしておく.
gzip -9c gp+/plus.dvi | uuencode plus.dvi.gz > gp+/plus.dvi.gz.uue gzip -9c gp+/plus.pdf | uuencode plus.pdf.gz > gp+/plus.pdf.gz.uue patch -p1 -E <gnuplot-ja-rules-patch debchange -i dpkg-buildpackage -rfakeroot -us -uc sudo dpkg -i ../gnuplot_3.7.1p1-4.1_i386.deb echo gnuplot hold | sudo dpkg --set-selections
更に,hold 指定をして上書きされないようにしておく.
急に FAX を送らなければいけないことになった.
そんな場合でも,Debian なら安心.
apt-get install efax-ja
して,/etc/efax.rc
を編集するだけで,無事に FAX が使えるようになった.
でも,PS だけではなく,DVI も自動認識してほしいなぁ….
fax make
sendfile
fax send
XXXYYYY sendfile.00?
fax receive
recvfile
fax view
recvfile.00?
dvi2ps では変換できない .dvi ファイルに遭遇したため,重い腰を上げて dvipsk-ja の設定に取り掛かった.が,うまく設定できない.
で,dvipsk-ja がうまくいかないものだから,今度は dvi2ps の設定をいじってみた.
以前の設定では,フォントの使い方が気に入らなかったのだが,
/etc/texmf/dvi2ps/fontdesc
をコメント通りに以下のように修正するだけで望みの設定が得られた.
やっぱり Debian は偉い.
--- fontdesc.orig Fri Nov 3 19:12:44 2000 +++ fontdesc Fri Nov 3 19:07:43 2000 @@ -25,14 +25,14 @@ # NTT jTeX fonts # #fontdesc //fonts$kpse/ntt-bitmap -fontdesc //fonts$kpse/ntt-vflkanji -#fontdesc //fonts$kpse/ntt-bikanji +#fontdesc //fonts$kpse/ntt-vflkanji +fontdesc //fonts$kpse/ntt-bikanji # # pTeX / ASCII jtex # #fontdesc //fonts$kpse/a2n -fontdesc //fonts$kpse/asc-vflkanji -#fontdesc //fonts$kpse/asc-bikanji +#fontdesc //fonts$kpse/asc-vflkanji +fontdesc //fonts$kpse/asc-bikanji ########################################################################## # @@ -40,6 +40,6 @@ # # if you want to use BlueSky postscript cm fonts, uncomment the next line. # -#fontdesc //fonts$kpse/fonts-psf +fontdesc //fonts$kpse/fonts-psf fontdesc //fonts$kpse/fonts-bitmap fontdesc //fonts$kpse/generate
それから,dvi2ps を使う場合は dvi2ps -i dvips
というオプションを追加すると良い,ということも教えてもらった.
vi で日本語を含むファイルを編集しようとすると,日本語部分が正常に表示されない.
あれ,nvi-m17n
をインストールしてあるはずなのに,と確認してみると,
% dpkg -S `which vi` dpkg: /usr/bin/vi が見つかりません.
おお,これが噂に聞く alternative システムという奴か.
でもって,man update-alternatives
とマニュアルをじっと読む.うーん…,訳わからん.
# update-alternatives --display vi vi - status is auto. link currently points to /usr/bin/nvi /usr/bin/elvis-tiny - priority 10 slave vi.1.gz: /usr/man/man1/elvis-tiny.1.gz /usr/bin/nvi - priority 30 slave vi.1.gz: /usr/share/man/man1/nvi.1.gz /usr/bin/nvi-m17n - priority 30 slave vi.1.gz: /usr/share/man/man1/nvi-m17n.1.gz Current `best' version is /usr/bin/nvi.
これを単純に nvi-m17n に変更したいだけなのだが….
と思ったら,答えは簡単で update-alternatives --config vi
と対話的に実行すれば良いだけでした.
この前,正常に動作しなかった dvipsk-ja について. 結局,必要な仮想フォントをインストールする必要があることが分かった. 例によって,手抜きなパッケージを作成して, インストールした.
[debian-users:25200] の記事を見て noflushd をインストールしてみる. しかし,glibc の移行にまだ不安があるので,以下の手順で再構築してから導入した.
apt-get source noflushd cd noflushd-2.0 dpkg-buildpackage -rfakeroot -us -uc sudo dpkg -i ../noflushd_2.0-1_i386.deb
更に,[debian-users:25204]
の記事を参考にして,
/etc/init.d/sysklogd
を編集しておく.
これで,ハードディスクのアクセスが止まってくれるようになった.
後は,スピーカーの部分からホワイト・ノイズが漏れているのが,気になるなぁ.
しかし,コンパイルし直したものがこれだけ増えてくると, きちんと列挙しておかないと,訳が分からないことになりそうだ. 現時点では,多分,以下のパッケージだけだと思うんだけどな.
Emacs21 の pretest も始まっているというのに, 今更という気もしないではないが, emcws patch を適用したパッケージの作成を試みた.
apt-get soucee emacs20 cd emacs20-20.7 gzip -dc ../emcws-20.7-20000614.gz | patch -p1 -E
この時,Debian 固有の変更によって emcws patch が部分的に reject されるので, それを上書きするためのパッチをあてる.
patch -p1 -E <../emcws20-debian-patch autoconf find -name '*.orig' -o -name '*.rej' | xargs rm -f debchange -i dpkg-buildpackage -rfakeroot -us -uc dpkg -i emacs20_20.7-3.1_i386.deb dpkg -i emacs20-el_20.7-3.1_all.deb echo emacs20 hold | sudo dpkg --set-selections echo emacs20-el hold | sudo dpkg --set-selections
作成したパッケージを使うと,
理由は不明だがモード行の表示がおかしくなってしまった.
そのため,対症療法的なコードを ~/.emacs
に挿入した.
(add-hook 'after-make-frame-functions (lambda (frame) (set-face-inverse-video-p 'modeline t frame)))
何となく XEmacs に浮気してみたくなったので build を始めたのだが, Canna ライブラリがない,と言われてこける. Wnn6 を使っているので,Canna を今更入れる気にはなれないが, この際だから,この前公開された WXG の試用もついでにしてみる気になり, ライブラリはインストールすることにする.
apt-get source libcanna1g canna-3.5b2 dpkg-buildpackage -rfakeroot -us -uc 2>1 | tee ../log cd .. sudo dpkg -i libcanna1g_3.5b2-29_i386.deb libcanna1g-dev_3.5b2-29_i386.deb apt-get source xemacs21-basesupport cd xemacs21-basesupport-2000.10.23 dpkg-buildpackage -rfakeroot -us -uc 2>1 | tee ../log cd .. apt-get source xemacs21-mulesupport cd xemacs21-mulesupport-2000.10.23 cd .. apt-get source xemacs21 xemacs21-21.1.12 dpkg-buildpackage -rfakeroot -us -uc 2>1 | tee ../log cd .. sudo dpkg -i xemacs21-mule-canna-wnn_21.1.12-2_i386.deb xemacs21-support_21.1.12-2_all.deb xemacs21-bin_21.1.12-2_i386.deb xemacs21-mulesupport_2000.10.23-1_all.deb xemacs21-basesupport_2000.10.23-1_all.deb xemacs21_21.1.12-2_all.deb sudo dpkg -i xemacs21-basesupport-el_2000.10.23-1_all.deb xemacs21-mulesupport-el_2000.10.23-1_all.deb xemacs21-supportel_21.1.12-2_all.deb
WXG を試用してみた.
alien --to-deb wxg-1.0b-1.i386.rpm
dpkg -i wxg_1.0b-2_i386.deb
install -o root -g root -m 755 wxg /etc/init.d/ update-rc.d wxg defaults 95 5
なかなか,誤変換が少なくて面白い変換器である.
そろそろ標準の 64MB では窮屈に感じるようになってきたので,メモリを増設しようと思い立った. しかし,純正品(PA2066UJ)はあまりにも高い(80000円)なので, サードパーティーの製品を探索してみると,以下の3社の製品が見つかった.
ではと,これらを取り扱っている通販店を探してみると,これがなかなか見つからない. やはり,1年半も前の製品のオプションは儲からないからだろうか…. 結局,キャットワークスで, ハギワラシスコムの製品を取り寄せて貰うことにした. しかし,値段が異様に安い.大丈夫なんだろうか.
実家に帰ってきた.で,とある赤帽なOSが入っていた実家のPCを, 速攻で Debian に入れ替えた.昔の Debian のインストーラと言えば, 多数あるディストリビューションの中でも最悪に近いレベルの分かり難さだったが, potato では劇的に改善されていて,正味2時間弱で作業は完了した. 何と言っても,dselect を殆んど使わなくても良いのが大きいでしょう.
しかも,つい最近に別の場所でインストールした時のパッケージリストをそのまま使ったので, 更に楽勝だった.
dpkg --get-selections >selections
dpkg --set-selections <selections
apt-get dselect-upgrade
自前の task package を作成する,という方法も考えられる. 現時点のパッケージリストを取り出して,そのパッケージ間の依存関係を解析し, 最小限度のパッケージに依存するような,専用 task package を作成するスクリプトは, 多分かなり簡単に書けるだろう.その task package に, ホスト毎に調整が必ず必要になる設定ファイルも含まれるようになっていると更に良い. 次に,幾つかのマシンを同時に管理しているような場合には, そのマシンの数だけ生成された task package をまとめて, 必要なパッケージリストを作成し,専用 CD-ROM を作るようなスクリプトまで出来たら,もっと良い. これが実現すれば,ネットワーク的に不便な場所にあるPCでも,かなり簡単にメンテナンスできるようになるよね.
[Top] / [Debian Tips] / [SS3330] / [作業日誌 1999年, 2000年, 2001年]