〜2001年8月上旬〜
linux-users MLで話題になってが、うちのもyになってた。 それほど遅くなってない気もする。
importされた。が、やっぱ*.exeだの*.dllはやめて欲しい。 と思ったら消された。
これ以上持てないから捨てろと言われてしまった。 捨てるくらいなら売りたいんだが、公司はないし、奴はいないし、先は長そうだし、引 き返すのもかなりありそうだし、困りましたな。
ここに移動してたのか。 Win32版を試したらdlxlinuxてのが入ってて簡単に遊べるね。 でも時計がやたらと早く進むのはなぜ? bogomips値もそのせいか0.82とすごく小さい。
結局戻ったら、ワープポイントを発見。 さらに消化してないイベントまであった。戻って正解だ。
MagicPointでプレゼンした資料をWebに載せてくれと言われた。 大した量でもないのでHTMLに手で変換しようと思ったが、 PowerPointじゃないならPDFでもいいと言う。 ふーん、じゃ、PDFに変換してやろう。
すぐに思いつくのはmgp2psしてps2pdfだ。 でもPSファイルはgvでlandscapeにすればいいんだけど、 ps2pdfで変換したPDFファイルはAcrobat Readerでlandscape表示できない *1。
googleでps2pdf landscapeをキーに検索するとやっぱ似たような悩みの人がいる。 それをまとめると
% mgp2ps foo.mgp | pstops "0R(0,21cm)" > tmp.ps % ps2pdf -g8420x5950 tmp.ps foo.pdf
これでAcrobat Readerでちゃんと見れるPDFファイルができた。 ps2pdfは標準入力から読めないのかあ。 シェルスクリプトだから何とでもなるけど。
pstopsはman pstopsすると
PSUtils Release 1 Patchlevel 17
に含まれているらしい。特に意識して入れた覚えもないが、 PlamoだとRequiredなのかな。
xmmsが動かないのはどうもpthreadがらみのような気がして、 glibc 2.2.3を自分でmakeすることにした。 makeかけたのは寝る前だったんだが起きてもまだやってた。 結局これだけ時間がかかった。
make 32116.38s user 4529.07s system 95% cpu 10:41:39.70 total
すごいね。GCC 3.0で一応最後まで通ったけど、立ち上がるかどうか不安だ。 不安なのでmake installはしてない。って意味ないよ、それじゃ。
音質はMP3よりいいというので今頃になって試す。 「ザ☆ピ〜ス!」だと
% cdda2wav -Icooked_ioctl -q -D/dev/hdd -t 1 - | oggenc -o peace01.ogg Opening with wav module: WAV file reader Encoding "peace01.ogg" [ 01.3%] [ 16m22s remaining] /
と出た。1曲16分かあ。見てるとほとんどCD-ROMをアクセスしてない。
Done encoding file "peace01.ogg" File length: 5m 17.0s Elapsed time: 17m 28.6s Rate: 0.3030 Average bitrate: 127.3 kb/s
0.3倍速だ。今日はCPUパワーをより実感する日となった。
% ogg123 peace01.ogg
してみると、全然音が出ない。なぜだ?
% man ogg123 No manual entry for ogg123
えっ、ないの?man oggencはちゃんと出るのに。ソースにはちゃんとあるじゃん。 よくわからんが
% cd ogg123 % make install-man mandir=/usr/local/man
しとく。man ogg123してみると
-d device, --device device Specify output device. See DEVICES section for a list of devices. Any number of devices may be specified.
が怪しい。DEVICESを見るとnull, oss, alsa等がある。 うちの場合はalsaが入ってるのでalsaかossが使えるはず。
% ogg123 -d alsa peace01.ogg
でやっと音がでた。ossでも出る。 毎回指定するのもなんだから~/.ogg123rcに
default_device=oss
を指定。ossなのは特に意味はないが、 ほんとにkernelのossを使うこともあるかもしれないので。
肝心の音質のほうはというと全然わからない。 てゆか1000円のスピーカに期待しちゃいかんよ。
不安だと書きながら無謀にもmake installしてみたわけだが、案の定失敗だ。 /lib/libc.so.6のsymlinkを書き換えた後はもうなんにも動かない状態に。
Linuxにはほとんどstaticにlinkされてるものがないから、 こうなるとあきらめてrebootするしかない。 が、umountもできなければrebootコマンドも動かないからリセットするしかない。 が、リセットしたところで、実は何も状況は変わらない。 以前のglibcに戻さないといけないわけだ。
実は以前の環境も別のパーティションに残してあるので、 こっちからbootすることでアクセス可能だ。 だから、不安だと書きながら暴挙に出たわけだが。 で、こっちからprefixを/mnt/usrにしてインストールしてみたらどうだろうと考えた。 これが大失敗で、prefixだけじゃなくてslibとかも指定しないといけない仕組みになっていて、旧環境も/libを上書きしちまった。いや実に困ったね。
インストールフロッピーで立ち上げて、 CD-ROMにあるglibc2.tgzを展開すればいいと簡単に考えてたら、 ReiserFSにしちゃったからそのパーティションにはアクセスできない。 というわけでまずは旧環境のほうを復活させて、 その後で今使ってる新環境を復旧するという二段階で攻めた。
手順としては
1. NTでPlamo用のインストールフロッピーを作る。 2. これで立ち上げ、旧環境の/dev/hdcのほうをmountする。 $ mount /dev/hdc5 /mnt $ mount /dev/hdc6 /mnt/usr 3. CD-ROMをmount。 $ mount -r /dev/hdd /cdrom 4. 必要なものを展開。 $ cd /mnt $ tar xfvz /cdrom/plamo/a1/glibc2.tgz $ sh install/doinst.sh $ tar xfvz /cdrom/plamo/d1/libc.tgz $ sh install/doinst.sh $ tar xfvz /cdrom/plamo/a1/ldso.tgz $ sh install/doinst.sh
てな感じ。これで旧環境の復旧完。
次に新環境のほうは旧環境を立ち上げてPlamo 2.2をインストール。 ここで、欲を出してinstallpkgでいいじゃんとか思ったのが大きな間違い。 ldso.tgzのinstall/doinst.shは/sbin/ldconfigが存在するときはそれを実行するように書かれている。 ldconfigというやつは余計なお節介というか最新のlibraryがあると勝手にsymlinkまで更新してしまうようだ。 /lib/*-2.2.3.soを消してなかったので、旧環境がまた同じように破壊された。 がーん。
もう一度旧環境を復旧させ、速攻で/lib/*-2.2.3.soを消す。 新環境のほうも消しておく。 あとは旧環境と同じ手順で新環境の復旧させた。 ldso.tgzのdoinst.shを見ると大して意味のあることをやってるわけじゃないので実行しないことにした。 ちなみにインストールフロッピーで立ち上げたときは/sbin/ldconfigは存在しないので問題ない。
なぜ動かないのかいまいちよくわからんのだが、やっぱGCC 3.0のせい? なにしろmakeに10時間かかるからおいそれと実験できないし。うーむ。 あ、
% make check
を省略しているのがそもそもの間違いのような気がする。
ReiserFS用のrescue diskを作るべきだな。 あ、2.4.xのkernelを採用してるdistroのインストールフロッピーでもいいか。
んなことばかりしてたのでFFXは3日もやってない。
松嶋菜々子とBoA。
JMにはすでにあったのか。
-b size, --buffer size オーディオの出力バッファを size K バイト使用します。これは一時的に システム動作が重くなった時の影響を回避する際に便利です。というのも、 このような状況ではオーディオ出力に割り込みが入ることが通常だからで す。バッファのサイズには少なくとも 1024 (つまり 1MB。これは 6 秒分 のオーディオデータに相当します) を指定すべきです。300 以下だとほと んど意味がありません。デフォルト値は 0 (バッファリングが無効)です。
つーわけで、-b 1024に変更。
googleで見つけたんだけど、それ以前に
% locate mpg123.1 /old/usr/local/man/cat1/mpg123.1.gz /old/usr/local/man/man1/mpg123.1 /pub/linux/mpg123-0.59r/mpg123.1 /usr/local/man/man1/mpg123.1 /usr/man/ja_JP.eucJP/man1/mpg123.1.gz
ちゃんとここにあるじゃん。 あ、コマンドがあるかどうか無関係にJMには存在しているのか。
相変わらずいろいろ試している。会社のPentium II 400MHzでは
make 1857.91s user 283.73s system 87% cpu 40:41.03 total
だ。ってまじかよー。gcc 2.95.3を使ったという違いはあるが。 あ、それか原因は。3.0がもの凄く遅いんだな。 てゆかやっぱglibc 2.2.3にはgcc 3.0じゃだめらしい。 glibc-2.2.3-nss.diffも必要らしい。 あまりにもこの辺の情報知らなすぎ。
make checkしてみると失敗。 -Osが悪いのかと思い、-Oにしてもう一度make checkしても失敗。 が、さっきと違うところだ。 まさかと思いそのままもう一度make checkするとまた違うとこで失敗。 がーん。こりゃメモリがいかれてるな。 以前の kernel panic もこれが原因だろう。
更新。
涼しいねえ。このまま勢力を保ち続けて欲しいもんだ。
install時はprefixじゃなくてinstall_rootを使うんだね。
# make install install_root=/mnt
が正解だったのか。とりあえず~/glibcへインストールしてみよう。
% make install install_root=$HOME/glibc % mkdir ~/glibc/bin % cp /bin/{bash,ls} ~/glibc/bin % ldd /bin/bash libncurses.so.5 => /lib/libncurses.so.5 (0x4001a000) libdl.so.2 => /lib/libdl.so.2 (0x4005b000) libc.so.6 => /lib/libc.so.6 (0x4005e000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000) % cp /lib/libncurses.so.5 ~/glibc/lib % sudo chroot ~/glibc /bin/bash # ls bin etc lib sbin usr
よさそう。
やっと立ち上がった。が、localeがおかしい。
Gdk-WARNING **: locale not supported by C library
となってしまう。どこかミスってるなあ。
xmmsもちゃんと起動するようになった。 localeがだめだめだから、やっぱPLAYLISTに日本語が出ない。 setlocaleがNULLを返してるわけか。 うーむ。
インストールが中途半端だったらしい。INSTALLを見ると
% sudo make localedata/install-locales
が必要。これでxmmsも日本語表示されるようなった。
いやbuild directoryを別に用意してる人のほうが多いでしょう。
% echo '#include "foo.h"' >foo.c % touch foo.h % mkdir bar % cd bar % cc -E ../foo.c # 1 "../foo.c" # 1 "../foo.h" 1 # 2 "../foo.c" 2
VC++がそこまで面倒見てくれないとすると、-I$(srcdir)も必要ですね。
今頃になって2巻を見つける。遅いよ。
gdbが動かない原因は
% objdump -p /bin/gdb.exe | grep 'DLL Name' DLL Name: cygitcl30.dll DLL Name: cygitk30.dll DLL Name: cygtcl80.dll DLL Name: tix4180.dll DLL Name: cygtk80.dll DLL Name: COMDLG32.DLL DLL Name: GDI32.dll DLL Name: KERNEL32.dll DLL Name: cygwin1.dll DLL Name: SHELL32.DLL DLL Name: USER32.dll % tar tfvz tcltk-20001125-1.tar.gz | grep dll -rwxrwxrwx cgf/group 82944 2000-12-05 15:04 usr/bin/cygitcl30.dll -rwxrwxrwx cgf/group 35328 2000-12-05 15:04 usr/bin/cygitk30.dll -rw-rw-rw- cgf/group 399360 2000-12-05 15:04 usr/bin/cygtcl80.dll -rw-rw-rw- cgf/group 4608 2000-12-05 15:04 usr/bin/cygtclpip80.dll -rw-rw-rw- cgf/group 10240 2000-12-05 15:04 usr/bin/cygtclreg80.dll -rw-rw-rw- cgf/group 637952 2000-12-05 15:04 usr/bin/cygtk80.dll -rwxrwxrwx cgf/group 204288 2000-12-05 15:04 usr/bin/tix4180.dll
だった。ntsecにしたときはx permissionが必要なんだよね。 Chrisだめじゃん。