logo
code:Haemophilus influenzae

ここに書かれていることは無保証です。同じことを行って問題が発生しても、 龍義は責任をとりません。
 2003年9月 
 2003年10月 
 2003年11月 
 2003年12月 
 2004年1月  2004年7月 
 2004年2月  2004年8月 
 2004年3月  2004年9月 
 2004年4月  2004年10月 
 2004年5月  2004年11月 
 2004年6月  2004年12月 
 2005年1月  2005年7月 
 2005年2月  2005年8月 
 2005年3月  2005年9月 
 2005年4月  2005年10月 
 2005年5月  2005年11月 
 2005年6月  2005年12月 
 2006年1月  2006年7月 
 2006年2月  2006年8月 
 2006年3月  2006年9月 
 2006年4月  2006年10月 
 2006年5月  2006年11月 
 2006年6月  2006年12月 
 2007年1月  2007年7月 
 2007年2月  2007年8月 
 2007年3月  2007年9月 
 2007年4月  2007年10月 
 2007年5月  2007年11月 
 2007年6月 
アイコンの説明

 12/1
Other
watch コマンドの man を引くと、

       -d または --differnces フラグを指定すると、更新が行われたとき、前回と異
       なっている部分をハイライト表示する。 cumulative オプションをつける と、
       ハ イライトが "sticky" になる。すなわち、実行が開始されてから変更があっ
       た全ての部分をハイライトで表示する。

とあったので、--differncess オプションを付けてみた。というか、コピー&ペースト。

[toyota@endor]% watch --interval=10 --differnces "ls -la"
watch: unrecognized option `--differnces'
usage: watch [options] command
    --differences[=cumulative], -d    highlight changes between updates
    --interval=<seconds>, -n          seconds to wait between updates
    --help                            print a summary of the options
    --version, -V                     print version information and quit

何がどうなってるのか、一瞬わからなかったけど、良く見たら man の typo の
ようである。多分、元となった JM のも間違っている。安易なコピー&ペーストは
気をつけよう、ということみたい。

 12/2
Network
のんびり構築中の web サーバ、外から接続できるようにして、出先でゴニョゴニョ
できるようにしようと、ssh で接続してみた。が、パスワードが通らず。原因は、
どうやら PAM か sshd の制限のようである。PAM なんていじったことがないので、
ちょっと勉強しなきゃなぁ。面倒だ。

 12/3
Network
ちょっと調べ物をしていたら、sshfs なんてものを見つけた。これは面白そう。
動かしてみることにした。

[toyota@endor]% cat /etc/redhat-release
Red Hat Enterprise Linux ES release 3 (Taroon Update 8)

な環境で。適当なミラーからダウンロードから。sshfs と、使うのに必要な fuse
の2つ。

[toyota@endor]% wget http://jaist.dl.sourceforge.net/sourceforge/fuse/fuse-2.7.1.tar.gz
[toyota@endor]% wget http://jaist.dl.sourceforge.net/sourceforge/fuse/sshfs-fuse-1.8.tar.gz
[toyota@endor]% tar xvfz fuse-2.7.1.tar.gz
[toyota@endor]% cd fuse-2.7.1/
[toyota@endor]% ./configure --help
[toyota@endor]% ./configure --prefix=/home/toyota
[toyota@endor]% make
[toyota@endor]% make install

なんだか、make install の最後の方でエラーが出た気がする。多分、module なので、
それなりの場所にインストールしないと駄目な気もするけど。それ以外は、思った
よりも、問題なく。次は sshfs 。

[toyota@endor]% tar xvfz sshfs-fuse-1.8.tar.gz
[toyota@endor]% cd sshfs-fuse-1.8/
[toyota@endor]% ./configure --help
[toyota@endor]% ./configure --prefix=/home/toyota
〜snip〜
checking for SSHFS... Package fuse was not found in the pkg-config search path.
Perhaps you should add the directory containing `fuse.pc'
to the PKG_CONFIG_PATH environment variable
No package 'fuse' found
configure: error: Package requirements (fuse >= 2.2 glib-2.0 gthread-2.0) were not met:

さっき入れた fuse のパッケージ情報が見つからないみたい。fuse.pc は、さっきの
ディレクトリにあったので、環境変数をいじって、再度やってみた。

[toyota@endor]% PKG_CONFIG_PATH=/home/toyota/src/sshfs/fuse-2.7.1/
[toyota@endor]% ./configure --prefix=/home/toyota
〜snip〜
checking for SSHFS... Package glib-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `glib-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'glib-2.0' found
configure: error: Package requirements (fuse >= 2.2 glib-2.0 gthread-2.0) were not met:

glib-2.0 のパッケージ情報がないと。/usr の下なんかで glib-2.0.pc を探して
みたけど、やっぱりない。インストールされているか見てみる。

[toyota@endor]% rpm -qa | grep glib
glibc-devel-2.3.2-95.44
glibc-common-2.3.2-95.44
glib-1.2.10-11.1
glibc-headers-2.3.2-95.44
glibc-profile-2.3.2-95.44
glibc-utils-2.3.2-95.44
compat-glibc-7.x-2.2.4.32.6
glibc-2.3.2-95.44
glib2-2.2.3-2.0
glibc-kernheaders-2.4-8.34.2

なので、glibc-devel-2.3.2-95.44.i386.rpm は入っている。なんでだろう、と
RedHat の CD の中の RPM を眺めていたら、glib2-devel-2.2.3-2.0.i386.rpm
を発見。こっちじゃないと、駄目みたい。ということで、インストール。

[toyota@endor]% su
[root@endor]# rpm -i glib2-devel-2.2.3-2.0.i386.rpm
[root@endor]# exit

環境変数をいじって、再度実行。

[toyota@endor]% setenv PKG_CONFIG_PATH /usr/lib/pkgconfig:/home/toyota/src/sshfs/fuse-2.7.1/
[toyota@endor]% ./configure --prefix=/home/toyota
[toyota@endor]% make
[toyota@endor]% make install

完璧。実行してみる。

[toyota@endor]% cd /home/toyota/bin
[toyota@endor]% ./sshfs
./sshfs: error while loading shared libraries: libfuse.so.2: cannot open shared object file: No such file or directory

ライブラリが見つからないので、LD_LIBRARY_PATH を設定して、実行。

[toyota@endor]% setenv LD_LIBRARY_PATH /home/toyota/lib
[toyota@endor]% ./sshfs
missing host
see `./sshfs -h' for usage

動いた。引数をつけて実行してみる。

[toyota@endor]% ./sshfs toyota@192.168.0.3: /home/toyota/mnt
toyota@192.168.0.3's password: 
fuse: device not found, try 'modprobe fuse' first

やっぱり、fuse はちゃんとした場所に入れないと駄目みたい。時間がなくなった
ので、続きは明日。それにしても、ソフトウェアの導入で、yum で終わりとか、
そんなページが多いよなぁ。

 12/4
Network
昨日の続きで、再度やってみた。今度は root 権限で install 。

[toyota@endor]% cd fuse-2.7.1/
[toyota@endor]% ./configure --help
[toyota@endor]% ./configure
[toyota@endor]% make
[toyota@endor]% su
[root@endor]# make install
[root@endor]# modprobe fuse
modprobe: Can't locate module fuse

だめ。kernel 以下が build されていない感じ。ちょっと kernel ディレクトリで
やってみる。

[toyota@endor]% cd kernel/
[toyota@endor]% ./configure
〜snip〜
NOTE:    Disabled building the kernel module, because this release only
NOTE:    supports Linux versions 2.6.9 or later.  You can use the kernel
NOTE:    module from an earlier FUSE release with the library from this
NOTE:    release.
〜snip〜

だそうで。2.4.21 じゃ、無理みたい。結局こんな終わりとは…。

 12/5
Network
昨日の sshfs について調べていたら、gmailfs なんてものを見つけた。gmail の
容量は 5G 以上あるので、速度を気にしなければ凄く面白い。新しいアカウントを
いくつでも作れるので、容量を増やせるし。意外と、使えるかもしれない。ただ、
いきなり削除されたら非常に困るのだけど。

 12/6
Network
一昨日の続き。悔しいので Linux kernel 2.6 の PC でやってみた。

[toyota@dstar]% uname -r
2.6.9-34.EL

の環境。おとなしく、fuse も sshfs も root で make install して、あっさり
動いてしまった。ユーザで sshfs を行うには

[root@dstar]# chmod go+rw /dev/fuse

を行えば、問題なく使えた。ちゃんと、df での結果も出るし。

[toyota@dstar]% df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/sda5             51264148  18549456  30110560  39% /
/dev/sda1               295561     24609    255692   9% /boot
none                    513292         0    513292   0% /dev/shm
sshfs#toyota@192.168.0.5:
                     1048576000         0 1048576000   0% /home/toyota/mnt

他のユーザで df を実行したときは、最後の行は出ないのだけど、 df に -a の
オプションを付けると、出てくる。というか、/etc/mtab を見ればわかるのだけど。
ローカルの HDD との速度比較を行ってみた。

[toyota@dstar]% dd if=/dev/urandom of=/tmp/1G bs=1024 count=1048576
読み込んだブロック数は 1048576+0
書き込んだブロック数は 1048576+0
[toyota@dstar]% time cp /tmp/1G /home/toyota
0.485u 11.169s 3:04.96 6.2%     0+0k 0+0io 2pf+0w
[toyota@dstar]% time cp /tmp/1G /home/toyota/mnt
0.381u 6.459s 9:51.69 1.1%      0+0k 0+0io 2pf+0w

ext3 on HTC426060G9AT00 の環境なのだけど、時間的には3倍ちょっとかかって
いる。でも、なんとか実用範囲内かな。この sshfs で使っている相手との間は
1000Base なので、これが影響して、速くなっているとも思う。

 12/7
Network
色々と検索をしていたら、Linux kernel 2.4 でも fuse を使っている人がいる。
なんでだろう、ということで、古い fuse をダウンロードして、やってみることに
した。fuse の最新のバージョンは、2.7.1 。2.6 系最後の 2.6.5 でテストして
みたけど、駄目。次に 2.5 系の最後の 2.5.3 でテストしてみたら、kernel 部分が
コンパイルされて、動かしてみたらあっさりとできてしまった。sourceforge の
fuse がある場所に行って、CVS を眺めてみたら、2.6.0 から対応しなくなった
みたい。なので、kernel 2.4 系を使っているならば fuse 2.5.3 を使えば良い
ようである。

 12/8
Other
NetBSD 3.1 + CF boot 環境の設定。このままだと、CF にガンガン書き込みが
発生してしまうので ram ディスクを作成して、書き込みを抑える。メモリを追加
するまでは、256M のメモリに対して 64M を ram ディスクにしていたのだけど、
2G のメモリを追加したので、1.5G の ram ディスクを作成する。追加前の fstab
は。

[toyota@dstar]% cat /etc/fstab
/dev/wd0a / ffs rw 1 1
swap /tmp mfs rw,-s=132048
kernfs /kern kernfs rw
procfs /proc procfs rw,noauto

と、/tmp に割り当てていた。これを 1536M にする。

[toyota@dstar]% cat /etc/fstab
/dev/wd0a / ffs rw 1 1
swap /tmp mfs rw,-s=3145728
kernfs /kern kernfs rw
procfs /proc procfs rw,noauto

これで、再起動したが、うまくいかない。1G までしか認識しないのである。

[toyota@dstar]% df -k
Filesystem  1K-blocks      Used     Avail Capacity  Mounted on
/dev/wd0a     3902926    275090   3432690     7%    /
mfs:286       1032054         2    980450     0%    /tmp
kernfs              1         1         0   100%    /kern

ちょっとだけ、減らしてみたり、増やしてみたけど、やはり 1G を超える ram
ディスクの作成ができない。ちょっと調べてみたけど、kernel パラメタか何かの
問題のようである。仕方がないので、2つに分けて、マウントできるかやってみた。

[toyota@dstar]% cat /etc/fstab
/dev/wd0a / ffs rw 1 1
swap /tmp mfs rw,-s=2097152
swap /tmp2 mfs rw,-s=1048576
kernfs /kern kernfs rw
procfs /proc procfs rw,noauto

[toyota@dstar]% df -k
Filesystem  1K-blocks      Used     Avail Capacity  Mounted on
/dev/wd0a     3902926    275094   3432686     7%    /
mfs:286       1032054         2    980450     0%    /tmp
kernfs              1         1         0   100%    /kern
mfs:593        508239         1    482827     0%    /tmp2

うまくいった。/tmp を /var にして、/tmp は /var/tmp のシンボリックリンクに、
/tmp2 は /www に変更して、とりあえず、終了。

 12/9
Other
昨日の続き。/var と /www に mfs を割り当てて、1日放置してみた。/var 以外で
ファイルの書き込みが行われたファイルは、

/etc/resolv.conf
/dev/console
/dev/null

の3つになった。resolv.conf は dhclient が時々書き換えているようで、これは
固定 IP に変えると書き込みは行われなくなるでしょう。/dev が書き込まれて
いるのは、実際に CF に書き込んでいるのだろうか不明。書き込まれていると
気分的に嫌なので、/dev を mfs に持っていけるか調べてみると、/dev/MAKEDEV が
この辺りを作っている?ようである。しかし、どうしたら良いものなのか、具体的に
わからない。この辺りが情報の少ない OS の欠点なんだろうか。もう少し調べて
みよう。

 12/10
Other
何故だか、NetBSD の PC のログインシェルを csh にしていた。なんとか凌いで
いたのだけど、tab でファイル補完に慣れていたために、Esc でのファイル補完が
どうもしっくりこない。ということで、ログインシェルを tcsh にしようと変更して
みたら。tcsh が入っていない。だから、csh にしたのか、ということみたい。
仕方なく、ダウンロードして、コンパイルすることにした。

[toyota@mustafar]% wget ftp://ftp.astron.com/pub/tcsh/tcsh-6.15.00.tar.gz
wget: Command not found.

そっからかよ。仕方なく、wget のコンパイルから。

別 PC で wget を wget でダウンロードして、scp で流し込み。

[toyota@kashyyyk]% wget ftp://ftp.gnu.org/gnu/wget/wget-1.10.2.tar.gz

[toyota@mustafar]% scp kashyyyk:wget-1.10.2.tar.gz ./
[toyota@mustafar]% tar xvfz wget-1.10.2.tar.gz
[toyota@mustafar]% ./configure
[toyota@mustafar]% make
〜snip〜
http-ntlm.c:185: error: parse error before "des_key_schedule"
http-ntlm.c: In function `setup_des_key':
http-ntlm.c:187: error: `des_cblock' undeclared (first use in this function)
http-ntlm.c:187: error: (Each undeclared identifier is reported only once
http-ntlm.c:187: error: for each function it appears in.)
http-ntlm.c:187: error: parse error before "key"
http-ntlm.c:189: error: `key' undeclared (first use in this function)
http-ntlm.c:189: error: `key_56' undeclared (first use in this function)
http-ntlm.c:199: error: `ks' undeclared (first use in this function)
http-ntlm.c: In function `calc_resp':
http-ntlm.c:210: error: `des_key_schedule' undeclared (first use in this function)
http-ntlm.c:210: error: parse error before "ks"
http-ntlm.c:212: error: `ks' undeclared (first use in this function)
http-ntlm.c:213: error: `des_cblock' undeclared (first use in this function)
http-ntlm.c:213: error: parse error before ')' token
http-ntlm.c:217: error: parse error before ')' token
http-ntlm.c:221: error: parse error before ')' token
http-ntlm.c: In function `mkhash':
http-ntlm.c:262: error: `des_key_schedule' undeclared (first use in this function)
http-ntlm.c:262: error: parse error before "ks"
http-ntlm.c:264: error: `ks' undeclared (first use in this function)
http-ntlm.c:265: error: `des_cblock' undeclared (first use in this function)
http-ntlm.c:265: error: parse error before ')' token
http-ntlm.c:269: error: parse error before ')' token
http-ntlm.c:242: warning: unused variable `magic'
*** Error code 1

ややこしくなってきた。src/http-ntlm.c で openssl/des.h を include している
けど、その辺りでいくつか足りないようである。手元の Linux の PC を見ると、
des_cblock は openssl/des_old.h にあるのだけど、この NetBSD 3.1 の環境では
(/usr/include/)des.h に入ってようである。ちょっと、include に追加して、
やってみる。

[toyota@mustafar]% make
〜snip〜
http-ntlm.o(.text+0x1a8): In function `setup_des_key':
: undefined reference to `des_set_odd_parity'
http-ntlm.o(.text+0x1b3): In function `setup_des_key':
: undefined reference to `des_set_key'
http-ntlm.o(.text+0x1e7): In function `calc_resp':
: undefined reference to `des_ecb_encrypt'
http-ntlm.o(.text+0x203): In function `calc_resp':
: undefined reference to `des_ecb_encrypt'
http-ntlm.o(.text+0x21f): In function `calc_resp':
: undefined reference to `des_ecb_encrypt'
http-ntlm.o(.text+0x2b7): In function `mkhash':
: undefined reference to `des_ecb_encrypt'
http-ntlm.o(.text+0x2d5): In function `mkhash':
: undefined reference to `des_ecb_encrypt'
*** Error code 1

惜しいところで、エラーが。ライブラリが足りないみたい。手元の Linux では
/usr/lib/libcrypto.a に入っているみたいだけど、/usr/lib/libdes.a にある
ようなので、Makefile の LIBS に -ldes を追加して、もう1度。問題なく、
コンパイル完了。root で make install して終了。

[toyota@mustafar]% src/wget
[toyota@mustafar]% su
[root@mustafar]# make install
[root@mustafar]# exit
[toyota@mustafar]% rehash
[toyota@mustafar]% wget

本題の tcsh のコンパイルは明日にする。

 12/11
Other
wget が入ったので、早速それを使って tcsh のダウンロード+コンパイル。

[toyota@mustafar]% wget ftp://ftp.astron.com/pub/tcsh/tcsh-6.15.00.tar.gz
[toyota@mustafar]% tar xvfz tcsh-6.15.00.tar.gz
[toyota@mustafar]% cd tcsh-6.15.00
[toyota@mustafar]% ./configure --help
[toyota@mustafar]% ./configure
[toyota@mustafar]% make
[toyota@mustafar]% su
[root@mustafar]# make install
[root@mustafar]# exit
[toyota@mustafar]% rehash
[toyota@mustafar]% tcsh

完璧。chsh する。

[toyota@mustafar]% chsh
chsh: /usr/local/bin/tcsh: non-standard shell
re-edit the password file? [y]: n
chsh: /etc/master.passwd: unchanged

駄目。うまくいかない。/etc/shells に無いからでしょう、ということで中身を
見てみた。

[toyota@mustafar]% cat /etc/shells
#       $NetBSD: shells,v 1.3 1996/12/29 03:23:07 mrg Exp $
#
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.

/bin/sh
/bin/csh
/bin/ksh
/usr/pkg/bin/tcsh

えー。tcsh 元から入っていた。ちょっとショック。

[toyota@mustafar]% /usr/pkg/bin/tcsh --version
tcsh 6.14.00 (Astron) 2005-03-25 (i386-intel-NetBSD) options wide,nls,dl,al,kan
,rh,color,filec
[toyota@mustafar]% /usr/local/bin/tcsh --version
tcsh 6.15.00 (Astron) 2007-03-03 (i386-intel-NetBSD) options wide,nls,dl,al,kan
,rh,color,filec

思ったよりも新しい version のが入っていたし、今日入れた tcsh は消えてもらう
ことにした。というか、wget も /usr/pkg/bin に入ってたし。chsh をして、
/usr/pkg/bin/tcsh を指定して完了。なんとも、無駄なことをしてしまった。

 12/12
Other
Dovecot 1.0.9 が出た。This release is mainly for mbox users. とあるので、
mbox 関係が主な変更だったのでしょう。1.0.8 の付属文書への翻訳が全然追い
ついてないので、とっととやらないと。年内は無理だろうなぁ。

 12/13
Other
リモートでちょこちょこ構築中の NetBSD 3.1 のサーバ、ドキドキしながら reboot
してみた。案の定、外から接続できなくなった。そのサーバを夜見てみたら、
default gateway が設定されなかったので、通信できなくなったようである。
dhclient の設定を切ったときの、設定忘れのようである。/etc/defaults/rc.conf
の defaultroute をして、再起動してみたら、繋がるようになった。やっぱり、
リモートで構築は無理があるな。

 12/14
Network
構築中の NetBSD のサーバで ntpdate を実行してみた。が、ntp.nict.jp から
反応がない。

[root@mustafar]# ntpdate -d ntp.nict.jp
14 Dec 15:32:30 ntpdate[8488]: ntpdate 4.2.0-r Tue Oct 31 03:50:37 UTC 2006 (1)
Looking for host ntp.nict.jp and service ntp
host found : ntp-a2.nict.go.jp
transmit(2001:2f8:29:100::fff3)
14 Dec 15:32:31 ntpdate[8488]: sendto(ntp-a2.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff3)
14 Dec 15:32:32 ntpdate[8488]: sendto(ntp-a2.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff3)
14 Dec 15:32:33 ntpdate[8488]: sendto(ntp-a2.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff3)
14 Dec 15:32:34 ntpdate[8488]: sendto(ntp-a2.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff3)
2001:2f8:29:100::fff3: Server dropped: no data
server 2001:2f8:29:100::fff3, port 123
stratum 0, precision 0, leap 00, trust 000
refid [2001:2f8:29:100::fff3], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036 15:28:16.000
originate timestamp: 00000000.00000000  Thu, Feb  7 2036 15:28:16.000
transmit timestamp:  cb0ca202.9139fba4  Fri, Dec 14 2007 15:32:34.567
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

14 Dec 15:32:35 ntpdate[8488]: no server suitable for synchronization found

F/W の中の扱いかと思って、-u を使ってみたけど、変わらず。

[root@mustafar]# ntpdate -d -u ntp.nict.jp
14 Dec 15:32:49 ntpdate[9199]: ntpdate 4.2.0-r Tue Oct 31 03:50:37 UTC 2006 (1)
Looking for host ntp.nict.jp and service ntp
host found : ntp-a3.nict.go.jp
transmit(2001:2f8:29:100::fff4)
14 Dec 15:32:49 ntpdate[9199]: sendto(ntp-a3.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff4)
14 Dec 15:32:50 ntpdate[9199]: sendto(ntp-a3.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff4)
14 Dec 15:32:51 ntpdate[9199]: sendto(ntp-a3.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff4)
14 Dec 15:32:52 ntpdate[9199]: sendto(ntp-a3.nict.go.jp): Undefined error: 0
transmit(2001:2f8:29:100::fff4)
2001:2f8:29:100::fff4: Server dropped: no data
server 2001:2f8:29:100::fff4, port 123
stratum 0, precision 0, leap 00, trust 000
refid [2001:2f8:29:100::fff4], delay 0.00000, dispersion 64.00000
transmitted 4, in filter 4
reference time:    00000000.00000000  Thu, Feb  7 2036 15:28:16.000
originate timestamp: 00000000.00000000  Thu, Feb  7 2036 15:28:16.000
transmit timestamp:  cb0ca214.aacacd18  Fri, Dec 14 2007 15:32:52.667
filter delay:  0.00000  0.00000  0.00000  0.00000 
         0.00000  0.00000  0.00000  0.00000 
filter offset: 0.000000 0.000000 0.000000 0.000000
         0.000000 0.000000 0.000000 0.000000
delay 0.00000, dispersion 64.00000
offset 0.000000

14 Dec 15:32:53 ntpdate[9199]: no server suitable for synchronization found

もちろん、ping は帰ってくるし。

[root@mustafar]# ping ntp.nict.jp
PING ntp.nict.jp (133.243.238.244): 56 data bytes
64 bytes from 133.243.238.244: icmp_seq=0 ttl=43 time=53.711 ms
64 bytes from 133.243.238.244: icmp_seq=1 ttl=43 time=34.232 ms
64 bytes from 133.243.238.244: icmp_seq=2 ttl=43 time=33.867 ms
64 bytes from 133.243.238.244: icmp_seq=3 ttl=43 time=35.073 ms
64 bytes from 133.243.238.244: icmp_seq=4 ttl=43 time=33.422 ms
64 bytes from 133.243.238.244: icmp_seq=5 ttl=43 time=33.486 ms
^C
----ntp.nict.jp PING Statistics----
6 packets transmitted, 6 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 33.422/37.299/53.711/8.063 ms

どうしたものかなぁ、と思って、ちょっと手元にあった debian の ntp サーバに
向けてみたら。

[root@mustafar]# ntpdate -d 0.debian.pool.ntp.org
14 Dec 15:33:47 ntpdate[9942]: ntpdate 4.2.0-r Tue Oct 31 03:50:37 UTC 2006 (1)
Looking for host 0.debian.pool.ntp.org and service ntp
host found : server03.chimons.org
transmit(210.188.204.210)
receive(210.188.204.210)
transmit(210.188.204.210)
receive(210.188.204.210)
transmit(210.188.204.210)
receive(210.188.204.210)
transmit(210.188.204.210)
receive(210.188.204.210)
transmit(210.188.204.210)
server 210.188.204.210, port 123
stratum 2, precision -18, leap 00, trust 000
refid [210.188.204.210], delay 0.07191, dispersion 0.00258
transmitted 4, in filter 4
reference time:    cb0c9ec3.343aa79b  Fri, Dec 14 2007 15:18:43.204
originate timestamp: cb0ca24c.9306705c  Fri, Dec 14 2007 15:33:48.574
transmit timestamp:  cb0ca24c.89f676ea  Fri, Dec 14 2007 15:33:48.538
filter delay:  0.07191  0.07202  0.08461  0.08505 
         0.00000  0.00000  0.00000  0.00000 
filter offset: -0.00116 -0.00139 0.005391 0.005656
         0.000000 0.000000 0.000000 0.000000
delay 0.07191, dispersion 0.00258
offset -0.001164

14 Dec 15:33:48 ntpdate[9942]: adjust time server 210.188.204.210 offset -0.001164 sec

あっさりと通ってしまった。原因は何なんだろう…。時間がないので、調査は
時間があるときにでも。

 12/15
Other
NetBSD の起動時に、どういう順番で何が起動するのか、さっぱりわからない。
/etc/rc.d にあるスクリプトが起動されているのはわかるのだけど、誰がこれを
起動して、どんな順番になっているのか。/etc/rc を見ていたら、rcorder という
コマンドを実行していた。このコマンドを実行してみたり、man で引いてみて
やっとわかった。rcorder が各スクリプトの REQUIRE と PROVIDE と BEFORE を
見て、起動の順番を決めているようである。直感的にわからないので、慣れないと
わからない。

 12/16
Other
昨日の続き。syslogd と sysdb が mfs である /var を mount する前に起動されて
しまい、エラーがでるので、/etc/rc.d/syslogd と /etc/rc.d/sysdb の REQUIRE に
mountall を追加して、rcorder を実行してみた。

[toyota@mustafar]% rcorder /etc/rc.d/*
rcorder: Circular dependency on file `/etc/rc.d/syslogd'.
rcorder: Circular dependency on provision `fake_prov_00000038' in file `/etc/rc.d/syslogd'.
/etc/rc.d/wdogctl
/etc/rc.d/raidframe
/etc/rc.d/cgd
/etc/rc.d/ccd
/etc/rc.d/swap1
/etc/rc.d/fixsb
/etc/rc.d/fsck
/etc/rc.d/root
/etc/rc.d/mountcritlocal
/etc/rc.d/ttys
/etc/rc.d/bootconf.sh
/etc/rc.d/lkm1
/etc/rc.d/pf_boot
/etc/rc.d/ipsec
/etc/rc.d/ipfilter
/etc/rc.d/sysctl
/etc/rc.d/network
/etc/rc.d/dhclient
/etc/rc.d/pf
/etc/rc.d/staticroute
/etc/rc.d/NETWORKING
/etc/rc.d/mountcritremote
/etc/rc.d/wscons
rcorder: Circular dependency on provision `sysdb' in file `/etc/rc.d/syslogd'.
/etc/rc.d/lkm2
/etc/rc.d/mountall
/etc/rc.d/sysdb
/etc/rc.d/newsyslog
rcorder in free(): warning: chunk is already free.
rcorder in free(): warning: chunk is already free.
rcorder in free(): warning: chunk is already free.
rcorder in free(): warning: chunk is already free.
/etc/rc.d/syslogd
rcorder in free(): warning: chunk is already free.
rcorder in free(): warning: chunk is already free.
/etc/rc.d/ppp
/etc/rc.d/altqd
/etc/rc.d/ifwatchd
/etc/rc.d/isdnd
/etc/rc.d/downinterfaces
/etc/rc.d/ipnat
/etc/rc.d/ipfs
/etc/rc.d/ipmon
/etc/rc.d/kdc
/etc/rc.d/pflogd
/etc/rc.d/racoon
/etc/rc.d/savecore
/etc/rc.d/SERVERS
/etc/rc.d/named
/etc/rc.d/rtclocaltime
/etc/rc.d/ntpdate
/etc/rc.d/rpcbind
/etc/rc.d/ypserv
/etc/rc.d/ypbind
/etc/rc.d/yppasswdd
/etc/rc.d/cleartmp
/etc/rc.d/xfs
/etc/rc.d/accounting
/etc/rc.d/amd
/etc/rc.d/dmesg
/etc/rc.d/veriexec
/etc/rc.d/ldconfig
/etc/rc.d/lkm3
/etc/rc.d/quota
/etc/rc.d/mountd
/etc/rc.d/nfsd
/etc/rc.d/nfslocking
/etc/rc.d/pwcheck
/etc/rc.d/securelevel
/etc/rc.d/swap2
/etc/rc.d/virecover
/etc/rc.d/DAEMON
/etc/rc.d/apmd
/etc/rc.d/bootparams
/etc/rc.d/dhcpd
/etc/rc.d/dhcrelay
/etc/rc.d/local
/etc/rc.d/lpd
/etc/rc.d/mopd
/etc/rc.d/motd
/etc/rc.d/mrouted
/etc/rc.d/ntpd
/etc/rc.d/powerd
/etc/rc.d/rarpd
/etc/rc.d/rbootd
/etc/rc.d/route6d
/etc/rc.d/routed
/etc/rc.d/rtadvd
/etc/rc.d/rtsold
/etc/rc.d/rwho
/etc/rc.d/screenblank
/etc/rc.d/timed
/etc/rc.d/tpctl
/etc/rc.d/LOGIN
/etc/rc.d/xdm
/etc/rc.d/wsmoused
/etc/rc.d/sshd
/etc/rc.d/sendmail
/etc/rc.d/postfix
/etc/rc.d/smmsp
/etc/rc.d/raidframeparity
/etc/rc.d/poffd
/etc/rc.d/ndbootd
/etc/rc.d/moused
/etc/rc.d/mixerctl
/etc/rc.d/inetd
/etc/rc.d/identd
/etc/rc.d/cron

結構複雑に起動順番が入り組んでいるようである。別な方法を考えよう。

 12/17
Other
いつものように、色々と検索をしていたら、NetBSD on solid state という、
4年前の記事のようだけど、いまやっていることがそのまま出ているページを
みつけた。このページを見ると、mfs を mount_mfs_fs というスクリプトで mount
するようにして、このスクリプトは mountcritlocal の前に呼び出すようにして
いる。それと、/dev はざっくりと削除しても大丈夫みたい。とりあえず、/dev の
削除を明日やってみる。

 12/18
Other
ということで、昨日調べたとおり、NetBSD の環境にて、/dev を

[root@mustafar]# mv /dev /dev.old
[root@mustafar]# mkdir /dev

として、再起動してみた。数分待ったけど、リモートからの反応なし。仕方なく
モニタを繋いで、様子を見てみた。

warning: no /dev/console
Init: Creating mfs /dev (364 blocks, 1024 inodes)
sh: Can't open /etc/MAKEDEV
init: Unable to run MAKEDEV: Invalid argument
Enter pathname of shell or RETURN for /bin/sh:

だそうで。shell の指定をして、ローカルでは入れたけど、/ が 一時的な rootfs
なので、書き込みできない。/dev 以下は MAKEDEV がないので、/ を /dev/wd0a
で mount できない。つまり、どうにもならなくなってしまった。さて、どうしよう。

 12/19
Other
昨日の状態になって、どうしたものかと。/dev.old に古い MAKEDEV があったので、
これを /dev にコピーしようとしたら、disk full と言われる。多分、/dev に
なくても良い筈なので、ちょっとやってみた。

[root@mustafar]# cd /dev
[root@mustafar]# /dev.old/MAKEDEV wd0
[root@mustafar]# /etc/rc.d/mountall start

として、何とかなった。ここで reboot をかけると、また同じことの繰り返し
なので。

[root@mustafar]# cp /dev.old/MAKEDEV /etc

とコピーして、再起動。これで、うまく起動した。次は、/var の mount の件。
現在の df は。

[root@mustafar]# df -k
Filesystem  1K-blocks      Used     Avail Capacity  Mounted on
/dev/wd0a     3902926    331574   3376206     8%    /
mfs:14             25        14        10    59%    /dev
mfs:1819       508239      2349    480479     0%    /var
mfs:2014      1032054         2    980450     0%    /www
kernfs              1         1         0   100%    /kern

こんな感じ。/dev も mfs になって、すっきりした。でも、結構、のんびりペースで
やってるなぁ。

 12/20
Network
ここのロゴを追加しようとペイントを開いたけど、どうやらロゴに使っていた
フォントがないようで、同じような文字が出せない。なんてフォントを使って
いたのか、思い出せないし、今度実家に帰ったときに確認してみよう。

 12/21
Other
今日は Linux のお話。ext2 の環境で、プログラムがファイルを書き込んでいる
ときに、ファイルが 2G を超えると、プログラムが落ちてしまう。試しに。

[toyota@kashyyyk]% cat test.c
#include <stdio.h>
int main(){
  char buf[1024];
  FILE *fp;

  fp = fopen("2gtest","a");
  while(1){
    fwrite(&buf,sizeof(buf),1,fp);
  }
  fclose(fp);
}

これをコンパイルして、実行すると、core を吐いて落ちてしまう。希望では、
fwrite が -1 とかを返してくれると良いのだけど、

    printf("%d¥n"),fwrite(&buf,sizeof(buf),1,fp));

と変えて実行して確認してみたけど、返してくれない。じゃ、何で落ちているのか
確認してみることにした。

[toyota@kashyyyk]% gdb ./a.out
(gdb) r
Starting program: /home/toyota/src/test/testp/a.out
(no debugging symbols found)
(no debugging symbols found)

Program received signal SIGXFSZ, File size limit exceeded.
0x006321ee in __write_nocancel () from /lib/tls/libc.so.6

と、SIGXFSZ のシグナルのために、落ちているようである。このシグナルの動作を
man signal(7) で確認してみた。

Signal       Value     Action   Comment
       -------------------------------------------------------------------------
       SIGBUS      10,7,10     Core    Bus error (bad memory access)
       SIGPOLL                 Term    Pollable event (Sys V). Synonym of SIGIO
       SIGPROF     27,27,29    Term    Profiling timer expired
       SIGSYS      12,-,12     Core    Bad argument to routine (SVID)
       SIGTRAP        5        Core    Trace/breakpoint trap
       SIGURG      16,23,21    Ign     Urgent condition on socket (4.2 BSD)
       SIGVTALRM   26,26,28    Term    Virtual alarm clock (4.2 BSD)
       SIGXCPU     24,24,30    Core    CPU time limit exceeded (4.2 BSD)
       SIGXFSZ     25,25,31    Core    File size limit exceeded (4.2 BSD)

       Up to and including Linux 2.2, the default behaviour for SIGSYS,  SIGX-
       CPU,  SIGXFSZ,  and (on architectures other than SPARC and MIPS) SIGBUS
       was to terminate the process (without a core  dump).   (On  some  other
       Unices  the  default action for SIGXCPU and SIGXFSZ is to terminate the
       process without  a  core  dump.)   Linux  2.4  conforms  to  the  POSIX
       1003.1-2001  requirements  for  these  signals, terminating the process
       with a core dump.

core を吐いて終了、というのがデフォルトの動作のようである。一応、テストで
signal(SIGXFSZ, sig_handler);
みたいに追加して、signal を trap してみたけど、ちゃんとシグナルを捕まえる
ことはできるみたい。なので、ext2 でのファイル制限にひっかかった場合に、
プログラムの制御を加える場合は signal を拾ってやれば良いみたい。すごい
面倒臭いけど。

 12/22
WWW
NetBSD 3.1 で apache を起動させる。その前に。やっと OS の設定が終わると、
NetBSD 4.0 がリリースされる、なんて悲しき出来事が。
そんなことは置いて、apache の設定。何故か、既に apache が /usr/pkg 以下に
入っていたので、これを起動させる。/usr/pkg/etc/httpd.conf を適当に設定して
おいて、apachectl を実行してみる。

[root@mustafar]# /usr/pkg/sbin/apachectl start
httpd: apr_sockaddr_info_get() failed for mustafar
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
(48)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

駄目。調べてみると、httpd.conf の Listen の記述が問題みたい。元々書いて
あった

Listen 80
Listen 0.0.0.0:80

の2行をそのままにしたのだけど、上の方だけにしてみた。

[root@mustafar]# /usr/pkg/sbin/apachectl start
httpd: apr_sockaddr_info_get() failed for mustafar
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

まだ駄目。apr_sockaddr_info_get がエラーを起こしているので、起動もして
ない。なんだか、これは単純な問題な気がしてきた。/etc/hosts に

192.168.3.13 mustafar

を追加してやってみる。

[root@mustafar]# /usr/pkg/sbin/apachectl start
httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.3.13 for ServerName

apr_sockaddr_info_get のエラーは無くなって、起動はしているようである。
とりあえず、この状態で。

 12/23
WWW
昨日の続きで、apache の自動起動の設定。/usr/pkg 以下を探していたら、起動
スクリプトが /usr/pkg/share/examples/rc.d にあったので、これをコピーして
みた。

[root@mustafar]# /usr/pkg/share/examples/rc.d/apache /etc/rc.d/

rcorder で起動の順番を確認すると、どうやら最後に起動されるらしい。問題
ないので、そのまま。とりあえず、起動してみる。

[root@mustafar]# /etc/rc.d/apache start
/etc/rc.d/apache: WARNING: $apache is not set properly - see rc.conf(5).

だそうで。追加したものでも、どこかに apache=YES 的なものを書かなければ
ならないらしい。ということで、/etc/defaults/rc.conf に追加してみる。

[root@mustafar]# vi /etc/defaults/rc.conf

ファイルの適当な場所に apache=YES を追加して完了。これで文句を言われなく
なった。あとは、コンテンツを持ってこないと。

 12/24
Other
21日の続き。どうやら ext3 の環境でも、同じエラーが発生する。コンパイルする
ときに、-D_FILE_OFFSET_BITS=64 オプションを付けないといけないようである。
いちいち面倒、というか、標準にしてくれるとありがたいのに、なんて思いながら、
最コンパイル。他にも -D_LARGEFILE64_SOURCE とか -DHAVE_LARGEFILE_SUPPORT が
あるみたいなので、調べてみた。/usr/include/features.h に、以下のことが
書かれてあった。

   _LARGEFILE_SOURCE    Some more functions for correct standard I/O.
   _LARGEFILE64_SOURCE  Additional functionality from LFS for large files.
   _FILE_OFFSET_BITS=N  Select default filesystem interface.

HAVE_LARGEFILE_SUPPORT は Linux では使ってない(?)感じがする。

 12/25
Other
無線 LAN のアンテナについて調べていたら、同じ周波数帯をアマチュア無線でも
つかっていることがわかった。つまり、アマチュア無線用のアンテナをそのまま
無線 LAN に転用できる、と。そうすると、アンテナの選択肢がかなり広がるので、
8エレの八木とか、パラボラとか面白そうなものがある。ただ、ほとんどが N コネ
なので、コネクタを変換しなきゃいけない。8エレぐらい使えば、近所の公衆無線
LAN に繋がるかなぁ。

 12/26
Other
無線 LAN の出力を増幅する手ごろな方法を考えてみた。無線 LAN の低格出力は
10mW みたい。これに、1.2GHz ぐらいだったら uPC1659G あたりを秋月で200円で
買ってくれば、手軽にできるのだけど、さすがに 2.4GHz ともなるとね。同じ
uPC の型番だと、2.4GHz には uPC2762TB とか uPC8182TB になるのかな。多分、
入手に問題があるだろうし、入手できたとしても、数百円じゃ無理だろうなぁ。
その前に、チップを下手糞な半田付けしたら、それだけで発振しそうだし、ケースも
ガチガチにシールドしなきゃいけないし。高周波って面倒なんだよなぁ…。

 12/27
Other
HDD でも買おうかと思って値段を見ていたら、1T で3万円を切っていることに
驚いた。さらに、キャッシュ用のメモリが 16M とか普通に 16M とか積んでいるし。
HDD の基板に CPU 付けたら、そのまま OS 走るんじゃないか、とか良くわからない
ことを考えてしまった。容量当たりの単価が安い 500G ぐらいの HDD でも買う
かなぁ。

 12/28
Other
中古で買った IBM NetVista M42 がうまく起動しない。どうやら、変なものを
つかまされたようである。テスター片手に悪戦苦闘をしているのだけど、かなり
ハマった感じ。休み中になんとかしたいけど、時間がもったいないし、実家に
ある HP の PC を引き上げて来ようかな…。

 12/29
Electric
車に乗ろうとしたら、何か様子がおかしい。どうやらバッテリーが無くなって
しまったようである。ちょっと無理して、原付のバッテリから直結をしようと
思ったのだけど、ケーブルが見つからない。夜だったので、ごそごそやって、
バイクのバッテリーを繋ぐのも面倒だし、バッテリーはもう2年半使っているので、
近所の車用品屋に買いにいった。が、8千円とかする。この年末にその値段は
無理。ということで、実家に帰って充電器を借りることにした。パソコンを実家に
持って行きたかっただけなのに、何故か実家から充電器を持って帰ることに。
バッテリーが無くなった原因を確かめないと。

 12/30
Electric
昨夜充電した車のバッテリーを取り付けた。はじめ、+−を間違えて繋げようと
してしまい、+線をバッテリーのー端子に付けたのだけど、何故か固定できない。
そこで極を間違えていたことに気がついたのだけど、端子の太さが違うことを
初めて知った。パッと見同じ太さだと思ったのだけど、私みたいな馬鹿な人間の
ことを考えてちゃんと作っているんだな、と妙に関心してしまった。

 12/31
Other
Dovecot 1.0.10 が出ていた。翻訳文章が 1.0.8 から全然進んでいない。年末休みに
なんとかしたいのだけど、他にやることが溜まっているし、当分無理かも…。
とりあえず、ページだけ更新しておいた。


21st projects Tatsuyoshi Networks Prompt Works
by Tatsuyoshi
since 2003