GNOME2でのsawfish環境+カスタマイズ(03.2.13)
RedHat8.0でGnome Desktopを指定しておくとGnome2環境になるが、ウィンドウマ
ネージャが昔使っていたsawfishではないものになってしまっていた。どうも
metacityとかいうものらしい。昔苦労してカスタマイズしたsawfishに戻したい。
そこで調べたところgnome2+sawfishにまさしくその議論があり、/usr/bin/gnome-wmを編集して
> for wm in metacity sawfish sawmill enlightenment icewm wmaker fvwm2 qvwm f
vwm twm kwm ; do
を
> for wm in sawfish metacity sawmill enlightenment icewm wmaker fvwm2 qvwm f
vwm twm kwm ; do
にした。
なおテーマ変更、キーアサイン等のカスタマイズはsawfish-uiというコマンド
で行う。startxする前に別マシンのカスタマイズ済 $home/.sawfish/custom
を新マシンのそれにマージ。
以上の変更で無事、使い慣れたキーバインドでsawfishが立ち上がった。
RedHat 8.0でのカーネルアップデート(2.4.18→2.4.20)(200
3.2.12)
メインマシンをP4 2.5GHzのものにし、RedHat Linuxを7.2から8.0に上げた。な
かなか快適。ついでにビデオカードもNVidia Ti4600のものにしたら、xengineが
160000という信じられないスピードに(^^)。
さてカーネルを付属の2.4.18から最新の2.4.20に上げたら、ブート時に
> VFS: Cannot open root device "LABEL=/" or 00:00
> Please append a correct "root=" boot option
> Kernel panic: VFS: Unable to mount root fs on 00:00
と出て止まってしまうようになった。mkinitrdによりRamDiskを作ってもだめ。
Enhanced Linux Developer's List"
によると、"root=LABEL=/"でなくroot=/dev/hda2のように直接指定せよとのこ
と。そこでdfで"/"が/dev/hda3であることをチェックしてからroot=/dev/hda3
と書き直してみたら無事ブート完了。
gcc 3.3による2.4.19カーネルのコンパイル(2002.10.24)
gcc,binutilsを現段階最新の
gcc バージョン 3.3 20021021 (experimental)
GNU ld version 2.13.90.0.10 20021010
にし、このgccでいつものようにkernelコンパイルしようとすると、Intelアー
キテクチャではいろいろつまづいた。
# Athlonアーキテクチャでは問題なかったのだが…
まずstdarg.hがないと言われる。そこでmakeのときは常に
make CC="gcc -I/usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.3/include/" dep
のように枕詞をつける。
さらに、drivers/ide/ide-cd.cのコンパイルでエラーになるので、
drivers/ide/ide-cd.h 440行目の
__u8 short slot_tablelen;
という行を
__u8 /*short*/ slot_tablelen;
に変更する。
このgccは文字列定数内の改行を許さないので、
drivers/scsi/aic7xxx/aic7xxx_osm.c などもエラーになる。
> MODULE_PARM_DESC(aic7xxx, "period delimited, options string.
> verbose Enable verbose/diagnostic logging
> no_probe Disable EISA/VLB controller probing
こういったものは
< MODULE_PARM_DESC(aic7xxx, "period delimited, options string.\n"
< " verbose Enable verbose/diagnostic logging\n"
< " no_probe Disable EISA/VLB controller probing\n"
< " no_reset Supress initial bus resets\n"
に変更する。
また
> asm(
> "
> 云々…
> "
> );
という書き方もプリプロセッサ段階でエラーになる(なぜ?)ので、
arch/i386/kernel/semaphore.c
などは修正が必要。(ifdef CONFIG_SMPの中だったので、私の環境では
関係ないということでこのasm文をそっくり削除して対処した)
さらに、arch/i386/boot/bsetup.sのアセンブルでも失敗するが、
これはgccに-traditionalオプションがついているとダメらしい。そこで
arch/i386/boot/Makefileを編集し、
> bsetup.s: setup.S video.S Makefile $(BOOT_INCL) $(TOPDIR)/include/linux/ve
rsion.h $(TOPDIR)/include/linux/compile.h
> $(CPP) $(CPPFLAGS) -D__BIG_KERNEL__ -D__ASSEMBLY__ -traditional $(SVGA_MODE) $(RAMDISK) $< -o $@
の行から"-traditional"を除く。
< $(CPP) $(CPPFLAGS) -D__BIG_KERNEL__ -D__ASSEMBLY__ $(SVGA_MODE) $(RAM
DISK) $< -o $@
一応これでコンパイルは通り、ブートも成功する。今はその環境で書いている。
ついでにNVidiaドライバも更新したところxengineが5000rpmから5100rpm程度
に速くなった:-)。
ファイルによるRedHatアップデート(2002.8.17)
XFree86関連をRPMでアップデートしていたら、Xが立ち上がらなくなってしまっ
た(笑)。そこで今までRedHatが7.2だったこともあり7.3にアップデートするこ
ととした。
まずは
ftp://ftp.kddlabs.co.jp/10/Linux/RedHat/redhat/linux/7.3/ja/iso/i386/valhalla-i386-disc1.iso
ftp://ftp.kddlabs.co.jp/10/Linux/RedHat/redhat/linux/7.3/ja/iso/i386/valhalla-i386-disc2.iso
ftp://ftp.kddlabs.co.jp/10/Linux/RedHat/redhat/linux/7.3/ja/iso/i386/valhalla-i386-disc3.iso
を取得。8M ADSL環境で1ファイル30分くらいかかった。
これらのファイルを直接
% mount -o loop -t iso9660 valhalla-i386-disc1.iso /tmp/cdrom1
のようにマウントすれば中身は読めるようになり、そこのREADMEにあるように
RedHatディレクトリをe2fsのどこかへコピーしてもよいが、結局インストール
のときにはそれを読み込むことはできず、直接上記のisoファイルを含むディ
レクトリを指定することしかできなかった。(よく考えれば、マウント後その
isoファイルの中をupdatesの内容で書き換えれば、いきなり最新RPMでアップ
デートできる?)
ここの/tmp/cdrom1/images/boot.imgを
% dd if=/tmp/cdrom1/images/ja/boot.img of=/dev/fd0 bs=1440
としてフロッピーに焼き、立ち上げ。
後はCD-ROMでなくHDDからのインストールを指定し、既存Redhatのupgradeをす
るだけ…と思ったら、インストール途中で
> timidity++-2.11.3-1のインストールで失敗
のような意味の事が表示されて異常終了する。
MIDI関係らしいので、まず
% rpm -e timidity
としてシステムから除き、再度インストール。パッケージの選択のところで
timidityのチェックがついていないことを確認し、インストールを続行。無事
終了。
後でisoイメージ中のRPMをチェックしてみると、
% rpm -ivh /RedHat/RedHat/RPMS/timidity++-2.11.3-1.i386.rpm
Preparing... ########################################### [100%]
1:timidity++ エラー: unpacking of archive failed on file /usr/share/timidity/instruments/acpiano.pat;3d5def85: cpio: MD5 sum mismatch
1で終了しました
というエラーになった。
システムが立ち上がった後は
ftp://ftp.kddlabs.co.jp/10/Linux/RedHat/redhat/linux/updates/7.3/en/os/
などから適宜アップデートRPMをダウンロードしてインストール。
libpng.so.2(2002.8.12)
libpng-1.2.2-6のrpmを-Uvh --nodepsで強制インストールしたら、それまでは
いっていたlibpng-1.0.xのSharedライブラリ/usr/lib/libpng.so.2 が消え、
/usr/lib/libpng.so.3となった。古いlibpng.so.2を参照するプログラム(例え
ばxv)が動かないので、
% cd /usr/lib
% ln -s libpng.so.3 libpng.so.2
でだまくらかしたが、libpngが内部バージョンチェックしてしまい動かない。
そこでlibpng.so.2をrpmfindで探してlibpng-1.0.9-1.i386.rpmをダウンロードし、
% rpm2cpio libpng-1.0.9-1.i386.rpm | cpio -t | grep libpng.so.2
./usr/lib/libpng.so.2.1.0.9
% mkdirhier usr/lib (ディレクトリをほる)
% rpm2cpio libpng-1.0.9-1.i386.rpm | cpio -i
こうして ./usr/lib/libpng.so.2.1.0.9 を抽出し、
% cp usr/lib/libpng.so.2.1.0.9 /usr/lib
% cd /usr/lib
% ln -s libpng.so.2.1.0.9 libpng.so.2
とした。
zphotoインストールと改造(2002.8.12)
またもUnixマガジンでzphotoの記事に目がとまり、かっこいいので早速インストールする。
このページにあるように、mingとImlib2とpoptがが別途必要。
最初Imlib2については、imlib2本体とimlib2-develだけをrpmインストールし、
zphotoをコンパイルした。ところが実行しても、jpegの処理ができずエラーで
止まってしまう。imlib2-loader_jpegも必要らしい。結局、デンマークarvinの
imlib2-1.0.6-3.arvin.src.rpmをゲットしrpm --rebuildして、生成されるRPM
を全部インストールしたところ、正常に実行された。
なかなかかっこいいアルバムができたのだが、写真ズーム時のキャプションが
ファイルのタイムスタンプになってしまうのがちょっと悲しい。私のデジカメ
では日付をいちいち入れない設定にしているから。そこでキャプションを別ファ
イルから読み込めるように改造した。ついでに一箇所ファイルポインタのクロー
ズし忘れバグもfixしてある。以下のようなオプションを追加した。
> -c, --comment-file=FILE comment file (UTF-8)
パッチはこちら
ちなみにzphotoはC++で書きたかったそうだが事情によりCで書いたとのこと。
確かにクラス,new,delete等をCで模擬している様子がソースからうかがえる。
あらかじめ作成した
> 写真ファイル名 コメント
> …… ……
のようなフォーマットの「コメントファイル」を読み込んで、時刻の代わりに
コメントを表示する。コメントがない画像については従来どおり時刻が出る。
flash用日本語フォントだが、まず
Ming/Rubyいじり
にしたがってttf2fft, makefdbを作成。
変換元TTFファイルはエンコーディングがUNICODEでないとだめなので、とりあえず
/usr/share/fonts/ja/TrueType/kochi-mincho.ttf
を変換する。これでKochi Mincho.fdbができあがり。
これだけでは日本語化できないので
JaMingのサイト
からjamingをダウンロード・インストール。こうしてからzphotoをリンクしなおす。
さらにUTF-8のファイルを作るために
cjkvconv.plをゲットし、
% cjkvconv.pl -ij -ou8 < コメントファイル $gt; captions.utf8
のようにして変換。この例ではコメントファイルはJISコードで書いてある。
こうしてから
% ./zphoto -o sample -c captions.utf8 -f Kochi\ Mincho.fdb /foo/bar/0?.jpg
とするとこんなアルバムのできあがり。
gccの日本語メッセージ(2002.8.10)
以前からgccの出力する日本語メッセージが変なのが気になっていた。
例えば「符号」はすべて「符合」になっていたり、
int x;
fprintf(x);
とやろうものなら
> 警告: 引数 1 個の `fprintf' を渡しますにより、キャストなしで整数からポインタを作りました
というとんでもない警告を出して来る。
ちなみにLANG=Cなら
> warning: passing arg 1 of `fprintf' makes pointer from integer without a cast
となるところ。
調べると、
/usr/local/share/locale/ja/LC_MESSAGES/gcc.mo
がその翻訳データであることがわかったが、バイナリになっているため
まだソースがあるらしい。さらに調べて、結局gccソースツリー中の
gcc-xxxxxxxx/gcc/po/ja.po
がそのソースだとわかった。で、気になるところを変更して、make・コピーし完了。
先程のメッセージは
> 警告: 1 番目の引数(`fprintf')は、キャストなしで整数をポインタにしています
となる。
パッチはこちら。
ところでja.poの中に
> msgid "conversion from `%T' to `%T' is ambiguous"
> msgstr "%s: オプション `%s' はあいまいです\n"
のように、%文字列の対応がとれていないものが多くあるのだが、
これって大丈夫なの?
Netscapeプラグイン(2002.5.1)
某氏のメモを見ていたらAcrobat ReaderをNetscapeプラグインにするやり方が
わからないとあったので、以前やった方法をメモしておく。Netscapeで
編集→設定→Navigator→サポートアプリケーション→追加 で、
MIMEタイプを"application/pdf"、
拡張子をpdf、
開くプログラムをAcrobat Readerのpathとする。(マウスでアプリケーションを
選ぶとスラッシュがひとつ多くついてしまうらしいので注意)
TrueTypeフォント(2002.4.30)
google/linuxで"redhat truetype"で検索したところこれがヒット。
ここの1〜8の通り行えばよいが、7の前にmkfontdirを実行する必要があった。
ちなみにgfontselはベクトルフォントのみ表示、などフィルタが充実していてグッド。
Migemo-0.32(2002.3.14)
UNIXマガジン2002.2号を読んでいてMigemoの記事に目が止まった。
emacs上で日本語のインクリメンタルサーチがかな漢字変換なしでできるとい
うもの。早速インストール。rubyが必要なのでこれはrubyサイトから取得。
Ruby/Romkan,Ruby/Bsearchは前記Migemoサイトから。
% tar zxvf /tmp/ruby-1.6.7.tar.gz
% cd ruby-1.6.7/
% ./configure
% make
% make install
% rehash
% where ruby
/usr/local/bin/ruby
% ruby --version
ruby 1.6.7 (2002-03-01) [i686-linux]
% tar zxvf /tmp/ruby-bsearch-1.5.tar.gz
% ruby -rrbconfig -e 'puts Config::CONFIG["sitelibdir"]'
/usr/local/lib/ruby/site_ruby/1.6
% cp ruby-bsearch-1.5/bsearch.rb /usr/local/lib/ruby/site_ruby/1.6/
% cp bsearch.rb /usr/local/lib/ruby/site_ruby/1.6/
% tar zxvf /tmp/ruby-romkan-0.4.tar.gz
% cp ruby-romkan-0.4/romkan.rb /usr/local/lib/ruby/site_ruby/1.6/
% tar zxvf /tmp/migemo-0.32.tar.gz
% cd migemo-0.32/
% ./configure
% make
% make install
あとは.emacsに(load "migemo.el")を加えて
% emacs &
すばらしい。
Migemoサイトの「気が利いている点」にもあるが、
"aiueo" で "あいうえお", "アイウエオ"
"abc123=+-" で "abc123=+−"
をインクリメンタル検索できる。ただ「辞書に載っている語」を一つしか検索
できないので、例えば"関係が"は検索できない。でも便利は便利。
nVIDIAドライバで1920x1536@71Hz(2002.3.8)
久々にnVIDIAのLinuxドライバが更新され1.0-2802となった。
導入すると、24bit depthでxengineが4075.37 から 4462.14(それぞれ10回の
平均)とほぼ1割高速になった。
また、ここのサイトのドライバにしてから解像度がどうしても1600x1200以上
にできなかったのだが、インストール後できる
/usr/share/doc/NVIDIA_GLX-1.0/README にあるEDIDの記述を見てようやく解
決した。X起動時にディスプレイがお節介にも最大解像度情報を教えてくるので、
これを無効にすればよい。つまり、/etc/X11/XF86Config-4のDeviceセクションに
Option "IgnoreEDID" "true"
と書くだけ。これで以前のように高い解像度が実現できた。
しかしデフォルトの設定ではどうもちらつく。原因は60Hzしか出ていなかったため。
GTF Modeline generatorで1920x1536、いろいろな周波数のモードラインを作
成し、さらにxvidtuneも用いて試行錯誤した結果、71Hzの設定とした。
非常に満足。
pTeX 3.0.1(2002.3.1)
ASCII pTeX 3.0.1を導入。情報は
http://www.ascii.co.jp/pb/ptex/base/sources.html#platex
手順は
ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/tetex/INSTALL.txt
なお、ここにかかれている
・teTeX-src-1.0.7.tar.gz (teTeX ソースファイル)
・teTeX-texmf-1.0.2.tar.gz (teTeX ライブラリファイル)
は古いので、その代わりに
ftp://www.ring.gr.jp/pub/text/TeX/CTAN/systems/unix/teTeX-beta/
から
teTeX-src-beta-20020208.tar.gz
teTeX-texmf-beta-20020207.tar.gz
を取得した。
・dvipsk
ftp://ftp.ascii.co.jp/pub/TeX/ascii-ptex/dvips/dvipsk-jpatch-p1.5f.tar.gz
により日本語化。少しエラーが出るが、手であて直してOK。
また/usr/local/teTeX/share/texmf/dvips/config/config.psに
p +kanji.map
p +txr.map (これはtxfontsパッケージ)
を追加。
・xdvik
teTeX-beta付属のver 22.40hは日本語化されていないが、
http://bi.appi.keio.ac.jp/~fml/xdvi-jp/20020121/413.html
に
http://www.yo.rim.or.jp/~tnakai/xdvik-22.40g-japanese.patch.gz
という22.40g用パッチの情報があったので、これを流用。
若干rejが出るが、その分は手動パッチでOK。configure.rejは長大だが、行数
のhunkなのでまったくパッチの必要なし。
さらに、
http://www.matsusaka-u.ac.jp/~okumura/texfaq/qa/6610.html
の情報から
ftp://ftp.cs.tohoku-gakuin.ac.jp/pub/TeX/TG-Local-TeX/xdvi-ft2.tar.gz
もあててしまう。
・platex
platex.fmtなどは生成されているのに
/usr/local/teTeX/bin/i686-pc-linux-gnu/platex
が作られないので、そのディレクトリで
% ln -s ptex platex
を手でうっておく。これだけ。
なお上記INSTALL.TXTに従うと、texmfルートが/usr/local/share/texmfから
/usr/local/teTeX/share/texmfになるため、環境変数もそれに合わせて変更。
起動するとこんなバージョンになる:
This is pTeX, Version p3.0.1, based on TeX, Version 3.14159 (JIS) (Web2C 7.3.7)
pLaTeX2e 2001/09/04+0 (based on LaTeX2e 2001/06/01 patch level 0)
Grubの背景画像指定(2002.2.25)
RedHat 7.2にアップグレードしたが、grubがliloの代わりにブートローダとなっ
た。/etc/grub.confを見ると、/boot/grub/splash.xpm.gzというのがgrub起動
時の背景になるらしい。これを適当に自分の画像をxpm化したものに差し替え
たが、絵がきれいに出ない。色を使いすぎていて、1バイトXPMになっていなかっ
たのが原因。試してみたところ、92色までなら1バイトXPMになるらしい。
xpmtoppm xpm画像 | ppmquant 92 | ppmtoxpm | gzip> 背景画像.xpm.gz
でOK。
Gnuplotをiccで(2002.2.25)
gnuplotをiccで最適化コンパイルすると、gnuplot本体はうまくできるが
gnuplot_x11のリンク時にdlopen,dlsymなどがないといわれる。libX11.aがこ
れらの関数をコールしているらしい。そこでコンパイルはicc,リンクはgccで
行うことにしたが、その際
・iccで-wp_ipo(複数ファイルに渡る最適化)は外すこと
・リンク時にgccを使うこと
とするのがミソ。しかしこれでもまだ、__intel_cpu_indicatorなどがないと
いわれるので、
・/opt/intel/compiler50/ia32/lib/libirc*.aも一緒にリンク
したところ問題なくコンパイルでき、動作した。
gccのオブジェクトより速い:-)
OpenOffice(2001.12.14)
Linuxに限らずSun, Windows等様々なOSで動くMS Office的なツールとして
OpenOfficeというものがあると聞いたので早速ダウンロード。
最新バージョンは641b。バイナリキットでもファイルが馬鹿でかく(77MB)、ダ
ウンロードに40分ほどかかった。インストールは展開してsetupを動かすだけ。
途中、javaのインストールディレクトリを訊かれたので/usr/java/jre1.3.1を
指定したら通った。
各ツールは日本語メニューになっていないが、Word風のswriterでは日本語フォ
ントも綺麗に出る。ただし漢字のBold, Italic化ができない。PowePoint風の
sdrawはかなり高機能そうだがちとまだ使い切れない。Excel風のscalcはろく
にマクロが使えない。
なおツールの名前をいちいち入れなくても、
% soffice *.{ppt,doc,xls}
で適当なものが立ち上がる。
microcode(2001.12.5)
Linuxのカーネルをmake xconfigで再構築していたら、
/dev/cpu/microcode - Intel IA32 CPU microcode support(CONFIG_MICROCODE)
という項目があったので、入れてみた。まずこの項目をmoduleとしてコンパイル・
インストール・リブート。ついでmicrocodeサイトからmicrocode_ctl-1.06.tar.gzを取得し、
% make all
% make install
% make device
とした。
となった。また/etc/modules.confに以下を追加。
alias char-major-10-184 microcode
これでパフォーマンスが上がったのかわからないが、
私の11/28の記事でやったのと同じオブジェクトが、
gcc: 19297190 loops → 19916686 loops
icc: 31309775 loops → 33727114 loops
となった。なおmicrocode改変はブートの度にクリアされるので、起動時に自
動で行うようにした方がよい。先程のmake installではちゃんと
% chkconfig --list microcode_ctl
microcode_ctl 0:off 1:off 2:on 3:on 4:on 5:on 6:off
となっている。
オーディオ(2001.12.4)
3PM(意味不明)を主宰していながらLinux環境では音声を聞けないでいたので、
カーネルを現時点最新の2.4.16にするのと同時にオーディオも使えるようにし
た。PCはMSI 850 Proマザー(i850チップセット)のP4マシン、オーディオはオ
ンボードのYMF-752。直接のドライバは見付からなかったが、
http://www.h3.dion.ne.jp/~minehome/linuxin.htm
によるとsndconfigでできるらしい。カーネルの設定は
CONFIG_SOUND=m
CONFIG_SOUND_ES1371=m
CONFIG_SOUND_ICH=m
とした。sndconfigで設定していくと、Linus氏の例の声が聞こえ、完了(^^)。
プレーヤはxmmsからRPMを入れてOK(RedHatには既に入っていたがアップグレード)。
Winamp的で良い。
参考:MP3-Howto(日本語)
なおlspciでは
Multimedia audio controller: Intel Corporation: Unknown device 2445 (rev 02)
と出ている。/etc/modules.confには以下が追加されていた。
alias sound-slot-0 i810_audio
post-install sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -L >/dev/null 2>&1 || :
pre-remove sound-slot-0 /bin/aumix-minimal -f /etc/.aumixrc -S >/dev/null 2>&1 || :
LaTeX2HTML(2001.11.28)
http://www.topstudio.co.jp/~kmuto/software/latex2html/
の情報からLaTeX2HTML JA patch for 99.1をインストールした。しかしスクリ
プト先頭のperlのpathをチェックするのは当然としてもperlスクリプトである
latex2htmlがエラー(too many arguments…)を出す。↓によるとどうやらperl
の新仕様でundef()とrmdir()に複数の引数を許さなくなったらしい。
http://www.tug.org/mail-archives/latex2html/2001-May/001146.html
install-testのときにgifかpngか訊かれたら、pngとしておいた方が無難。
ところが数式部分に一部黒枠(左と下)が出てしまう。数式により、背景が透明
だったり灰色だったりもする。「latex2html 黒枠」で検索したら
http://www.ee.t-kougei.ac.jp/~yukiya/FreeBSD/latex2html.html
があった。しかしうまくいかない。
もっと調べたらhttp://magi.cias.osakafu-u.ac.jp/~kawazoe/unix/jabberwock.html
があった。とりあえず黒枠を除く方法が書いてあったが、どうもこれは仕様と
の結論。ベースラインがわかるからね。ならばcropがなぜ効かないのか…
インテルC++コンパイラの導入(2001.11.28)
数値計算専用Linuxサーバの会社を見ていたらインテルの
フリーFortranコンパイラ(非商用)の話があった。飛んでみると、
C++の非商用コンパイラもあった。早速getしインストール。詳細は、展開される
/opt/intel/compiler50/docs/CRelnotes.htmが参考になる。
csh系ユーザは~/.cshrcに
source /opt/intel/compiler50/ia32/bin/iccvars.csh
を入れておけばよいだろう。但し、このシェルスクリプトの最後の行は
setenv INTEL_FLEXLM_LICENSE=/opt/intel/licenses
でなく
setenv INTEL_FLEXLM_LICENSE /opt/intel/licenses
でないとだめ(バグ)。
% gcc -O6 -DTIME dhry_?.c
% ./a.out 10
19297190 loops
% icc -O3 -wp_ipo -openmp -tpp7 -axiMKW -unroll100 -DTIME dhry_?.c
% ./a.out 10
31309775 loops
これはすごい。dhrystoneはbytebench-3.1に付属のもの。
(02.2.13追記)
P4マシンを使っているのに、-tpp7オプション(P4用最適化)をつけるといつも
icc: Command line warning: overriding '-tpp6' with '-tpp7'
とwarningが出て気になるので、調べてみたら
% /opt/intel/compiler50/ia32/bin/icc.cfg
の一行目に
-tp p6
という記述を発見。これを
-tp p7
に直したらwarningが出なくなった。
Netscape 6.2の導入(2001.11.26)
今までnetscapeの新バージョンをnetscape-i686-pc-linux-gnu-installer.tar.gz
を使ってインストールしようとして失敗していたためRedHat Linux 7.1付属の
Netscape 4.76を我慢して使っていたが、ウィンドウのexposeやresizeをするだけで
頻繁に落ちるのにとうとうブチ切れ、最新版(6.2)導入を志した。このページと同様のインストールメモ
を参考にしたが、最新事情はもう少し楽だった。
% wget ftp://ftp.netscape.com/pub/netscape6/japanese/6.2/unix/linux22/sea/netscape-i686-pc-linux-gnu-sea.tar
% tar xvf netscape-i686-pc-linux-gnu-sea.tar
ユーザ権限でmkdir /usr/local/netscapeができるような状態にしてから
% cd netscape-installer
% ./netscape-installer
でフルインストールを選択し、あっけなくOK。テーマも替えられてグッド。
なお上記はrootにならずに行った方がよい。~/.mozilla/がowner=rootで作ら
れてしまい、ちとはまった。
Canna辞書(2001.11.1)
~/.cannaに(use-dictionary "basho")のように書いていた
basho, keisan, pub等の辞書がいつの間にか認識されなくなっていた。
ルートにならずに
% mkdic -l /var/lib/canna/dic/sup.ctd sup
等とすれば使えるようになった。
SKK+Canna(2001.11.1)
以前書いた手順でcannaを学習させたが、SKK-JISYO.Lもリビジョンが
;; Version: $Id: SKK-JISYO.L,v 1.40 2001/03/07 04:14:07 naoki Exp $
から
;; Version: $Id: SKK-JISYO.L,v 1.82 2001/10/27 00:49:34 minakaji Exp $
に変わっていたので再学習。ついでに
できあがったskk.tから
CM #T35*1 CM
DB #T35*1 DB
のように不要なものを除いて差分を作った。
もし誰かこれを使う場合は、skk.tに対してpatch -Rすれば良いだろう。
(01.12.12付記) りさん(理III)も除いた方がよい。単に「理」が登録されてし
まう。なぜか「文III」はなかった。「まったく」も「全く」と「全」がある
が、後者は不要。
xinetd(2001.10.04)
2001.6.29に書いたようにxinetdは敢えて古いバージョンを使っていたが、
RedHat 7.1 Errataに新しいxinetdがあったのを機会に入れてみた。
今度は設定がchkconfigで見える/出来るようになっていて、実にらくちん。
インストール後
% chkconfig --list
で設定を確認し、
% chkconfig telnet on
などとしてから
% /etc/rc.d/init.d/xinetd restart(或はreload)
で有効化すればよい。
rpm --rebuildでのアーキテクチャ指定(2001.10.03)
せっかく最新のgccを入れているしPentium 4も使っているのだから、
*.i386.rpmをインストールするのでなく、ソース(*src.rpm)からアーキテクチャ
に合わせてバリバリに最適化してからインストールしたい。ただ、そのやり方
がわからなかった。デフォルトの
% rpm --rebuild ソースrpm
ではi386がターゲットになってしまう。
% rpm --rebuild --target i686 ソースrpm
はエラーになる。良い方法はないかと探したら、ここにあった。
~/.rpmrcの記述はここにある通り。但し、~/.rpmmacrosは
%{_arch} %{_target} #i686
のようにせよとあったが、これではエラーになる。
%_arch %{_target} #i686
が正しい。これで、特にオプションもつけずに
% rpm --rebuild ソースrpm
% rpm -ivh できたrpm
で済むようになった。
ブートのトラブル(2001.10.01)
MBMを使って格好良くブートセレクトしようとしたら、Linuxの起動ができなく
なってしまった。原因は単一OS起動時と同様にディスク先頭のMBRにLiloをイ
ンストールしてしまっていたため。正しくは、/etc/lilo.confで
boot=/dev/hdb6のように、パーティションの先頭へインストールしなければな
らなかった。
01.12.4付記: パーティションの先頭ということではなく、/boot/のある場所
(df /bootで出て来るところ)にインストールしなければならない!!
Linuxがブートできなくなってしまったので、別のLinuxマシンで
% mkbootdisk 2.4.10
などとして起動ディスクを作ってブートを試みたが、モジュールをloadするカー
ネルのためか、ちっともbootしない。そこでモジュールを使わないカーネルが
必要と考え、RedHat Linuxをインストールしたときに作られる、
/boot/vmlinuz-2.4.2-2 をカーネルとして使ってみたらうまくいった。手順は
以下の通り。
% fdformat /dev/fd0H1440
% dd if=/boot/vmlinuz-2.4.2-2 of=/dev/fd0
これで起動フロッピーができる。さらにrootにしたいパーティションを
% rdev /dev/fd0 /dev/hdb6
として指定し、問題のLinux Boxに挿入しリセット。問題無く昔と同様にLinux
が起動した。その後、/etc/lilo.confを直して
% lilo
で所期の目的通りブートセレクトもできるようになった。
ちなみにMBMのグラフィックローダではUSBマウスは使えない(涙)。
__buggy_fxsr_alignment(2001.9.10)
Linuxカーネル(2.4.9)のコンパイルで、最後のリンク段階で__buggy_fxsr_alignmentという関数がないというエラーが出た。
同様の報告によるとやはりソースがおかしいらしい。
そこにあったパッチを以下に添付。
diff -crw linux.orig/include/asm-i386/bugs.h linux/include/asm-i386/bugs.h
*** linux.orig/include/asm-i386/bugs.h Tue Jan 30 16:24:54 2001
--- linux/include/asm-i386/bugs.h Sat Feb 17 01:10:33 2001
***************
*** 64,69 ****
--- 64,77 ----
* We should really only care about bugs here
* anyway. Not features.
*/
+
+ static void __buggy_fxsr_alignment(void)
+ {
+ printk(KERN_EMERG "Kernel compiled with FXSR support, data not 16-byte aligned(%d, %d).\n",offsetof (struct task_struct, thread.i387.fxsave), offsetof(struct task_struct, thread.i387.fxsave) & 15);
+ printk(KERN_EMERG "Giving up.\n");
+ for (;;);
+ }
+
static void __init check_fpu(void)
{
if (!boot_cpu_data.hard_math) {
***************
*** 80,86 ****
* Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned.
*/
if (offsetof(struct task_struct, thread.i387.fxsave) & 15) {
- extern void __buggy_fxsr_alignment(void);
__buggy_fxsr_alignment();
}
if (cpu_has_fxsr) {
--- 88,93 ----
diff -crw linux.orig/include/asm-i386/processor.h linux/include/asm-i386/processor.h
*** linux.orig/include/asm-i386/processor.h Tue Jan 30 16:24:56 2001
--- linux/include/asm-i386/processor.h Sat Feb 17 01:37:09 2001
***************
*** 366,371 ****
--- 366,372 ----
/* fault info */
unsigned long cr2, trap_no, error_code;
/* floating point info */
+ unsigned long _pad[2]; /* padding for 16-bytes alignment */
union i387_union i387;
/* virtual 86 mode info */
struct vm86_struct * vm86_info;
***************
*** 381,386 ****
--- 382,388 ----
0, 0, 0, 0, \
{ [0 ... 7] = 0 }, /* debugging registers */ \
0, 0, 0, \
+ { 0, 0 }, \
{ { 0, }, }, /* 387 state */ \
0,0,0,0,0,0, \
0,{~0,} /* io permissions */ \
autofs(2001.7.6)
autofsは大変便利だが、Solarisのように/etc/hostsを読むような設定をする
のが難しい。
Linux-ConsultingのAutofs HOWTOを参考にしてみた。
ルート直下のディレクトリがexportされていることが多いので
% mkdir /net
% cat /etc/auto.master
/net /etc/auto.net
% cat /etc/auto.net
* -fstype=autofs,-Dhost=& file:/etc/auto.netsub
% cat /etc/auto.netsub
* ${host}:/&
のように設定する。auto.netで、*(ホスト)が変数hostに&を経由して代入される
ところに注意。変更を加えたら
% /etc/rc.d/init.d/autofs reload
とする。
% ls /net/存在しないマシン/
とやっても空ディレクトリが見えてしまうのに注意。またルート直下以外(例えば
/export/home/taka/)等はこれではうまくいかないので、追加例外としてauto.net
の*の行の上に書いておく:
% cat /etc/auto.net
salem-home -soft,intr salem:/export/home
* -fstype=autofs,-Dhost=& file:/etc/auto.netsub
これらを混在させ、さらにシェルの自動補完も行えるようにするには、別途ディ
レクトリを用意してそこへシンボリックリンクを張っておけばよい:
% mkdir /nfs /nfs/マシン1 /nfs/マシン2 /nfs/マシン3 …
% ln -s /net/マシン1/ディレクトリ1 /nfs/マシン1
% ln -s /net/マシン1/ディレクトリ2 /nfs/マシン1
…
% ln -s /net/マシン2/ディレクトリ1 /nfs/マシン2
% ln -s /net/マシン2/ディレクトリ2 /nfs/マシン2
…
USBマウス(2001.7.2)
下記システムで、カーネルを最新の2.4.5-ac22にしたところ、Xでマウス(USB)
が使えなくなった。デフォルトのカーネルでは使えるので、XF86Config-4の問
題ではなくモジュールが足りなかっただけのよう。
Web記事や(Linuxソース)/Documentation/input/input.txt(以前はusb/input.txtだったみたい)を参考にすればOK。具体的には
Input core supportにて
Input core support→y
Mouse support→y
Character devices→Miceにて
Mouse Support→y
PS/2 mouse support→n
USB supportにて
USB Human Interface Device (full HID) support (CONFIG_USB_HID)→m
USB HIDBP Mouse (basic) support (CONFIG_USB_MOUSE)→m
とする。
xinetd(2001.6.29)
今日は誕生日。
xinetdはrpmfindサイトで探した最新rpm(2.2.1-3)ではろくにファイルが入ら
ないので、それをrpm -eで取り除いてから、
www.xinetd.orgのダウンロードサイトにある最新rpm(xinetd-2.1.8.8p3-1.src.rpm)を取得し、
% rpm --rebuild (RPM-src)
% rpm -ivh (できたRPM)
を行った。
さらに
% cp /usr/share/doc/xinetd-2.1.8.8p3/sample.conf /etc/xinetd.conf
して、内容をエディット。/usr/etc/in.rlogindを/usr/sbin/in.rlogindのように
変え、loginやtelnet等、受け付けたいservice欄に
disable=no
を加える。defaults欄のonly_fromや
bind = 127.0.0.1
はコメントアウト。あとは
% /etc/rc.d/init.d/xinetd start
で起動できる。うまくいかなければ
% /usr/sbin/xinetd -d
でデバッグ表示させてみると原因がわかる。xinetd.confを書き換えたら
% /etc/rc.d/init.d/xinetd reload
を実行のこと。
次回ブート時に実行されるよう、
% chkconfig xinetd on
もしておく。
なお必要に応じ
telnet-server, wu-ftpd, rsh-server
などのrpmも導入のこと。(サーバとして/usr/sbin/in.*dが必要。)
RedHat 7.0→7.1アップデート(2001.6.28)
RedHat7.0を半年ほど使っている間にglibcなどを更新していたが、最近
・2.4.5系の新カーネルではktermやsendmailがseg.faultをおこす
・2.4.4系の旧カーネルでは上記は大丈夫だが、1〜2日でハングする
ようになってしまったので7.1にアップデートした。
sendmail, ktermも2.4.5-ac19で立派に動作するようになった。
ただnetscapeで日本語が入力できない。(ペーストはできる)
(6/29追記)マニュアルによると.Xdefaultsに
Kinput2.conversionEngine: canna
が要るようだ。
パーティションテーブル破壊(2001.6.26)
とあるP4マシンにHDDを増設しそこへRedHat7.1をインストールしたところ、
Windowsの入っていた別HDD(複数)のパーティションテーブルも壊してしまった。
とりあえずSCSI(50GB)の方(Windowsでは1ドライブとしていた)は
% sfdisk -D -C6081 -H255 -S63 /dev/sdc -O sdc-partition-sectors.save
としてうまく直った。(sfdiskの判断するCHSジオメトリは間違っていた)
IDEは30Gを8G+22Gのように切っていたのだが、とりあえず1パーティションとして
下記で取得したら読めるようになった。(多分1パーティションのままではまずい)
% sfdisk -D -C59303 -H16 -S63 /dev/hda -O hda-partition-sectors.save
CHSの値は(sfdiskが判断する値ではなく)BIOS画面で表示されるとおりにする
ことと、-DでDOSオーバーヘッドを入れるのがポイントらしい。
gcc 3.1(2001.5.29)
gcc v3を入れたかったのだが、CVSがファイヤウォール内からうまく使えなかったため
あきらめていた。最近とあるところから取得できたので構築を試みた。
概要は奥村さんのページでわかる。
構築に先立ち、binutilsを新しく(2.10.90→2.11.90.0.8)
した。結構頻繁にバージョンが上がっているようだ。
あとは奥村さんのページに従って処理。
途中でエラーが出たときは、ソースをチェックするよりも、作業ディレクトリ
がgccソースと違うところであることを確認し、一旦make distcleanや作業ディ
レクトリでrm -rf *をして、configureからやり直すとよいようである。
40分ほどかかってコンパイルが終了。make -k checkはうまくできなかった。
install後、以下のようになった。
% gcc -v
Reading specs from /usr/local/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs
Configured with: /usr/local/src/gcc/configure --enable-shared --enable-languages=c++,f77
Thread model: single
gcc version 3.1 20010528 (experimental)
自動生成フォントのディレクトリ(2001.5.7)
xdviはPKフォントを必要に応じて自動生成するが、このディレクトリがデフォルトでは
/var/tmp/texmf/…になっているため、定期的に掃除されてしまう。
これを避けるには、
/usr/share/texmf/web2c/texmf.cnf
の
VARTEXFONTS = /var/tmp/texfonts
という行を
VARTEXFONTS = /usr/share/texmf/texfonts
のように書き換える。
Cannaを賢く(2001.3.16)
cannaを使って10年弱になるが、kinputやmuleで漢字入力をしていて、あまりの語彙の貧困さに
ブチ切れた(遅すぎ)。
cannaへの辞書変換に従って、skkの辞書(名詞)をcanna辞書へ導入してみた。
SKKプライマリサイトの辞書ディレクトリよりSKK-JISYO.L を取得。
同様のツールディレクトリより
skktools-1.0.tar.gz を取得。
この中のskk2listを使って
% ./skk2list SKK-JISYO.L | ./meishi | ./list2canna >/var/lib/canna/dic/user/user/skk.t
% mkdic -l /var/lib/canna/dic/user/user/skk.t skk
後は最初に挙げたページに従って作業。
「揚浜式塩田」が一発で出た。すばらしい。
起動時エラーメッセージ(2001.2.6)
Linuxを入れたときからずっと起動時に
hda: IBM-DPTA-353000, ATA DISK drive
hdb: ATAPI CDROM 48X, ATAPI CDROM drive
hdc: IRQ probe failed (0xfffffff8)
hdc: IRQ probe failed (0xfffffff8)
hdc: no response (status = 0x0a), resetting drive
hdc: IRQ probe failed (0xfffffff8)
hdc: no response (status = 0x0a)
hdd: IRQ probe failed (0xfffffff8)
hdd: IRQ probe failed (0xfffffff8)
hdd: no response (status = 0x0a), resetting drive
hdd: IRQ probe failed (0xfffffff8)
hdd: no response (status = 0x0a)
のように、接続されていないhdc,hddのエラーが出ていた。
Web検索したページを参考に、/etc/lilo.confに
append="hdc=none hdd=none"
を加えて解決。
tmpwatch(2001.2.6)
atimeを記録しない場合アクセスが軽くなってよいのだが、
/etc/cron.daily/tmpwatchが/tmpや/var/catmanのアクセスされないファイル
を再帰的に消してしまうことが問題になった。結局tmpwatchの中身を下記のよ
うに全部コメントアウトした。
#/usr/sbin/tmpwatch 240 /tmp /var/tmp
#[ -d /var/cache/man ] && /usr/sbin/tmpwatch -f 240 /var/cache/man/{X11R6/cat?,cat?,local/cat?}
#[ -d /var/catman ] && /usr/sbin/tmpwatch -f 240 /var/catman/{X11R6/cat?,cat?,local/cat?}
atime(2001.1.4)
Linux軽量化ページに従って、/etc/fstabの/パーティションのマウントオプションに"noatime"を追加。
アクセスした時間を記録しないというもの。(書き込み時間は記録される)
Linux Upgrade(続 2000.12.28)
アップデート後、dvipsが漢字出力できなくなった。そのままにしてあったのだが
世紀末ということで一念発起して原因を追ってみた。結果は単純で、
/usr/share/texmf/dvips/config.psの末尾に
p +kanji.map
を入れるだけだった。
Linux Upgrade
使っているマシン(Red Hat 6.0)で、ftpでとってきたrpmファイルが「rpmコマ
ンドのバージョン(=3)が古いのでインストールできない」と言われた。当然rpm ver4
自体のrpmも入れられず、ソースからのmakeもなぜか失敗。
そこで、雑誌付録のRed Hat 7.0にアップグレードしてみた。作業はCDブート
の画面に従うだけで簡単。ほとんどのリソースは昔のままでよかったし
netscapeが最新の4.75になり、かつ自然に日本語が表示・入力できるようになっ
たのがうれしい。ただし、
・tkでフォントが出なくなる(tcl/tk 8.4a2をソースからインストールしたら、
linuxのmake xconfigはOKになった。だがtkpostageはだめ)
・fileutilsが4.0から4.0xになり、ls -lの出力が微妙に異なった
・mhの動作がmime対応でなくなっていた。mh-6.8.4-JP-3.03をソースからコンパイル。
・IntelのNIC eepro100のモジュールがコンパイルできなくなっていた。
・/etc/sendmail.cfが書き換えられてしまったのでメール発信ができなくなった
等、ローカルな問題があった。また、
・autofsを入れて、amdを殺した。(ようやくmount version older…というメッセージが出なくなった)
・inetを殺し、xinetdを入れた(設定が細かく面倒…)
Telnet, FTP(00.12.1)
別マシンにLaser5 Linux 6.2を入れてみた。Red Hatベースの日本語
ディストリビューションである。ところがこのマシンに対してtelnet,ftpが
できない。ここ
でやっと説明を見付けた。結論はrpmインストール。
rpm -ivh /mnt/cdrom/RedHat/RPMS/inetd-0.16-4.i386.rpm
cp -f /etc/inetd.conf.rpmnew /etc/inetd.conf
/mnt/cdrom/RedHat/RPMS/telnet-server-0.16-6.i386.rpm
/mnt/cdrom/RedHat/RPMS/wu-ftpd-2.6.0-3.i386.rpm
intel e100 moduleの修正(00.11.07)
Kernelを2.2.18pre19にしてINTEL純正Pro100ドライバVer1.3.14をインストール
しようとすると、depmod -aのところで__bad_udelayがunresolvedと言って怒られる。
カーネルソース(include/asm-i386/delay.h)で
#define udelay(n) (__builtin_constant_p(n) ? \
((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \
__udelay(n))
としているのに、どこにも__bad_udelayが定義されていないのが問題。
昔のソースでは起きなかったことから、2.2.15付属の同名ヘッダの記述
#define udelay(n) (__builtin_constant_p(n) ? \
__const_udelay((n) * 0x10c6ul) : \
__udelay(n))
をe100.hに加えてコンパイル。これで問題無く使えるようになった。
(00.11.22付記)
現時点最新のVer 1.3.20では上記問題はなくなったが、今度は
e100.h:265: conflicting types for `dma_addr_t'
/usr/include/asm/types.h:44: previous declaration of `dma_addr_t'
というエラーが出る。実質的に同じ定義を繰り返していただけなので、
上記265行目をコメントアウトした。
(00.11.28付記)
1.3.20で問題はなくなったという記述は嘘だった。やはり1.3.14のときと同様
の#defineをつけないといけない。
バックアップ(00.10.27)
せっかく高信頼性・大規模RAIDがあり、高速なNFSでつ
ながっているのだから、これをバックアップに利用しない手はない。
ここを参考に、Gnu Tarでバックアップをとってみた。
tar -g /nfs/zetta/raid/usr/taka/inclist -zcvf - . > /nfs/zetta/raid/usr/taka/bk`date +%y%m%d`.tar.gz
こうするとinclistにバックアップ情報が書き込まれ、
bk001027.tar.gz
のような日付つきで保存される。
XFree86を3.3.5から4.0.1へ(00.9.1)
/usr/X11R6のバックアップを作っておいてから、4.0.1バイナリを取得し、
/usr/X11R6にすべて展開(tar xvBf)。このときXは終了しておくこと(実は最初終了せずにやってXが落ちちゃった)。
次いでldconfigを実行するのがミソ。古い/etc/X11/XF86Configは殆んど使いものにならないのでxf86configで作り直し。後で適宜ModeLineなどを旧Configからペーストする。
MGA純正ドライバも取得し、READMEに従ってmodules/driverに置く。
これだけでほぼ完了。
ethがいっぱい(00.8.25〜9.1)
NICにIntel EEPro100+ Managementを使っており、この民間最新ドライバを使ったら
いつの間にか以下のようになってしまった。
% ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
inet addr:129.*.*.* Bcast:129.*.*.* Mask:255.255.248.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8849327 errors:0 dropped:0 overruns:0 frame:0
TX packets:2617509 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x2000
eth1 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x4000
eth2 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x6000
eth3 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0x8000
eth4 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xa000
eth5 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xc000
eth6 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11 Base address:0xe000
eth7 Link encap:Ethernet HWaddr 00:D0:B7:22:29:6B
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:11
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:330843747 errors:0 dropped:0 overruns:0 frame:0
TX packets:330843747 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
これでもネットワークは普通に使える。結局対処がよくわからず、intelのサイ
トでたまたま見付けたINTEL純正ドライバVer1.1.1に入れ換えた。
モジュールでしか入れられない(カーネルにリンクできない)とのことなので、
srcディレクトリでmake installし、
/etc/conf.modulesに
alias eth0 e100
を加えた。これだけでは起動後ネットワークが認識されなかったので、
手で
% modprobe e100
% ifconfig eth0 129.*.*.*
と打った。また/var/log/messagesに
Sep 1 18:05:24 kr kernel: 129.*.*.* sent an invalid ICMP error to a broadcast.
と頻繁に出るようになってしまったので、
/etc/rc.d/rc.localに
echo 1 > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
を追加。
また上記modprobe, ifconfigの2行も、汚いが/etc/rc.d/rc.sysinitに追加。
NURBS++のインストール(00.8.18)
http://yukon.genie.uottawa.ca/~lavoie/software/nurbs/のNURBS++をインストールしようと
したところ、./configure;makeではexampleが使えずImageMagickをサポート
しないと
ImageMagick5のdevel.rpmを入れてしまったがNURBS++はどうやら
ImageMagick4でないとコンパイルできないらしい。
そこで4のソース(ImageMagick-4.2.1.tar.gz)をひっぱりだしてきて$home/tmpに展開し
./configure --enable-lzw --enable-16bit-pixel --enable-shared
し、それから
./configure --with-magick --with-magick-libs=$home/tmp/ImageMagick-4.2.1/magick/.libs --with-magick-include=-I$home/tmp/ImageMagick-4.2.1
最後の"-I"がポイント。
c++ -v -g -O2 -fno-implicit-templates -lSM -lICE -L/usr/X11R6/lib -lXt -lX11 -lXext -o .libs/randomImg randomImg.o ../../image/.libs/libmatrixI.so ../../matrix/.libs/libmatrix.so -L/home/taka/tmp/ImageMagick-4.2.1/magick/.libs ~/tmp/ImageMagick-4.2.1/magick/.libs/libMagick.a -lXpm -ltiff -lpng -ljpeg -lz -lttf -lbz2 -lm -lc -Wl,--rpath -Wl,/usr/local/lib
/,/usr,/usr/localの持ち主が12293:11に(00.8.17)
本来のroot:rootでなく、不明な持ち主UID12293,GID11になっていた。
辿って行くと/usr/local/pgccにいきついた。
pgccのバイナリを/から直接インストールしたのが原因。
Perl5でpsmultiが動かない(00.8.15)
以前使っていたSolarisにはPerl4が入っていたので問題無く
使えていたのだが、今のLinux BoxにはPerl5しかなく、そのままでは動作
しなくなった。ちょっと直しても-nodecorが効かない。と思ったら
PSファイルの整形にあった情報でOKとなった。一応そのページにあるdiffを添付。
--- pspp-util.pl.orig Mon Apr 12 19:55:55 1993
+++ pspp-util.pl Tue Aug 4 10:04:21 1998
@@ -90,3 +90,3 @@
- if ( $line =~ /@{([^\s}]+)}/ )
+ if ( $line =~ /\@{([^\s}]+)}/ )
{ $leading=$`; $macro=$1; $trailing=$';
@@ -103,3 +103,3 @@
- elsif ( $line =~ /@([^\s]+)(\s+|$)/ )
+ elsif ( $line =~ /\@([^\s]+)(\s+|$)/ )
{
--- format-raw.pl.orig Mon Sep 29 14:12:17 1997
+++ format-raw.pl Tue Aug 4 15:00:22 1998
@@ -249,5 +249,5 @@
foreach(@DocExport)
- { $value=eval "\$$_{\"$File\"}";
+ { $value=eval "\$${_}{\"$File\"}";
if ( $value =~ /^\s*$/ )
- { $value=eval "\$$_{Default}";
+ { $value=eval "\$${_}{Default}";
if ( $value =~ /^\s*$/ )
--- format-standard.pl.orig Mon Sep 29 14:12:17 1997
+++ format-standard.pl Tue Aug 4 15:00:46 1998
@@ -261,5 +261,5 @@
foreach(@DocExport)
- { $value=eval "\$$_{\"$File\"}";
+ { $value=eval "\$${_}{\"$File\"}";
if ( $value =~ /^\s*$/ )
- { $value=eval "\$$_{Default}";
+ { $value=eval "\$${_}{Default}";
if ( $value =~ /^\s*$/ )
samba経由でWindowsからとってきたファイルの
パーミッションが-rwx-r--r--(実行属性つき)になっている
/etc/smb.confの[global]欄に
create mode = 0644
を追加。(あれ?)
NDTPD+Lookupによる辞書引き環境
今まではdserverとdiclookup(mule)という古い環境に甘んじていたが、一念発
起して最新の環境を構築してみた。muleから辞書が使えるのは以前と同じだが、さ
すがに随分便利になった。
lookupホームページ
NDTPDホームページ
設定はUNIX上で電子辞書を活用しようで全部わかる。
FreePWING
暗い背景色を使っている場合のコツ
ただ、diclookupとlookupを同居させる場合、単純にやっただけでは
Symbol's function definition is void: nil
と表示され起動に失敗しちゃうのにはハマった(diclookupとlookupがともに同
名のLISPモジュール"ndtp"を使うため)。そこでdiclookupの方のndtp.elの名
前やLISPファイルの中のrequire,provideの"ndtp"を全て例えば"ndtpx"に変更
する。これでdiclookupもlookupもどちらも使えるようになる。
X上のmuleから使う場合、発音記号等の外字が出ず、色々調べてだめだっ
たのだが、Lookup FAQ-5.外字表示についてで簡単に解決。
デフォルトでは1つのクライアントからのアクセスしか許可されないので
/usr/local/etc/ndtpd.confで
max-clients 0
などのようにしておく。(これで無制限) ただしbegin book …endの中(副ディ
レクティブ)に書いても意味がない。外(主ディレクティブ)に書くこと。
netscapeの文字
何のせいかわからないが
% xfd -fn "-*-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1"
は"-misc-…"フォントが表示されるのに、
% xfd -fn "-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1"
は何も表示されない(エラーにはならない)という状況になった。
お蔭でnetscapeのメニュー文字が見えなくなってしまったので、
/usr/lib/netscape/ja_JP.ujis/Netscape
に対して、対症療法だが
sed s/-misc-fixed-medium-r-normal--14-\*-\*-\*-\*-\*-iso8859-1/-\*-fixed-medium-r-normal--14-\*-\*-\*-\*-\*-iso8859-1/g
を施した。
26ドット漢字フォント
その他18ドット漢字フォント、丸文字14,16,28ドット、これらに対応する半幅フォント
http://dennou-k.gaia.h.kyoto-u.ac.jp/arch/cc-env.old/Xfonts/
に全部ある。
落ちるnetscape
私の環境ではnetscapeが頻繁に落ちる。Bus error netscape inputmethodを
キーに検索し、http://www.imasy.or.jp/~mistral/netscape/FreeBSD/XIM.html
を参考に、kinput2をv3.1alpha1に上げ(ftp://ftp.sra.co.jp/pub/x11/kinput2/)、
(私はcannaを使うのでKinput2.confで#define UseCannaとしてからxmkmf,etc.)
Xリソースを
Netscape*mainForm.toolBox.urlBarItem.urlBarMainForm.urlComboBox.Text.fontList:-misc-fixed-medium-r-normal--14-*-*-*-*-*-iso8859-1
とした。いまのところ大丈夫そうである…
Windowsディレクトリのマウント
SMBファイルシステムをONにしてカーネルを作っておくと、よそで動いている
Windowsディレクトリがマウントできる。予め共有パスワードをWindows側で設
定しておくこと。以下ではWindowsマシンchablisの共有名Cのドライブをマウ
ントしている。
% smbmount //chablis/c /mnt/chablis_c/
Password: (入力する)
% df /mnt/chablis_c
//chablis/c 29279744 7846400 21433344 27% /mnt/chablis_c
rmmodエラーメール
moduleをloadできないようにカーネルを構築すると、
From: root (Cron Daemon)
To: root
Subject: Cron <root@kr> /sbin/rmmod -as
rmmod: Function not implemented
のようなメールが10分おきにやってくる。これにはkmodを以下のように
編集するとOK。
% cat /etc/cron.d/kmod
# rmmod -a is a two-hand sweep module cleaner
#*/10 * * * * root /sbin/rmmod -as
↑コメントアウト
cf.
http://www.uwsg.indiana.edu/hypermail/linux/kernel/9907.0/0516.html
swap Caps and Ctrl keys
(どこかからの引用)
コンソールだと /usr/lib/kbd/keytables に
% cat cl2c-d.map
keycode 29 = Caps_Lock
keycode 58 = Control
とかいうファイルを作っておいて rc.local で
loadkeys defkeymap jp cl2c-d
とかして呼び出せばいいです.(j106 があれば jp の代わりに j106 でいいし)
Xでは .xinitrc で
xmodmap .xmodmaprc
とかやって
xmodmap で .xmodmaprc とゆーファイルを呼び出す?
.xmodmaprc の書き方は man xmodmap でそのものずばりの書式が書いてます.
------------
RedHat Linux6では下記でもOK。
& /usr/X11R6/lib/X11/XF86Config の、
& # If you'd like to switch the positions of your capslock and
& # control keys, use:
& XkbOptions "ctrl:swapcaps"
& をコメントアウトする方法もあります。
smbfs
(どこかからの引用)
>Linux 1.3.98 のソースを入手し make config したところ、
>smbfs がサポートされていることを初めて知りました。
>
>どなたか、smbfs のマウント方法を教えてください。
>
>smbfs は、Windows95 などの共有ディレクトリのことを
>指すのだと思うのですが、smbfs についてのドキュメントを
>知らないのでよくわかりません。
ftp://ftp.gwdg.de/pub/linux/misc/smbfs/smbmount-1.3.tar.gz
に smbmount/smbumount コマンドが入っており、これが利用できます。
smbmount //hostname/service /mnt -u501 -g100 -n
てなふーにすかっとmountできます。
--------
(02.2.5追記)
RedHat Linux 7.xでは最初から
/lib/kbd/keymaps/i386/include/ctrl.inc.gz
というファイルが用意されているので、一時的に変更するなら
% loadkeys defkeymap jp ctrl.inc
でOK。恒久的に設定するなら、/etc/sysconfig/keyboardで
KEYTABLE="jp"
の行を
KEYTABLE="jp ctrl.inc"
とする。