コンピュータ

IBMのサーバがUSBデバイスからBootしようとする件

IBMのPCサーバ(今はLenovoになったThinkCentreなどのPCも?)にうっかりUSBのフラッシュメモリを挿したまま再起動すると,そっちからBootしようとして失敗して止まる(あるいはディスクからのBootを諦めてPXE/DHCPなど別の方法で起動しようとする)。失敗したら次のディスクを探しに行く,ということであれば問題ないと思うのだが,すくなくとも私の周囲にある機種はみんな同じ挙動。

BIOS Setup にある起動順序の設定は簡素なもので,USBのデバイスからのBoot可否や順序の設定はない。とにかく内蔵のドライブ(単体)やRAIDよりUSBにぶら下がっているデバイスが優先(というか見え方としては上書き?)されてしまう。

とりあえず,USB Legacy Support を Disable にすれば回避できる(あたりまえ?)が,他にちゃんとした方法はないのだろうか?

GT216 な GeForce 210

ASUS EN210 SILENT/DI/1GD2 という NVIDIA GeForce 210 のファンレスビデオカードを買ったが,

Wikipediaによると,
http://ja.wikipedia.org/wiki/GeForce#GeForce_GT_200_Series

NVIDIA GeForce 210:
 コア名: GT218
 コアクロック: 589MHz
 CUDAコアクロック: 1402MHz
 メモリクロック: 1000MHz
 メモリバス: 64bit
 CUDAコア数: 16

NVIDIA GeForce GT220:
 コア名: GT216
 コアクロック: 625MHz
 CUDAコアクロック: 1380MHz
 メモリクロック: 1380MHz
 メモリバス: 128bit
 CUDAコア数: 48

・・・しかし,今回購入した品(実測)は,

NVIDIA GeForce 210:
 コア名: GT216 (GT220と同じ?)
 コアクロック: 475MHz
 CUDAコアクロック: 1100MHz
 メモリクロック: 800MHz
 メモリバス: 128bit (GT220と同じ?)
 CUDAコア数: 24 (210より多くてGT220より少ない?)

210というよりは,GT220のシェーダー(CUDAコア)を半分にしたチップで,(ファンレスのために?)各種クロックを下げたみたいな感じなのかな?

まあ,なんにせよ古いオンボードビデオのPCへの増設なので,速くなって満足。

iTunes のアンインストール

家のWindows PCのファイルシステムの一部が壊れて,いくつかのアプリの動作がおかしくなった。

大半はアンインストール後に再インストールで解決したが,iTunesだけは再インストールしてもiTunesHelper.exeがエラーを起こす症状が治らなかった。

iTunesをインストールするときに他にもいろんなものがインストールされるので,単純にiTunesだけアンインストールしてもダメ,ということらしい。

XP: http://support.apple.com/kb/HT1925?viewlocale=ja_JP
Vista, 7: http://support.apple.com/kb/HT1923?viewlocale=ja_JP

インストーラが全部まとめてインストールしてくれるんだから,アンインストーラも全部(あるいは選択的に)まとめてアンインストールしてくれてもいいと思うのだが。

Microsoft Word 等で書かれた図を EPS に変換する

Word の図を変換云々で検索すると,スクリーンショットを使う方法をはじめ bitmap にしてしまう方法ばかりが出てくる。

書籍に使う場合でも,600dpi くらいになるように拡大して取り込めれば使えないことはないのだが…。

いろいろ試行錯誤した結果,比較的楽でどんな場合でもそれなりにうまくいくのは,図そのものや図のあるページをAdobe AcrobatでPDFに変換して,PDFをAdobe Illustratorで取り込む(必要に応じて切り出す)方法。トリッキーというかアドホックなつくりの図(テキストボックスを駆使したものなど)でもいける。

まあ,Illustratorは安くはないけど。フリーのツール等もいろいろ試したが,微妙にそれぞれ不具合があるので,Illustrator CS4のデモ版で試した後,結局購入した。

OpenJDK7 on NetBSD

普通に pkgsrc/lang/openjdk7 動くようになってた。素晴らしい。

$ uname -srm
NetBSD 5.99.24 amd64
$ /usr/pkg/java/openjdk7/bin/java -version
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build 1.7.0-internal-pkgsrc_2010_01_23_23_14-b00)
OpenJDK 64-Bit Server VM (build 17.0-b05, mixed mode)

手持ちの Java プログラムをいくつか動かしてみたが特に不具合はなし。GUI のあるプログラムは試してないが。

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

 

はじめての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」の部分に不具合があるんですかね。