June 30, 2005
[PC環境改善] colorgcc
colorgcc なるソフトウェアがありました.
スクリーンショットが示すように,gcc の出力にエスケープシーケンスを付加するものです.
早速インストールしてみます.
% sudo emerge colorgcc % ls -lF /usr/lib/colorgcc/bin/ 合計 0 lrwxrwxrwx 1 root root 17 6月 30 01:55 c++ -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 cc -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 g++ -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 gcc -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 i686-pc-linux-gnu-c++ -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 i686-pc-linux-gnu-g++ -> /usr/bin/colorgcc* lrwxrwxrwx 1 root root 17 6月 30 01:55 i686-pc-linux-gnu-gcc -> /usr/bin/colorgcc*
なお,colorgcc 自体は短い Perl スクリプトのようです./usr/lib/colorgcc/bin にインストールされたようなので,環境変数 PATH を設定して完了です.
無事完了と思ったら... 警告メッセージの色がエラーメッセージと同じ色で出力されます.
そうです.原因は LANG=ja_JP.eucJP です.メッセージが日本語で出力されたため,colorgcc が用いた正規表現で一致しなかったのです.
colorgcc 自体を書き換えてもいいんですけど,バージョンアップの度に直すのも面倒なので,環境変数 LANG=C としてから colorgcc を呼び出すラッパースクリプトを PATH の通った場所に置くことにしました.
#!/bin/sh
LANG=C /usr/lib/colorgcc/bin/`basename $0` $*
このスクリプトのファイル名を g++ として,次はシンボリックリンクを作成します.
% ln -s g++ gcc % ln -s g++ c++ % ln -s g++ cc
まだ終わりではありません.このままではこのラッパースクリプトが無限に呼び出されてしまうので,~/.colorgccrc を編集し,呼び出すコンパイラの場所を指定します.
g++: /usr/bin/g++ gcc: /usr/bin/gcc c++: /usr/bin/c++ cc: /usr/bin/cc
これで解決しました.
June 27, 2005
[雑記] Logitech MX-518 注文
注文してしまいました.
[Linux] HL-DT-ST DVDRAM GSA-4163B + growisofs
HL-DT-ST DVDRAM GSA-4163B + growisofs v5.21 on gentoo-sources-2.6.11-r11 で DVD+R を焼く時にいつも失敗して DVD+R をコースターにしていました.
メディアはリコーの 8 倍速対応 DVD+R なのですが,いつも growisofs が 12 倍速で書き込もうとして,次のエラーが出るのです.
$ growisofs -Z /dev/hda=hogehoge.iso -speed=8 /dev/hda: "Current Write Speed" is 12.3x1385KBps. :-[ WRITE@LBA=220h failed with SK=5h/ASC=21h/ACQ=02h]: Input/output error
ドライブは 8 倍速でしか書けないはずなのに,何故 12 倍速で書き込もうとするのか分かりません.何気なく dvd+rw-mediainfo を実行してみると...
$ dvd+rw-mediainfo /dev/hda INQUIRY: [HL-DT-ST][DVDRAM GSA-4163B][A104] GET [CURRENT] CONFIGURATION: Mounted Media: 1Bh, DVD+R Current Write Speed: 12.0x1385=16620KB/s Write Speed #0: 12.0x1385=16620KB/s Write Speed #1: 8.0x1385=11081KB/s Write Speed #2: 8.0x1385=11080KB/s Write Speed #3: 4.0x1385=5540KB/s Speed Descriptor#0: 02/2295103 R@4.1x1385=5730KB/s W@12.0x1385=16620KB/s Speed Descriptor#1: 02/2295103 R@4.1x1385=5730KB/s W@8.0x1385=11081KB/s Speed Descriptor#2: 02/2295103 R@4.1x1385=5730KB/s W@8.0x1385=11080KB/s Speed Descriptor#3: 02/2295103 R@4.1x1385=5730KB/s W@4.0x1385=5540KB/s READ DVD STRUCTURE[#0h]: Media Book Type: A1h, DVD+R book [revision 1] Media ID: RICOHJPN/R02 Legacy lead-out at: 2252864*2KB=4613865472
メディアに 12 倍速と書いてあるようです... growisofs はこれを信じて 12 倍速で書き込みを行ったようですが,当然,ドライブ側が追い付かないのでエラーになる,というわけです.
ここで不思議なのは,growisofs に -speed=8 を渡しているにも関わらず,12 倍速で書き込みを行っていることです.そこで -speed=1 としてみることに... するとどうでしょう.
$ growisofs -dvd-compat -Z /dev/hda=hogehoge.iso -speed=1 Executing 'builtin_dd if=hogehoge.iso of=/dev/hda obs=32k seek=0' /dev/hda: "Current Write Speed" is 4.1x1385KBps. 1114112/4603723776 ( 0.0%) @0.0x, remaining 481:58 1114112/4603723776 ( 0.0%) @0.0x, remaining 688:31 1114112/4603723776 ( 0.0%) @0.0x, remaining 963:56 17694720/4603723776 ( 0.4%) @3.5x, remaining 73:25 36143104/4603723776 ( 0.8%) @3.9x, remaining 42:07 54624256/4603723776 ( 1.2%) @3.9x, remaining 33:18 (snip) 405471232/4603723776 ( 8.8%) @3.9x, remaining 15:00 (snip) 4600070144/4603723776 (99.9%) @3.9x, remaining 0:00 builtin_dd: 2247920*2KB out @ average 3.8x1385KBps /dev/hda: flushing cache /dev/hda: closing track /dev/hda: closing disc
あれぇ,-speed=1 で 4.1x1385KBps
ですか.さらに驚くべきことに,この書き込みは 15 分で完了しています.DVD 1 枚は 120 分ですから,4 倍速で書き込んだ場合,30 分かかるはずです.15 分で完了しているということは... 実際には 8 倍速で書き込んでおり,growisofs に渡すオプションと,growisofs の出力が実際とは異なっていることになります.
ちなみに -speed=2 としても 4.1x1385KBps
となり,当然 15 分で書き込みが完了します.-speed=3 以上は試してません.
今まで 6 枚の DVD+R をコースターにしてきたので,書き込み方が分かっただけでも喜びは大きいです...
[Linux] Linux の I/O スケジューリング
確かにうちの Gentoo Linux マシンでも,ディスク高負荷時に重くなりました.mkisofs 実行中のサウンド出力が途切れます.
今使っている sys-kernel/gentoo-sources-2.6.11-r11 カーネルのパラメータに次のようなものがあります.
Device Drivers ---> Block devices ---> IO Schedulers ---> <*> Anticipatory I/O scheduler < > Deadline I/O scheduler < > CFQ I/O scheduler
Anticipatory I/O scheduler
が選択されていたので,試しに CFQ I/O scheduler
に変えてカーネルをコンパイルしてみました.
すると,同じように mkisofs で巨大なディスクイメージをごりごり作っている間でもサウンドが途切れませんでした.
June 22, 2005
[Gentoo] GTK-Qt Theme Engine
GTK-Qt Theme Engine なるものがあるようです.
The GTK-Qt Theme Engine is a project allowing GTK to use Qt widget styles.
とのことで,ちょっとインストールしてみます.
# ACCEPT_KEYWORDS=~x86 emerge gtk-qt-engine
現在コンパイル中です.GTK+2 のテーマが変化してくれるといいですねぇ.
コンパイル終了しました.
KDE Control Center (kcontrol) の「外観 & テーマ (Appearance & Themes)」項目に "GTK Styles and Fonts" というのが追加されていました.
そして,GTK+2 を使う Mozilla Firefox の見た目がバッチリ変更されています.ただ,GTK+1 系列には影響がないらしく,xmms の見た目はそのままでした.
June 21, 2005
[雑記] RJ-45 レセプタクルに RJ-11 プラグが挿さる
Ethernet で用いている RJ-45 レセプタクル (8-pin) に,電話の RJ-11 プラグ (6-pin) が挿せるんですね... 今まで気づきませんでした.
これが Ethernet では中央の 2-pin を避けてピンアサインしている理由のようです.電話線は中央の 2-pin を用いています.
NIC に電話線を差して「なぜインターネットに接続できないのか」と悩む理由が分かりました.
June 17, 2005
[ゲーム] A Gamers Day
negitaku.org に掲載されてから 5 ヶ月が経ちますが,A Gamers Day というムービーを観てみました.
Counter-Strike プレイヤーの 1 日を映画にしたものですが,これがまた面白い!
何が面白いって... そりゃぁもう,リアルなんです.リアルなのは次の通り.
- プレイ時は部屋の照明を消す
- 画面から目を離した隙に敵が来て慌てる
- プレイ中に母親が入ってくる
- プレイ中の食事は部屋の中にあるもので済ます
- 友人が隣にいるだけでスコアが下がる
- 友人よりゲームが優先
- いいスコアが出たので記念にスクリーンショットを撮ろうとすると CS が落ちる
- 弾が当たらなくなる
- 集中しすぎて本当に後ろを振り向く
- 叫ぶ
- 次第に目が据わっていく
リアルでないけど面白いシーンは次の通りです.
- 負けまくってるので,キーボードを破壊し,机から予備のキーボードを取り出す
- ゲームに夢中でデートの約束をすっぽかす
- 負けまくってるので母親に当たる
- 負けまくってるので CRT を窓から投げ捨てる (驚くべきことに,本当に CRT 1 台投げ捨ててます)
- 自分を見失って,実世界とゲームの見分けがなくなる
- 友人が Terrorists に見える
June 10, 2005
[Gentoo] emerge --depclean
USE=immqt-bc を USE=immqt に変更したのを機に,システム全体の整理をしようと思いました.
不要なパッケージを削除するために何をしようかと考えたときに思い出したのは... "emerge --depclean" でした.
ただ,昔読んだ Nest of Hawk - B-Wikiの記事 には,installコマンドが、libacl.soが無いから動かんと…
という恐怖の 1 文があるので実行をためらっていました.
しかし不要なパッケージはまとめて削除したいという欲求の方が強く,Gentoo Linux Documentation -- USE フラグに従い,思い切って emerge --depclean を実行してみました.
# emerge -uD --newuse world # emerge --depclean # revdep-rebuild (中略) FATAL ERROR: attr/xattr.h does not exist. Install the extended attributes (attr) development package. Alternatively, run "make install-lib" from the attr source. !!! Please attach the config.log to your bug report: !!! /var/tmp/portage/acl-2.2.27/work/acl-2.2.27/config.log !!! ERROR: sys-apps/acl-2.2.27 failed. !!! Function econf, Line 485, Exitcode 0 !!! econf failed !!! If you need support, post the topmost build error, NOT this status message.
sys-apps/attr が足りないようなので,sys-apps/attr を手動でインストールしてから,revdep-rebuild を再開します.
# emerge attr # revdep-rebuild
これで完了です.
June 7, 2005
[Gentoo] ati-gatos のインストール
ATi Rage128 を搭載したマシンを使用していますが,X11/XVideo で,ハードウェアアクセラレーション機能を使うために,media-video/ati-gatos を試してみます.
# ACCEPT_KEYWORDS=~x86 emerge ati-gatos Calculating dependencies ...done! >>> emerge (1 of 1) media-video/ati-gatos-4.4.0 to / >>> md5 files ;-) ChangeLog >>> md5 files ;-) metadata.xml >>> md5 files ;-) ati-gatos-4.4.0.ebuild >>> md5 files ;-) files/ati-gatos-4.4.0-new-xorg.patch >>> md5 files ;-) files/digest-ati-gatos-4.4.0 >>> md5 files ;-) files/ati-gatos-4.4.0-prototypes.patch >>> md5 src_uri ;-) ati-gatos-4.4.0-20040930.tar.bz2 * This package requires that xorg-x11 was merged with the sdk USE flag enabled. !!! ERROR: media-video/ati-gatos-4.4.0 failed. !!! Function pkg_setup, Line 24, Exitcode 0 !!! Please merge xorg-x11 with the sdk USE flag enabled. !!! If you need support, post the topmost build error, NOT this status message.
何ということでしょう.x11-base/xorg-x11 も作り直しのようです.
USE=sdk で現在 x11-base/xorg-x11 をコンパイル中です.
June 6, 2005
[Linux] chkrootkit ディスクを作ってみました
chkrootkit と必要なコマンド(awk cut egrep find head id ls netstat ps strings sed test uname echo)のスタティックバイナリをひとまとめにしてみました.これでいつでもどこでも chkrootkit!
さすがに全てのコマンドがスタティックリンクになると,フロッピー 1 枚には収まりません.busybox の偉大さを感じました.
[Gentoo] strings はどのパッケージ!?
今使用中の Gentoo で /usr/bin/strings が属するパッケージの名前を知ろうと思い,etcat コマンドを実行しました.
# etcat belongs /usr/bin/strings Searching for /usr/bin/strings in * ...
結果に何も出力されませんでした.
あれ? と思い,strings(1) を参照してみると... binutils に属していることが判明.ほっと一安心.
etcat で表示されないファイルもあるようです.
[出来事] hoge diary 検索用スクリプトを消してしまいました
やってしまいました.hoge diary 検索用のスクリプトファイルを消してしまいました.
rm コマンドの引数を書く時に使った何気ない補完が招いた悲劇です.
あんまし役に立ってなさそうなスクリプトだったので,復活しないかも知れません.
June 3, 2005
[Vim] :help!
oohashi 氏からの情報により,vim にて":help!" というコマンドを入力してみました.
:help! E478: Don't panic!
おぉ,すごい(笑)
同じことを gettext サポート有りの vim で試すと,E478: 慌てないでください
となりました.
June 1, 2005
[Gentoo] taglib vs id3lib (3)
パッチを当てた id3lib をコンパイルしてみましたが,やはり EasyTAG で書き込んだタグが amaroK で文字化けします.
id3lib の実装は正しいと仮定して,今度は TagLib のパッチが無いか探してみましょうか.
[Gentoo] taglib vs id3lib (2)
調べてみると,id3lib のパッチ群の中に Non ISO-8859-1 charsets bugfix なるものが見つかりました.
portage ツリーの media-libs/id3lib-3.8.3-r3 の ebuild を見ると,このパッチは含まれていないようです.では,まずこのパッチを加えた ebuild で emerge してみましょう.