x64 で Hamachi を動かすの巻。
メイン環境が 64bit な Ubuntu なのですが、README に従って Hamachi をインストールしようとすると
hamachi@ubuntu:~/hamachi-0.9.9.9-20-lnx$ hamachi start 17 02:10:55.828 [ 0] [ 6625] tap: bad response 06000000 17 02:10:55.828 [ 0] [ 6625] Failed to configure tap device to use 5.0.0.0/0000000000
などと文句を言うわけですよ。
どう見ても tuncfg 絡みのエラーなので tuncfg -d してやると
root@ubuntu:~/hamachi-0.9.9.9-20-lnx# /sbin/tuncfg -d tuncfg: accept() 5 0 tuncfg: open() 6 0 tuncfg: ioctl() 0 ham0 tuncfg: recv() 8 0 tuncfg: config() 06000000tuncfg: recv() 0 0 tuncfg: removing ham0
などと明らかにエラーが、っていうか ham0 が即削除されてるし。
で、原因はやっぱり tuncfg.c にまつわるエラーで、Hamachi 付属の tuncfg のコードが 64bit に対応していないから、らしい。 archlinux からパッチを引用。
--- tuncfg.c.orig 2007-03-05 16:29:32.000000000 +1100 +++ tuncfg.c 2007-03-05 16:29:50.000000000 +1100 @@ -272,7 +272,7 @@ skip: for (i=0; i<ctx_n; i++) { - unsigned long v[2]; + unsigned int v[2]; char cmd[256]; if (! FD_ISSET(ctx[i].fd, &fdr))
これでパッチ適用してやれば、 upx 解凍は不要。 ia32-libs はどっちにしても要るみたい。libcrypto はエラーが出たら入れれば良いんじゃないかな。あと AMD だと Pentium 向けバイナリじゃないと駄目とかいう書き込みもあるけど、現状 Athlon で動かしてるけど普通のバイナリで特に問題はない模様。
あとは closed binary なのでこういうエラーが出たときに気持ち悪い、という一部の方向けに n2n とかを挙げておきます。