hoge diary - June 2005

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 12, 2005

[雑記] 電気屋さんの本音

今日はたまたま電気屋さんの本音というサイトに行き着きました.結構面白いです.やっぱり客商売は恐ろしいんですかねぇ.

殺伐とした客と店員のやりとりの中,お手を見るとほっとします.

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 してみましょう.


Valid XHTML 1.1! Valid CSS!
© 2004-2009 ぱくちゃん.
Last modified: Fri Nov 02 01:56:12 JST 2007