2009年

コミックマーケット77

2009-12-30(水)東ク23-b
サークル名はいつもどおり「Estuary」

いつもどおり残念な感じのCD出してます。

追記 (2009-12-31):無事終了しました

AA

OpenJDK7
openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp より

 #ifndef PRODUCT
   if (sig == SIGSEGV) {
     fatal("\n#"
           "\n#    /--------------------\\"
           "\n#    | segmentation fault |"
           "\n#    \\---\\ /--------------/"
           "\n#        /"
           "\n#    [-]        |\\_/|    "
           "\n#    (+)=C      |o o|__  "
           "\n#    | |        =-*-=__\\ "
           "\n#    OOO        c_c_(___)");
   }
 #endif // !PRODUCT

 

参議院審議中継の画質が悪い件

衆議院・参議院ともブロードバンド/ナローバンドの選択ができるが,どうも参議院の方はブロードバンドを選択してもナローバンドと同じ画質 (WMV9, 35Kbps) で配信されてしまう。コマ数減らしてでも発言者の顔くらいは見えるようにすべきだと思うが。

衆議院TVの方はきれいなんだがなあ。

衆議院TV
http://www.shugiintv.go.jp/
参議院インターネット審議中継
http://www.webtv.sangiin.go.jp/webtv/index.php

はじめてのBibTeX

書籍(同人誌ではなく)の編集を手伝う…というよりほとんど一人でする羽目になっている。何十人もの著者から既に多数原稿を預かっているのに,編集体制が崩壊していて大変。

私が編集に参加する以前に,著者には「参考文献はBibTeX形式で」という依頼が行っていたらしいのだが,一部しかそのようになっていないので,半分手作業で変換することに。

学会の予稿集みたいなのは@proceedingsで,その中の1本の予稿は@inproceedings。
じゃあ,本は@bookだから,複数の著者の居る本の中の一部は@inbookで,

と思ったら,本全体の編集者editorと該当部分の著者authorが併記できない。

ググったら両方併記できるようにする*.bstの改造方法が載っていたりしたので真似してみたが,今度は出力される書式が思ったようにいかない。

あれこれ試行錯誤した挙句,実は@incollectionを使えばいいことが判明。

やっぱり勘で使うんじゃダメですなあ。

pkgsrc/www/ap2-fcgid

mod_fcgid の socket / shm のファイル作成場所について。
fcgid_conf.c:

#define DEFAULT_SOCKET_PREFIX "logs/fcgidsock"
#define DEFAULT_SHM_PATH "logs/fcgid_shm"

で,

        config->sockname_prefix =
                ap_server_root_relative(p, DEFAULT_SOCKET_PREFIX);
        config->shmname_path = ap_server_root_relative(p, DEFAULT_SHM_PATH);

なので,apacheもpkgsrcデフォルトのままだとすると,おそらく/usr/pkg/logs/以下になる。

で,標準でそんなディレクトリはないので,

[emerg] (2)No such file or directory: mod_fcgid: Can't create share memory for size %zu byte

といったエラーになる。

仕方がないのでhttpd.confなどで明示する。

<IfModule mod_fcgid.c>
  AddHandler fcgid-script .fcgi
  SocketPath /var/run/fcgidsock
  SharememPath /var/run/fcgid_shm
</IfModule>

SocketPathで指定するのはディレクトリで,その下にwww権限(apacheの実行権限)でソケットが作られる。
SharememPathの方はファイル名そのもの。root権限で作ってくれるようだ。

検索すると/tmp以下に置いている例もあるが,別にした方が良いと思う。

pthreadの後方非互換とpkgsrc/lang/perl5

いろいろ新しくなったついでにOSのバージョンも上げたら apache が動かなくなった(笑)。

どうも,pthread が非互換らしい。再コンパイルで解決。

…なんだけれど,perl だけ何度再コンパイルしても libpthread.so.0 をリンクした状態になる。(libpthread.so.1 だけリンクしてほしい)

ちゃんと調べていないけれど,どうも既にインストールされている /usr/pkg/lib/perl5/5.10.0/x86_64-netbsd-thread-multi/CORE/libperl.so の参照先に引っ張られている模様。インストールしてある状態で再コンパイルせずに,pkg_deleteした後に再コンパイルしたらうまくいった。

このへんの関係なのかな?

cc  -Wl,-R/usr/pkg/lib --whole-archive -shared  -L/usr/pkg/lib なんたら.o 
-o ../../../lib/auto/なんたら/なんたら.so -L../../..
 -Wl,-R/usr/pkg/lib/perl5/5.10.0/x86_64-netbsd-thread-multi/CORE
 -Wl,-R../../../lib/CORE -lperl

インポート完了

一応,過去のブログ記事のインポートをした。

しかし,カテゴリは整理できてないし,画像は他のサイトを参照したままだし,細かい設定もおかしなまま。

bge その後

NetBSDのメーリングリストで,同じBCM5722のDELLのサーバで,bgeにtso4オプションをつけているとその症状になる(tso4を外せば問題ない)と教えていただきました。やってみたら確かに正常動作。
tso4 Enable hardware-assisted TCP/IPv4 segmentation on interfaces that support it.
BCM5721なら問題ないので,BCM5722の「hardware-assist」の部分に不具合があるんですかね。

BCM5722

テキトーにBCM5755なbrgphyと同じように認識するようにmiidevsとbrgphy.cを直してみた。それらしく起動したが症状は改善せず。
テキトーすぎたのでFreeBSD, OpenBSD, Linux のソースをあたってみる。
FreeBSDとOpenBSDは,BCM5722の識別だけして,特に処理はなし。
Linux (net/tg3.c) は,BCM5722 (とBCM5756) を識別した条件分岐があるが,他の ASIC BCM5755 その他系の TG3_FLG2_PHY_JITTER_BUG フラグを立てる部分を回避してるだけ。
TG3_FLG2_PHY_JITTER_BUG がある場合の処理は,NetBSD の brgphy.c でいうところの bcm5755_load_dspcode そのもので,これを回避しているということは,結局特別な処理は何もいらないっぽい。
うーん,調子が悪いのは別の原因か。

HP ProLiant ML110 G5 で NetBSD (その2)

ネットワークまわりがどうもひっかかる感じ。

$ dmesg | grep bge
bge0 at pci4 dev 0 function 0: Broadcom BCM5722 Gigabit Ethernet
bge0: interrupting at ioapic0 pin 17
bge0: ASIC BCM5755 C0 (0xa200), Ethernet address (略)
bge0: setting short Tx thresholds
ukphy0 at bge0 phy 1: Generic IEEE 802.3u media interface

こんなNIC。
適当なPCのターミナルからsshして cat で長いファイルを流すと,最初は順調だがフロー制御が入ったあたり(?)からガタガタに(間欠的に)なる。そしてたまに,

bge0: watchdog timeout -- resetting
bge0: block failed to stop: reg 0x1400, bit 0x00000002

こんなエラーを吐く。
よくみたらukphyじゃん…。これが悪い?
ちなみに,問題の起きていないML110G4 (NetBSD 4.0_STABLE) は,こんなかんじ。

$ dmesg | grep bge
bge0 at pci3 dev 0 function 0: Broadcom BCM5721 Gigabit Ethernet
bge0: interrupting at ioapic0 pin 17 (irq 12)
bge0: ASIC unknown BCM575x family (0x4201), Ethernet address (略)
bge0: setting short Tx thresholds
brgphy0 at bge0 phy 1: BCM5750 1000BASE-T media interface, rev. 0