[PC周辺] request_module: runaway loop modprobe char-major-5-1 (20081210)

起動の途中で(具体的には initramfs の image を読み終った後で)

request_module: runaway loop modprobe char-major-5-1

が数行分表示されて止ってしまうという問題。これが原因で 「Linux 2.6.26 git 20080714 版」 から手元で最新 kernel を追えなくなってしまった。

7/14 のあと、しばらく放置していたので、 具体的にどういった kernel への修正によって、 この問題が発生したのかは不明。

たとえば <URL:http://lkml.org/lkml/2008/10/28/98> とかで話題になっていて、ここでは .config で =m になっているものを適当に =y にしたら直ったと報告されている。

また、最近では <URL:http://bugzilla.kernel.org/show_bug.cgi?id=12153> のようにバグ報告がされている模様(なおこのバグは Reject されている)。

上記 BTS (bugzilla.kernel.org) における情報に基づいて

CONFIG_CRYPTO_MANAGER=m

CONFIG_CRYPTO_MANAGER=y

にすると、起動するようになった。

追記 (20081213)

<URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=4e6f2ba97ff9099ef03bd38f84b59b5c2f89c1fe> によると,

CONFIG_CRYPTO_MANAGER=m

でも OK になった模様(自動的に CONFIG_CRYPTO_MANAGER2=y となる).

[PC周辺] git の使い方 (20081004)

忘れるのでメモ。

% git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
% git clone http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

cogito の場合は以下。

% cg-clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git
% cg-clone http://www.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git

あとは、日々、

% cg-update

とか。

[PC周辺] Linux 2.6.27-rc4 git 20080825版 + ipw3945-source 1.2.2-1 (20080826)

という組合せで,ipw3945.ko が compile できないという問題.つまり,

% sudo module-assistant build ipw3945-source

で,.deb ができないという問題.で,調べてみた.

/usr/src/modules/ipw3945/ipw3945.c: In function 'ipw_start_association':
/usr/src/modules/ipw3945/ipw3945.c:4459: error: implicit declaration of function 'ieee80211_tx_frame'

という感じで remove ieee80211_tx_frame() という変更のため、文字通り ieee80211_tx_frame が無くなってしまったのが原因。

ということで

/usr/src/linux-source-2.6.25/net/ieee80211/ieee80211_tx.c

から

static struct ieee80211_txb *ieee80211_alloc_txb(...){...}
static int ieee80211_encrypt_fragment(...){...}
int ieee80211_tx_frame(...){...}

を ipw3945.c の適当な部分に copy。あと、

/usr/src/modules/ipw3945/Makefile

から

/usr/src/modules/ipw3945/snapshot/check_ieee80211_compat

という script で API の version を調べて -DIPW3945_COMPAT=1 とかしている(なってしまう)ようなので、

#if IPW3945_COMPAT >= 2
			rc = ieee80211_tx_frame(priv->ieee,
						&priv->assoc_sequence_frame->u.
						frame, 0,
						priv->assoc_sequence_frame->len,
						0);
#else
			rc = ieee80211_tx_frame(priv->ieee,
						&priv->assoc_sequence_frame->u.
						frame,
						priv->assoc_sequence_frame->
						len);
#endif

の箇所で、引数の数がおかしいと言われてコケる。 ということで無理矢理 -DIPW3945_COMPAT=2 を渡す (Makefile を修正するか、check_ieee80211_compat で echo 2 する)。

以下、自分用メモ。

% cd /usr/src/modules/ipw3945/
% sudo make -f debian/rules KVERS=`uname -r` KSRC=/usr/src/linux-headers-`uname -r` KDREV=0.1 binary-modules

で原因を探る([myn:2007090900])。

関連リンク

[PC周辺] vmware-any-any-update117 + Linux 2.6.26-rc2 git 20080514版 (20080514)

[myn:2008051100]と同様でいける. procfs.c に対する patch は以下のようにしたほうがいいらしい.

diff -uwr vmnet-only.orig/procfs.c vmnet-only/procfs.c
--- vmnet-only.orig/procfs.c    2007-05-14 14:57:41.000000000 +0900
+++ vmnet-only/procfs.c 2008-05-13 13:35:25.000000000 +0900
@@ -63,7 +63,7 @@
 {
    int retval;

-   retval = VNetProc_MakeEntry(&proc_root, "vmnet", S_IFDIR, &base);
+   retval = VNetProc_MakeEntry(NULL, "vmnet", S_IFDIR, &base);
    if (retval) {
       return retval;
    }
@@ -95,7 +95,7 @@
 void
 VNetProc_Cleanup(void)
 {
-   VNetProc_RemoveEntry(base, &proc_root);
+   remove_proc_entry(base->name, NULL);
    base = NULL;
 }

VNetProc_RemoveEntry の 2つ目の引数が NULL だと, 別の意味に解釈されるので. これで /proc/vmnet/ が2つ出来てしまう(消えない)問題が解決.

関連リンク

[PC周辺] vmware-any-any-update117 + Linux 2.6.26-rc1 git 20080507版 (20080511)

vmware-any-any-update117 は <URL:http://download.rsbac.org/tmp/> にあるものを使う.

まず vmmon の comple でこける.

make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
/tmp/vmware-config0/vmmon-only/linux/driver.c:171: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config0/vmmon-only/linux/driver.c:172: warning: initialization from incompatible pointer type
/tmp/vmware-config0/vmmon-only/linux/driver.c:175: error: unknown field 'nopage' specified in initializer
/tmp/vmware-config0/vmmon-only/linux/driver.c:176: warning: initialization from incompatible pointer type
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
make: *** [vmmon.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
Unable to build the vmmon module.

これについては,

diff -uwr vmmon-only.orig/linux/driver.c vmmon-only/linux/driver.c
--- vmmon-only.orig/linux/driver.c      2007-11-28 19:59:26.000000000 +0900
+++ vmmon-only/linux/driver.c   2008-05-11 17:41:57.000000000 +0900
@@ -168,11 +168,9 @@
 static void LinuxDriverPollTimeout(unsigned long clientData);

 static struct vm_operations_struct vmuser_mops = {
-       .nopage = LinuxDriverNoPage
 };

 struct vm_operations_struct vmuser_locked_mops = {
-       .nopage = LinuxDriverLockedNoPage
 };

 static struct file_operations vmuser_fops;

とかで対応.include/linux/mm.h の struct vm_operations_struct から nopage が無くなったのは mm: remove nopage で,本当は mm: merge populate and nopage into fault (fixes nonlinear) で導入された fault を使わなければならないような気もする.

次に vmnet の comple でこける.

make: Entering directory `/tmp/vmware-config0/vmnet-only'
make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
  CC [M]  /tmp/vmware-config0/vmnet-only/driver.o
  CC [M]  /tmp/vmware-config0/vmnet-only/hub.o
  CC [M]  /tmp/vmware-config0/vmnet-only/userif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/netif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/bridge.o
/tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeDevCompatible':
/tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeUp':
/tmp/vmware-config0/vmnet-only/bridge.c:905: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c:943: error: 'struct net_device' has no member named 'nd_net'
make[2]: *** [/tmp/vmware-config0/vmnet-only/bridge.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
make: *** [vmnet.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmnet-only'
Unable to build the vmnet module.

これについては,[myn:2008041900] と同じ.次に以下.

make: Entering directory `/tmp/vmware-config0/vmnet-only'
make -C /usr/src/linux-headers-2.6.26-rc1-20080507-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
  CC [M]  /tmp/vmware-config0/vmnet-only/driver.o
  CC [M]  /tmp/vmware-config0/vmnet-only/hub.o
  CC [M]  /tmp/vmware-config0/vmnet-only/userif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/netif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/bridge.o
  CC [M]  /tmp/vmware-config0/vmnet-only/filter.o
  CC [M]  /tmp/vmware-config0/vmnet-only/procfs.o
/tmp/vmware-config0/vmnet-only/procfs.c: In function 'VNetProc_Init':
/tmp/vmware-config0/vmnet-only/procfs.c:66: error: 'proc_root' undeclared (first use in this function)
/tmp/vmware-config0/vmnet-only/procfs.c:66: error: (Each undeclared identifier is reported only once
/tmp/vmware-config0/vmnet-only/procfs.c:66: error: for each function it appears in.)
/tmp/vmware-config0/vmnet-only/procfs.c: In function 'VNetProc_Cleanup':
/tmp/vmware-config0/vmnet-only/procfs.c:98: error: 'proc_root' undeclared (first use in this function)
make[2]: *** [/tmp/vmware-config0/vmnet-only/procfs.o] Error 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-rc1-20080507-myn-01'
make: *** [vmnet.ko] Error 2
make: Leaving directory `/tmp/vmware-config0/vmnet-only'
Unable to build the vmnet module.

これは,include/linux/proc_fs.h から proc_root が無くなったのは proc: remove proc_root from drivers. 見た感じ NULL にしておけばいいらしい.ということで,以下のような感じに.

diff -uwr vmnet-only.orig/procfs.c vmnet-only/procfs.c
--- vmnet-only.orig/procfs.c    2007-05-14 14:57:41.000000000 +0900
+++ vmnet-only/procfs.c 2008-05-11 18:08:43.000000000 +0900
@@ -63,7 +63,7 @@
 {
    int retval;

-   retval = VNetProc_MakeEntry(&proc_root, "vmnet", S_IFDIR, &base);
+   retval = VNetProc_MakeEntry(NULL, "vmnet", S_IFDIR, &base);
    if (retval) {
       return retval;
    }
@@ -95,7 +95,7 @@
 void
 VNetProc_Cleanup(void)
 {
-   VNetProc_RemoveEntry(base, &proc_root);
+   VNetProc_RemoveEntry(base, NULL);
    base = NULL;
 }

がしかしただし,vmnet を組込む時に,

proc_dir_entry 'vmnet' already registered
Pid: 10683, comm: insmod Tainted: P          2.6.26-rc1-20080507-myn-01 #1
 [<c018abfd>] proc_register+0xf2/0x11d
 [<c018ad23>] create_proc_entry+0x6d/0x80
 [<f8ae0dc1>] VNetProc_MakeEntry+0x18/0x28 [vmnet]
 [<f8ae0de7>] VNetProc_Init+0x16/0x1b [vmnet]
 [<f8add6f8>] init_module+0x7/0xce [vmnet]
 [<c013989e>] sys_init_module+0x157f/0x1716
 [<c02587e2>] _write_unlock_irqrestore+0x0/0xa
 [<c0103816>] syscall_call+0x7/0xb
 =======================

とか怒られて,かつ実際,

% ls -ld /proc/vmnet*   
dr-xr-xr-x 2 root root 0 2008-05-11 18:10 /proc/vmnet/
dr-xr-xr-x 2 root root 0 2008-05-11 18:10 /proc/vmnet/

みたいな素敵なことになる(一応動く).

関連リンク
参照リンク

[PC周辺] qmail で queue にたまっているメールを吐き出す (20080420)

なんかメール転送先のサーバが数日止っていたので,qmail-qstat の結果結構 メールがたまっていて,まあしばらく放置していれば次第に届くのであるが, 一気に送ってしまう方法があるはず(sendmail の場合は sendmail -q)なので, 調べてみた.

[% man qmail-send]
If qmail-send receives an ALRM signal,  it  will  reschedule
every message in the queue for immediate delivery.

とかいうことで,

% sudo kill -ALRM (qmail-send's pid)

ということらしい.

[PC周辺] vmware-any-any-update116 + Linux 2.6.25 git 20080419版 (20080419)

[myn:2008041800] の続き.Linux 2.6.25 の git の最新版にあげると,

/tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeDevCompatible':
/tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c:278: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeUp':
/tmp/vmware-config0/vmnet-only/bridge.c:913: error: 'struct net_device' has no member named 'nd_net'
/tmp/vmware-config0/vmnet-only/bridge.c:951: error: 'struct net_device' has no member named 'nd_net'

とか怒られる.これは,

[include/linux/netdevice.h]
#ifdef CONFIG_NET_NS
        /* Network namespace this network device is inside */
        struct net              *nd_net;
#endif

とかになっていて CONFIG_NET_NS が設定されていないから. とはいえ CONFIG_NET_NS は !CONFIG_SYSFS でなければ設定不能 (ということで普通は設定されない).ということで,

[include/linux/netdevice.h]
/*
 * Net namespace inlines
 */
static inline
struct net *dev_net(const struct net_device *dev)
{
#ifdef CONFIG_NET_NS
        return dev->nd_net;
#else
        return &init_net;
#endif
}

という method を使うことにする.

diff -ruw vmnet-only.orig/bridge.c vmnet-only/bridge.c
--- vmnet-only.orig/bridge.c 2007-11-28 19:25:06.000000000 +0900
+++ vmnet-only/bridge.c 2008-04-19 19:08:45.000000000 +0900
@@ -275,7 +275,7 @@
                         struct net_device *net)  // IN: Network device
 {
 #ifdef VMW_NETDEV_HAS_NET
-   if (net->nd_net != bridge->internalDev->nd_net) {
+   if (dev_net(net) != dev_net(bridge->internalDev)) {
       return 0;
    }
 #endif

と,

diff -ruw vmnet-only.orig/vmnet-only/vmnetInt.h vmnet-only/vmnetInt.h
--- vmnet-only.orig/vmnet-only/vmnetInt.h       2007-11-28 19:25:06.000000000 +0900
+++ vmnet-only/vmnetInt.h       2008-04-20 23:09:00.000000000 +0900
@@ -63,7 +63,7 @@
 #   define dev_lock_list()    read_lock(&dev_base_lock)
 #   define dev_unlock_list()  read_unlock(&dev_base_lock)
 #   ifdef VMW_NETDEV_HAS_NET
-#      define DEV_GET(x)      __dev_get_by_name((x)->internalDev->nd_net, (x)->name)
+#      define DEV_GET(x)      __dev_get_by_name((dev_net((x)->internalDev)), (x)->name)
 #   else
 #      define DEV_GET(x)      __dev_get_by_name((x)->name)
 #   endif
@@ -85,7 +85,7 @@

 #ifdef VMW_NETDEV_HAS_NET
 extern struct proto vmnet_proto;
-#   define compat_sk_alloc(_bri, _pri) sk_alloc((_bri)->internalDev->nd_net, \
+#   define compat_sk_alloc(_bri, _pri) sk_alloc((dev_net((_bri)->internalDev)), \
                                                 PF_NETLINK, _pri, &vmnet_proto)
 #elif defined(VMW_HAVE_SK_ALLOC_WITH_PROTO)
 extern struct proto vmnet_proto;

みたいな感じで(なんか無駄に括弧が多くしてしまったような気もする).

該当する Linux 側の変更は, [NET] NETNS: Omit net_device->nd_net without CONFIG_NET_NS.

関連リンク
参照リンク

[PC周辺] vmware-any-any-update116 + Linux 2.6.25-rc8 git 20080412版 (20080418)

2.6.24-rc8 git 20080124版であれば vmware-any-any-update116 で vmware が動くが,それ以降の Linux だと compile がとおらず,放置してた.

2.6.25 も出てことだし,ちょっと見てみた.

ちなみに vmware-any-any-update116 は <URL:http://groups.google.com/group/vmkernelnewbies/files> にある(開発が 115 までとは別系統?).

で,まず,

In file included from /tmp/vmware-config0/vmmon-only/common/hostKernel.h:56,
                 from /tmp/vmware-config0/vmmon-only/common/task.c:30:
include/asm/page.h: In function 'pte_t native_make_pte(pteval_t)':
include/asm/page.h:128: error: expected primary-expression before ')' token
include/asm/page.h:128: error: expected ';' before '{' token
include/asm/page.h:128: error: expected primary-expression before '.' token
include/asm/page.h:128: error: expected `;' before '}' token

とか.これは [myn:2007072000] と同様に include/asm/page.h の native_make_pte 付近を修正.次に,

/tmp/vmware-config0/vmnet-only/bridge.c: In function 'VNetBridgeUp':
/tmp/vmware-config0/vmnet-only/bridge.c:949: error: implicit declaration of function 'sock_valbool_flag'

とか.これは「[NET]: Move sock_valbool_flag to socket.c」 由来の問題ぽい.

diff -ruw vmnet-only.orig/bridge.c vmnet-only/bridge.c
--- vmnet-only.orig/bridge.c 2007-11-28 19:25:06.000000000 +0900
+++ vmnet-only/bridge.c 2008-04-18 10:43:53.000000000 +0900
@@ -886,6 +886,14 @@
  *----------------------------------------------------------------------
  */

+static inline void sock_valbool_flag(struct sock *sk, int bit, int valbool)
+{
+  if (valbool)
+    sock_set_flag(sk, bit);
+  else
+    sock_reset_flag(sk, bit);
+}
+
 int
 VNetBridgeUp(VNetBridge *bridge, // IN: bridge struct
              Bool rtnlLock)      // IN: acquire RTNL lock

という感じで bridge.c に宣言を記述して対応(というか手動で inline 展開 しても可).やるきなしなし.次に,

/tmp/vmware-config0/vmnet-only/filter.c:48: error: 'NF_IP_LOCAL_IN' undeclared here (not in a function)
/tmp/vmware-config0/vmnet-only/filter.c:53: error: 'NF_IP_POST_ROUTING' undeclared here (not in a function)
/tmp/vmware-config0/vmnet-only/filter.c: In function 'VNetFilterHookFn':
/tmp/vmware-config0/vmnet-only/filter.c:233: warning: comparison between pointer and integer

とか.NF_IP_LOCAL_IN および NF_IP_POST_ROUTING は linux/netfilter_ipv4.h で define されており, filter.c からこの file を include しようとしているのだが,失敗してるぽい. ということで

diff -ruw vmnet-only.orig/filter.c vmnet-only/filter.c
--- vmnet-only.orig/filter.c 2007-11-28 19:11:12.000000000 +0900
+++ vmnet-only/filter.c 2008-04-18 10:50:24.000000000 +0900
@@ -41,6 +41,9 @@
 /* netfilter hooks for filtering. */
 static nf_hookfn VNetFilterHookFn;

+#define NF_IP_LOCAL_IN         1
+#define NF_IP_POST_ROUTING      4
+
 static struct nf_hook_ops vmnet_nf_ops[] = {
    {  .hook = VNetFilterHookFn,
       compat_nf_hook_owner

という感じで filter.c に #define を記述して対応.やるきなしなし.

関連リンク
参照リンク

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update115 + Linux 2.6.24-rc6 git 20071221版 (only <linux/bitops.h> can be included directly) (20071223)

Building for VMware Workstation 4.5.[23] or VMware GSX Server 3.1.0.
Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' に入ります
make -C /usr/src/linux-headers-2.6.24-rc6-20071221-myn-01/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-rc6-20071221-myn-01' に入ります
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/hostif.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/comport.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/cpuid.o
In file included from include/asm/bitops.h:2,
                 from /tmp/vmware-config0/vmmon-only/./include/vcpuset.h:74,
                 from /tmp/vmware-config0/vmmon-only/./include/modulecall.h:23,
                 from /tmp/vmware-config0/vmmon-only/common/vmx86.h:19,
                 from /tmp/vmware-config0/vmmon-only/common/hostif.h:18,
                 from /tmp/vmware-config0/vmmon-only/common/cpuid.c:15:
include/asm/bitops_32.h:9:2: error: #error only <linux/bitops.h> can be included directly
make[2]: *** [/tmp/vmware-config0/vmmon-only/common/cpuid.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.24-rc6-20071221-myn-01' から出ます
make: *** [vmmon.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' から出ます
Unable to build the vmmon module.

という感じで,asm/bitops.h ではなく linux/bitops.h を include しなさいと怒られるので,

diff -uwr vmmon-only.orig/include/vcpuset.h vmmon-only/include/vcpuset.h
--- vmmon-only.orig/include/vcpuset.h   2007-07-22 20:21:17.000000000 +0900
+++ vmmon-only/include/vcpuset.h        2007-12-23 15:36:11.000000000 +0900
@@ -71,7 +71,7 @@
 #define ffs(x) ffs_x86_64(x)

 #elif defined MODULE
-   #include "asm/bitops.h"
+   #include "linux/bitops.h"
 #elif defined __APPLE__ && defined KERNEL
    /* 
     * XXXMACOS An ugly hack to resolve redefinition of PAGE_ defines 

といった感じの patch で対応.

[PC周辺] xserver-xorg + icewm 1.2.33-1 @Debian GNU/Linux sid (20071128)

9月頃からの一連の xorg の version up に関連して,icewm で Alt+TAB (quick switch とか言われるあれ)をすると固まるという症状に陥った.

package は以下のような組み合わせ(かなり抜粋).

ということで,他の Window Manager (できれば軽量)を探すことにした. 今回とりあえず候補とした(候補として試してみた)のは以下.

この中から結局 metacity を使うことにした.

ただし metacity には taskbar (Windows 以外では panel と言うらしい) が付属していないので,metacity + gnome-panel で使うことに.

関連リンク

[PC周辺] Sonic Solutions DLA (20071018)

以前のボスに呼び出されてボスの Dell 計算機(Dimension E520 w/Windows Vista Ultimate)の設定とかを行う.

がしかし,

このドライバーは互換性の問題のためブロックされています
ドライバ Sonic Solutions DLA
発行元 Sonic Solutions

みたいなダイアログが起動する度に出てうざいので対応.具体的には ここ の適当なスレッドを参照.一番素直な解決法っぽい Dell のサポート で解決させた.

[PC周辺] Linux 2.6.23 git 20071017版 + ipw3945-source 1.2.2-1 (20071017)

という組合せで,ipw3945.ko が compile できないという問題.つまり,

% sudo module-assistant build ipw3945-source

で,.deb ができないという問題.で,調べてみた.まず,普通は,

/usr/src/linux/include/asm -> asm-i386/

といった感じになっていて,最新の kernel で作った linux-headers deb package も同様の symlink を張るのであるが,これがまちがい. 最新の kernel では

/usr/src/linux/include/asm -> asm-x86/

としなければならないらしい(手動で ln -s しなおす).次に,

の余波により ipw3945.c の compile がとおらない.前者に関しては,

MAC_ARG(addr)

とかの箇所を,まずどこかで,

DECLARE_MAC_BUF(mac);

してから,

print_mac(mac, addr)

する,みたいな修正が必要ならしい.ipw3945.c では MAC_ARG が 52 箇所で 使われていて面倒なので,ipw3945.c の適当なところで MAC_ARG を define することにする.

次に後者に関してであるが,SET_MODULE_OWNER の箇所をそのまま削除してや ればいいらしい.

ということで,以下のような感じに.

diff -uw ipw3945.c.orig ipw3945.c
--- ipw3945.c.orig      2007-10-17 15:43:17.000000000 +0900
+++ ipw3945.c   2007-10-17 15:42:45.000000000 +0900
@@ -108,6 +108,8 @@
 #define DRV_COPYRIGHT  "Copyright(c) 2003-2006 Intel Corporation"
 #define DRV_VERSION     IPW3945_VERSION

+#define MAC_ARG(x) ((u8*)(x))[0],((u8*)(x))[1],((u8*)(x))[2],((u8*)(x))[3],((u8*)(x))[4],((u8*)(x))[5]
+
 MODULE_DESCRIPTION(DRV_DESCRIPTION);
 MODULE_VERSION(DRV_VERSION);
 MODULE_AUTHOR(DRV_COPYRIGHT);
@@ -16591,7 +16593,6 @@
                goto out_release_ucode;
        }

-       SET_MODULE_OWNER(net_dev);
        SET_NETDEV_DEV(net_dev, &pdev->dev);
        mutex_lock(&priv->mutex);
        priv->ieee->hard_start_xmit = ipw_net_hard_start_xmit;

/usr/src/ipw3945.tar.bz2 内の該当 file を修正して,あとは,

% sudo module-assistant build ipw3945-source

して dpkg -i して完了.

追記 (20071112)

でも同様なのであるが,なぜか linux-headers に

が含まれていない(arch/x86/Makefile は有る)ので,

% rsync -avz /usr/src/linux-2.6/arch/x86/Makefile* \
/usr/src/linux-headers-2.6.24-rc2-20071112-hoge-01/arch/x86/

とかで適当に調達しなければいけない (上を書いたときもそのようにしていたような気がする).

関連リンク
参照リンク

[PC周辺] xserver-xorg-core 2:1.4-3 で swapcaps が効かない (20071001)

Let's Note CF-T5 に Debian を入れて,testing(sid) を追いかけてて,

Section "InputDevice"
  Identifier    "Generic Keyboard"
  Driver        "kbd"
  Option        "CoreKeyboard"
  Option        "XkbRules"    "xorg"
  Option        "XkbModel"    "pc104"
  Option        "XkbLayout"   "us"
  Option        "XkbVariant"  "nodeadkeys"
  Option        "XkbOptions"  "ctrl:swapcaps"
EndSection

といった感じの xorg.conf なのであるが,9月頃からの一連の xorg の version up のために keyboard まわりが非常に混乱した状況になっている...

で,今日(xserver-xorg-core 2:1.4-3)のは一番非道くて, ctrl:swapcaps が効かなくなった. ちなみにどうでもいいが私の key 配列は qwerty US 配列を無理矢理日本語キーボードで使っている (日本語キーボードな Note PC ではいつものこと).

で「ctrl:swapcaps が効かなくなった」に関しては xserver-xorg-core を 2:1.4-2 に downgrade することにより解決.

ちなみに,上で混乱した状況と書いているのは,

とかとか.知人によるとちょっと違う他の症状も出ているとのこと. どれがどの packege の時の話かは完全に失念 (たぶん9月に入ってからの一連の xorg まわりの update に起因) ちなみに,現在は以下のような package 構成.

% dpkg -l '*xserver-xorg*' | grep ^ii
ii  xserver-xorg                                   1:7.3+2                     the X.Org X server
ii  xserver-xorg-core                              2:1.4-2                     X.Org X server -- core server
ii  xserver-xorg-dev                               2:1.4-3                     Xorg X server - development files
ii  xserver-xorg-input-all                         1:7.3+2                     the X.Org X server -- input driver metapacka
ii  xserver-xorg-input-evdev                       1:1.2.0~git20070819-3       X.Org X server -- evdev input driver
ii  xserver-xorg-input-kbd                         1:1.2.2-3                   X.Org X server -- keyboard input driver
ii  xserver-xorg-input-mouse                       1:1.2.2-6                   X.Org X server -- mouse input driver
ii  xserver-xorg-input-synaptics                   0.14.7~git20070706-1        Synaptics TouchPad driver for X.Org/XFree86 
ii  xserver-xorg-input-wacom                       0.7.7.11-1                  X.Org X server -- wacom input driver
ii  xserver-xorg-video-all                         1:7.3+2                     the X.Org X server -- output driver metapack
ii  xserver-xorg-video-apm                         1:1.1.1-10                  X.Org X server -- APM display driver
ii  xserver-xorg-video-ark                         1:0.6.0-9                   X.Org X server -- ark display driver
ii  xserver-xorg-video-ati                         1:6.6.193-3                 X.Org X server -- ATI display driver
ii  xserver-xorg-video-chips                       1:1.1.1-9                   X.Org X server -- Chips display driver
ii  xserver-xorg-video-cirrus                      1:1.1.0-8                   X.Org X server -- Cirrus display driver
ii  xserver-xorg-video-cyrix                       1:1.1.0-8                   X.Org X server -- Cyrix display driver
ii  xserver-xorg-video-dummy                       1:0.2.0-7                   X.Org X server -- dummy display driver
ii  xserver-xorg-video-fbdev                       1:0.3.1-4                   X.Org X server -- fbdev display driver
ii  xserver-xorg-video-glint                       1:1.1.1-8                   X.Org X server -- Glint display driver
ii  xserver-xorg-video-i128                        1:1.2.1-4                   X.Org X server -- i128 display driver
ii  xserver-xorg-video-i740                        1:1.1.0-7                   X.Org X server -- i740 display driver
ii  xserver-xorg-video-i810                        2:2.1.1-4                   X.Org X server -- Intel i8xx, i9xx display d
ii  xserver-xorg-video-imstt                       1:1.1.0-7                   X.Org X server -- IMSTT display driver
ii  xserver-xorg-video-intel                       2:2.1.1-4                   X.Org X server -- Intel i8xx, i9xx display d
ii  xserver-xorg-video-mga                         1:1.4.7.dfsg.1-3            X.Org X server -- MGA display driver
ii  xserver-xorg-video-neomagic                    1:1.1.1-8                   X.Org X server -- Neomagic display driver
ii  xserver-xorg-video-newport                     1:0.2.1-4                   X.Org X server -- Newport display driver
ii  xserver-xorg-video-nsc                         1:2.8.3-2                   X.Org X server -- NSC display driver
ii  xserver-xorg-video-nv                          1:2.1.5-1                   X.Org X server -- NV display driver
ii  xserver-xorg-video-rendition                   1:4.1.3.dfsg.1-4            X.Org X server -- Rendition display driver
ii  xserver-xorg-video-s3                          1:0.5.0-4                   X.Org X server -- legacy S3 display driver
ii  xserver-xorg-video-s3virge                     1:1.9.1-7                   X.Org X server -- S3 ViRGE display driver
ii  xserver-xorg-video-savage                      1:2.1.3-3                   X.Org X server -- Savage display driver
ii  xserver-xorg-video-siliconmotion               1:1.5.1-3                   X.Org X server -- SiliconMotion display driv
ii  xserver-xorg-video-sis                         1:0.9.3-5                   X.Org X server -- SiS display driver
ii  xserver-xorg-video-sisusb                      1:0.8.1-9                   X.Org X server -- SiS USB display driver
ii  xserver-xorg-video-tdfx                        1:1.3.0-6                   X.Org X server -- tdfx display driver
ii  xserver-xorg-video-tga                         1:1.1.0-9                   X.Org X server -- TGA display driver
ii  xserver-xorg-video-trident                     1:1.2.3-6                   X.Org X server -- Trident display driver
ii  xserver-xorg-video-tseng                       1:1.1.1-4                   X.Org X server -- Tseng display driver
ii  xserver-xorg-video-v4l                         0.1.1-6                     X.Org X server -- Video 4 Linux display driv
ii  xserver-xorg-video-vesa                        1:1.3.0-4                   X.Org X server -- VESA display driver
ii  xserver-xorg-video-vga                         1:4.1.0-8                   X.Org X server -- VGA display driver
ii  xserver-xorg-video-via                         1:0.2.2-5                   X.Org X server -- VIA display driver
ii  xserver-xorg-video-vmware                      1:10.15.0-1                 X.Org X server -- VMware display driver
ii  xserver-xorg-video-voodoo                      1:1.1.1-5                   X.Org X server -- Voodoo display driver

不要なものがいろいろ入っている気がするが.

参考関連 Link
参照リンク

[PC周辺] Linux 2.6.23-rc5 git 20070909版 + nvidia-kernel-source 100.14.11-1 (20070909)

という組合せで,nvidia.ko が compile できないという問題.

具体的には,

/usr/src/modules/nvidia-kernel/nv/nv.c: In function 'nvidia_init_module':
/usr/src/modules/nvidia-kernel/nv/nv.c:1326: error: too many arguments to function 'kmem_cache_create'
/usr/src/modules/nvidia-kernel/nv/nv.c:1435: error: too many arguments to function 'kmem_cache_create'
/usr/src/modules/nvidia-kernel/nv/nv.c:1569: error: void value not ignored as it ought to be
/usr/src/modules/nvidia-kernel/nv/nv.c: In function 'nvidia_exit_module':
/usr/src/modules/nvidia-kernel/nv/nv.c:1601: error: void value not ignored as it ought to be

という error でこける.kmem_cache_create に関しては <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=9a79b2274186fade17134929d4f85b70d59a3840#patch115>

struct kmem_cache *kmem_cache_create(const char *, size_t, size_t,
                       unsigned long,
-                      void (*)(void *, struct kmem_cache *, unsigned long),
                       void (*)(void *, struct kmem_cache *, unsigned long));

という部分の影響.これに関しては,

diff -uw nv/nv-linux.h.orig nv/nv-linux.h
--- nv/nv-linux.h.orig  2007-09-09 13:49:04.000000000 +0900
+++ nv/nv-linux.h       2007-09-09 13:49:14.000000000 +0900
@@ -533,7 +533,7 @@
 #define NV_KMEM_CACHE_CREATE(kmem_cache, name, type)            \
     {                                                           \
         kmem_cache = kmem_cache_create(name, sizeof(type),      \
-                        0, 0, NULL, NULL);                      \
+                        0, 0, NULL);                      \
     } 

 #define NV_KMEM_CACHE_DESTROY(kmem_cache)                       \

とかして対応.

void value not ignored as it ought to be

とか怒られているのは, <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=e53252d97e670a38b1d2e9723b48077bba11ddda#patch2>

-extern int unregister_chrdev(unsigned int, const char *);
+extern void unregister_chrdev(unsigned int, const char *);

という部分の影響.これに関しては,

diff -uw nv/nv.c.orig nv/nv.c      
--- nv/nv.c.orig        2007-09-09 13:50:30.000000000 +0900                    
+++ nv/nv.c     2007-09-09 13:52:11.000000000 +0900
@@ -1566,8 +1566,7 @@
         if (apm_nv_dev[i] != NULL) pm_unregister(apm_nv_dev[i]);
 #endif

-    if (unregister_chrdev(nv_major, "nvidia") < 0)
-        nv_printf(NV_DBG_ERRORS, "NVRM: unregister nv chrdev failed\n");
+    unregister_chrdev(nv_major, "nvidia");

     for (i = 0; i < num_nv_devices; i++)
     {
@@ -1598,8 +1597,7 @@

     nv_printf(NV_DBG_INFO, "NVRM: nvidia_exit_module\n");

-    if (unregister_chrdev(nv_major, "nvidia") < 0)
-        nv_printf(NV_DBG_ERRORS, "NVRM: unregister nv chrdev failed\n");
+    unregister_chrdev(nv_major, "nvidia");

     for (i = 0; i < num_nv_devices; i++)
     {

とかして対応.

ちなみに普通に nvidia.ko (というか,それを含む .deb) を作る時は,

% sudo module-assistant build nvidia-kernel

とかで済ますのであるが,こけた時の原因を探るには,

% cd /usr/src/modules/nvidia-kernel
% sudo make -f debian/rules KVERS=`uname -r` KSRC=/lib/modules/`uname -r`/source KDREV=0.1 binary_modules

とかで探ってやれば良さげ.nvidia-kernel-source の本体は

/usr/src/nvidia-kernel-source.tar.gz

にあるので,本来はそこに patch をあててやるべきな気がしないでもないが, 上述の make で .deb が吐けるので, kernel をあげる度に対応することに適当に修正をかけることにする.

参照リンク

[PC周辺] util-linux 2.13~rc2-2 から arch が消える (20070802)

ある商用 Linux プログラムを動かしたら

arch: Command not found.

とかで唐突に落ちて悩む.どうやら util-linux に /bin/arch が含まれなくなったのが原因で,changelog によると

util-linux (2.13~rc2-2) experimental; urgency=low

  * arch is dealt with upstream now.
(snip)

とのこと(2.13~rc2-2 以降では arch が無いっぽい).DEPRECATED という file によると

The following is a list of commands or features that are going to be
removed in the util-linux-ng source tree.
(snip)
What:   arch(1) command
When:   2.14
Why:    deprecated in favor of uname(1) or arch(1) from coreutils

        The arch(1) has been added (during 2.13 development cycle) to coreutuls
        where it will be maintained as an alias for uname(1) command.

ということらしい.がしかしまだ coreutil (今の version は 5.97-5.3) には含まれていないっぽくて,とりあえず,

% apt-get source util-linux
% cd util-linux-2.13\~rc2/sys-utils
% make arch
% sudo cp arch /bin

といった感じでやるきなしなし対応.

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update110 + Linux 2.6.22 git 20070720版 (mm_struct.dumpable and unregister_chrdev) (20070721)

まず,vmmon の compile で

Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' に入ります
make -C /usr/src/linux-headers-2.6.22-2007072001/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.22-2007072001' に入ります
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
/tmp/vmware-config0/vmmon-only/linux/driver.c: In function '__LinuxDriver_Ioctl':
/tmp/vmware-config0/vmmon-only/linux/driver.c:1833: error: 'struct mm_struct' has no member named 'dumpable'
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.22-2007072001' から出ます
make: *** [vmmon.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' から出ます
Unable to build the vmmon module.

とかでこける.これは <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=6c5d523826dc639df709ed0f88c5d2ce25379652> の影響.mm_struct.dumpable に変更があったとのこと.

diff -uwr vmmon-only/linux/driver.c vmmon-only.new/linux/driver.c
--- vmmon-only/linux/driver.c   2007-04-09 10:20:35.000000000 +0900
+++ vmmon-only.new/linux/driver.c       2007-07-21 18:18:34.000000000 +0900
@@ -1494,6 +1494,26 @@
  */

 #include <linux/sched.h>
+static void set_dumpable0(struct mm_struct *mm, int value)
+{
+       switch (value) {
+       case 0:
+               clear_bit(MMF_DUMPABLE, &mm->flags);
+               smp_wmb();
+               clear_bit(MMF_DUMP_SECURELY, &mm->flags);
+               break;
+       case 1:
+               set_bit(MMF_DUMPABLE, &mm->flags);
+               smp_wmb();
+               clear_bit(MMF_DUMP_SECURELY, &mm->flags);
+               break;
+       case 2:
+               set_bit(MMF_DUMP_SECURELY, &mm->flags);
+               smp_wmb();
+               set_bit(MMF_DUMPABLE, &mm->flags);
+               break;
+       }
+}
 static int
 __LinuxDriver_Ioctl(
                   struct file *filp,
@@ -1830,7 +1850,7 @@
           current->egid == current->gid &&
          current->fsgid == current->gid) {
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 7)
-        current->mm->dumpable = 1;
+        set_dumpable0(current->mm, 1);
 #else
         current->dumpable = 1;
 #endif

という感じでやるきなしなし対応.

set_dumpable(current->mm, 1);

として,include/linux/sched.h に用意されているっぽい

extern void set_dumpable(struct mm_struct *mm, int value);

を使ってもいいのだけれども,insmod 時に

vmmon: Unknown symbol set_dumpable

とかでこけるようになる(上記 pache は fs/exec.c から set_dumpable を copy して流用している).

次に,vmnet の compile で,

make: ディレクトリ `/tmp/vmware-config0/vmnet-only' に入ります
make -C /usr/src/linux-headers-2.6.22-2007072001/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.22-2007072001' に入ります
  CC [M]  /tmp/vmware-config0/vmnet-only/driver.o
/tmp/vmware-config0/vmnet-only/driver.c: In function 'cleanup_module':
/tmp/vmware-config0/vmnet-only/driver.c:531: error: void value not ignored as it ought to be
make[2]: *** [/tmp/vmware-config0/vmnet-only/driver.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmnet-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux-headers-2.6.22-2007072001' から出ます
make: *** [vmnet.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmnet-only' から出ます
Unable to build the vmnet module.

とかでこける.これは <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=e53252d97e670a38b1d2e9723b48077bba11ddda>

-extern int unregister_chrdev(unsigned int, const char *);
+extern void unregister_chrdev(unsigned int, const char *);

といった変更による.ということで,

diff -uwr vmnet-only/driver.c vmnet-only.new/driver.c
--- vmnet-only/driver.c 2007-05-14 15:03:03.000000000 +0900
+++ vmnet-only.new/driver.c     2007-07-21 18:29:45.000000000 +0900
@@ -528,11 +528,7 @@
    int retval;

    unregister_ioctl32_handlers();
-   retval =  unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");
-   if (retval != 0 ) {
-      LOG(0, (KERN_WARNING "/dev/vmnet: could not unregister major device %d\n", 
-             VNET_MAJOR_NUMBER));
-   }
+   unregister_chrdev(VNET_MAJOR_NUMBER, "vmnet");
    VNetProtoUnregister();
    VNetProc_Cleanup();
 #ifdef CONFIG_NETFILTER

といった感じに.

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update110 + Linux 2.6.22 git 20070719版 (20070720)

[myn:2007062600] の続き.

の組み合わせの場合の話.で,前回の

とかいった話は,vmware-any-any-update110 で対応されているっぽい. ちなみに any-any patch は今までは <URL:http://ftp.cvut.cz/vmware/> で配布されていたんですが,vmware-any-any-update110 は <URL:http://knihovny.cvut.cz/ftp/pub/vmware/> にあって, まだあまり Google にひっかかってくれません.

今回の問題は include/asm/page.h の,

static inline pte_t native_make_pte(unsigned long val)
{
       return (pte_t) { .pte_low = val };
}

の箇所.前回 はこれをまるごと comment out して対応したのであるが,この 関数を他の .h (linux の) が参照しているらしく,comment out すると compile がとおらなくなる.ということで,

static inline pte_t native_make_pte(unsigned long val)
{
       pte_t t;
       t.pte_low=val;
       return t;
}

とか適当にそれっぽく修正して対応.やるきなしなし.

関連リンク
参照リンク

[PC周辺] __ctype_b, __ctype_tolower, and __ctype_toupper of glibc 2.6-2 (20070719)

[myn:2007021000] の続き.

undefined reference to `__ctype_b'
undefined reference to `__ctype_tolower'
undefined reference to `__ctype_toupper'

とかで怒られるというあれ.いわゆる上記の symbol 入り libc をつくる件.

% apt-get source glibc (これで glibc-2.6 という directory ができる)
% cd glibc-2.6
% head -1 debian/changelog
glibc (2.6-2) unstable; urgency=low
% emacs debian/changelog
C-c C-v (要 debian-changelog-mode)
2.6-3 となるところをなんとなく 2.6-3.1 とかに修正
C-c C-f, C-x C-s, C-x C-c
% head -1 debian/changelog
glibc (2.6-3.1) unstable; urgency=low
% cp somewhere/glibc26-ctype-compat.dpatch debian/patches/any
% echo any/glibc26-ctype-compat.dpatch >> debian/patches/series

ここまでが下準備.

glibc26-ctype-compat.dpatch は自前で用意したので <URL:http://myn.meganecco.org/files/glibc26-ctype-compat.dpatch> に置いてあります (無保証).

で,前回

% nice -19 fakeroot make -f debian/rules binary \
"RUN_TESTSUITE=no" \
"DEB_INDEP_REGULAR_PACKAGES=locales" \
"DEB_ARCH_REGULAR_PACKAGES=libc6 libc6-dev libc6-amd64 libc6-dev-amd64" \
"DEB_UDEB_PACKAGES=" \
"GLIBC_PASSES=libc nptl amd64"

とかで OK だったのであるが,今回は,

% nice -19 fakeroot make -f debian/rules binary \
"RUN_TESTSUITE=no" \
"DEB_INDEP_REGULAR_PACKAGES=locales" \
"DEB_ARCH_REGULAR_PACKAGES=libc6 libc6-dev libc6-i686 libc6-xen libc6-amd64 libc6-dev-amd64" \
"DEB_UDEB_PACKAGES=" \
"GLIBC_PASSES=libc i686 xen amd64"

という感じで,

xen は不要なのであるが,これがなければ

# extra_debhelper_pkg_install is used for debhelper.mk only.
# when you want to install extra packages, use extra_pkg_install.
mkdir -p debian/libc6-dev/usr/lib/xen
cp -af debian/tmp-xen/usr/lib/*.a debian/libc6-dev/usr/lib/xen
cp: cannot stat `debian/tmp-xen/usr/lib/*.a': そのようなファイルやディレクトリはありません
make: *** [/home/myn/glibc-2.6/stamp-dir/binaryinst_libc6-dev] エラー 1

とかで build に失敗するので.

関連リンク

[PC周辺] Linux 2.6.22-rc5 + yaird 0.0.12-20 (yaird error: unrecognised line in /proc/bus/input/devices: U: Uniq= (fatal)) (20070628)

[myn:2007062600] に書いたとおり Linux 2.6.22-rc5 (git 経由で取得したので,たぶん rc5 と rc6 の間) を使っているのであるが,この状態で linux-image*.deb を dpkg -i しよう とすると yaird (0.0.12-20) が

Using mkinitrd.yaird to build the ramdisk.
yaird error: unrecognised line in /proc/bus/input/devices: U: Uniq= (fatal)
mkinitrd.yaird failed to create initrd image.
Failed to create initrd image.

とかでこける.

<URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=15e03ae811475c2beebfde18717935ee9ce64617> の影響で

U: Uniq=

という行が /proc/bus/input/devices に出現するようになったのが原因っぽい.

ということで,

diff -uw /usr/lib/yaird/perl/InputTab.pm.orig /usr/lib/yaird/perl/InputTab.pm 
--- /usr/lib/yaird/perl/InputTab.pm.orig        2007-06-28 15:54:37.000000000 +0900
+++ /usr/lib/yaird/perl/InputTab.pm     2007-06-28 15:59:54.000000000 +0900
@@ -73,6 +73,8 @@
                elsif ($line =~ /^B: ([A-Z]+)=(.*)$/) {
                        $work->{capabilities}{$1} = $2;
                }
+               elsif ($line =~ /^U: Uniq=/) {
+               }
                elsif ($line =~ /^$/) {
                        if (! exists ($work->{info})) {
                                Base::fatal ("missing I: in $name");

といったやるきなしなし patch を yaird にあてて回避.

関連リンク

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update109 + Linux 2.6.22-rc5 (20070626)

の組み合わせの場合の話.

まず,vmmon.o の compile で

include/asm/page.h: In function 'pte_t native_make_pte(long unsigned int)':
include/asm/page.h:111: error: expected primary-expression before ')' token
include/asm/page.h:111: error: expected ';' before '{' token
include/asm/page.h:111: error: expected primary-expression before '.' token
include/asm/page.h:111: error: expected `;' before '}' token

とかでこける.これに関しては,

diff -uwr /usr/src/linux-headers-2.6.22-rc5/include/asm/page.h.orig /usr/src/linux-headers-2.6.22-rc5/include/asm/page.h
--- /usr/src/linux-headers-2.6.22-rc5/include/asm/page.h.orig   2007-06-26 14:51:30.000000000 +0900
+++ /usr/src/linux-headers-2.6.22-rc5/include/asm/page.h        2007-06-26 14:51:48.000000000 +0900
@@ -106,10 +106,12 @@
 {
        return (pgd_t) { val };
 }
+/*
 static inline pte_t native_make_pte(unsigned long val)
 {
        return (pte_t) { .pte_low = val };
 }
+*/

 #define HPAGE_SHIFT    22
 #include <asm-generic/pgtable-nopmd.h>

みたいな header 側に patch をあててとりあえず回避. ちなみに該当箇所の kernel 側の変更は <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=3dc494e86d1c93afd4c66385f270899dbfae483d> に由来.

次に,vmnet.o の compile で

/tmp/vmware-config0/vmnet-only/userif.c: In function 'VNetCopyDatagramToUser': /tmp/vmware-config0/vmnet-only/userif.c:633: error: 'const struct sk_buff' has no member named 'h' /tmp/vmware-config0/vmnet-only/userif.c:633: error: 'const struct sk_buff' has no member named 'nh' /tmp/vmware-config0/vmnet-only/userif.c:639: error: 'const struct sk_buff' has no member named 'h'

とかでこける.これは,kernel 側の <URL:http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=b0e380b1d8a8e0aca215df97702f99815f05c094> という変更に由来.

つまり

変更すれば OK.以下のような patch を vmnet.tar 内の file にあてる.

diff -uwr a/vmnet-only/bridge.c b/vmnet-only/bridge.c
--- a/vmnet-only/bridge.c	2006-11-13 07:50:53.000000000 +0900
+++ b/vmnet-only/bridge.c	2007-06-26 14:44:58.000000000 +0900
@@ -1072,12 +1072,12 @@
 VNetBridgeComputeHeaderPos(struct sk_buff *skb) // IN: buffer to examine
 {
    /* Maybe some kernel gets it right... */
-   if (skb->h.raw != skb->nh.raw) {
+   if (skb->transport_header != skb->network_header) {
       return;
    }
    switch (be16_to_cpu(skb->protocol)) {
       case ETH_P_IP:
-         skb->h.raw = skb->nh.raw + (skb->nh.raw[0] & 0x0F) * 4;
+         skb->transport_header = skb->network_header + (skb->network_header[0] & 0x0F) * 4;
 	 return;
       default:
          LOG(3, (KERN_DEBUG "Unknown EII protocol %04X: csum at %d\n", 
@@ -1163,7 +1163,7 @@
 #  endif

    if (bridge->smac) {
-      if (VNetCallSMACFunc(bridge->smac, &skb, skb->mac.raw, 
+      if (VNetCallSMACFunc(bridge->smac, &skb, skb->mac_header, 
                            SMAC_CheckPacketFromHost) != 
           PacketStatusForwardPacket) {
          LOG(4, (KERN_NOTICE "bridge-%s: packet dropped .\n",
@@ -1187,7 +1187,7 @@
 #endif
 #endif

-   skb_push(skb, skb->data - skb->mac.raw);
+   skb_push(skb, skb->data - skb->mac_header);
    LOG(3, (KERN_DEBUG "bridge-%s: receive %d\n",
 	   bridge->name, (int) skb->len));

diff -uwr a/vmnet-only/userif.c b/vmnet-only/userif.c
--- a/vmnet-only/userif.c	2006-11-13 07:04:40.000000000 +0900
+++ b/vmnet-only/userif.c	2007-06-26 14:38:37.000000000 +0900
@@ -630,13 +630,13 @@
     */
    if (skb->pkt_type == PACKET_OUTGOING && 	/* Packet must be outgoing */
        skb->ip_summed == VM_CHECKSUM_PARTIAL &&	/* Without checksum */
-       skb->h.raw != skb->nh.raw &&		/* We must know where header is */
+       skb->transport_header != skb->network_header &&		/* We must know where header is */
        skb->len == count) {			/* No truncation may occur */
       size_t skl;
       int csum;
       u_int16_t csum16;

-      skl = skb->h.raw - skb->data;
+      skl = skb->transport_header - skb->data;
       if (VNetCopyDatagram(skb, buf, skl)) {
 	 return -EFAULT;
       }
diff -uwr a/vmnet-only/vnetInt.h b/vmnet-only/vnetInt.h
--- a/vmnet-only/vnetInt.h	2005-06-19 10:00:03.000000000 +0900
+++ b/vmnet-only/vnetInt.h	2007-06-26 14:43:34.000000000 +0900
@@ -25,8 +25,8 @@
 #define DEV_QUEUE_XMIT(skb, dev, pri)	(                 \
     (skb)->dev = (dev),                                   \
     (skb)->priority = (pri),                              \
-    (skb)->mac.raw = (skb)->data,                         \
-    (skb)->nh.raw = (skb)->data + sizeof (struct ethhdr), \
+    (skb)->mac_header = (skb)->data,                         \
+    (skb)->network_header = (skb)->data + sizeof (struct ethhdr), \
     dev_queue_xmit(skb)                                   \
   )
 #ifdef KERNEL_2_3_15
関連リンク
参照リンク

[PC周辺] graphviz 2.12-3 (20070617)

いつのまにか

fontname="Kochi Gothic"

とかが通らなくなっていた(graphviz 2.12-3 @Debian).

% dot -v -Tpng test.dot | display -

とかによると

dot: fontname "Kochi Gothic" resolved to "[internal times]"

らしい.ちなみに

% echo 'digraph{"A"->"B";}' | dot -v -Tpng | display -

とかによると

dot: fontname "Times-Roman" resolved to "[internal times]"

とのことで,Times-Roman さえ見付けてくれないっぽい.

% fc-match 'Kochi Gothic'
KochiGothic-Regular.ttf: "Kochi Gothic" "Regular"
% fc-match Times-Roman                                                     
timR12-ISO8859-1.pcf.gz: "Times" "Regular"

とかで,fontconfig は問題なさげ.ちなみに KochiGothic-Regular.ttf とかは

% ls -l /var/lib/defoma/fontconfig.d/K/KochiGothic-Regular.ttf
lrwxrwxrwx 1 root root 54 2007-04-02 17:53 /var/lib/defoma/fontconfig.d/K/KochiGothic-Regular.ttf -> /usr/share/fonts/truetype/kochi/kochi-gothic-subst.ttf

という感じのところにあるらしい.

<URL:http://www.graphviz.org/bugs/b1087.html> とかも参照したが <URL:http://www.graphviz.org/doc/FAQ.html> 追えず.

% (echo 'digraph{"A"->"B";}' | strace -f dot -v -Tpng | display -) |& less

とかによると

open("/usr/lib/libfontconfig.so.1", O_RDONLY) = 3

しているのは分るのであるが,こっち方面もそれ以上は追えず.仕方無しに

% apt-get source graphviz
% cd graphviz-2.12
% fakeroot make -f debian/rules binary

してみたが,

cmd/lefty/dot2l/Makefile.am:10: Libtool library used but `LIBTOOL' is undefined
cmd/lefty/dot2l/Makefile.am:10: 
cmd/lefty/dot2l/Makefile.am:10: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
cmd/lefty/dot2l/Makefile.am:10: to `configure.ac' and run `aclocal' and `autoconf' again.
(snip)

とかでなんだかこける...

ということで<URL:/map.html> の文字化けを放置.

関連リンク

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update109 + Linux 2.6.21 + module-init-tools 3.3-pre11-1 (20070616)

という組合せの時の話.

vmware-config.pl が insmod をたたくのであるが, どうやら fullpath でたたかないと SEGV (Segmentation fault) で落ちるらしい.

とりあえず <URL:http://www.vmware.com/community/thread.jspa?messageID=650674&#650674> を参考に

\--- vmware-config.pl    2007/06/16 02:35:24     1.1
+++ vmware-config.pl    2007/06/16 02:47:24
@@ -933,9 +933,10 @@
  sub check_answer_binpath {
   my $answer = shift;
   my $source = shift;
+  my $fullpath = internal_which($answer);

-  if (not (internal_which($answer) eq '')) {
-    return $answer;
+  if ($fullpath ne '') {
+    return $fullpath;
   }

   if ($source eq 'user') {

みたいな patch をあてて対応.

<URL:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=425458> によると,すぐに Debian の方で対応されてしまいそう.

追記

module-init-tools 3.3-pre11-2 で直った模様.

module-init-tools (3.3-pre11-2) unstable; urgency=high

  * New patch insmod-segv: prevents insmod from segfaulting if called without
    an explicit path, courtesy of Mikko Ylinen. (Closes: #425458)

既に 3.3-pre11-3 まで出てます.ちなみに 3.3-pre11-2 で modutils との compatibility が無くなった模様 (modutils と conflict を起す).

関連リンク
参照リンク

[PC周辺] qpopper -> fetchmail -> qmail -> procmail -> uw-imapd -> wanderlust な設定 (20070423)

新しい職場 では imap 環境がないらしく, 自前で fetchmail を利用して imap 環境を構築することにした.

qpopper

まず,qpopper.これは管理者により APOP な設定がされているので popauth で APOP の password をつくってもらう(APOP も この 影響で廃止されそうな雰囲気があるが).

procmail

とりあえずやるきなしなしで,

[~/.procmailrc]
PATH=/bin:/sbin:/usr/bin:/usr/local/bin:.
MAILDIR=$HOME/imap4
LOCKFILE=$MAILDIR/.lock
PMDIR=$HOME/.procmail
LOGFILE=$PMDIR/.log_procmail
SENDMAIL=/usr/sbin/sendmail
SHELL=/bin/sh

とか.

MAILDIR=$HOME/imap4

に関しては後述.$PMDIR はあとで

INCLUDERC=$PMDIR/rc.spam

とか(SPAM filtering および自動 refile の設定)で利用する予定の directory.

qmail

つぎに,qmail.これは fetchmail で qpopper をたたいて,その mail をそ のまま qmail に smtp するために入れる.ちなみに fetchmail から直接 procmail を

[.fetchmailrc]
mda "/usr/bin/procmail"

とかでたたくこともできるが,この場合いわゆる MAIL FROM を付けてくれな いらしく,正しく Mailbox として解釈できない妙な spool ができてしまう (なんとかならないか調査してみたが挫折).

Debian 環境なので,まず qmail-src と ucspi-tcp-src を入れて,

# build-qmail
# build-ucspi-tcp

とかで

をつくり dpkg -i する(たぶん他の MTA と conflict するので dselect とかで要調整).

% echo hoge | /usr/sbin/qmail-inject myn

とかで /var/mail/myn ができることを確認.

uw-imapd

つぎに uw-imapd.courier-imap を使うことも考えられるが,個人的にずっと uw-imapd を使って来ているので,今回も uw-imapd で. Default では $HOME が imap の root folder になってしまうので(感じ悪い),

[/etc/c-client.cf ]
I accept the risk for IMAP toolkit 4.1.
set mail-subdirectory imap4

とか書いて,~/imap4/ 以下に spool していく方針とする(この directory 名も個人的な昔からの伝統).で,

% cd ~/imap4/ ; ln -s /var/mail/myn INBOX

しておく.ちなみに普通に Debian な package を入れると inetd.conf は以下のような感じ.

[/etc/inetd.conf]
imap2   stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/imapd
imaps   stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/imapd

wanderlust

%inbox@localhost:993!

とかな folder で check (パスワードはログインパスワード). localhost がプライベートネットワークな計算機なので 普通の imap でもいいのだが,なんとなく imaps で.

fetchmail

[~/.fetchmailrc]
set daemon 60
set postmaster root
set nobouncemail
set logfile fetchmail.log

defaults
  protocol apop
  no rewrite
  no mimedecode
  keep
  smtphost localhost

poll apopserver.example.org
  username "myn"
  password "XXXXXXXX"

とか書いて,fetchmail を起動.しばらくこれで test した後, 「keep」という行を削除して POP server に mail を残さないようにする.

ちなみに,たとえば何らかの問題により qmail が起動していない状態で,

まあ,冗長性は他で確保されているので,keep しないことにする.

参考関連 Link
関連リンク

[PC周辺] Ruby Digest::MD5.new (20070412)

なんだか,いつのまにか(ChangeLog と現象が発生した時期を考慮するとたぶん Tue Mar 6 19:03:42 2007 付近)

ruby -e 'require "digest/md5" ; p Digest::MD5.new("hoge")'

が NG になっていて(wrong number of arguments (1 for 0) (ArgumentError))

ruby -e 'require "digest/md5" ; p Digest::MD5.new.update("hoge")'

としなければならないらしい. マニュアル は更新されていないようだけど.

ちなみに今まで律儀に上記のように書いていたのであるが,

ruby -e 'require "md5" ; p MD5.md5("hoge")'
ruby -e 'require "md5" ; p MD5.new("hoge")'
ruby -e 'require "md5" ; p MD5.new.update("hoge")'

とかでもいいらしい(上記なら全て OK). md5.rb が require されるか digest/md5.so が require されるかの違い.

ちなみに,md5.rb には,

# just for compatibility; requiring "md5" is obsoleted

とか書いてあって,どれを使えばいいのか微妙...

[PC周辺] __ctype_b, __ctype_tolower, and __ctype_toupper of glibc 2.3.6.sds-11 (20070210)

[myn:2006042400] の続き.

undefined reference to `__ctype_b'
undefined reference to `__ctype_tolower'
undefined reference to `__ctype_toupper'

とかで怒られるというあれ.いわゆる上記の symbol 入り libc をつくる件.

% apt-get source glibc (これで glibc-2.3.6.ds1 という directory ができる)
% cd glibc-2.3.6.ds1
% head -1 debian/changelog
glibc (2.3.6.ds1-11) unstable; urgency=low
% emacs debian/changelog
C-c C-v (要 debian-changelog-mode)
2.3.6.ds1-12 となるところをなんとなく 2.3.6.ds1-11.1 とかに修正
C-c C-f, C-x C-s, C-x C-c
% head -1 debian/changelog
glibc (2.3.6.ds1-11.1) unstable; urgency=low
% wget -O - 'http://cvs.debian.org/*checkout*/glibc-package/debian/patches/glibc23-ctype-compat.dpatch?root=glibc' > debian/patches/any/glibc23-ctype-compat.dpatch
% echo any/glibc23-ctype-compat.dpatch >> debian/patches/series

ここまでが下準備.ここで,

% nice -19 fakeroot make -f debian/rules binary

とかしてもいいのだけれど,相当時間がかかるので, 今回は必要なものだけ作る方針をとる.必要なものとは,

% dpkg -l | grep 2.3.6.ds1

によると

とのこと.同じ build# の package に依存 (locales が libc6 に依存とか) するので,これらすべて(のみ)を作り直す.debian/rules に適当に,

hoge:
	@echo RUN_TESTSUITE: $(RUN_TESTSUITE)
	@echo DEB_INDEP_REGULAR_PACKAGES: $(DEB_INDEP_REGULAR_PACKAGES)
	@echo DEB_ARCH_REGULAR_PACKAGES: $(DEB_ARCH_REGULAR_PACKAGES)
	@echo DEB_UDEB_PACKAGES: $(DEB_UDEB_PACKAGES)
	@echo GLIBC_PASSES: $(GLIBC_PASSES)

とか書いて調べてみたところ,default では,

RUN_TESTSUITE: yes
DEB_INDEP_REGULAR_PACKAGES: glibc-doc locales
DEB_ARCH_REGULAR_PACKAGES: libc6 libc6-dev libc6-dbg libc6-prof libc6-pic locales-all libc6-i686 libc6-xen libc6-amd64 libc6-dev-amd64 nscd
DEB_UDEB_PACKAGES: libc6-udeb libnss-dns-udeb libnss-files-udeb
GLIBC_PASSES: libc nptl i686 xen amd64

となっている.これを,

RUN_TESTSUITE: no
DEB_INDEP_REGULAR_PACKAGES: locales
DEB_ARCH_REGULAR_PACKAGES: libc6 libc6-dev libc6-amd64 libc6-dev-amd64
DEB_UDEB_PACKAGES: 
GLIBC_PASSES: libc nptl amd64

とすべく,

% nice -19 fakeroot make -f debian/rules hoge \
> "RUN_TESTSUITE=no" \
> "DEB_INDEP_REGULAR_PACKAGES=locales" \
> "DEB_ARCH_REGULAR_PACKAGES=libc6 libc6-dev libc6-amd64 libc6-dev-amd64" \
> "DEB_UDEB_PACKAGES=" \
> "GLIBC_PASSES=libc nptl amd64"
RUN_TESTSUITE: no
DEB_INDEP_REGULAR_PACKAGES: locales
DEB_ARCH_REGULAR_PACKAGES: libc6 libc6-dev libc6-amd64 libc6-dev-amd64
DEB_UDEB_PACKAGES: 
GLIBC_PASSES: libc nptl amd64

という感じでテスト.良さげ.ということで,

% nice -19 fakeroot make -f debian/rules binary \
"RUN_TESTSUITE=no" \
"DEB_INDEP_REGULAR_PACKAGES=locales" \
"DEB_ARCH_REGULAR_PACKAGES=libc6 libc6-dev libc6-amd64 libc6-dev-amd64" \
"DEB_UDEB_PACKAGES=" \
"GLIBC_PASSES=libc nptl amd64"

とかで必要な .deb が ../ に生成される.

RUN_TESTSUITE は test をするかどうかを指示するフラグみたいなもので, yes だと相当 build に時間がかかってしまう.*_PACKAGES は文字通り作る package のリスト.GLIBC_PASSES は良く別らない (see debian/sysdeps/i386.mk とか).

ちなみに Pentium M 1.20GHz で ccache が効きまくった状態でだいたい 1時間半ぐらいかかる.

関連リンク
参照リンク

[PC周辺] CPU 定期掃除 (20070209)

普通の負荷で,

kernel: CPU0: Temperature above threshold
kernel: CPU1: Temperature above threshold
kernel: CPU1: Running in modulated clock mode
kernel: CPU0: Running in modulated clock mode

とか計算機が悲鳴をあげるようになってきた(温度は70℃ぐらい)ので,掃除.

という感じなので,ほぼ半年に1度掃除すればいいっぽい.

% sensors

によると現在 35℃.

関連リンク

[PC周辺] Emacs で機種依存文字 (20070207)

Emacs で機種依存文字(①とか)を表示するには, navi2ch に付属の izonmoji-mode.el を使うのが一般的な模様. ちなみに X で JISX0213 が表示できる必要がある.

ということで,

% sudo apt-get install xfonts-jisx0213
% sudo /etc/init.d/xfs reload
% xfontset (確認; rgstry に jisx0213.2000 とか jisx0213.2004 があれば OK)

とかで,X の JISX0213 環境を整える.Debian sid の場合, Emasc で JISX0213 を表示するには,

export DEB_MULEUCS_JISX0213=on

とかする必要があって,これを .zshrc とかに書いておく (see /etc/emacs/site-start.d/40mule-ucs.el).

あとは izonmoji-mode.el を適当なところに置いて,

(autoload 'izonmoji-mode "izonmoji-mode" nil t)
(autoload 'izonmoji-mode-on "izonmoji-mode" nil t)
(add-hook 'w3m-mode-hook 'izonmoji-mode-on)
(add-hook 'wl-message-redisplay-hook 'izonmoji-mode-on)

とか(これで機種依存文字が Wanderlust で読める). 面倒だったら本当に適当なところに置いて,はじめに,

(load "/home/myn/lisp/izonmoji-mode.el")

をしても.

関連リンク

[PC周辺] auctex 11.83 (20070130)

\verb+hoge+

とかの font が微妙に横幅が大きくて感じ悪い. たぶん auctex の version とは無関係で昔からこうだったような気がする.

ということで,

(custom-set-faces
 '(fixed-pitch ((t (:inherit default)))))

っぽいことをする.

font-latex-verbatim-face が Inherit: fixed-pitch で, fixed-pitch が

Family: courier
Inherit: default 

なので,これを

Inherit: default 

のみにした.

関連リンク

[PC周辺] 今日の Windows (20070105)

関連リンク

[PC周辺] intelfb を使う (20070104)

コンソールから startx する(display manager を使わない)派なのであるが, たまにコンソール「だけ」で使う時なんだか VGA というのも辛いので, VESA 程度が欲くなった.

で,Let's note CF-T4 には Intel 915GM が載っているのでこれ(intelfb)を使うことにする.Kernel Option は,

CONFIG_FB=y
CONFIG_FB_INTEL=y

とか.

CONFIG_FB_VGA16
CONFIG_FB_VESA

をセットしていると vga16fb とかが使われてしまうので,これらを切る. あと,

CONFIG_VIDEO_SELECT=y
CONFIG_FRAMEBUFFER_CONSOLE=y

ぐらいも必要かも.Linux の Boot Option には,

vga=792 video=intelfb:1024x768-24

ぐらいを使う.video= 以降は無くても OK.dmesg の intelfb 関連の部分は 以下のような感じ(vga=792 のみで起動した時).ちなみに,この時は

CONFIG_FB_INTEL_DEBUG=y

していたのでかなり verbose.

intelfb: intelfb_init
intelfb: Framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G/915G/915GM/945G/945GM chipsets
intelfb: Version 0.9.4
intelfb: intelfb_setup
intelfb: no options
intelfb: intelfb_pci_register
intelfb: fb aperture: 0xc0000000/0x10000000, MMIO region: 0xb0080000/0x80000
intelfb: 00:02.0: Intel(R) 915GM, aperture size 256MB, stolen memory 7932kB
intelfb: fb: 0xc0000000(+ 0x0)/0x7bf000 (0xf8a00000)
intelfb: MMIO: 0xb0080000/0x80000 (0xfc200000)
intelfb: ring buffer: 0xc3001000/0x10000 (0xfba01000)
intelfb: HW cursor: 0x0/0x0 (0x00000000) (offset 0x0) (phys 0x0)
intelfb: options: vram = 4, accel = 1, hwcursor = 0, fixed = 0, noinit = 0
intelfb: options: mode = ""
intelfb: Non-CRT device is enabled ( LVDS port ).  Disabling mode switching.
intelfb: get_initial_mode
intelfb: Initial info: FB is 0xc0000000/0x7b0000 (7872 kByte)
intelfb: Initial info: mode is 1024x768-32 (4096)
intelfb: update_dinfo
intelfb: intelfb_var_to_depth: bpp: 32, green.length is 8
intelfb: intelfb_set_fbinfo
intelfb: intelfb_init_var
intelfb: Initial video mode is 1024x768-32@60.
intelfb: Initial video mode is from 5.
intelfb: update_dinfo
intelfb: intelfb_var_to_depth: bpp: 32, green.length is 8
intelfb: I2C bus CRTDDC_A registered.
intelfb: I2C bus SDVOCTRL_E registered.
intelfb: intelfbhw_print_hw_state
hw state dump start
	VGA0_DIVISOR:		0x00031108
	VGA1_DIVISOR:		0x00031406
	VGAPD: 			0x00800080
	VGA0: (m1, m2, n, p1, p2) = (17, 8, 3, 8, 0)
	VGA0: clock is 25200
	VGA1: (m1, m2, n, p1, p2) = (20, 6, 3, 8, 0)
	VGA1: clock is 28320
	DPLL_A:			0x04800000
	DPLL_B:			0x98046000
	FPA0:			0x00031108
	FPA1:			0x00031108
	FPB0:			0x00021307
	FPB1:			0x00031108
	PLLA0: (m1, m2, n, p1, p2) = (17, 8, 3, 8, 0)
	PLLA0: clock is 25200
	PLLA1: (m1, m2, n, p1, p2) = (17, 8, 3, 8, 0)
	PLLA1: clock is 25200
	HTOTAL_A:		0x031f027f
	HBLANK_A:		0x03170287
	HSYNC_A:		0x02ef028f
	VTOTAL_A:		0x020c01df
	VBLANK_A:		0x020401e7
	VSYNC_A:		0x01eb01e9
	SRC_SIZE_A:		0x027f01df
	BCLRPAT_A:		0x00000000
	HTOTAL_B:		0x053f03ff
	HBLANK_B:		0x053f03ff
	HSYNC_B:		0x049f0417
	VTOTAL_B:		0x032502ff
	VBLANK_B:		0x032502ff
	VSYNC_B:		0x03080302
	SRC_SIZE_B:		0x03ff02ff
	BCLRPAT_B:		0x00000000
	ADPA:			0x40008c18
	DVOA:			0x00000000
	DVOB:			0x00480000
	DVOC:			0x00480000
	DVOA_SRCDIM:		0x00000000
	DVOB_SRCDIM:		0x00000000
	DVOC_SRCDIM:		0x00000000
	LVDS:			0xc0008300
	PIPEACONF:		0x00000000
	PIPEBCONF:		0x80000000
	DISPARB:		0x00001d9c
	CURSOR_A_CONTROL:	0x00000000
	CURSOR_B_CONTROL:	0x00000000
	CURSOR_A_BASEADDR:	0x00000000
	CURSOR_B_BASEADDR:	0x00000000
	CURSOR_A_PALETTE:	0x00000000, 0x00000000, 0x00000000, 0x00000000
	CURSOR_B_PALETTE:	0x00000000, 0x00000000, 0x00000000, 0x00000000
	CURSOR_SIZE:		0x00000000
	DSPACNTR:		0x00000000
	DSPBCNTR:		0x99000000
	DSPABASE:		0x00000000
	DSPBBASE:		0x00000000
	DSPASTRIDE:		0x00000000
	DSPBSTRIDE:		0x00001000
	VGACNTRL:		0xa1c4008e
	ADD_ID:			0x00000000
	SWF00			0x00000000
	SWF01			0x00000001
	SWF02			0x00002008
	SWF03			0x00000000
	SWF04			0x00000000
	SWF05			0x00000000
	SWF06			0x00000000
	SWF10			0x81000800
	SWF11			0x00001c00
	SWF12			0x00000000
	SWF13			0x54540000
	SWF14			0x00000000
	SWF15			0x0000020b
	SWF16			0x00000000
	SWF30			0x00000000
	SWF31			0x00000000
	SWF32			0x00000000
	FENCE0			0x00000000
	FENCE1			0x00000000
	FENCE2			0x00000000
	FENCE3			0x00000000
	FENCE4			0x00000000
	FENCE5			0x00000000
	FENCE6			0x00000000
	FENCE7			0x00000000
	INSTPM			0x00000000
	MEM_MODE		0x00000000
	FW_BLC_0		0x01080108
	FW_BLC_1		0x00000108
	HWSTAM			0xffff
	IER			0x0000
	IIR			0x0000
	IMR			0xffff
hw state dump end
intelfb: Changing the video mode is not supported.
Console: switching to colour frame buffer device 128x48

つかった Kernel の Version は 2.6.20-rc3 ぐらい.

あと,ついでに frame buffer で X を立ち上げるには,

Section "Device"
        Identifier      "frame buffer"
        Driver          "fbdev"
EndSection
Section "Screen"
        Identifier      "frame buffer screen"
        Device          "frame buffer"
        Monitor         "Generic Monitor"
        DefaultDepth    24
        SubSection "Display"
                Depth           24
                Modes           "1024x768"
        EndSubSection
EndSection

で,あとは Section "ServerLayout" で

Screen          "frame buffer screen"

を指定する.というか,普通に使うには,frame buffer は使わず,

Driver          "i810"

とするわけですが(X-Video とかが使えるし).

関連リンク

[PC周辺] .qmail で不要な mail をはじく (20070103)

% cat .qmail-hoge-default
|exit 100

とかで.

.qmail-hoge-default が置いてない場合は .qmail-default が参照されるわけであるが, .qmail-default を編集したくなくって, .qmail-hoge-hoge とか一部の mail address (のみ)を残しておきたい時の話.

参考関連 Link
関連リンク

[PC周辺] lsmod から やるきなしなし .dot 生成 (20061230)

<URL:http://myn.meganecco.org/files/lsmod.rb>

lsmod の 「Used by」 を graphviz でグラフにする.やるきなしなし.

% ./lsmod.rb | neato -Tpng | display -

みたいな感じで使う.

neato の箇所は dot や twopi や circo や fdp でも可, -Tpng の箇所は -Tjpg でも可.

http://upload.meganecco.org/files/1167474926.06441.jpg

関連リンク

[PC周辺] CUPS - Common UNIX Printing System (20061229)

最近どうも Linux で飼っている Windows 上から Network Printing することが多くなって来ていて(Linux で ps もしくは pdf を作成して Windows で印刷),これではだめだと思いはじめたので, LPRng に別れを告げ CUPS (Common UNIX Printing System) を使うことにした.

% sudo apt-get install cupsys
% sudo apt-get install cupsys-bsd cupsys-driver-gutenprint cupsys-driver-gimpprint foomatic-filters-ppds cups-pdf hplip

これで lprng が自動的に抜ける(cupsys-bsd と Conflict).

設定は http://localhost:631/ を叩いて,GUI で.

Windows にぶらさがっている printer や, <URL:http://www.ricoh.co.jp/imagio/> とかの LPR 対応ネットワークプリンタの場合, [管理]→[プリンタの追加] から

という手順でプリンタを追加. どこかの Page に Windows にぶらさがっている Printer に関しては

smb://hoge.example.org/CanonPIX

とするとか書いてあって若干嵌る.手元の環境では smb:// は N.G. で lpd:// としなければならなかった.

command line から CUPS を使うには,

% echo hoge | a2psj | lpr -P hoge

みたいな感じで lprng と同じ.

関連リンク

[PC周辺] 玄箱 KURO-BOX SNMP/MRTG セットアップメモ (20061228)

[myn:2006122702] の続き.

# apt-get install snmpd
# vi /etc/snmp/snmpd.conf
com2sec readonly  default         xxxx (←コミュニティー名)

外の計算機から,

% snmpwalk -c xxxx -v2c 10.0.0.5  laload

とかで check.MRTG も外で動かす.

% cfgmaker xxxx@10.0.0.5 xxxx@10.0.0.6 > /etc/mrtg.cfg

とかで mrtg.cfg の雛型をつくって編集(上記は2台の例になってる).

% indexmaker --columns=1 /etc/mrtg.cfg > index.html

とかで index.html の雛型をつくって編集.あとは cron を仕込む.

関連リンク

[PC周辺] 玄箱 KURO-BOX セットアップメモ (20061227)

玄箱 KURO-BOX への Debian のセットアップメモ.

玄箱うぉううぉう♪<URL:http://kuro.dsk.jp/data/dist/install_debian_standalone.txt> を参照しつつ.

ちなみに,現在 2台動いている状態.

参照リンク

[PC周辺] Emacs22 の split-string の挙動 (20061227)

最近 Emacs22 を使いはじめて,

% dpkg -l 'emacs-snapshot*' | grep ^ii
ii  emacs-snapshot            20061221-1     The GNU Emacs editor (development snapshot)
ii  emacs-snapshot-bin-common 20061221-1     The GNU Emacs editor's shared, architecture 
ii  emacs-snapshot-common     20061221-1     The GNU Emacs editor's common infrastructure

で,

GNU Emacs 22.0.92.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2006-12-22 on pacem, modified by Debian

みたいな環境なのであるが,なんだか自前の関数の挙動が変だなぁと思ってい たら split-string の挙動が Emacs21 と異っているっぽい.

上記の例だとわかりにくいが, たとえば以下だと Emacs22 の (subr.el の) 方が素直な気がする.

ちなみに関係ないが Ruby の String#split の場合は,

"0 1 2".split(/\s+/)  =>["0", "1", "2"]
" 0 1 2".split(/\s+/) =>["", "0", "1", "2"]
"0 1 2".split(" ")    =>["0", "1", "2"]
" 0 1 2".split(" ")   =>["0", "1", "2"]

みたいな.

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update105 + Linux 2.6.20-rc2 (20061227)

vmware-any-any-update105 + Linux 2.6.20-rc2 を試す.

Building for VMware Workstation 4.5.[23] or VMware GSX Server 3.1.0.
Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' に入ります
make -C /usr/src/linux/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux' に入ります
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config0/vmmon-only/linux/driver.c:85:
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or '...' before 'compat_exit'
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: error: expected declaration specifiers or '...' before 'exit_code'
/tmp/vmware-config0/vmmon-only/./include/compat_kernel.h:21: warning: type defaults to 'int' in declaration of '_syscall1'
make[2]: *** [/tmp/vmware-config0/vmmon-only/linux/driver.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux' から出ます
make: *** [vmmon.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' から出ます
Unable to build the vmmon module.

といった感じで /tmp/vmware-config0/vmmon-only/include/compat_kernel.h でこける.これは, <URL:http://www.vmware.com/community/thread.jspa?messageID=538342> にもあるとおり,compat_kernel.h を

+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
 static inline _syscall1(int, compat_exit, int, exit_code);
+#endif

といった感じの修正をすればいいっぽい.

あと,vmware-any-any-update105 + Linux 2.6.20-rc2 の場合, vmware-any-any-update104 + Linux 2.6.18-git16 の時に必要だった,

[include/linux/types.h]
#ifndef __cplusplus
typedef _Bool                   bool;
#endif

とかいう include/linux/types.h の修正は不要っぽい.というかむしろ,上 記のようにしていると,

Building for VMware Workstation 4.5.[23] or VMware GSX Server 3.1.0.
Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' に入ります
make -C /usr/src/linux/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: ディレクトリ `/usr/src/linux' に入ります
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/hostif.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/cpuid.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/hash.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/memtrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/phystrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/task.o
cc1plus: warning: command line option "-Wdeclaration-after-statement" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wno-pointer-sign" is valid for C/ObjC but not for C++
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
cc1plus: warning: command line option "-ffreestanding" is valid for C/ObjC but not for C++
include/linux/kernel.h:161: error: 'bool_type' does not name a type
make[2]: *** [/tmp/vmware-config0/vmmon-only/common/task.o] エラー 1
make[1]: *** [_module_/tmp/vmware-config0/vmmon-only] エラー 2
make[1]: ディレクトリ `/usr/src/linux' から出ます
make: *** [vmmon.ko] エラー 2
make: ディレクトリ `/tmp/vmware-config0/vmmon-only' から出ます
Unable to build the vmmon module.

といった感じで include/linux/kernel.h でこける.

関連リンク
参照リンク

[PC周辺] xdvi が FT2: Open Font Error. (min) (20061120)

xdvi がなんというか,

% xdvi hoge.dvi
FT2: Open Font Error. (min)

とか言って寒く落ちる状態になってしまった.

% xdvi -debug 4 hoge.dvi
(snip)
xdvi: Define font "cmss8" scale=524288 design=524288 number=80
xdvi: Define font "min10" scale=1162740 design=655360 number=78
FT2: Open Font Error. (min)

ということらしい.よくわからない. Google によると vfontmap 云々の問題ぽいので,

% strace -f xdvi -debug 4 thesis.dvi |& grep vfont
[pid  5303] open("vfontmap", O_RDONLY)  = -1 ENOENT (No such file or directory)                        
[pid  5303] open("/var/lib/texmf/vfontmap", O_RDONLY) = 4

とかで探りを入れて,/var/lib/texmf/vfontmap を見てみる.

[/var/lib/texmf/vfontmap]
### This file is automatically generated by update-vfontmap
#
# Please do not edit this file directly.  If you want to change
# or add anything please take a look at the files in
# /etc/texmf/vfontmap.d, and invoke update-vfontmap.
#
###

### From file: /etc/texmf/vfontmap.d/20ptex-jisfonts.map
### For ptex-jisfonts
jis     /usr/share/fonts/truetype/kochi/kochi-mincho.ttf
jisg    /usr/share/fonts/truetype/kochi/kochi-gothic.ttf
### End of file: /etc/texmf/vfontmap.d/20ptex-jisfonts.map
### From file: /etc/texmf/vfontmap.d/20xdvik-ja.map
@Mincho Roman|Mincho@
	rml  JIS-H	% ASCII pTeX
	rmlv JIS-V	% ASCII pTeX
	dm   JIS-H	% NTT jTeX

@Gothic SansSerif|Gothic@
	gbm  JIS-H	% ASCII pTeX
	gbmv JIS-V	% ASCII pTeX
	dg   JIS-H	% NTT jTeX
### End of file: /etc/texmf/vfontmap.d/20xdvik-ja.map

/etc/texmf/vfontmap.d/* か.

% ls -l /etc/texmf/vfontmap.d/
合計 4
-rw-r--r-- 1 root root 344 2005-04-07 13:27 20ascii-ptex.map.dpkg-bak
-rw-r--r-- 1 root root 119 2005-04-07 13:27 20ntt-jtex.map.dpkg-bak
-rw-r--r-- 1 root root 136 2005-05-11 23:58 20ptex-jisfonts.map
-rw-r--r-- 1 root root 195 2006-10-13 08:12 20xdvik-ja.map

確かに,

[/etc/texmf/vfontmap.d/20ascii-ptex.map.dpkg-bak ]
min     /usr/share/fonts/truetype/kochi/kochi-mincho.ttf

とかになっているので,

% dpkg -S /etc/texmf/vfontmap.d/20ascii-ptex.map
xdvik-ja: /etc/texmf/vfontmap.d/20ascii-ptex.map

ということで xdvik-ja 付近の問題ぽい.

% sudo rm /etc/texmf/vfontmap.d/*bak
% sudo dpkg --purge xdvik-ja           
% sudo dpkg -i xdvik-ja_22.84.8-j1.22-1_i386.deb
% ls -l /etc/texmf/vfontmap.d/
合計 4
-rw-r--r-- 1 root root 344 2005-04-07 13:27 20ascii-ptex.map
-rw-r--r-- 1 root root 119 2005-04-07 13:27 20ntt-jtex.map
-rw-r--r-- 1 root root 136 2005-05-11 23:58 20ptex-jisfonts.map
-rw-r--r-- 1 root root 195 2006-10-13 08:12 20xdvik-ja.map

と,いう感じで直った模様.

関連リンク

[PC周辺] Linux 2.6.19-rc1 以降で shfs が使えないのであきらめて sshfs を使う (20061118)

Linux 2.6.19-rc1 以降で shfs が使えない のであきらめて sshfs を使うことにした.

sshfsFUSE (Filesystem in Userspace) を使って,ssh 越しに filesystem を mount するもの. shfs と違い FUSE は Linux に取り込まれている(fuse.ko)ので, Linux kernel の変化にも追従していっている.

ということで試す.

user 権限で remote.example.org に ssh で login できるとすると, あとは,

% sshfs remote.example.org:/work /home/myn/mnt

とするだけ.ただし,普通にいろいろ怒られたので,メモると,

ぐらい(当然 fuse.ko を modprobe しておく必要がある).

ちなみに umount は,

% fusermount -u /home/myn/mnt

という感じで.ちなみに,いろいろ気持ち悪いので,リストすると,

という感じ.

関連リンク

[PC周辺] Linux 2.6.19-rc1 以降で shfs を使う (20061109)

等々の patch のため(他にもあるかも) fs.h が結構変更されてて, 結局追いきれず.

なお [myn:2006090300] は shfs_0.35-6.1 で対応されているみたい.

関連リンク
参照リンク

[PC周辺] Could not locate a virtual/physical font for TFM rml-jis (20061108)

xdvik-ja と ptex-jisfonts をいじっていたら dvipdfmx が動かなくなった. いつもの,

dvipdfmx hoge.dvi
hoge.dvi -> hoge.pdf
[1kpathsea: Running mktexpk --mfmode / --bdpi 600 --mag 1+359/600 --dpi 959 rml-jis
mktexpk: don't know how to create bitmap font for rml-jis.
kpathsea: Appending font creation commands to missfont.log.

** WARNING ** Could not locate a virtual/physical font for TFM "rml-jis".
** WARNING ** >> There are no valid font mapping entry for this font.
** WARNING ** >> Font file name "rml-jis" was assumed but failed to locate that font.
** ERROR ** Cannot proceed without .vf or "physical" font for PDF output...

とかいうやつで.

で,いつも対処法を忘れるのでメモ. <URL:http://oku.edu.mie-u.ac.jp/~okumura/texwiki/?Linux%2FDebian> にあるとおり, /etc/texmf/dvipdfm/dvipdfmx.cfg の最後に

f jis-cjk.map

を追記するだけ.

関連リンク

[PC周辺] xdvik-ja_22.84.10-j1.33-1 vs ptex-jisfonts_2-18 (20061108)

なんというか,たぶん先月ぐらいから, xdvik-ja と ptex-jisfonts と vfdata-morisawa5 がぶつかっててややこしい.

Package: xdvik-ja
Version: 22.84.10-j1.33-1
Conflicts: ptex-jisfonts (<= 2-18), vfdata-morisawa5 (<= 0.0.20020122-11)

Package: ptex-jisfonts
Version: 2-18

Package: vfdata-morisawa5
Version: 0.0.20020122-12
Conflicts: xdvik-ja (<< 22.84.10)

という感じで.とりえず, xdvik-ja_22.84.8-j1.22-1

Package: xdvik-ja
Version: 22.84.8-j1.22-1
Conflicts: ptex-jisfonts (<= 2-13), vfdata-morisawa5 (<= 0.0.20020122-7)

という感じなので,vfdata-morisawa5 は捨てて(というか使ってないと思う), ptex-jisfonts_2-18 + xdvik-ja_22.84.8-j1.22-1 で凌ごうかと思う.

参照リンク

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update104 + Linux 2.6.18-git16 (20061005)

2.6.18-git15 から 2.6.18-git16 へにかけての, [PATCH] Generic boolean という patch のために,vmmon.o の compile でこける.

gcc -m32 -Wp,-MD,/tmp/vmware-config0/vmmon-only/common/.task.o.d  -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.1.2/include -D__KERNEL__ -Iinclude  -include include/linux/autoconf.h -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -Os -pipe -msoft-float -mpreferred-stack-boundary=2  -march=i686 -ffreestanding -DCONFIG_AS_CFI=1 -DCONFIG_AS_CFI=1 -Iinclude/asm-i386/mach-default -fomit-frame-pointer  -fno-stack-protector -Wdeclaration-after-statement -Wno-pointer-sign  -Wall -Wstrict-prototypes   -DVME_DEFAULT=VME_V452 -DVMW_USING_KBUILD -DVMMON -DVMCORE -I/tmp/vmware-config0/vmmon-only/./include -I/tmp/vmware-config0/vmmon-only/./common -I/tmp/vmware-config0/vmmon-only/./linux -I/tmp/vmware-config0/vmmon-only/./vmcore  -DVMW_NOPAGE_261    -DVMWARE__FIX_IO_APIC_BASE=FIX_IO_APIC_BASE_0    -DVMW_HAVE_EPOLL -DVMW_HAVE_COMPILE_H  -DVMW_HAVE_SET_USER_NICE -x c++ -fno-exceptions -DMODULE -D"KBUILD_STR(s)=#s" -D"KBUILD_BASENAME=KBUILD_STR(task)"  -D"KBUILD_MODNAME=KBUILD_STR(vmmon)" -c -o /tmp/vmware-config0/vmmon-only/common/.tmp_task.o /tmp/vmware-config0/vmmon-only/common/task.c
include/linux/stddef.h:16: error: expected identifier before 'false'
include/linux/stddef.h:16: error: expected `}' before 'false'
include/linux/stddef.h:16: error: expected unqualified-id before 'false'
include/linux/types.h:36: error: expected initializer before 'bool'
/tmp/vmware-config0/vmmon-only/common/task.c:43: error: expected declaration before '}' token
make[2]: *** [/tmp/vmware-config0/vmmon-only/common/task.o] エラー 1

といった感じで.以下の箇所が問題らしい.

[include/linux/stddef.h]
enum {
        false = 0,
        true = 1
};

[include/linux/types.h]
typedef _Bool        bool;

これ以上は追えず.

ちなみにこの patch は 2.6.19-rc1 にも含まれているので,同様.

追記

悩んでみたが,どう対処したらいいのか良く判らなかった... あんまり宜しくない対応だが,上記 kernel header の箇所を comment out す ると vmmon.o (の task.c) の compile がとおるようになる模様.

追記(2006/10/19)

上記 gcc の option は -x c++ になっていて, つまり c++ で compile しているわけであるが, false やら true やら bool があらかじめ c++ に用意されているためにこけているらしい.

とはいえどう対処したものか...といった感じではあるが, とりあえず上述の問題の kernel header の部分を

#ifndef __cplusplus
typedef _Bool                   bool;
#endif

とかするのが吉っぽい.

関連リンク
参照リンク

[PC周辺] VMware Workstation 4.5.3 build-19414 + vmware-any-any-update104 + Linux 2.6.18-git1 (20060926)

Linux 上で VMware (w/any-any-update104) を使っているのであるが, Linux 2.6.18-git1 以降だと vmnet.o の compile でこける.

include/linux/skbuff.h[NET]: Replace CHECKSUM_HW by CHECKSUM_PARTIAL/CHECKSUM_COMPLETE という変更があったことに起因するらしい.

vmnet.tar 中の bridge.c と userif.c に関して CHECKSUM_HW となっている箇所を CHECKSUM_PARTIAL に置換すれば OK ぽい.

参照リンク

[PC周辺] NFS 上で排他ロック (20060924)

NFS 上で排他ロックできないー,とかもがいていたら, statd が動いていなかった.

こういう時,10.0.0.200 を NFS server とすると,

lockd: cannot monitor 10.0.0.200
lockd: failed to monitor 10.0.0.200

みたいなエラーが出る(dmesg). [myn:2004111600] も同様の原因だったのかも.

あと,排他ロックのテストは以下ぐらいで.

% ruby -e 'f=open(".lock","w"); f.flock(File::LOCK_EX)'

ロックに失敗したら例外を吐きます.

関連リンク

[PC周辺] Gmail のクイック コンタクトと User Agent の関係 (20060922)

firefox で general.useragent.extra.firefox を default のものから Netscape/7.2 に 変更 していたのであるが, この状態だと,Gmail で クイック コンタクト (Quick Contact) が表示されないらしい.

ずっと,なんで クイック コンタクト が消えたのか悩んでいたのであるが, うーん,なんというか.

関連リンク

[PC周辺] nis 3.17-1 @Debian sid (20060920)

% /usr/sbin/ypbind --version
ypbind (ypbind-mt) 1.20.1

なのであるが,

[man ypbind 抜粋]
This ypbind version listens for DBUS messages from NetworkManager. If
no NetworkManager is running at startup, ypbind will behave as usual
and assumes there is a working network connection. If NetworkManager
is running on the system, ypbind will only search and providde NIS
informations, if NetworkManager tells that a network connection is
available. If NetworkManager establishes a connection, ypbind will
reread all configuration files, registers at the local portmapper and
try to search NIS servers. If NetworkManager drops a connection,
ypbind will unregister from portmapper.

ということで,dbus-daemon が動いていないと bind してくれないみたい.

[/etc/yp.conf]
ypserver 10.0.0.3

とかしているのであるが,strace によると 10.0.0.3 に access が行かない.

ということで,

のどちらかで対処する必要があるみたい.

追記

nis (3.17-2) で直った模様 (#388333).

[PC周辺] cvs2svn で CVS から SVN に移行 (20060918)

cvs2svn は CVSROOT をまるごと SVN に入れることを想定している(たぶん). かつ SVN の ROOT から trunk,branches,tags という directory を掘って trunk の下に各 module を入れていく(default では).

ということで,今回は CVS の module 1つだけを SVN に移行したかったので, 若干ややこしいことになった.

で,いきなり一気に rev 4359 まで行きました. 結構時間もかかった感じ(dump に数分,load に10数分ぐらい).

参考関連 Link

[PC周辺] Linux 2.6.18-rc1 以降で shfs を使う (20060903)

include/linux/fs.h の struct super_operations で

-        int (*statfs) (struct super_block *, struct kstatfs *);
+        int (*statfs) (struct dentry *, struct kstatfs *);

という変更があり,また,同 file の get_sb_nodev に関しても,

-struct super_block *get_sb_nodev(struct file_system_type *fs_type,
+        int (*fill_super)(struct super_block *, void *, int),
+        struct vfsmount *mnt);
+extern int get_sb_nodev(struct file_system_type *fs_type,
         int flags, void *data,
-        int (*fill_super)(struct super_block *, void *, int));
+        int (*fill_super)(struct super_block *, void *, int),
+        struct vfsmount *mnt);

という変更があるので,これに対応する必要がある.以下のような patch で 対応できる.

. 
--- shfs-0.35/shfs/Linux-2.6/inode.c	2006-09-03 21:45:45.000000000 +0900
+++ shfs-0.35-new/shfs/Linux-2.6/inode.c	2006-09-03 21:47:53.000000000 +0900
@@ -343,9 +343,9 @@

 static struct super_block *
 shfs_get_sb(struct file_system_type *fs_type,
-	    int flags, const char *dev_name, void *data)
+	    int flags, const char *dev_name, void *data, struct vfsmount *mnt)
 {
-	return get_sb_nodev(fs_type, flags, data, shfs_read_super);
+	return get_sb_nodev(fs_type, flags, data, shfs_read_super, mnt);
 }

 static struct file_system_type sh_fs_type = {
--- shfs-0.35/shfs/Linux-2.6/proc.c	2004-06-01 22:16:19.000000000 +0900
+++ shfs-0.35-new/shfs/Linux-2.6/proc.c	2006-09-03 21:48:59.000000000 +0900
@@ -571,9 +571,9 @@
 }

 int
-shfs_statfs(struct super_block *sb, struct kstatfs *attr)
+shfs_statfs(struct dentry *dentry, struct kstatfs *attr)
 {
-	struct shfs_sb_info *info = info_from_sb(sb);
+	struct shfs_sb_info *info = info_from_dentry(dentry);

 	DEBUG("\n");
 	return info->fops.statfs(info, attr);
--- shfs-0.35/shfs/Linux-2.6/shfs_fs.h	2006-09-03 21:45:45.000000000 +0900
+++ shfs-0.35-new/shfs/Linux-2.6/shfs_fs.h	2006-09-03 20:53:29.000000000 +0900
@@ -100,7 +100,7 @@
 void set_garbage(struct shfs_sb_info *info, int write, int count);
 int get_name(struct dentry *d, char *name);
 int shfs_notify_change(struct dentry *dentry, struct iattr *attr);
-int shfs_statfs(struct super_block *sb, struct kstatfs *attr);
+int shfs_statfs(struct dentry *dentry, struct kstatfs *attr);

 /* shfs/inode.c */
 void shfs_set_inode_attr(struct inode *inode, struct shfs_fattr *fattr);

一応 <URL:http://myn.meganecco.org/files/shfs-0.35-6-linux-2.6.18-rc1> にも置いておきます.あとは Debian の場合(かつ shfs-0.35-6 の場合)は,

% apt-get source shfs-source
% cd shfs-0.35/debian/patches
% wget http://myn.meganecco.org/files/shfs-0.35-6-linux-2.6.18-rc1
% echo shfs-0.35-6-linux-2.6.18-rc1 >> 00list
% cd ../../
% fakeroot make -f debian/rules binary
% sudo dpkg -i ../shfs-source_0.35-6_all.deb
% sudo module-assistant build shfs
% sudo dpkg -i /usr/src/shfs-module-2.6.18-rcX-XXXX_0.35-6+1.0_i386.deb

ぐらいで shfs.ko を仕込んで,あとは,

% shfsmount myn@example.com:/home/myn ~/mny

とかで mount.ちなみに,

% fakeroot make -f debian/rules binary

の際に dpatch が必要なので,必要であれば,

% sudo apt-get install dpatch

とか.

参考関連 Link
参照リンク

[PC周辺] netkit-inetd → openbsd-inetd @Debian sid (20060828)

apt-get update ; dselect すると netbase を remove しようとする (余波で ppp や squid や samba まわりが抜ける)ので, なんでだろうと思ったら <URL:http://www.mail-archive.com/debian-bugs-closed@lists.debian.org/msg83916.html> ということらしい. netbase が netkit-inetd|openbsd-inetd への依存をやめて, openbsd-inetd のみ依存するとのこと.

[PC周辺] CPU温度対策 (20060826)

CPUクーラーを交換した人 の記事に...

うちのPCはドスパラの 一番安い構成のものをベースにしているので,根本的にやるきなしなしなのである.

HDD をおもいきり積んだ時(熱対策なしで HDD x4,隙間も無し)に, ぼろぼろと HDD が壊れていって,その時以降ケースはあけっぱなし状態.

というか,ケースFANが付いていない (一度付けようとしたけど,あけっぱでいいやと思ってしまった).

今のところなんとなく安定しているので,エアフローをがんばるとかするより, たまに(これまでの経験からすると半年に一度) 掃除してやれば良いかなあというやるきなしなし加減.

ちなみに,[myn:2006081602]以降, PC が1日ぐらい暴走していたことがあったのであるが, その時の温度は 62℃ になっていた(このまま1日放置されてた...). [myn:2006081602] 以前に同じことがおこった時は MRTG によると 72℃ だったらしい. 帰宅すると部屋が熱で異様な雰囲気だった.

関連リンク
参照リンク

[PC周辺] Let's note CF-T4 で SD card を使う (20060826)

以前は Let's note の SD card (内蔵のやつ) が使えなかったのであるが, いつのまにか kernel module が整備された模様で, 使えそうな気配を感じたので,使ってみた.

lspci -vv は以下のような感じ.

06:05.1 Generic system peripheral [0805]: Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter (rev 13)
        Subsystem: Matsushita Electric Industrial Co., Ltd. Unknown device 8338
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
        Latency: 32
        Interrupt: pin B routed to IRQ 3
        Region 0: Memory at b0100400 (32-bit, non-prefetchable) [size=256]
        Capabilities: [80] Power Management version 2
                Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
                Status: D0 PME-Enable- DSel=0 DScale=2 PME-

SD card (MMC) を block device として見るためには mmc_block という module を使う.SD card を刺した状態で適当に modprobe mmc_block とかす ると以下のような感じ.

mmc0: req done (CMD16): 0/0/0: 00000900 00000000 00000000 00000000
mmcblk0: mmc0:3c0b S01GB 967680KiB 
 mmcblk0:<7>mmc0: starting CMD18 arg 00000000 flags 00000035
sdhci [sdhci_send_command()]: Sending cmd (12)
sdhci [sdhci_prepare_data()]: blksz 0200 blks 0008 flags 00000a00
sdhci [sdhci_prepare_data()]: tsac 12 ms nsac 1000 clk
sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00000001
sdhci [sdhci_finish_command()]: Ending cmd (12)
sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00000002
sdhci [sdhci_finish_data()]: Ending data transfer (4096 bytes)
sdhci [sdhci_send_command()]: Sending cmd (c)
sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00000003
sdhci [sdhci_finish_command()]: Ending cmd (c)
sdhci [sdhci_tasklet_finish()]: Ending request, cmd (12)
mmc0: req done (CMD18): 0/0/0: 00000900 00000000 00000000 00000000
mmc0: starting CMD13 arg 3c0b0000 flags 00000015
sdhci [sdhci_send_command()]: Sending cmd (d)
sdhci [sdhci_irq()]: *** sdhci:slot0 got interrupt: 0x00000001
sdhci [sdhci_finish_command()]: Ending cmd (d)
sdhci [sdhci_tasklet_finish()]: Ending request, cmd (d)
mmc0: req done (CMD13): 0/0/0: 00000900 00000000 00000000 00000000
 p1

ここで,p1 というのは partition が1つ,ということだろう. ちょっと CONFIG_MMC_DEBUG=y な kernel を使っているので, なんか相当 verbose ...

% cat /sys/block/mmcblk0/dev
253:0
% cat /sys/block/mmcblk0/mmcblk0p1/dev
253:1

とかで適当に MAJOR と MINOR にあたりを付け,あとは,

% sudo mknod /dev/mmc1 b 253 1
% sudo mount -t vfat -o uid=myn,gid=users,codepage=932,iocharset=euc-jp /dev/mmc1 /mnt

とかで mount.

関連リンク

[PC周辺] Tgif で English Grid System を使う (20060819)

以前は English Grid が default だったような気がするのであるが, 最近は Metric Grid が好まれるのか Debian GNU/Linux sid では Metric Grid が default になっている模様.

この設定は /etc/X11/app-defaults/Tgif にあって,

Tgif.GridSystem: Metric

という箇所.これを user が override するには,~/.Xresouces とかに

Tgif.GridSystem: English

を書いて

% xrdb ~/.Xresources

で X server resouce を読み込む. ちなみに English と Metric の違いは以下のような感じ.

English Grid だと常に Grid が 4分割とか 2分割になるので, こっちの方が断然書き易いと思うのだが.

関連リンク

[PC周辺] Yaird (Yet Another Mkinitrd) (20060818)

Let's note CF-T4 で software suspend ができない云々 に関してだが,どうやら Debian GNU/Linux sid では mkinitrd を使わずに Yaird (Yet Another Mkinitrd) を使うようになった,というのが原因らしい.

initrd の file の形式が以前となんか違っていたので, それを mount -o loop してみて script を眺めてたら, resume まわりの記述がなさげな気配.

ということで,/etc/yaird/Default.cfg の RESUME という箇所を適当に

RESUME  "/dev/hda5"

とか書いてやって*1, initrd を作ってやったらちゃんと resume するようになった.

現在 2.6.18-rc4 を使用中.

関連リンク
参照リンク

[PC周辺] ほこり (20060816)

夏だから CPU の温度が高くなって良く自宅計算機が 落ちるんだろうと思っていたのであるが, あまりにも落ちまくる(普通の処理で落ちる)ので, ふたたび FAN の掃除.

http://upload.meganecco.org/files/1155734307.95939.jpg

http://upload.meganecco.org/files/1155734454.72438.jpg

異様のほこりがたまってた...

普通にしていて65℃近くまで温度があがってしまうので, 掃除をするまでは CPU の周波数を落していたので,そのメモ.

% sudo modprobe p4-clockmod
% sudo modprobe cpufreq_conservative
% sudo modprobe cpufreq_ondemand

で,以下を cat したり,以下に echo したりして,設定をする.

うちの環境では,

% cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
conservative ondemand userspace performance
% cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies 
425000 850000 1275000 1700000 2125000 2550000 2975000 3400000

これらの値を scaling_min_freq,scaling_max_freq,scaling_governor に echo すれば設定終了(425MHz はさすがに遅い...).

governor を ondemand ぐらいにすると,負荷に応じて周波数を 上げ下げしてくれる.その際の負荷計測の sampling rate とかは

/sys/devices/system/cpu/cpu0/cpufreq/ondemand

以下のファイルで設定.

ほこりのたまった状態では 425MHz ぐらいでも55℃〜60℃ぐらい. 1.7GHz で動作させると 60℃〜65℃ぐらいになって, 65℃を越えると落ちる設定になっているので,落ちまくり.

ほこりを取り除いた状態では 3.4GHz で高負荷時55℃〜60℃ぐらい. 室温にもよるが.

関連リンク
参照リンク

[PC周辺] samba 3.0.23b-2 on Debian sid amd64 (20060816)

% sudo apt-get update ; sudo apt-get upgrade

したら samba の daemon が起動しなくなった. /var/log/samba/log.smbd によると,

ERROR: Could not determine network interfaces, you must use a interfaces config line

ということらしい.Google してみたところ, <URL:http://www.mail-archive.com/debian-bugs-dist@lists.debian.org/msg223269.html> ということらしく amd64 (における build) 固有の問題ぽい(たぶん). とりあえず, /etc/samba/smb.conf の [global] に

interfaces = 10.0.0.3/24 eth0

と書いて対処(default の smb.conf では comment out されている). ちなみに,

interfaces = eth0

でもいける模様.

参考関連 Link
関連リンク

[PC周辺] Firefox on Debian でタイ語表示 (20060802)

「บาท」とかのタイ語が表示できない場合は ttf-thai-tlwg という package を入れればいいらしい.

ちなみに Emacs でタイ語を入力するには

C-u C-\ thai-kesmanee

もしくは

C-u C-\ thai-pattachote

とする.

なお,配列に関して発音とアルファベットがまったく一致しない. 気になったので,タイの人の使っているPCのキーボードを覗いてみたら, 日本語キーボードでの 「かな入力」(ローマ字入力ではないあれ)と同様に タイ語がキーボードに印刷されてました.

関連リンク

[PC周辺] Microsoft Update / Windows Update ができない (20060706)

5月中旬に Microsoft Update をして(Update も成功)から, 何度か Microsoft Update をしてみたのであるが,毎回 100% の割合いで,

[エラー番号: 0x8024400A]
Web サイトに問題が発生したため、このページを表示できません。
次のオプションが、問題の解決に役立つ可能性があります。

とかで Update できない状態になってしまった.ちなみに Windows2000 SP4. 当然,IE のセキュリティーに関する設定 (ActiveX 云々)も正しくしている(つまり強すぎない)状態で.

エラー番号 0x800700C1 に関しては結構情報があるのであるが, 上記エラー番号にし関しては Google 先生もあまり知らない様子.

いろいろ調べているうちに Microsoft Baseline Security Analyzer (MBSA) なるものの存在を発見.

これで localhost を scan して, 更新されていない更新を手動で更新. つまり,更新されていない更新に関する .exe を download し, 順に適用し再起動して,再度 Microsoft Update を試してみたら, 上述のエラーは発生しなくなった.

久しぶりに Windows の無駄なところにはまった...

[PC周辺] Google 検索履歴 「お客様の検索に関連する上位キーワード ランキング」 (20060706)

Google 検索履歴によると私の検索に関連する上位キーワード ランキングは以下のとおりらしい.

  1. ゼロの使い魔 (7月から放送開始のアニメ)
  2. 松本和子 (だれ?)
  3. 中田英寿
  4. サマーデイズ (Overflowのエロゲ)
  5. オシム
  6. はちゅかの (めろめろキュ〜トのエロゲ)
  7. ちゅるやさん (<URL:http://u-u.2-d.jp/log.htm>)
  8. summer days (サマーデイズ)
  9. ジダン
  10. 中田

アニメとエロゲとちゅるやさん以外ははずしてるな...5/10 か.

関連リンク

[PC周辺] GNU tar 1.15.91 の --wildcards option (20060703)

GNU tar の 1.15.91 から '*' の挙動がかわったらしい.例示すると,

% tar zxfv hoge.tar.gz '*.c'
tar: Pattern matching characters used in file names. Please,
tar: use --wildcards to enable pattern matching, or --no-wildcards to
tar: suppress this warning.
tar: *.c: Not found in archive
tar: Error exit delayed from previous errors

は NG (上記 warning/error のとおり)で,

% tar --wildcard -zxfv hoge.tar.gz '*.c'

としなければならないということらしい.具体的には,以下の変更ならしい.

[/usr/share/doc/tar/changelog.gz]
2006-05-24  Sergey Poznyakoff  <gray (at) gnu.org.ua>
(snip)
	* src/names.c: Rewritten handling of member names in the command
	line. Tar no longer attempts to guess globbing patterns, instead
	it relies on --wildcard option.
(snip)

NEWS に結構詳しく書いてあるっぽいが略.なお,

[/usr/share/doc/tar/NEWS.gz]
To treat member names as globbing patterns, use --wildcards option.  
If you wish tar to mimic the behavior of versions up to 1.15.90,
add --wildcards to the value of the environment variable TAR_OPTIONS.

ということなので,これまでと同じようにしたければ

export TAR_OPTIONS=--wildcards

をしておけばいいらしい.

[PC周辺] Linux で DVD-R を焼く@Debian (20060629)

dvd+rw-tools package の growisofs という command を使うらしい. mkisofs で適当に .iso file を作成し,あとは,

% growisofs -dvd-compat -Z /dev/dvd=hoge.iso

という感じ.あっさり焼け,かけてたんですが...

シーズン到来という感じで, 色々並行して処理をしていたら熱で PC が自動的に shutdown してしまった. しかも焼いている途中に.

で,復帰してから,だめもとで

% growisofs -dvd-compat -Z /dev/dvd=hoge.iso

したら途中から resume がかかったみたいで,普通に焼けました.凄いな.

[PC周辺] qmail .qmail-hoge-default (20060622)

とある domain の すべての mail (ほぼすべてのメールアドレス)を

~/.qmail-hoge-default

という感じの file をつかって, あるメールアドレスに転送していたのであるが, @ の前はランダムに生成した文字列 (@ の後は管理しているドメイン)というメールアドレスに From: を偽装 した spam の bounce mail だらけになってきたので,

% mv ~/.qmail-hoge-default ~/.qmail-hoge-default.orig

した.なんだか.

参照リンク

[PC周辺] E: Dynamic MMap ran out of room (20060620)

% apt-get update

したら

E: Dynamic MMap ran out of room
E: Error occurred while processing kerberos4kth-servers-x (NewPackage)
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

という感じで怒られてしまった.

付近を消したり(当然 status は消さない), 手動で修正してみたりしても直らなかったので Google してみると, <URL:http://debian.fam.cx/index.php?AptGet#o86c6417> ということらしい.

/etc/apt/apt.conf に

APT::Cache-Limit "100000000";

と書いてとりあえず解決.

関連リンク

[PC周辺] 文字化け 滝川ハリベテル (20060619)

日本語化をまともにしていない Webalizer を使い続けているわけなんですが, ひさびさに面白かったので紹介.

もちろん「滝川ハリベテル」は「滝川クリステル」が正解. [myn:2004061302]のルールに追加で,

ということらしい.

関連リンク

[PC周辺] emacs21 で UTF-8 を扱う (20060614)

Debian sid での話.

emacs21 で UTF-8 を扱うためには mule-ucs というのを使うのであるが, いつのまにかユーザーが

export DEB_MULEUCS_UNICODE=on

をして emacs を立ち上げないと UTF-8 が使えなくなっていたっぽい (see /etc/emacs/site-start.d/40mule-ucs.el).

いつからだろう,と思って /usr/share/doc/mule-ucs/changelog.Debian.gz を調べてみたら,環境変数を見る機構は 2003年〜2004年の話っぽいが,

mule-ucs (0.84.999+0.20050930-1) unstable; urgency=low
(snip)
* debian/emacs-startup: Don't load the Mule-UCS stuff which is providing
  troublesome to other packages, mentioned in #341593.
  At startup, Mule-UCS-Unicode is now disabled by default.  To enable
  Mule-UCS-Unicode, evaluate (require 'un-define) or (un-define-debian)
  by user's decision.  (closes: #312883)
(snip)
-- Tatsuya Kinoshita <tats (at) debian.org>  Sat, 10 Jun 2006 16:27:42 +0900

ということらしい.がしかし,

(require 'un-define)

とか

(un-define-debian)

だと,なぜか UTF-8 が化けるので, 現状では DEB_MULEUCS_UNICODE をセットするのが良さげ.

参照リンク

[PC周辺] MIME windows-1252 decode @Wanderlust (20060613)

Subject が意味もなく windows-1252 で encode されたメールが届いて, decode できていなかったので,

(setq mime-charset-coding-system-alist
	 (cons '(windows-1252 . iso-8859-1) mime-charset-coding-system-alist))

で対処.

参考関連 Link
関連リンク

[PC周辺] デルの発注サイトが IE/Netscape にしか対応していない (20060613)

いつも不便しているのであるが, Bugzilla-jp にも バグ として登録されている模様.

デル計算機の構成をいじってみる(で価格を見る)だけのために IE を立ち上げなければならないのもアレなので, User-agent を偽装することにする.

自身の firefox は

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1)

なので,とりあえずこれに似たものを apache の log から探してみることにする.

% cd /var/log/apache/
% tail -n 50000 *  | grep -i netscape  | grep -i linux | sed 's,.*Netscape,Netscape,' | sort | uniq
Netscape/7.02"
Netscape/7.1 (ax)"
Netscape/7.1"
Netscape/7.2"
Netscape6/6.2.1"
% tail -n 50000 *  | grep -i netscape  | grep -i linux | grep Netscape/7.2
... "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040805 Netscape/7.2"

<URL:http://browser.netscape.com/> によると 現時点では Netscape 8.1 もあるそうだがこれは Windows 版のみ. ということで <URL:http://browser.netscape.com/ns8/download/archive.jsp> にある Netscape 7.2 が Linux 版の最新ということになるらしい. 最新の Netscape を今どき使っている人も,探せばいるということ.

ということで

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060406 Firefox/1.5.0.4 (Debian-1.5.dfsg+1.5.0.4-1)

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.2) Gecko/20040805 Netscape/7.2

に似せてみる.<URL:about:config> を開いて,

general.useragent.extra.firefox

の値を Firefox/1.5.0.4 から Netscape/7.2 に変更.これで,

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.4) Gecko/20060406 Netscape/7.2 (Debian-1.5.dfsg+1.5.0.4-1)

になる.ちなみにもっとカスタマイズできて,general.useragent.* を抜粋す ると以下のような感じ.

general.useragent.contentlocale:        default    US
general.useragent.extra.firefox:        user set   Netscape/7.2
general.useragent.extra.firefoxComment: default    (Debian-1.5.dfsg+1.5.0.4-1)
general.useragent.locale:               default    en-US
general.useragent.product:              default    Gecko
general.useragent.productSub:           default    20060406
general.useragent.security:             default    U

これで Dell からはじかれなくなったし, 最小限の変更にとどめたかったので,これでいくことにする.

ちなみに,どうでもいいのだが

Netscape/7.1 (ax)

の ax というのはたぶん ActiveX Support ということなんだと思う.

参考関連 Link
参照リンク

[PC周辺] xserver-xorg_7.0.15_all.deb (20060502)

[myn:2006043000] の続き. xserver-xorg_7.0.15_all.deb が「_all」なのに, いつまでも bug っているわけがないような気がしたので調査.

% sudo sh -c 'DEBCONF_DEBUG=developer dpkg -i xserver-xorg_7.0.15_all.deb'
(Reading database ... 145637 files and directories currently installed.)
Unpacking xserver-xorg (from xserver-xorg_7.0.15_all.deb) ...
debconf (developer): frontend started
debconf (developer): frontend running, package name is xserver-xorg
debconf (developer): starting /var/lib/dpkg/tmp.ci/config configure 
debconf (developer): <-- GET xserver-xorg/config/inputdevice/mouse/emulate3buttons
debconf (developer): --> 0 true
debconf (developer): <-- GET xserver-xorg/config/inputdevice/mouse/zaxismapping
debconf (developer): --> 10 xserver-xorg/config/inputdevice/mouse/zaxismapping doesn't exist
dpkg: error processing xserver-xorg_7.0.15_all.deb (--install):
 subprocess pre-installation script returned error exit status 10
Errors were encountered while processing:
 xserver-xorg_7.0.15_all.deb

どうやら /var/cache/debconf/config.dat がこわれていたらしく,

Name: xserver-xorg/config/inputdevice/mouse/zaxismapping
Template: xserver-xorg/config/inputdevice/mouse/zaxismapping
Owners: xserver-xorg

とかを適当に書いたら install できた.

がしかし amd64 な driver が無いわけだが...

関連リンク
参照リンク

[PC周辺] xserver-xorg @Debian GNU/Linux amd64 移植版 (sid) (20060430)

Debian GNU/Linux amd64 移植版 (sid) の入っている amd64 Dual 計算機 なのであるが, 最近の Xorg まわりの package の劇的な変化に Debian GNU/Linux amd64 移植版が追従できていなくて, かなりぼろぼろな状態になっている模様である.まず,

% sudo apt-get install xserver-xorg

dpkg: error processing /var/cache/apt/archives/xserver-xorg_1%3a7.0.15_all.deb (--unpack):
 subprocess pre-installation script returned error exit status 10
Errors were encountered while processing:
 /var/cache/apt/archives/xserver-xorg_1%3a7.0.15_all.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

とかで入らない.まあ xserver-xorg に binary は含まれておらず dummy package のようなので問題なさげではあるが.

致命的なのが,いくつかの重要な package がまだ build されていないということ...つまり,

とかがない.apt-get source して build しろということなのだろうか...

ちなみにamd64 Dual 計算機であるが,

LEADTEK WinFast PX6600 TD (nVidia GeForce 6600 128M)

はあきらめて ASUS Extreme AX550GE/TD (PCIExp 256M) (つまり ATI Radeon X550) を刺して使っている(使っていた).

通常は ATI のページから X の kernel module の source (ati-driver-installer-8.24.8-x86_64.run とか) を拾ってきて使う(使って いた).この installer は賢くできてて,Debian の package を吐いてくれる という優れもの(だった).当然のことながら今は動かない(というか ati-driver-installer-8.24.8-x86_64.run は Linux 2.6.16 に対応できてい ないような気もする).

なお,Pentium 4 の SMP 計算機でも同様に ATI のグラボを使っているのであ るが,xserver-xorg-video-ati という package を使うと

Driver "ati"

で普通に動いてくれるっぽい. 細かい設定ができるかどうかとか,パフォーマンスがどうかとかは知らないが.

関連リンク
参照リンク

[PC周辺] MIME x-sjis 等 decode @Wanderlust (20060425)

身の回りの Windows な人々は MUA として Becky! を使っている人が多いのであるが, この MUA はメールを転送する際にそのメールの charset にひきずられるらしい (具体的にちゃんと調べたわけではないので「たぶん」です).

私の使っている受信 MUA は以下なのであるが,

User-Agent: Wanderlust/2.15.2 (Almost Unreal) SEMI/1.14.6
 (Maruoka) FLIM/1.14.8 (Shijō) APEL/10.6 Emacs/21.4
 (x86_64-pc-linux-gnu) MULE/5.0 (SAKAKI)

不正(?)な charset が使われるとおもむろに文字化けを起す.

特にアジアの国々の人の間で転送が繰返されたメールはただでさえややこしいのに, そこに文字化けした日本語の指示が付いて転送された日には相当なんだか凹む...

今回対処してみたのは以下の2件.1つは,header が

Subject: Fw: =?X-SJIS?B?(snip)?=
Content-Type: text/plain; charset="x-sjis"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Becky! ver. 2.12.01 [ja]

となっているメール.x-sjis が認識できずにおもむろに化ける. 当然 Subject は MIME の生(decode されていない状態)のまま表示される.

もう 1つは,

Content-Type: multipart/mixed; boundary="------_XXXXXXXXXXXXXXXXXXXX_MULTIPART_MIXED_"
Content-Transfer-Encoding: 8bit
X-Mailer: Becky! ver. 2.11.02 [ja]

--------_XXXXXXXXXXXXXXXXXXXX_MULTIPART_MIXED_
Content-Type: text/plain; charset="ks_c_5601-1987"
Content-Transfer-Encoding: 8bit

といった感じの multipart.この部分は shift_jis で書かれていた.これに,

Content-Type: message/rfc822
Content-Type: text/plain; charset="EUC-KR"
Content-Transfer-Encoding: quoted-printable

といった感じのメールが添付されている.この部分はほとんどが英語で 微妙に EUC-KR 依存の文字が入っている感じ(quote とか).

ともかく双方共,うまく charset を mapping してやればいいらしい. 具体的には,

といった感じ.これは mime-charset-coding-system-alist というので設定できるらしい.

(setq mime-charset-coding-system-alist
  (cons '(x-sjis . shift_jis) mime-charset-coding-system-alist))
(setq mime-charset-coding-system-alist
  (cons '(ks_c_5601-1987 . shift_jis) mime-charset-coding-system-alist))

といった感じで.mime-charset-coding-system-alist 自体は Debian であれば

/usr/share/emacs21/site-lisp/apel/mcs-20.el

内で defcustom されているっぽい.つまり APEL の一部.

参照リンク

[PC周辺] __ctype_b, __ctype_tolower, and __ctype_toupper of glibc 2.3.6-7 (20060424)

[myn:2005110700] の続き.

undefined reference to `__ctype_b'
undefined reference to `__ctype_tolower'
undefined reference to `__ctype_toupper'

とかで怒られるというあれ.以前(glibc 2.3.5-7 ぐらい)は,

% apt-get source glibc
% cd glibc-2.3.5
% head -1 debian/changelog
glibc (2.3.5-7) unstable; urgency=low
% echo glibc23-ctype-compat >> debian/patches/00list
% dpkg-buildpackage -rfakeroot

とかでいけたのであるが,glibc 2.3.6-7 ではそもそも glibc23-ctype-compat が debian/pathces から無くなっていた. ただし FAQ には以前のまま 00list に glibc23-ctype-compat を書けと書かれてますが... というか,00list なんて file も既に無いし...

ということで以下,対処法.

% apt-get source glibc
% cd glibc-2.3.6
% head -1 debian/changelog
glibc (2.3.6-7) unstable; urgency=medium
% wget -O - 'http://cvs.debian.org/*checkout*/glibc-package/debian/patches/glibc23-ctype-compat.dpatch?root=glibc' > debian/patches/any/glibc23-ctype-compat.dpatch
% echo any/glibc23-ctype-compat.dpatch >> debian/patches/series
% dpkg-buildpackage -rfakeroot

patch があたったかどうかは,

% fakeroot make -f debian/rules patch

とかして stamp-dir/ 以下にできる file を覗けばいいらしい. unpatch するには,

% fakeroot make -f debian/rules unpatch

とか.ちなみに debian/changelog を編集して適当に build number を 2.3.6-7.1 とかに increment するのが better.

関連リンク
参照リンク

[PC周辺] auctex 11.82 (20060410)

auctex なのであるが再び section やら chapter やらの font が大きく表示 されるようになってしまった.

以前は [myn:2004092700][myn:2005020701] のように解決できた のであるが,今の version のものでは font-latex-fontify-sectioning とい うので設定しなければならないらしい.

問題の箇所は font-latex.el の

(defface font-latex-sectioning-5-face
  (if (featurep 'xemacs)
      '((((type tty pc) (class color) (background light))
	 (:foreground "blue4" :bold t))
	(((type tty pc) (class color) (background dark))
	 (:foreground "yellow" :bold t))
	(((class color) (background light))
	 (:bold t :foreground "blue4" :family "helvetica"))
	(((class color) (background dark))
	 (:bold t :foreground "yellow" :family "helvetica"))
	(t (:bold t :family "helvetica")))
    '((((type tty pc) (class color) (background light))
       (:foreground "blue4" :weight bold))
      (((type tty pc) (class color) (background dark))
       (:foreground "yellow" :weight bold))
      (((class color) (background light))
       (:weight bold :inherit variable-pitch :foreground "blue4"))
      (((class color) (background dark))
       (:weight bold :inherit variable-pitch :foreground "yellow"))
      (t (:weight bold :inherit variable-pitch))))
  "Face for sectioning commands at level 5."
  :group 'font-latex-highlighting-faces)

(の :inherit variable-pitch の部分)と,

(defcustom font-latex-fontify-sectioning 1.1

という箇所. font-latex-sectioning-5-face から inherit して font-latex-sectioning-[0-4]-face をつくって, LaTeX の階層毎に違う face を提供しているっぽくて (see M-x describe-face → font-latex-sectioning-0-face 等), font-latex-sectioning-5-face を修正してやると それら全部に効果があるらしい. また,階層の level (0〜5) が小さくなればなるほど font-latex-fontify-sectioning が効いて font が大きく scale されるっぽい.

ということで,まず,

(setq font-latex-fontify-sectioning 1.0)

とする.これで,縦方向のサイズは大きくならないようになった. ただし, bold font が適用される(半角英数に)のでなんだか横方向にずれる... ということで,

『:inherit variable-pitch』

『:inherit default』

にする.これで自分的には解決するっぽい.ただ,このようにする lisp をうまく書けなかったので(力不足で),custom.el を使った (M-x describe-face → font-latex-sectioning-5-face して customize). その結果,以下のような感じのコードが .emacs に追記された.

(custom-set-faces
  ;; custom-set-faces was added by Custom -- don't edit or cut/paste it!
  ;; Your init file should contain only one such instance.
 '(font-latex-sectioning-5-face ((((class color) (background dark)) (:inherit default :foreground "yellow" :weight bold)))))

こういう妙に interactive に生成された code は, 別の環境に移行した時に嵌りそうなので .emacs に含めたくないのであるが, 当座はこれで.

関連リンク
参照リンク

[PC周辺] Flash で日本語が表示されない@Debian (20060408)

というのは,非常に昔からある一般的な問題であって, どちらかというと Font を埋め込まない Flash 作成者の方に問題があるとも思われるのであるが (たぶん Linux で見ることを想定していない), <URL:http://debian.fam.cx/index.php?Japanese#o56a07fd>を参考に, /etc/X11/fs/config の catalogue に /var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/ を追加して,あとは xfs やら xfstt を restart したら少し改善した. あと,問題点は,

ぐらい.なんなんんだろうか...ユーザエージェントは

Mozilla/5.0 (X11; U; Linux i686; ja; rv:1.8.0.1) Gecko/20060313 Debian/1.5.dfsg+1.5.0.1-4 Firefox/1.5.0.1

で,Flash は以下.

[about:plugins]
ファイル名: libflashplayer.so
Shockwave Flash 7.0 r63

[PC周辺] Java / public class (20060405)

Java に関して [myn:2006013100]

上位 package が見えない

ということを書いたが,なんというか,public class になっていなかった. default はなんなんでしょうな...調べればわかるんでしょうけど.

ともかく,

public class

と書かないと他の package から見えないらしい.

関連リンク

[PC周辺] server down / fsck (20060321)

server が down した. remote で fsck -c 中に hdparm したら凍ったからなのであるが...

で,なんとなく fsck の memo.

あとは,

% sudo dumpe2fs -b /dev/hda1

とかで bad block list 表示とか.

あと,手動で bad block list を作っておいてその file を喰わせて bad block 登録をするには fsck の -l option を利用する.dmesg とか syslog の情報から手動で作って登録すると,結構お手軽(ただし sector 番号から block 番号への変換を自分で考えなければならなかったような気がする).

[PC周辺] 透過プロキシ/transparent proxy (20060302)

squid の動いている計算機で,

% sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
% sudo /etc/init.d/iptables save active

これは, <URL:http://www.faqs.org/docs/Linux-mini/TransparentProxy.html#s5> 参照.

NAT 計算機で

% sudo iptables -t nat -A PREROUTING -i eth1 -s '!' 10.0.0.3 -p tcp --dport 80 -j DNAT --to 10.0.0.3:3128
% sudo iptables -t nat -A POSTROUTING -o eth1 -s 10.0.0.0/24 -d 10.0.0.3 -j SNAT --to 10.0.0.1
% sudo /etc/init.d/iptables save active

これは, <URL:http://www.faqs.org/docs/Linux-mini/TransparentProxy.html#ss6.1> 参照.ここでは

と仮定している.

[PC周辺] ほこり (20060217)

なんというか,先週末,熱のためにやたらめったら PC が Down した. 以下のような感じ.

Feb 15 19:25:11 xxx kernel: Critical temperature reached (70 C), shutting down.
Feb 15 19:25:17 xxx kernel: Critical temperature reached (68 C), shutting down.
Feb 16 23:54:04 xxx kernel: CPU0: Temperature above threshold
Feb 16 23:54:04 xxx kernel: CPU1: Temperature above threshold
Feb 16 23:54:14 xxx kernel: CPU0: Temperature above threshold
Feb 16 23:54:14 xxx kernel: CPU1: Temperature above threshold
Feb 16 23:54:19 xxx kernel: Critical temperature reached (72 C), shutting down.
Feb 16 23:54:25 xxx kernel: Critical temperature reached (69 C), shutting down.
Feb 17 00:01:47 xxx kernel: Critical temperature reached (73 C), shutting down.
Feb 17 00:01:48 xxx kernel: CPU0: Temperature above threshold
Feb 17 00:01:48 xxx kernel: CPU1: Temperature above threshold
Feb 17 00:01:53 xxx kernel: Critical temperature reached (65 C), shutting down.
Feb 17 00:17:52 xxx kernel: Critical temperature reached (70 C), shutting down.
Feb 17 00:17:58 xxx kernel: Critical temperature reached (66 C), shutting down.
Feb 17 00:25:25 xxx kernel: Critical temperature reached (70 C), shutting down.
Feb 17 00:25:27 xxx kernel: Critical temperature reached (67 C), shutting down.

負荷が高くなると落ちることがあったのであるが, 普通の処理で落ちるような状況になってしまったので,

とか,いろいろ試行錯誤してみたのであるが,原因はほこりであった.

一見したところ CPU の FAN にもヒートシンクにもあまりほこりは見当らなくて, でも,PC を起動してヒートシンクを触ってみたらやたらと熱いので いろいろと調べてみたら, CPU の FAN とヒートシンクの間にやたらとほこりがたまっていた. そら冷えないわな.現在 32 C で安定動作中.

参照リンク

[PC周辺] W-ZERO3 周辺機器 MYNセット (20060205)

以下を購入.

これで,miniSD にアニメ動画を転送して見放題状態になっています. ちなみに Media Player では対応している Codec の数が少ないっぽい (mencoder で encode した動画がことごとく再生できない)ので, TCPMP (どうやら ffmpeg ベース)で再生. <URL:http://tcpmp.corecodec.org/>の 「Windows Mobile version」の「tcpmp.arm.cabs.0.71.zip」を install. 若干のコマ落ちはあるものの,普通に再生できてます (若干 codec によってはあるオプション機能が効かなかったり, AAC が再生できなかったり等あるけど).

あと,Linux で ECU-JP を使っている自分用 miniSD の mount メモ.

% mount -t vfat -o uid=myn,gid=users,codepage=932,iocharset=euc-jp /dev/sda1 /mnt
関連リンク

[PC周辺] compface 1.5.2 (20060202)

どうも bug っているのか,interface が変更されているっぽい.

という組合せだと,

X-Face: compface: (warning) <stdin>: excess data ignored

とか寒いことになる.ということで,現在,

を利用中...(ちょっと探した感じでは 1.5.1 を見付けられなかったので)

[PC周辺] Java での SIGINT のとりあつかい (20060201)

思い出したので続き.

Java では, C-c で Java の process に SIGINT を送った場合の処理を 記述できないらしい. Ruby であれば SIGINT が来ると内部で例外が発生するので, それを rescue (Java の catch 相当) するか, trap が利用できるのであるが.

つまり Java では, GUI を立ち上げて, その Close Button を押した時のイベントを受けとって 終了の処理をするしかないらしい.たぶん.

関連リンク

[PC周辺] Java (20060131)

ここ数日,ものすごく久しぶりに Java を書いてたですよ.

普段はもう shell script と Ruby と C (あと Verilog-HDL も)ばっかりなので,すっかり書き方を忘れてた. はまった点を以下にメモ.

等々.なんというか相当初歩的なところでつまずいて, しかもいろいろ場当たり的な対処をしてしまったような気がするが, どうせ今後 Java を書くことはほとんどないような気がするので, まあそれでいいような気がする.

関連リンク
参照リンク

[PC周辺] W-ZERO3 (20060130)

忙しくて,更新全然できなかった.

さて,W-ZERO3 を入手した. WILLCOM STORE で普通に.

いや,なんというか,やはり電話にしては大きい. 話をしていると手がつかれる. ハンズフリーイヤホンマイクが欲しいところ. ちなみに平型イヤホンマイク端子...

で,AH-J3002V から電話帳を移行しなければならなかったのであるが, W-ZERO3 Wiki を参考にあっさり移行できた.ということで,今後の TODO は,

ぐらいか.とりあえず Opera は入れたので,快適に Web は見れるのであるが, なんというかターミナルがないのでいまいちザウルス並に使いこなす自信無し.

関連リンク
参照リンク

[PC周辺] 大きな画像によるサーバーサイドイメージマップ@firefox 1.5 (20060110)

map なのであるが,結構大きめの画像で サーバーサイドイメージマップしているのであるが, それを firefox 1.5 でクリックすると, link 先に飛ぶ前になんだか妙なアラインメント (ウインドウに対して画像をアラインメントして表示しようとするっぽい) がかかってしまって,飛びたい先に飛べないっぽい. Linux (Debian) 版でも,Windows 版でも同じ.

ちなみに IE では問題なさげ.

関連リンク

[PC周辺] CSS で pre を折り返す (20060110)

<URL:http://sho.tdiary.net/20050922.html#p02> を参考に「CSS で pre を折り返す」設定をしてみたが, CSS Validator におもいっきり怒られたので, <URL:http://hxxk.jp/2005/12/15/2150> を参考に,

pre
{
  /* 略 */
  width: 100%;
  overflow: auto;
}

としてみた.折り返さずにかわりにスクロールバーを出します.

追記

『width: 100%;』なんですが,

margin-left: 1em;
margin-right: 2em;

とぶつかって,firefox で見栄えが悪い(右のマージンがなくなる)ので, 『width: 100%;』 は消しました.IE でスクロールバーが出ませんが, それはそれでよしということで.

関連リンク

[PC周辺] デジカメ 富士フイルム FinePix F11 (20060105)

普段つかっているデジカメが壊れたので新たに購入.

ちなみに普段つかっていたデジカメは img:http://images-jp.amazon.com/images/P/B00008B1CA.09.MZZZZZZZ.jpgF402.非常にお気に入りであったのだが, 扱いが非常に悪いので,

という症状があったものの,結構長くつかっていた.

が,先日ついにセンサまわりの接触不良(たぶん)のため なんだか色成分が足りない状況に...

で,いろいろ検討したあげく, 非常に格安な

富士フイルム FinePix F345 *3

を買って, F402 を修理に出すか, 高価だが機能/性能的に非常に優位な

富士フイルム FinePix F11 *4

を買うかで非常に悩んだが,結局 F11 (6.3メガネピクセル)を購入. F402 は「修理して使うなら使え」と実家に置いてきた.

あと,今回は,これまでの扱いの酷さを反省し, FUJIFILM AD-FX/BK エアメッシュショルダー(ブラック) も同時購入.

いまどきのデジカメは連写機能とかがついていて,かなり驚いた...

関連リンク

[PC周辺] Dual Opteron (amd64) に Debian GNU/Linux amd64 移植版 (sid) (20051221)

そういや [myn:2005041300] なのであるが, 現在の installer だと tg3 で eth0 が見えたので install してみた.

% uname -a
Linux sentosa 2.6.12-1-amd64-k8-smp #1 SMP Wed Sep 28 02:57:49 CEST 2005 x86_64 GNU/Linux

% cat /proc/cpuinfo
processor	: 0
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 5
model name	: AMD Opteron(tm) Processor 242
stepping	: 10
cpu MHz		: 1608.280
cache size	: 1024 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips	: 3186.68
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts ttp

processor	: 1
vendor_id	: AuthenticAMD
cpu family	: 15
model		: 5
model name	: AMD Opteron(tm) Processor 242
stepping	: 10
cpu MHz		: 1608.280
cache size	: 1024 KB
fpu		: yes
fpu_exception	: yes
cpuid level	: 1
wp		: yes
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips	: 3211.26
TLB size	: 1024 4K pages
clflush size	: 64
cache_alignment	: 64
address sizes	: 40 bits physical, 48 bits virtual
power management: ts ttp

すこぶる普通に動いてるんですが, たまに cat やら sort やらが落ちて感じ悪いです.

% dmesg
(snip)
sort[8925]: segfault at 0000000000000008 rip 00002aaaaaab4135 rsp 00007fffffb083d0 error 4
cat[9677]: segfault at 0000000000000008 rip 00002aaaaaab4135 rsp 00007fffffb02420 error 4
(snip)

「LEADTEK WinFast PX6600 TD (nVidia GeForce 6600 128M)」まだ使えず.

参考関連 Link
関連リンク
参照リンク

[PC周辺] dash vs bash (20051207)

"Available extensions:
"

が compile できない問題であるが,

build-tree/glibc-2.3.5/csu/Makefile の

echo "\"Available extensions:\\n\"";			\

という記述が dash だと問題有りで bash だと OK だということらしい. /bin/sh が bash なら

"Available extensions:"

となる.ということで,dash を使う場合は,

echo "\"Available extensions:\\\\n\"";			\

とする必要がある.

関連リンク

[PC周辺] glibc 2.3.5-8.1 (20051207)

glibc 2.3.5-8.1 を build しているのであるが,

gcc-4.0 ../sysdeps/generic/errno.c -c -std=gnu99 -O2 -O3 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -fstrict-aliasing -g -g1 -march=i486 -mtune=i686 -pipe -mpreferred-stack-boundary=4     -I../include -I. -I/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu -I.. -I../libio -I../nptl -I/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl -I../sysdeps/i386/elf -I../libidn/sysdeps/unix -I../nptl/sysdeps/unix/sysv/linux/i386/i486 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../nptl/sysdeps/i386/i486 -I../nptl/sysdeps/i386 -I../sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -isystem /home/myn/tmp/glibc-2.3.5.orig/debian/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h       -DHAVE_INITFINI -o /home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/errno.o -MD -MP -MF /home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/errno.o.dt -MT /home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/errno.o
In file included from version.c:33:
/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/version-info.h:2: error: missing terminating " character
/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/version-info.h:3: error: missing terminating " character
version.c:40: error: syntax error before string constant
make[3]: *** [/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl/csu/version.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/home/myn/tmp/glibc-2.3.5.orig/build-tree/glibc-2.3.5/csu'
make[2]: *** [csu/subdir_lib] Error 2
make[2]: Leaving directory `/home/myn/tmp/glibc-2.3.5.orig/build-tree/glibc-2.3.5'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/myn/tmp/glibc-2.3.5.orig/build-tree/i386-nptl'
make: *** [/home/myn/tmp/glibc-2.3.5.orig/stamp-dir/build_nptl] Error 2

とかでこける.該当箇所は,以下.

"Compiled on a Linux 2.6.13 system on 2005-12-07.\n"
"Available extensions:
"
"	GNU libio by Per Bothner\n"
"	crypt add-on version 2.1 by Michael Glad and others\n"
"	GNU Libidn by Simon Josefsson\n"
"	linuxthreads-0.10 by Xavier Leroy\n"
"	BIND-8.2.3-T5B\n"
"	libthread_db work sponsored by Alpha Processor Inc\n"
"	NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk\n"

なんというか,gcc-2.95 ならこういう記述 OK なんだが...

% gcc-4.0 --version
gcc-4.0 (GCC) 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)
Copyright (C) 2005 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
関連リンク
参照リンク

[PC周辺] swsusp on Let's note CF-T4 (20051127)

[myn:2005082500] で NotePC を買おうとしていたわけであるが, 結局 CF-T4GW5AXS で HDD を 100G にしたものを購入.

Linux 2.6.12 の

CONFIG_SOFTWARE_SUSPEND=y

とした kernel で,

% sudo sh -c 'echo -n disk > /sys/power/state'

とかでうまく suspend できていたのであるが, Linux 2.6.14 に移行したら suspend はできるが resume ができない状況になってしまった.

最近は default の Debian package でも CONFIG_SOFTWARE_SUSPEND=y となっているらしく linux-image-2.6.14-2-686 (2.6.14-4) というのでも試してみたが同じ.

ということで,しばらく 2.6.12 の生活が続きそう.

ちなみに,

とかしたら,なぜか resume (当然かなり前の状態で resume)できてしまい, file system が大変なことになってしまった. /home やら /var やら酷いことに...

関連リンク
参照リンク

[PC周辺] defoma-reconfigure (20051123)

とある sid な計算機で,

% gs-ja mozilla.ps 
GNU Ghostscript 7.07 (2003-05-17)
Copyright (C) 2003 artofcode LLC, Benicia, CA.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
Can't find (or can't open) font file n021003l.pfb.
Can't find (or can't open) font file /usr/share/ghostscript/fonts/NimbusRomNo9L-Regu.
Can't find (or can't open) font file NimbusRomNo9L-Regu.
Can't find (or can't open) font file /usr/share/ghostscript/fonts/NimbusRomNo9L-Regu.
Can't find (or can't open) font file NimbusRomNo9L-Regu.
Substituting font Courier for NimbusRomNo9L-Regu.
Can't find (or can't open) font file n022003l.pfb.
Can't find (or can't open) font file /usr/share/ghostscript/fonts/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Can't find (or can't open) font file /usr/share/ghostscript/fonts/NimbusMonL-Regu.
Can't find (or can't open) font file NimbusMonL-Regu.
Unable to substitute for font.

とか怒られたので,

を install.これでも直らないので,

# defoma-reconfigure

する.

で直る.

なんか最近ようやくこういうのの対処法が すぐに思い付くようになってきたような気がする.

関連リンク

[PC周辺] Google AdSense (20051122)

Google AdSense な広告を付けてみることにした. いまいちどうカスタマイズしたらいいのか良く判らない, というかやるきなしなしなので,感じ悪くデカデカと貼り付けてます.

というか,

[https://www.google.com/support/adsense/bin/answer.py?answer=9902&topic=134]
どのくらい収入を得られるかを知るには、このプログラムに申し込み、
お客様のウェブ ページで広告の掲載を開始するのが一番です。

という AdSense のヘルプは若干如何なものかと思ったり.

関連リンク

[PC周辺] Debian sid の ssh package (20051122)

Debian sid の ssh package が

に分割された模様. 確かに,通常の NotePC 等のクライアントでの利用なら server は不要なので, 妥当なところ.

% dpkg -s ssh
Package: ssh
Status: install ok installed
Priority: standard
Section: net
Installed-Size: 32
Maintainer: Matthew Vernon <matthew(at)debian.org>
Architecture: all
Source: openssh
Version: 1:4.2p1-5
Depends: openssh-client, openssh-server
Description: Secure shell client and server (transitional package)
 This is a transitional package depending on both the OpenSSH client and
 the OpenSSH server, which are now in separate packages. You may remove
 it once the upgrade is complete and nothing depends on it.

[PC周辺] OpenOffice 2.0.0 (20051116)

いつのまにか,というかメジャーリリースがあったのは知ってたのですが, OpenOffice が 2.0.0 (Debian では 2.0.0-2) になってました.

というか,

% openoffice

で起動しないのでなんでだろうかと相当なやんだのですが,ooffice という command に変更されていたらしい.

あと,なんだか起動がやけに速くなったような気がする.

関連リンク

[PC周辺] glibc 2.3.5-8 (20051116)

glibc 2.3.5-7 を build した際の ccache が効きまくって, かなり機嫌良く高速に build していたのであるが,

gcc-4.0 -m64 -D__x86_64__ ../nptl/sysdeps/unix/sysv/linux/x86_64/sem_timedwait.S -c  -I../include -I. -I/home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64/nptl -I.. -I../libio  -I/home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64 -I../sysdeps/x86_64/elf -I../libidn/sysdeps/unix -I../nptl/sysdeps/unix/sysv/linux/x86_64 -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../nptl/sysdeps/x86_64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/fpu -I../sysdeps/x86_64 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/i486-linux-gnu/4.0.3/include -isystem /home/myn/tmp/glibc-2.3.5/debian/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h   -DNOT_IN_libc=1 -DIS_IN_libpthread=1    -DASSEMBLER  -g -g1 -Wa,--noexecstack  -o /home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64/nptl/sem_timedwait.o -MD -MP -MF /home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64/nptl/sem_timedwait.o.dt -MT /home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64/nptl/sem_timedwait.o
../nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S: Assembler messages:
../nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S:59: Error: symbol `sem_trywait' is already defined
make[3]: *** [/home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64/nptl/sem_trywait.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory `/home/myn/tmp/glibc-2.3.5/build-tree/glibc-2.3.5/nptl'
make[2]: *** [nptl/subdir_lib] Error 2
make[2]: Leaving directory `/home/myn/tmp/glibc-2.3.5/build-tree/glibc-2.3.5'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/myn/tmp/glibc-2.3.5/build-tree/i386-amd64'
make: *** [/home/myn/tmp/glibc-2.3.5/stamp-dir/build_amd64] Error 2

とかでこける. <URL:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=339389> で既に bug 報告がされてたので,

% wget -O - 'http://bugs.debian.org/cgi-bin/bugreport.cgi/sem_trywait.diff?bug=339389;msg=5;att=1' | patch build-tree/glibc-2.3.5/nptl/sysdeps/unix/sysv/linux/x86_64/sem_trywait.S 

して,

% fakeroot make -f debian/rules binary

で build 再開.

関連リンク
参照リンク

[PC周辺] Joel Klecker (20051116)

glibc が 2.3.5-8 になったので再び [myn:2005110700] 同様に build しているのであるが, なんとなく debian/changelog を下まで見てみたら Joel Klecker の文字が.

glibc (2.1.3-11) stable; urgency=low

  * Security upload for ldso problem
  * Fix sparc headers too
  * Might aswell change the maintainer too (So long Joel, you are missed)

 -- Ben Collins <bcollins(at)debian.org>  Thu, 31 Aug 2000 11:10:36 -0400

glibc (2.1.3-10) frozen unstable; urgency=low

  * The "Ask not for whom the feep tolls" release.
  * zic -l will use hardlinks if /etc and /usr are on the same
    filesystem, so revert to ln -s.
  * Update Build-Depends to kernel-headers-2.2.15.

 -- Joel Klecker <debian-glibc(at)lists.debian.org>  Fri, 28 Apr 2000 18:45:49 -0700
[...]
glibc (2.1-1) unstable; urgency=low

  * New upstream release.
  * (debian/control.in): Update maintainer address.
  * (debian/depflags.mk):
    $(libc): conflict and replace timezone, timezones; replace libdb2
  * (debian/rules):
          $(libc)-dev: copy subdirectories from $(KERNEL_HEADERS)/linux too.
          timezones: remove
          $(libc): Put timezone data, and the zic and zdump utils here
  * Sync with HURD again.
  * Removed hurd-utimes patch, it is integrated upstream.

 -- Joel Klecker <espy(at)debian.org>  Sat,  6 Feb 1999 12:26:10 -0800

この人,glibc の maintainer だったのか.

参考関連 Link
関連リンク
参照リンク

[PC周辺] AA (Amazon Affiliate) 表示 (20051115)

AA (Amazon Affiliate) がメインのコンテンツより先に表示されるのが感じ悪いと, 雑記の人 に指摘されたので後で表示するようにしてみた. 単に .html 内での順番を入れかえただけであるが.

関連リンク
参照リンク

[PC周辺] dvips (dvipsk-ja): Couldn't find header file 8r.enc (20051115)

% dpkg -l '*tetex*' | grep ^ii
ii  tetex-base         3.0-10         Basic library files of teTeX
ii  tetex-bin          3.0-10.1       The teTeX binary files
ii  tetex-doc          3.0-10         The documentation component of the Debian te
ii  tetex-extra        3.0-10         Additional library files of teTeX
% dpkg -l '*dvi*k-ja*' | grep ^ii
ii  dvipsk-ja      5.94a+jp1.6-1   DVI-to-PostScript translator with Japanese support
ii  xdvik-ja       22.84.8-j1.22-1 Japanized DVI Previewer for the X Window System

で,あとは適当に font まわりもそこそこ設定できている環境で, dvips (dvipsk-ja) が

Couldn't find header file 8r.enc

とかでおちる.Debian (sid) の tetex が 3.0 に上がった影響っぽい.

% dpkg -S 8r.enc                                        
tetex-base: /usr/share/texmf/fonts/enc/dvips/psnfss/8r.enc

という感じで,file はあるのであるが,見付けられずにおちるらしい.

% KPATHSEA_DEBUG=122 dvips hoge.dvi -f

とかそんなのでいろいろ調べつつ,

[/etc/texmf/texmf.d/70dvipsj.cnf]
-TEXPSHEADERS.dvips = .;$TEXMF/{dvipsj,dvips,pdftex,tex,fonts/type1}//
+TEXPSHEADERS.dvips = .;$TEXMF/{dvipsj,dvips,pdftex,tex,fonts/type1}//;$TEXMF/fonts/enc/dvips/psnfss//

という修正をすればいいっぽいと判明.だたし,

% dpkg -S /etc/texmf/texmf.d/70dvipsj.cnf
dpkg: /etc/texmf/texmf.d/70dvipsj.cnf not found.

なので,この file からして自動生成なのかもしれないが...

あと,/etc/texmf/texmf.d/* を修正したあとは,

# update-texmf

で /etc/texmf/texmf.cnf を生成する必要がある.やるきなしなし.

関連リンク
参照リンク

[PC周辺] __ctype_b, __ctype_tolower, and __ctype_toupper of glibc (20051107)

某シミュレーションツールを利用しようとすると,

undefined reference to `__ctype_b'
undefined reference to `__ctype_tolower'
undefined reference to `__ctype_toupper'

とか怒られる.

このシミュレーションツールは binary を生成(というか compile)して,それを走らせることにより シミュレーションを実行するようなもの. シミュレーションツールに含まれている library が古いのが原因らしい.

というか, <URL:http://lists.debian.org/debian-glibc/2005/08/msg00585.html> で bug 報告がなされて, <URL:http://lists.debian.org/debian-glibc/2005/08/msg00684.html> で marked as done されているとおりっぽい.

どう対処すればいいのかというと libc6 の package を自分で作れということらしい. がしかし, <URL:http://lists.debian.org/debian-glibc/2005/09/msg00073.html> にあるとおり,patch あてる順番に問題があるらしい.

2.3.5-7 であれば,以下のようにすればいけるっぽい.

% apt-get source glibc
% cd glibc-2.3.5
% head -1 debian/changelog
glibc (2.3.5-7) unstable; urgency=low
% echo glibc23-ctype-compat >> debian/patches/00list
% dpkg-buildpackage -rfakeroot

ちなみに patch があたったかどうかを確認するには,

stamp-dir/patched/glibc23-ctype-compat.dpatch

を覗く.もっというと,相当 compile に時間がかかる...

参照リンク

[PC周辺] iPod nano 通信速度 (20051021)

恒例の速度計測.

/dev/sda:
 Timing buffered disk reads:   12 MB in  3.16 seconds =   3.79 MB/sec
/dev/sda:
 Timing buffered disk reads:   14 MB in  3.48 seconds =   4.03 MB/sec
/dev/sda:
 Timing buffered disk reads:   16 MB in  3.52 seconds =   4.55 MB/sec
/dev/sda:
 Timing buffered disk reads:   16 MB in  3.34 seconds =   4.79 MB/sec
/dev/sda:
 Timing buffered disk reads:   16 MB in  3.34 seconds =   4.79 MB/sec
/dev/sda:
 Timing buffered disk reads:   16 MB in  3.34 seconds =   4.79 MB/sec

なんだか

# hdparm -d /dev/sda

する度に速くなる...ということで,以下まとめ.

関連リンク

[PC周辺] iPod nano 購入 (20051021)

iPod nano 4G 黒キュア が 通常24時間以内発送だったのでなんとなく購入.

今までよく iPod shuffle (512M) でがんばっていたような気がする.

というか, はやく故障中の iPodを修理に出せばいいのですが.

関連リンク
参照リンク

[PC周辺] wu-ftpd on FreeBSD で guest (chroot) account の設定 (20051021)

以下の方針のもと設定.

guest account の設定

以下の command で guest account を作成.

# pw user add -n guest -u 30000 -c '' -d /home/guest -g nogroup -s /sbin/nologin

/sbin/nologin が /etc/shells に含まれていない場合は, /etc/shells を修正しておく.

# install -u guest -g nogroup -m 700 -g /home/guest

とかでとりあえず directory を掘る.

# chroot /home/guest

あとは,

# chroot /home/guest bin/ls -l

とかで,まともに ls できるように,以下のようにがんばる.

# cd /home/guest
# mkdir bin libexec lib
# cp /bin/ls bin
# cp /libexec/ld-elf.so.1 libexec
# cp /lib/libutil.so.4 lib
# cp /lib/libncurses.so.5 lib
# cp /lib/libc.so.5 lib

手元の環境ではこれぐらいで,ls できるようになった.これだと, uid と gid がそのまま表示されてださいので,

# cd /home/guest
# mkdir etc
# cp /etc/group etc
# grep ^guest: /etc/master.passwd >  etc/master.passwd
# grep ^guest: /etc/master.passwd >> etc/master.passwd
# vi etc/master.passwd
-guest:XXXX:30000:65533::0:0::/home/guest:/sbin/nologin
+root:XXXX:0:65533::0:0::/home/guest:/sbin/nologin
# pwd_mkdb -d etc etc/master.passwd

とかをして,etc/group,etc/pwd.db をつくる.etc/pwd.db は /etc/pwd.db から copy してきてもいいが,なんだか嫌な感じがしたので,pwd_mkdb で生 成してみた.

で,最終的には以下のような感じ.

% ls -laRtr /home/guest
total 14
drwxr-xr-x  208 root   wheel    4096 10 20 23:47 ..
d--x--x--x    2 root   nogroup   512 10 21 00:15 bin
d--x--x--x    2 root   nogroup   512 10 21 00:17 libexec
d--x--x--x    2 root   nogroup   512 10 21 00:17 lib
d--x--x--x    2 root   nogroup   512 10 21 00:26 etc
drwx------    6 guest  nogroup   512 10 21 03:07 .

/home/guest/bin:
total 28
-r-xr-xr-x  1 root   nogroup  22788 10 21 00:15 ls
d--x--x--x  2 root   nogroup    512 10 21 00:15 .
drwx------  6 guest  nogroup    512 10 21 03:07 ..

/home/guest/libexec:
total 144
-r-xr-xr-x  1 root   nogroup  142236 10 21 00:17 ld-elf.so.1
d--x--x--x  2 root   nogroup     512 10 21 00:17 .
drwx------  6 guest  nogroup     512 10 21 03:07 ..

/home/guest/lib:
total 1216
-r--r--r--  1 root   nogroup   43112 10 21 00:17 libutil.so.4
-r--r--r--  1 root   nogroup  259916 10 21 00:17 libncurses.so.5
-r--r--r--  1 root   nogroup  890240 10 21 00:17 libc.so.5
d--x--x--x  2 root   nogroup     512 10 21 00:17 .
drwx------  6 guest  nogroup     512 10 21 03:07 ..

/home/guest/etc:
total 90
-r--r--r--  1 root   nogroup   3450 10 21 00:21 group
-rw-------  1 root   nogroup    165 10 21 00:26 master.passwd
-rw-------  1 root   nogroup  40960 10 21 00:26 spwd.db
-rw-r--r--  1 root   nogroup  40960 10 21 00:26 pwd.db
d--x--x--x  2 root   nogroup    512 10 21 00:26 .
drwx------  6 guest  nogroup    512 10 21 03:07 ..

wu-ftpd の install

# cd /usr/ports/ftp/wu-ftpd
# make instal

程度で,以下が /usr/local/ 以下に install されるらしい.

% pkg_info -f wu-ftpd-2.6.2_6  | grep File
File: man/man1/ftpcount.1.gz
File: man/man1/ftpwho.1.gz
File: man/man5/ftpaccess.5.gz
File: man/man5/ftphosts.5.gz
File: man/man5/ftpconversions.5.gz
File: man/man5/xferlog.5.gz
File: man/man5/ftpservers.5.gz
File: man/man8/ftpd.8.gz
File: man/man8/ftpshut.8.gz
File: man/man8/ftprestart.8.gz
File: man/man8/privatepw.8.gz
File: bin/ftpcount
File: bin/ftpwho
File: sbin/ckconfig
File: sbin/ftprestart
File: sbin/ftpshut
File: sbin/privatepw
File: etc/ftpaccess.example
File: etc/ftpconversions.example
File: etc/ftpgroups.example
File: etc/ftphosts.example
File: etc/ftpusers.example
File: libexec/ftpd

wu-ftpd の設定

[/usr/local/etc/ftpaccess]
class all guest AAA.BBB.CCC.DDD
passive ports 0.0.0.0/0 32100 32110
limit all 5 Any /dev/null
log commands  anonymous,real,guest inbound,outbound
log transfers anonymous,real,guest inbound,outbound
email myn(at)meganecco.org
guestuser guest

これぐらいで.AAA.BBB.CCC.DDD は access を許可する IP address. 複数ある場合は,複数行書けばいい.

limit all 5 Any /dev/null

は,同時アクセス数を 5 に制限するもの. /dev/null の箇所を適当な file にすれば, アクセス数が 5 を越えて login しようとした場合に, その file の内容が client に表示される.

passive ports 0.0.0.0/0 32100 32110

は,ftp で利用する port を 32100-32110 の範囲にするというもの. あとで ipfw でここに穴を空ける.

log commands  anonymous,real,guest inbound,outbound
log transfers anonymous,real,guest inbound,outbound

は log の設定.この場合かなり vervose になる. ちなみに log は /var/log/xferlog に行くっぽい.

inetd の設定

/etc/inetd.conf に

ftp     stream  tcp     nowait  root  /usr/local/libexec/ftpd ftpd -l -a

を書いて inetd を kill -HUP する.

手元の環境では,inetd が -wW option 付きで起動しているので,

/usr/local/libexec/ftpd

の箇所を

/usr/libexec/tcpd

にしたりしなくていいらしい.

逆にこうしてしまうと,tcpd が TCP Wrapper 経由で起動されてしまうらしく, その rule を /etc/hosts.allow に書く必要が生じる.

TCP Wrapper の設定

/etc/hosts.allow に

ftpd : AAA.BBB.CCC.DDD : allow

を書く.

ipfw の設定

# ipfw 2010 add pass tcp from AAA.BBB.CCC.DDD to aaa.bbb.ccc.ddd 21,32100-32110 setup

とかで port を空ける. また,起動時にこれが実行されるように適当に細工する. つまり /etc/rc.conf で,

firewall_script="/etc/rc.ipfw.hoge"

とかになっていたら /etc/rc.ipfw.hoge を編集.

アクセス制限に関して

上記のようにした場合,結局

の 3つでアクセス制限していることになる.

たぶん ipfw で厳しく制限しているのであれば, 他は緩くてもいいかもしれない.

[PC周辺] apache で application/rdf+xml の Content-Type を変更 (20051002)

やるきなしなし RSSなのであるが, うちの apache 環境(Apache/1.3.33 (Debian GNU/Linux))では default で

application/rdf+xml

となってしまうっぽい.

% wget -S -O - 'http://myn.meganecco.org/index.rdf' > /dev/null 
(snip)
  Content-Type: application/rdf+xml
(snip)

とか.application/rdf+xml を firefox で開こうとすると 保存しようとしてダウンロードダイアログが開いてしまう. <URL:http://www.kanzaki.com/memo/2004/04/26-1>に解説があります.

ということで,application/xml に変更..htaccess に

AddType application/xml .rdf

と書いただけですが.

関連リンク

[PC周辺] Ruby RSS Parser (20051002)

<URL:http://www.cozmixng.org/~rwiki/?cmd=view;name=RSS+Parser> の Tutorial.ja を読みつつ 自前の rss.rb から Ruby に付属の rss.rb に移行. といっても parse はせずに生成するだけなので,

require "rss"

ではなく,

require "rss/maker"

で,RSS::Maker を利用.なかなか親切な Tutorial.ja で Happy.

ちなみに余波で,以前は,

<dc:date>2005-10-01</dc:date>

としていたところが,

<dc:date>2005-10-01T00:00:00+09:00</dc:date>

となるようになってしまった. というのは Time の instance を date として渡すからなのであるが.

ということで,

class Time
  def w3cdtf(fraction_digits=0)
    return sprintf('%d-%02d-%02d',year,mon,day) if [hour,min,sec]==[0]*3
    iso8601(fraction_digits=0)
  end
end

とかを適当な箇所に書いて対処.やるきなしなし. ちなみに,

[/usr/lib/ruby/1.8/rss/rss.rb]
class Time
  ...
  unless instance_methods.include?("w3cdtf")
    alias w3cdtf iso8601
  end
end

とかになっていて w3cdtf は RSS 用に alias を張っているっぽい. iso8601 はというと以下のような感じで xmlschema の alias.

[/usr/lib/ruby/1.8/time.rb]
class Time
  ...
  def xmlschema(fraction_digits=0)
    sprintf('%d-%02d-%02dT%02d:%02d:%02d',
      year, mon, day, hour, min, sec) +
    if fraction_digits == 0
      ''
    elsif fraction_digits <= 6
      '.' + sprintf('%06d', usec)[0, fraction_digits]
    else
      '.' + sprintf('%06d', usec) + '0' * (fraction_digits - 6)
    end +
    if utc?
      'Z'
    else
      off = utc_offset
      sign = off < 0 ? '-' : '+'
      sprintf('%s%02d:%02d', sign, *(off.abs / 60).divmod(60))
    end
  end
  alias iso8601 xmlschema
end
関連リンク

[PC周辺] rss.rb of ruby 1.8.3 (2005-09-21) (20050927)

なんだか ruby 1.8.3 には RSS という Module が用意されているらしい. [myn:2004071901] で自前で RSS という Class を用意して,

require "rss"

して使っていたのであるが,

undefined method `new' for RSS:Module (NoMethodError)

とかでこけるようになってしまった...ということで,とりあえず

require "/rss"

で回避.

% ruby -e 'require "rss"; p RSS.class' 
Module
% ruby -e 'require "./rss"; p RSS.class'
Class

みたいな.そのうち ruby の rss.rb を使うようにする...

関連リンク
参照リンク

[PC周辺] mhc 祝日の設定 (20050926)

なんというか,default では mhc は祝日を祝日として表示してくれなくて, なにか方法があるんだろうなあと思って調べてみたらあった. <URL:http://www-aos.eps.s.u-tokyo.ac.jp/~takagi/MHC.html> の,

% cp somewhere/DOT.schedule.sample ~/.schedule

とか.Debian (mhc 0.25.1+20050120-2) の場合は以下のような感じ.

% cp /usr/share/doc/mhc/examples/DOT.schedule.sample.jp .schedule

ハッピーマンデーにも対応しているらしい.

関連リンク

[PC周辺] NotePC 購入計画 (20050825)

愛用していた CF-T1RCAXR が,なんというか, 持ち上げるだけで reboot がかかるとかいう素敵な状態になって, 分解してみたけど単純な接触不良とかではないっぽくて原因がつかめず, 結局新たな NotePC の購入を検討することになった.

ポイントは,

ということで結局 T4におちつく.

スペック上は 1260g となっているが, 標準バッテリー(約475g)を 軽量バッテリー(約250g)に変更すると,1035g になる.

ビジネスモデル もあるが,これは

ということらしい. コンシューマ向けCF-T4GW5AXRで末尾が R になる. で,こっちの保証期間 12ヶ月. だが,マイレッツ倶楽部 で購入すると 3年保証が付く.

うーむ.ということで悩む. 結局 CF-T4GW5AXSCF-T4GW5AXR なんだが... というか, マイレッツ倶楽部 で購入すると HDD を 40G から 80G にできたりするのか... こっちの線で攻めることにする.

あとは以下の付属品を購入予定.

参考関連 Link
参照リンク

[PC周辺] libming packaging (20050818)

しかたがないので, libming (cvs版) の package 化を試みることにした.

メモがてら以下手順.

関連リンク

[PC周辺] OpenOffice で Windows の Font を利用する (20050804)

remote の計算機から local の X へと openoffice を飛ばしたら メニューがすべて豆腐(□←これ)になってしまって, strace とかしまくって激しく悩んだ.

なんというか,remote 計算機にも Windows の Font が必要ということらしい. ということで [myn:2005022600] を remote 計算機でも実行.

関連リンク
参照リンク

[PC周辺] samba 日本語の設定 EUCJP-MS (20050730)

[myn:2005072900]の続き. ちぇす 曰く,

display charset = CP932
unix charset = EUCJP-MS
dos charset = CP932

のほうがいいらしい.

EUCJP-MS

って, この patch をあてないと使えないと思っていたのであるが, うちの環境(Debian sid)では,

iconv -l

によると,普通に使えるっぽい.

ちぇす 曰く,sarge でも EUCJP-MS 可ならしい.

関連リンク
参照リンク

[PC周辺] samba 日本語の設定 (20050729)

いつも忘れるあれ.

UNIX 側が EUC-JP のファイル名を採用している場合は, smb.conf (/etc/samba/smb.conf とか) の [global] の箇所に以下を書いておけばいいらしい.

display charset = CP932
unix charset = EUC-JP
dos charset = CP932
参考関連 Link
参照リンク

[PC周辺] zsh-beta 4.3.0-dev-1+20050720-1 (20050726)

Setting up zsh-beta (4.3.0-dev-1+20050720-1) ...
zsh: no matches found: /usr/share/zsh-beta/4.3.0-dev-1/functions/Scripts/*~*.zwc(^/)
dpkg: error processing zsh-beta (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 zsh-beta
E: Sub-process /usr/bin/dpkg returned an error code (1)

とかで入れれない.というか,

% dpkg -L zsh-beta | grep Script

してもなにも出てこないし...ということで,

% sudo vi /var/lib/dpkg/info/zsh-beta.postinst

で,

-/usr/bin/zsh-beta -fc 'setopt extendedglob ; for i in /usr/share/zsh-beta/4.3.0-dev-1/functions/{Completion,Completion/AIX,Completion/BSD,Completion/Base,Completion/Cygwin,Completion/Darwin,Completion/Debian,Completion/Linux,Completion/Mandrake,Completion/Redhat,Completion/Unix,Completion/X,Completion/Zsh,Exceptions,MIME,Misc,Newuser,Prompts,Script,TCP,Zftp,Zle}; do zcompile -U -M $i.zwc $i/*~*.zwc(^/) ; chmod 644 $i.zwc ; done'
+/usr/bin/zsh-beta -fc 'setopt extendedglob ; for i in /usr/share/zsh-beta/4.3.0-dev-1/functions/{Completion,Completion/AIX,Completion/BSD,Completion/Base,Completion/Cygwin,Completion/Darwin,Completion/Debian,Completion/Linux,Completion/Mandrake,Completion/Redhat,Completion/Unix,Completion/X,Completion/Zsh,Exceptions,MIME,Misc,Newuser,Prompts,TCP,Zftp,Zle}; do zcompile -U -M $i.zwc $i/*~*.zwc(^/) ; chmod 644 $i.zwc ; done'

見辛いけど,Script というのを消した.あとは,dselect で [C]onfig.

[PC周辺] http CGI gzip 圧縮転送 by ruby cgi.rb (20050725)

<URL:http://tech.bayashi.net/pdmemo/gzip.html>を参考に.

Ruby で,

require "cgi"

して,CGI class の out(){} を使う場合の話ですが,

/usr/lib/ruby/1.8/cgi.rb

に対して,

@@ -719,6 +719,22 @@
       end
     end

+    if ENV["HTTP_ACCEPT_ENCODING"]=~/gzip/
+      require 'zlib'
+      require 'stringio'
+      s=StringIO.new
+      Zlib::GzipWriter.wrap(s) do |gz|
+        gz.write(content)
+        gz.finish
+      end
+      content=s.string
+      if ENV["HTTP_ACCEPT_ENCODING"]=~/x-gzip/
+        options["Content-encoding"]="x-gzip"
+      else
+        options["Content-encoding"]="gzip"
+      end
+    end
+
     options["length"] = content.length.to_s
     output = stdoutput
     output.binmode if defined? output.binmode

といった patch をあてるか,自分の ruby の cgi に,

class CGI
  def out(options = "text/html") # :yield:

    options = { "type" => options } if options.kind_of?(String)
    content = yield

    if options.has_key?("charset")
      require "nkf"
      case options["charset"]
      when /iso-2022-jp/ni
        content = NKF::nkf('-j', content)
        options["language"] = "ja" unless options.has_key?("language")
      when /euc-jp/ni
        content = NKF::nkf('-e', content)
        options["language"] = "ja" unless options.has_key?("language")
      when /shift_jis/ni
        content = NKF::nkf('-s', content)
        options["language"] = "ja" unless options.has_key?("language")
      end
    end

    if ENV["HTTP_ACCEPT_ENCODING"]=~/gzip/
      require 'zlib'
      require 'stringio'
      s=StringIO.new
      Zlib::GzipWriter.wrap(s) do |gz|
        gz.write(content)
        gz.finish
      end
      content=s.string
      if ENV["HTTP_ACCEPT_ENCODING"]=~/x-gzip/
        options["Content-encoding"]="x-gzip"
      else
        options["Content-encoding"]="gzip"
      end
    end

    options["length"] = content.length.to_s
    output = stdoutput
    output.binmode if defined? output.binmode
    output.print header(options)
    output.print content unless "HEAD" == env_table['REQUEST_METHOD']
  end
end

とかをどこかに書いておいたらいいらしい.

関連リンク

[PC周辺] firefox と flash と esd と @Debian 再び (20050719)

[myn:2004122900] と同様の症状が再び発生するようになった.

つまり,また,esd を起動している状態で, firefox で FLASH が見れなくなってしまっていました. 前回と同様サウンドデバイスをたたけなくて止まる. しかも firefox が

% pkill firefox

しないと死なない,という状況になる...で調べてみたのであるが,

前回は libesd.so.1 を

% cd /usr/lib
% sudo ln -s libesd.so.0 libesd.so.1

といった具合に作成すれば良かったのであるが,今回は,

% cd /usr/lib
% sudo ln -s libesd.so.0 libesd.so

と,libesd.so を作成しなければならないらしい.

ちなみに Debian の場合は(他の Distribution でも?) firefox という command が shell script になっていて,

[/etc/mozilla-firefox/mozilla-firefoxrc]
FIREFOX_DSP="auto"

となっている場合は, esd やら arts が起動しているかどうかを判断して, esddsp もしくは artsdsp 経由で firefox-bin を起動するようになっているらしい.

関連リンク

[PC周辺] dh_make の gizp (20050704)

% dpkg -l dh-make
(snip)
ii dh-make 0.39 tool that converts source archives into Debian package source

の,/usr/bin/dh_make なのであるが,

if ( -x '/usr/bin/bzip2' && -x '/usr/bin/gizp' )

は,なにをしたいのかと小一時間(ry

-if ( -x '/usr/bin/bzip2' && -x '/usr/bin/gizp' )
+if ( -x '/usr/bin/bzip2' && -x '/bin/gzip' )

絶対にだれかの嫌がらせだ.というか Debian だと /usr/bin/gzip じゃなく /bin/gzip だし...

-system("/usr/bin/bzip2 $source_file | /usr/bin/gzip > ../$package_name\_$version.orig.tar.gz");
+system("/usr/bin/bzip2 $source_file | /bin/gzip > ../$package_name\_$version.orig.tar.gz");

というか,この command の使い方,おかしいじゃん...

-system("/usr/bin/bzip2 $source_file | /bin/gzip > ../$package_name\_$version.orig.tar.gz");
+system("/usr/bin/bzip2 -d -c $source_file | /bin/gzip > ../$package_name\_$version.orig.tar.gz");

むぅ...

[PC周辺] JRE 1.5.0_02 w/firefox (20050621)

firefox で Java Plug-in を利用したかったので, JRE (Java Runtime Environment) を入れてみた.

以下ログみたいな.

<URL:http://www.java.com/en/download/manual.jsp> から jre-1_5_0_02-linux-i586.bin を download する.

jre-1_5_0_02-linux-i586.bin を /opt/java に置いたとして,

% cd /opt/java
% sh jre-1_5_0_02-linux-i586.bin

する.すると

./jre1.5.0_02/

という directory が掘られ, そこにいろいろ install される.あとは,

% export JAVA_HOME=/opt/java/jre1.5.0_02
% export PLUGIN_HOME=$JAVA_HOME
% export PATH=$PATH:$JAVA_HOME/bin
% export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$JAVA_HOME/lib/i386

ぐらいに環境変数をセットして,

% cd ~/.mozilla/plugins 
% ln -s $JAVA_HOME/plugin/i386/ns7/libjavaplugin_oji.so .

とかして,firefox を立ち上げるといいっぽい.

この状態で <URL:http://www.java.com/en/download/help/testvm.xml> を見ると Duke (デューク; Sun の Java のキャラクターのあれ)が踊る.

about:plugins とかを見ると,以下のような感じ.

Java(TM) Plug-in 1.5.0_02-b09
ファイル名: libjavaplugin_oji.so
Java(TM) Plug-in 1.5.0_02
MIME タイプ
application/x-java-vm
application/x-java-applet
application/x-java-applet;version=1.1
application/x-java-applet;version=1.1.1
application/x-java-applet;version=1.1.2
application/x-java-applet;version=1.1.3
application/x-java-applet;version=1.2
application/x-java-applet;version=1.2.1
application/x-java-applet;version=1.2.2
application/x-java-applet;version=1.3
application/x-java-applet;version=1.3.1
application/x-java-applet;version=1.4
application/x-java-applet;version=1.4.1
application/x-java-applet;version=1.4.2
application/x-java-applet;version=1.5
application/x-java-applet;jpi-version=1.5.0_02
application/x-java-bean
application/x-java-bean;version=1.1
application/x-java-bean;version=1.1.1
application/x-java-bean;version=1.1.2
application/x-java-bean;version=1.1.3
application/x-java-bean;version=1.2
application/x-java-bean;version=1.2.1
application/x-java-bean;version=1.2.2
application/x-java-bean;version=1.3
application/x-java-bean;version=1.3.1
application/x-java-bean;version=1.4
application/x-java-bean;version=1.4.1
application/x-java-bean;version=1.4.2
application/x-java-bean;version=1.5
application/x-java-bean;jpi-version=1.5.0_02

[PC周辺] ruby-gecko.rb (20050609)

ruby-gecko.rb, つまり,大雑把にいうと Gecko のレンダリングエンジンを Ruby からたたくという代物.

なんというか,firefox に比べさらに不要な機能が付いていないだけ, なんだか高速...

ちなみに,なんとなく Ruby-GNOME2 (といっても Ruby/GTK がメイン) を使いはじめることにする.

[PC周辺] Wanderlust/2.15.1 (wl-summary-subject-equal subject parent-subject) (20050608)

[myn:2005060802] の続き. 親 Subject に対しても同様の処置がいったらしい.

ということで,以下のようにした.

(defun wl-summary-line-subject ()
  (let (no-parent subject parent-raw-subject parent-subject)
    (if (string= wl-thr-indent-string "")
	(setq no-parent t)) ; no parent
    (setq subject
	  (elmo-delete-char ?\n
			    (or (elmo-message-entity-field
				 wl-message-entity
				 'subject)
				wl-summary-no-subject-message)))
    (setq subject (eword-decode-string subject))
    (setq parent-raw-subject
	  (elmo-message-entity-field wl-parent-message-entity 'subject))
    (setq parent-subject
	  (if parent-raw-subject
	      (elmo-delete-char ?\n parent-raw-subject)))
    (if parent-subject
	(setq parent-subject (eword-decode-string parent-subject)))
    (if (or no-parent
	    (null parent-subject)
	    (not (wl-summary-subject-equal subject parent-subject)))
	(funcall wl-summary-subject-function subject)
      "")))

追加で書いた部分は,

(if parent-subject
	(setq parent-subject (eword-decode-string parent-subject)))

の箇所.

関連リンク

[PC周辺] Wanderlust/2.15.1 wl-summary-line-subject @nntp の続き (20050608)

[myn:2005060801] のようにしたら, なんだか,スレッド表示の際に, スレッド全てに Subject が表示されるようになってしまった...

普通は,「Re: 」を除いて同じものは,表示しないんだけど.うーむ.

関連リンク
参照リンク

[PC周辺] Wanderlust/2.15.1 wl-summary-line-subject @nntp (20050608)

[myn:2005060800] の続き.

nntp の場合,wl-summary-line-subject の中でつくっている subject が mime encode されたままになるらしい.

wl-message-entity 中の :subject 自体が mime encode されたままなのが問題なような気がするが, とりあえず,以下のように ~/.wl に書いて対応.

(defun wl-summary-line-subject ()
  (let (no-parent subject parent-raw-subject parent-subject)
    (if (string= wl-thr-indent-string "")
	(setq no-parent t)) ; no parent
    (setq subject
	  (elmo-delete-char ?\n
			    (or (elmo-message-entity-field
				 wl-message-entity
				 'subject)
				wl-summary-no-subject-message)))
    (setq subject (eword-decode-string subject))
    (setq parent-raw-subject
	  (elmo-message-entity-field wl-parent-message-entity 'subject))
    (setq parent-subject
	  (if parent-raw-subject
	      (elmo-delete-char ?\n parent-raw-subject)))
    (if (or no-parent
	    (null parent-subject)
	    (not (wl-summary-subject-equal subject parent-subject)))
	(funcall wl-summary-subject-function subject)
      "")))

ちなみに,

(setq subject (eword-decode-string subject))

の箇所が

/usr/share/emacs/site-lisp/wl/wl/wl-summary.el

中の default の wl-summary-line-subject に対して付加した部分.

関連リンク
参照リンク

[PC周辺] Wanderlust/2.15.1 (Almost Unreal) (20050608)

Debian sid の wl-beta package の version が 2.15.1 になったのであるが, なんだか nntp を summary 表示する際に, Subject の MIME Decode をしてくれないっぽい.

参照リンク

[PC周辺] getopts and optparse of Ruby 1.8.1 (20050606)

通常は getoptlong.rb を使うのであるが, 簡単な場合は getopts を使う.

しかし最近なんだか Ruby に以下のように怒られるようになった.

Warning:/home/myn/bin/hoge:6: getopts is deprecated after Ruby 1.8.1; use optparse instead

ということで optparse.rb を使うことにする.

require 'getopts'

getopts("f:","p:")

font=$OPT_f || 10.0
font=font.to_f 
pages=$OPT_p || nil
pages=pages.to_i if pages!=nil

とか単純なものなのだが,

require 'optparse'
require 'ostruct'

options= OpenStruct.new
options.fontsize=10.0
options.pages=nil
opts=OptionParser.new do |opts|
  opts.banner = "Usage: hoge [options]"
  opts.separator ""
  opts.separator "Specific options:"
  opts.on("-f","--font SIZE","specify font size") do |fontsize|
    options.fontsize=fontsize.to_f
  end
  opts.on("-p","--page NUM","specify num of pages") do |pages|
    options.pages=pages.to_i
  end
  opts.separator ""
  opts.separator "Common options:"
  opts.on_tail("-h", "--help", "Show this message") do
    puts opts
    exit
  end
end
opts.parse!(ARGV)
font=options.fontsize
pages=options.pages

とかになった.結構長いな.ちなみに,-h すると,

Usage: hoge [options]

Specific options:
    -f, --font SIZE                  specify font size
    -p, --page NUM                   specify num of pages

Common options:
    -h, --help                       Show this message

とか表示される.ちなみに getoptlong を使った場合は以下.

require 'getoptlong'

parser=GetoptLong.new
parser.set_options(*[
                     [GetoptLong::REQUIRED_ARGUMENT,"--font","-f"],
                     [GetoptLong::REQUIRED_ARGUMENT,"--page","-p"],
                   ])
begin
  parser.each_option do |name, arg|
    eval "$OPT_#{name.sub(/^--/, '').gsub(/-/, '_').upcase} = '#{arg}'"
  end
rescue
  exit(1)
end
font=$OPT_font || 10.0
font=font.to_f 
pages=$OPT_page || nil
pages=pages.to_i if pages!=nil

なんというか,getopts にひっぱられて やはりグローバル変数を使ってしまう...

[PC周辺] FreeBSD 5.4R (20050602)

久しぶりに FreeBSD を 5.4R にあげてみることにした. やるきなしなしセットアップ.

の,つもりが相当はまった.

はまった編

<URL:http://core.ring.gr.jp/pub/FreeBSD/releases/i386/5.4-RELEASE/floppies/> から floppy image の boot.flp kern1.flp kern2.flp を取得して, boot.flp から起動.あとは [Upgrade] を選択.

Distributions はとりあえず Minimal, Mount Point の入力を促されたので,以前のとおり,

という感じで設定.すると fsck がはじめる.

/etc をどこぞに save するとか言われるので,/var/tmp/etc に save.

あとは,media (ftp via http proxy) と network の設定. がしかし,base.ai を download したところでコケる...

で,相当はまる.

% wget -q -O - 'ftp://core.ring.gr.jp/pub/FreeBSD/releases/i386/5.4-RELEASE/base/CHECKSUM.MD5'  | grep base.ai
MD5 (base.ai) = 093c4d28d331cad11981c652be711dcf
% wget -q -O - 'ftp://core.ring.gr.jp/pub/FreeBSD/releases/i386/5.4-RELEASE/base/base.ai'         | md5sum
3f6b7450968776107606a3ba562170cf  -
% wget -q -O - 'ftp://core.ring.gr.jp/pub/FreeBSD/releases/i386/5.4-RELEASE/base/base.ai;type=i'  | md5sum
093c4d28d331cad11981c652be711dcf  -

という感じで,まあ,実は squid をとおしていたのであるが, squid が .ai file を

application/postscript

と勘違いして,ascii mode で download してしまうということならしい.

squid の設定でいうところの

[mime.conf]
\.ai$           application/postscript          anthony-ps.gif          -       ascii   +download

という箇所.なんというか, sysinstall が素直に http に対応してくれればいいのであるが...

正解編

ということで, <URL:http://core.ring.gr.jp/pub/FreeBSD/releases/i386/ISO-IMAGES/5.4/5.4-RELEASE-i386-disc1.iso> を利用して install することにする.

disc2.iso もあるが,Minimum であれば disc1.iso のみでことたりる.

「はまった編」と同様にして, media (CD-ROM) と network の設定.あとは少し待つだけ.

ちなみに source から compile して install する場合と異り, mergemaster はしなくていいらしい. が,まあ

% sudo diff -uwr /var/tmp/etc /etc

とかして確認.普通に merge されててなんとも無難.

今回は src/sys (つまり kernel) および ports は cvsup で同期をかけることにした.まあ無難だ.

あとは,

% sudo portupgrade -a

して,compile が終るのを相当な時間待つだけ.

関連リンク

[PC周辺] Philips USB webcams on Linux (20050530)

以前は <URL:http://www.smcc.demon.nl/webcam/> で開発されていたのであるが, 現在は <URL:http://www.saillard.org/linux/pwc/> で開発されている模様.

Debian の場合 <URL:http://www.saillard.org/linux/pwc/debian/> から pwc-source_10.0.7-3_all.deb とかを拾ってきて,

# dpkg -i pwc-source_10.0.7-3_all.deb
# module-assistant auto-install pwc-source

ぐらいで,pwc.ko ができるらしい.

昔は binary 配布の library を link したりしなければならなかったのであるが, 若干なんだか使いやすくなったような気がする.

[PC周辺] Video maid (20050528)

なんだかいつのまにか特許問題云々で, 昔の UI での配布はなくなったらしい.たぶん この辺

今はもう Linux 上で mencoder ばかりをつかってるわけであるが, その昔 Windows で avi とかをほげっていた時は, 以下の 3本 + 適当自作プログラム/スクリプトをつかっていたような気がする.

[PC周辺] gqview における「共有サムネイルのキャッシュを利用する/Use standard thumbnail cache」機能 (20050528)

大量の画像ファイルをなんだか 色とか輝度とかそういうなんらかの指標でもって分類したくなって, その際に元画像でその指標を算出していたら時間がかかって仕方がないわけで, gqview の「共有サムネイルキャッシュ/standard thumbnail cache」 を利用しようと思ったわけで,ちょっと調べてみた.

ちなみにタイトルに書いた.

というのは,gqview の設定.これを On にしておくと ~/.thumbnails に cache されていく.

で,これはどう動作するかというと,

% echo -n file:///home/myn/work/meganekko.jpg | md5sum
f13fd690960c83e929b37e2468dffa62  -
% display ~/.thumbnails/normal/f13fd690960c83e929b37e2468dffa62.png

という感じで ~/work/meganekko.jpg という file があった場合, その URI である file:///home/myn/work/meganekko.jpg の md5sum (f13fd690960c83e929b37e2468dffa62) を key にしているらしい.

file を移動してしまったら対応が付かなくなって,cache が効かないらしい. file に対して md5sum をとって, それを key にしているのかと思ったのであるが...

ちなみに gqview 内の対応する source file は

src/thumb_standard.h
src/thumb_standard.c

src/md5-util.h
src/md5-util.c

付近.ちなみに今回使った gqview の version は 2.0.0.

はじめに書いた目的のためには,このあたりのコードを利用すればいいっぽい.

[PC周辺] URL を短かくする RubyURL (20050520)

というものがあるらしい.

ちなみに本家(TinyURL)は以下.

一瞬,符号化しているのか? と思ったのであるが, 単に DB を持っているだけっぽい.

[PC周辺] Coral: The NYU Distribution Network (20050512)

スラッシュドット ジャパン遂に完成してしまった自己複製ロボット という記事に,

公開された 動画 (coral)では、

と書いてあって,coral 側は mirror ということなのだろうけど, そもそも coral ってなんなのかを調べてみた.

ということらしい.

URLのホスト名の後ろに .nyud.net:8090 をつけると P2P 経由でアクセスできるということらしい.

ここの URL は

となる.なんだか利用者数が少ないのか, ノードが外国に偏っていて,かつノード数が少ないのか,相当とても遅い.

[PC周辺] Pentium 4 3.40EG Socket478 BOX (20050507)

自宅の計算機の CPU が CeleronD 320 (478pin/2.40GHz) から Celeron 2.0GHz に 落ちてしまった のであるが, なんというか非常にストレスがたまるので, Pentium 4 3.40EG にしてみた.税込 29,740円@TWO TOP.

FAN の取り付けにしくじり, 一瞬起動して,Linux が自動的に落ちる,という現象に遭遇してしまったが, なんとなく快調に動作中.VMWare も相当軽い.

processor      : 0
vendor_id      : GenuineIntel
cpu family     : 15
model          : 3
model name     : Intel(R) Pentium(R) 4 CPU 3.40GHz
stepping       : 4
cpu MHz        : 3396.678
cache size     : 1024 KB
physical id    : 0
siblings       : 2
fdiv_bug       : no
hlt_bug        : no
f00f_bug       : no
coma_bug       : no
fpu            : yes
fpu_exception  : yes
cpuid level    : 5
wp             : yes
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni monitor ds_cpl cid xtpr
bogomips       : 6717.44

processor      : 1
vendor_id      : GenuineIntel
cpu family     : 15
model          : 3
model name     : Intel(R) Pentium(R) 4 CPU 3.40GHz
stepping       : 4
cpu MHz        : 3396.678
cache size     : 1024 KB
physical id    : 0
siblings       : 2
fdiv_bug       : no
hlt_bug        : no
f00f_bug       : no
coma_bug       : no
fpu            : yes
fpu_exception  : yes
cpuid level    : 5
wp             : yes
flags          : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe pni monitor ds_cpl cid xtpr
bogomips       : 6782.97

bogomips だけで見ると,3932.16 → 6717.44.

関連リンク
参照リンク

[PC周辺] CRT iiyama A701G 寿命? (20050430)

PC の不安定は解決したのであるが, ずっと(少なくとも7年ぐらい)愛用している CRT の iiyama A701G が,なんだかとっても不調.

数分に1回の割合で, パチパチっという音がして電子銃(の制御側?)が初期化されるような感じ. 音がした時,画面は微妙にぶれて微妙にズームして, また直ぐにもとにもどるという,なんともうっとうしい.

このままでは自宅のデスクトップ PC 用に, ついに液晶を買ってしまうかもしれない... ちなみにどうでもいいが 17inch を 1024x768 で使用している.

関連リンク

[PC周辺] PC 不安定 (たぶんCPU) (20050430)

[myn:2005030500] で購入した PC が 不安定 という件であるが, どうやら CPU が原因だった模様.

HDD の熱が問題かなと思っていたのであるが, いろいろ探っているうちに CPU が原因であると判明.

ちなみに,いろいろやっているうちに Linux がまともに起動しなくなった. というのは,libdl.so を読めなくて,起動がやけにあっさり終って, なんとなく login 画面っぽいのが出て,そこから login しようとすると, おもむろにやはり libdl.so が読めない,と怒られるという, まあ,どうしようもない感じであった.

で,netboot で sid installer を起動し,fsck をかけたらなおった. 素敵なのでメモっておくと,以下のような感じ.

before

?-w-r-srw- 23661 -1309500 -14767181537324355 Dec 10  1957 libdl.so.2
b--srwSrwt 34835 83857749 95578905  57,  13 Dec 26  1957 libm.so.6
d-wS--S--T 19758 16545650 161348963499113317 Sep 20  1978 libnsl.so.1

after

lrwxrwxrwx  1 root root 15 Apr 30 13:31 libnsl.so.1 -> libnsl-2.3.2.so
lrwxrwxrwx  1 root root 13 Apr 30 13:31 libm.so.6 -> libm-2.3.2.so
lrwxrwxrwx  1 root root 14 Apr 30 13:31 libdl.so.2 -> libdl-2.3.2.so

とちくるいすぎ...

HDD の熱が問題ではないというのは,以下のようにして検証した.

この場合 HDD は使用されないわけで(swap する場合を除いて), これで問題が発生するとなると, CPU か Memory か M/B (チップセットとか)が問題ということになる. で,案の定 md5sum は安定しなかった.

256+512 という Memory 構成が悪いのかと思ったので, それぞれ単体で M/B に刺した状態でテストしたのであるが, これでも問題は解決しなかった.

両方の Memory とも死んでしまっているというのは, 確率的にあまりないだろうと「勝手に」判断し, Memory の問題である,という選択肢を削除.残るは CPU か M/B (チップセットとか).

幸い手元に [myn:2005030200] で壊した計算機の CPU (Celeron 2.0GHz) があったので, それを刺してみたら,あっさり問題は解決した.

から

に落ちてしまったが,やむえない. というか M/B とかの問題でなくて本当に助かった.

関連リンク
参照リンク

[PC周辺] PC 不安定 (たぶん熱) (20050429)

[myn:2005030500] で購入した PC であるが, なんだか大きな file (1G ぐらい) の md5sum をとる度に結果が異なる.

というかそもそも VMWare 上の Windows2000 で大きな file のそういう check (CRC とか)をすると,ことごとくこわれていると判定されたり, そもそも VMWare がブルーバックに落ちるので原因を探りはじめたのであるが.

kernel の問題?

当初は,

Unable to handle kernel paging request at virtual address 40000004
 printing eip:
c0133f42
*pde = 00000000
Oops: 0002 [#1]
PREEMPT 
Modules linked in: (snip)
CPU:    0
EIP:    0060:[find_lock_page+50/224]    Tainted: PF     VLI
EFLAGS: 00213006   (2.6.11-XXXXX) 
EIP is at find_lock_page+0x32/0xe0
eax: 40000000   ebx: 40000000   ecx: e8e85e00   edx: 00000000
esi: 00053b1c   edi: e8e85e08   ebp: 00053b1c   esp: d01dfd14
ds: 007b   es: 007b   ss: 0068
Process vmware-vmx (pid: 23137, threadinfo=d01de000 task=dd0f70a0)
Stack: e8e85e08 00053b1c 08bd6a28 00053b1c e8e85e04 c15faca0 c0135c5c e8e85e04 
       00053b1c 00000000 00001000 000001d2 00000001 00000001 d01de000 00001000 
       00000000 08bd5a28 00001000 00001000 e8e85d6c c02ddb80 d5cc9a80 53b1c000 
Call Trace:
 [generic_file_buffered_write+268/1584] generic_file_buffered_write+0x10c/0x630
 [inode_update_time+167/224] inode_update_time+0xa7/0xe0
 [__generic_file_aio_write_nolock+638/1216] __generic_file_aio_write_nolock+0x27e/0x4c0
 [generic_file_aio_write_nolock+68/160] generic_file_aio_write_nolock+0x44/0xa0
 [generic_file_aio_write+115/240] generic_file_aio_write+0x73/0xf0
 [ext3_file_write+68/208] ext3_file_write+0x44/0xd0
 [do_sync_write+183/240] do_sync_write+0xb7/0xf0
 [autoremove_wake_function+0/96] autoremove_wake_function+0x0/0x60
 [pipe_read+56/64] pipe_read+0x38/0x40
 [vfs_write+184/304] vfs_write+0xb8/0x130
 [sys_pwrite64+136/144] sys_pwrite64+0x88/0x90
 [syscall_call+7/11] syscall_call+0x7/0xb
Code: 24 20 fa b8 00 e0 ff ff 21 e0 ff 40 14 8b 44 24 1c 8d 78 04 8d 76 00 89 6c 24 04 89 3c 24 e8 94 54 08 00 85 c0 89 c3 74 6d <ff> 40 04 0f ba 28 00 19 c0 85 c0 74 60 fb be 00 e0 ff ff 21 e6
 <6>note: vmware-vmx[23137] exited with preempt_count 1

といった感じで,kernel まわりで vmware-vmx がコケるので,kernel を疑っ て,Debian の default の kernel を使ってみたりしたのであるが,問題は解 決しなかった.

CPU 温度?

次に,負荷があがった時に特に不安定になるということがわかったので, lm-sensors を仕込んで CPU の温度とかを計測してみることにした. [myn:2005030500] の PC の場合 it87 という module を組込むと,

% sensors                                      
it87-isa-0290               
Adapter: ISA adapter
VCore 1:   +1.30 V  (min =  +1.42 V, max =  +1.57 V)   ALARM
VCore 2:   +2.48 V  (min =  +2.40 V, max =  +2.61 V)   
+3.3V:     +6.56 V  (min =  +3.14 V, max =  +3.46 V)   ALARM
+5V:       +4.92 V  (min =  +4.76 V, max =  +5.24 V)   
+12V:     +11.52 V  (min = +11.39 V, max = +12.61 V)   ALARM
-12V:      -6.87 V  (min = -12.63 V, max = -11.41 V)   ALARM
-5V:       -5.60 V  (min =  -5.26 V, max =  -4.77 V)   ALARM
Stdby:     +4.73 V  (min =  +4.76 V, max =  +5.24 V)   ALARM
VBat:      +3.17 V
fan1:     3013 RPM  (min =    0 RPM, div = 8)          
fan2:        0 RPM  (min =  664 RPM, div = 8)          
fan3:        0 RPM  (min =  664 RPM, div = 8)          
M/B Temp:    +48°C  (low  =   +15°C, high =   +40°C)   sensor = thermistor   
CPU Temp:    +41°C  (low  =   +15°C, high =   +45°C)   sensor = diode   
Temp3:       +30°C  (low  =   +15°C, high =   +45°C)   sensor = thermistor   ALARM

という感じで様々な M/B の状況がわかる. なお,どの module を組込むべきかとかは,

# sensors-detect

するとわかる.

CPU の温度が常に 55度ぐらいになっていたので, 一度 CPU クーラを外して付け直したら 41度ぐらいにおちついた.

どうやら HDD を増設した際に CPU クーラを外したのであるが, この時,CPU と CPU クーラ間にはじめから付いていたシリコングリス をそのまま使ったのであるが,若干シリコングリスが乾燥しており, それがダマになって,隙間ができていた模様.

現在もいまいち効果が薄いだろう乾燥してしまったシリコングリスのままなので, あとでシリコングリスを買ってくることにする.

話はもどるが,これでも

という問題は解決しなかった.

HDD 温度?

次に疑っているのが,HDD の温度である.

HDD を 4つ 3.5inch ベイに突込んでいて, 3.5inch ベイがフルに埋まっているのであるが, その影響か3.5inch ベイのシャーシ(というのか?)が相当熱い. というのに PC のケースを空けて気が付いた.

S.M.A.R.T に対応している HDD であれば, hddtemp をいう command で温度を知ることができる.その結果は以下.

% for i in a b c d ; do sudo hddtemp /dev/hd$i ; done
/dev/hda: ST340015A: 49°C
/dev/hdb: Maxtor 5A300J0: 50°C
/dev/hdc: HDS728040PLAT20: 53°C
/dev/hdd: Maxtor 6B300R0: 55°C

相当熱そう...調べてみたところ,

と,相当危険な温度で運用しているらしい. シャーシ内には hda から順に積上げているのであるが, hdc および hdd の間隔は相当狭くなっている. なにか対策を考えねばならない...

関連リンク
参照リンク

[PC周辺] bugzilla BugMail.pm (20050422)

[myn:2005010600] で導入した bugzilla であるが, Debian package の bugzilla 2.18-3 では

/usr/share/bugzilla/lib/processmail

ではなく

/usr/share/perl5/Bugzilla/BugMail.pm

を修正してやる必要があるらしい. 修正の仕方は [myn:2005010600] と同様に

-open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
+open(SENDMAIL, "| /usr/bin/nkf -j | /usr/bin/imput -t") ||

で OK.

関連リンク

[PC周辺] Dual Opteron (amd64) に Debian GNU/Linux i686 sid (20050413)

[myn:2005032900] の続き. 結局あきらめて,i686 として使うことにした.

[myn:2005032800] と同様の手法で netboot により i686 版 Debian のインストーラを起動してインストール. 最近の installer は cfdisk とかを使わないらしい.

なので,/dev/hda は amd64 用に keep しておくこととして, /dev/hdb に i686 sid を入れることにする.

swap       4G   (primary) (FS Type: swap)
/var       4G   (primary)
/usr       4G   (primary)
/          500M (logical) (Flags: boot)
/tmp       500M (logical)
/usr/share 4G   (logical)
/ldksi1    rest

という感じで partitioning.これがなんだかいつものやりかた.

ちなみに kernel-image-2.6.8-2-686-smp の時の /proc/cpu は以下.

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 242
stepping        : 10
cpu MHz         : 1608.377
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3186.68

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 242
stepping        : 10
cpu MHz         : 1608.377
cache size      : 1024 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3170.30

kernel-image-2.6.8-10-amd64-k8-smp の時の /proc/cpu は以下.

processor       : 0
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 242
stepping        : 10
cpu MHz         : 1608.262
cache size      : 1024 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3186.68
TLB size        : 1088 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts ttp

processor       : 1
vendor_id       : AuthenticAMD
cpu family      : 15
model           : 5
model name      : AMD Opteron(tm) Processor 242
stepping        : 10
cpu MHz         : 1608.262
cache size      : 1024 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 syscall nx mmxext lm 3dnowext 3dnow
bogomips        : 3170.30
TLB size        : 1088 4K pages
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: ts ttp

で,さっそく kernel を再構築.

ASUS K8N-DL なわけであるが,はまったのは以下のポイント.

というか,このままの環境では bcm5700.ko をクロスコンパイルしなければ Pure 64bit 環境が手に入らないようなコスモを感じ, どこかから eepro100 かなにかを入手しようと画策中.

ちなみに amd64 化のためのクロスコンパイルの仕方は <URL:http://www.mm2d.net/linux-workstation/linux-amd64.shtml> が詳しげ.面倒なのでできればやりたくない.

関連リンク
参照リンク

[PC周辺] ratpoison 関連 URL (20050410)

tmpwm と Xnest が気になる...

関連リンク

[PC周辺] ratpoison (20050404)

やっぱり Linux だよね,とか某友人と話をしていて, 話が「GUI か CUI か」とか,「マウスよりキーボードだ」とか, そういう話にやはり移行してしまったわけであるが,なんだか ratpoison というウィンドウマネージャを勧められた. その友人自身は使っていないらしいが, 私なら使えそう,ということだったような気がする.

これ,要するに, screen の X 版みたいなものである.X のクライアントは全て最大化した状態で開いて, その切り替えは

とかで行うのである(ちなみに C-t ? で help が出る). まさしく screen である.

がしかし,私は

ということで icewm を使い続けることにする.

というか,ratpoison は確かに軽そうでいいのであるが, icewm は最近の計算機ならば充分軽いわけで,なら icewm でいいと思う.

もしくは icewm をカスタマイズした状態で, 不要な機能を切ってコンパイルとかできればいいのであるが...

ちなみに ratpoison は debian の package がある(少くとも sid では)ので, 試したい人は,

# apt-get install ratpoison

して,~/.xinitrc に

exec ratpoison

とか書けば使えます.

関連リンク
参照リンク

[PC周辺] tg3 @amd64 (20050329)

[myn:2005032800] の続き.

Pentium 4 の sid な計算機で,

sudo apt-get install kernel-image-2.6.10-9-amd64-generic

とかして amd64 kernel を突っ込み,この kernel で netboot してみる.

backup

# cd /var/lib/tftpboot/debian-installer/amd64/
# cp linux linux.orig
# cp initrd.gz initrd.orig.gz

kernel の copy

# cp /boot/vmlinuz-2.6.10-9-amd64-generic linux

initrd の copy とか

# gzip -d initrd.gz
# mount -o loop initrd /mnt
# rm -rf /mnt/0/lib/modules/2.6.8-10-amd64-generic
# cp -av /lib/modules/2.6.10-9-amd64-generic /tmp
# /tmp/2.6.10-9-amd64-generic 以下の不要な module を削除
# rsync -av /tmp/2.6.10-9-amd64-generic /mnt/lib/modules/
# umount /mnt
# gzip initrd

で,起動してどうなったかというと,

やはり以下のように tg3 (CONFIG_TIGON3=m) で認識できず.

tg3.c:v3.14 (November 15, 2004)
PCI: Unable to reserve mem region #1:ffffffffbe800000@140000000 for device 0000:02:00.0
tg3: Cannot obtaion PCI resources, aborting
tg3: probe of 0000:02:00.0 faied with error -16

「ffffffffbe800000@140000000」とかは手でメモったので, ff やら 00 やらの数がまちがっているかも.

ちなみに, BUFFALO の USB LAN Adapter LUA-KTX (普通なら rtl8150.ko で認識できる) を使ってみたりもしてみたが, この場合そもそも USB Device が見えてなさげ.

普通に x86 の sid を install しろということなのだろうか...

関連リンク
参照リンク

[PC周辺] Dual Opteron (amd64) に Debian (20050328)

Dual Opteron なマシン が届いた. ということでさっそく Debian AMD64 Port を Install しようとしたが, Debian amd64 には floppy disk 用の boot image がないことに気付く.

kernel の肥大化に伴い, 最近は boot floppy を作るのが非常に面倒であり, かつ,クロスコンパイルとかしないとだめげ,だったので, これはあっさりあきらめて netboot を利用ことにする.

PXEboot 用イメージ(netboot) の利用の仕方は <URL:http://kmuto.jp/open.cgi?debian-amd64&l=jp>が詳しい. ちなみにこの URL で紹介しているやりかたは, server 側が sid の場合は容易に実現できるのであるが, woody の場合は tftpd-hpa の設定ではまる.

woody で apt とかで普通に tftpd-hpa を install して, /etc/inetd.conf を編集して,inetd を再起動すると,

cannot set groups for user nobody

とかが syslog に流れて,うまく in.tftpd が反応してくれない.

ということで,<URL:http://d.hatena.ne.jp/cartooh/20050304> を参考にしつつ,/etc/inetd.conf を

tftp  dgram  udp  wait  root  /usr/sbin/in.tftpd  in.tftpd -u nobody -v -s /var/lib/tftpboot

とすることにした.

で,netboot できるようになったのであるが, ASUS K8N-DL の OnBoard LAN は Broadcom BCM5751 なのであるが,これを Installer が認識してくれない.

# modprobe tg3

で認識できるはずなんですが...sid の installer だと 2.4 系でも 2.6 系でも tg3 で認識できているので.

ということで,ここでとりあえず頓挫. amd64 installer の kernel (2.6系) が若干古くて 5751 を support していない,ということなのかもしれない.

関連リンク
参照リンク

[PC周辺] librd-ruby1.8 0.6.16-2 (20050308)

librd-ruby1.8 の バグ であるが, debian package の version 0.6.16-2 で直ったっぽい.

関連リンク

[PC周辺] PC 購入 (20050305)

BIOS が壊れて復旧不能なので,PC を購入. いつものとおりドスパラの一番安い Celeron 搭載の Prime PC KnightV. 税込 ¥33,800.

ちなみに,AMD Sempron な Prime A Regulus, 税込 ¥29,790 という選択肢もあったのであるが, なんとなくあとで拡張する時にはまりそうなコスモを感じたので却下した.

構成

関連リンク
参照リンク

[PC周辺] iPod shuffle 通信速度 (20050302)

恒例の速度計測.

% sudo hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads:   10 MB in  3.08 seconds =   3.25 MB/sec

非常に遅いな...

関連リンク
参照リンク

[PC周辺] iPod shuffle 購入 (20050302)

iPod 故障中につき購入. なんだか 1GB は「入荷までに時間がかかる」そうなので, 512MB を購入.

で,またおもむろに Linux に刺して gtkpod でいじろうとしたのであるが, 中の構造(というか file 構成とか)が iPod と違うらしく,うまく使えない.

iTune で曲を iPod shuffle に転送して, その状態を gtkpod で読んだりとかはできるのであるが, gtkpod から更新をかけるととたんに再生できなくなってしまう...

まあ,512MB 程度なので,どの曲を入れるかとかの選択も楽なわけで, 仕方なくその辺に転がっている Windows 計算機を使うことにした.

で,既にめいっぱい曲が入っている状態...

関連リンク
参照リンク

[PC周辺] BIOS が壊れた... (20050302)

なんというか,自宅の PC が Celeron 2.0GHz というやるきなしなしなので, 3GHz ぐらいの Pentium 4 におきかえようとして, 現在の M/B で Hyper-Threading とかが使えるのかを調べつつ, BIOS の Update をしたり,BIOS の configuration をしていたのであるが,起動しなくなってしまった.

ちなみになにをしたかというとおもむろに

を,まあ,一度にしてみただけなのであるが...

仕方がないので,Pentium 4 のマシンでも買ってくることにする.むぅ.

参照リンク

[PC周辺] librd-ruby1.8 (20050301)

rd2 が,

% rd2 hoge.rd
/usr/bin/rd2:75:in `load': No such file to load -- rd/dot.rd2rc (LoadError)
        from /usr/bin/rd2:75

とかでコケる. .rd にたよりきって生きている私にとっては非常に感じが悪い.

librd-ruby1.8 0.6.14-7 には /usr/lib/ruby/1.8/rd/dot.rd2rc が存在するのであるが. 0.6.14-7 から 0.6.16-1 にあがった時に消えたっぽい.

setup.rb に

@@ -1195,7 +1195,7 @@
   end

   def ruby_scripts
-    collect_filenames_auto().select {|n| /\.rb\z/ =~ n }
+    collect_filenames_auto().select {|n| /\.rb\z|^dot\.rd2rc$/ =~ n }
   end

   # picked up many entries from cvs-1.11.1/src/ignore.c

という patch をあてるか,手動で copy する必要があるっぽい.

参考関連 Link
参照リンク

[PC周辺] lilbox UTF-8 Ver. (20050227)

[myn:2005022700] であるが, <URL:http://nekhet.ddo.jp/item/454> を使うことにした...

関連リンク

[PC周辺] lilbox 3.10 UTF-8 化 (20050227)

lilbox を 3.10 にあげてみた. ちなみに UTF-8 化するには以下のようにする.

(snip)

あとは,file 自体を UTF-8 で保存する.

関連リンク
参照リンク

[PC周辺] Linux で Windows の Font を利用する (20050226)

を参考に

% sudo mkdir /usr/lib/X11/fonts/WinFont
% sudo cp /somewhere/*ttc /usr/lib/X11/fonts/WinFont
% sudo vi /etc/X11/fs/config
catalogue に /usr/lib/X11/fonts/WinFont/ を追加
% sudo vi /etc/X11/fs-xtt/config
catalogue に /usr/lib/X11/fonts/WinFont/ を追加
% sudo /etc/init.d/xfs restart
% sudo /etc/init.d/xfs-xtt restart

msmincho.ttc msgothic.ttc ぐらいがあると

等が利用できるようになるっぽい.

参照リンク

[PC周辺] SPARC に立ち返る Sun (20050225)

<URL:http://www.itmedia.co.jp/enterprise/articles/0502/23/news028.html>

私にとって SPARC の特長ってなにかというと,

である.他にもなにかあったような気がするが忘れた. ともかくなんか,かっこいい.

[PC周辺] Dual Opteron (20050224)

遂に Dual Opteron なマシンを組むことにした.

M/B は ASUS K8N-DL.これに

+αぐらいで,30万強.少し CPU が弱いが予算の関係上まあよしとする.

関連リンク
参照リンク

[PC周辺] OpenOffice @FreeBSD (20050219)

% cd /usr/ports/japanese/openoffice-1.1
% sudo make install
(snip)
To build OpenOffice.org, you should have a lot
of free diskspace (~ 4GB).

4GB も喰うらしい.ということで諦める.

関連リンク

[PC周辺] grub を FreeBSD で使う (20050218)

FreeBSD の boot loader は boot0 というらしいが, なんというか非常に味気ないので,grub におきかえてみることにする.

まず,ports とかで grub を install して,

% sudo sysctl kern.geom.debugflags=16
% sudo grub-install /dev/ad0
% sudo sysctl kern.geom.debugflags=0

これで,boot record が書換えられる.

kern.geom.debugflags=16

にしているのは,こうしないと書き込めないから.

で,

% sudo vi /boot/grub/menu.lst
timeout 10
default saved

title  FreeBSD
root   (hd0,0,a)
kernel /boot/loader

とか書いておくと grub の menu に FreeBSD の item が表示される.

ちなみに /dev/ad0s1a が / なわけであるが,これは grub では (hd0,0,a) に相当する.

関連リンク

[PC周辺] grub boot floopy image のつくり方 (20050218)

grub の boot floopy の簡単な作り方のメモ.

HDD の MBR やら boot loader の設定を壊してしまったりしたときに活躍するあれ.

% dd if=/dev/zero of=grub.img count=2880
% /sbin/mkdosfs grub.img
% syslinux grub.img
% sudo mount -o loop,iocharset=cp437 -t vfat grub.img /mnt
% sudo /sbin/grub-floppy /dev/loop0
% sudo umount /mnt
参照リンク

[PC周辺] select-xface @FreeBSD (20050217)

FreeBSD の ports にないので,自前で install.

% wget ftp://ftp.gohome.org/pub/elisp/select-xface/select-xface-0.15.tar.gz
% tar zxfv select-xface-0.15.tar.gz
% cd select-xface-0.15
% vi hoge
(defun hoge () (byte-compile-file "select-xface.el"))
% emacs --no-site-file -batch -l hoge -f hoge
% cp -v *.el *.elc ~/lisp

あとは,.wl とかに,

(autoload 'select-xface "select-xface" "Select X-Face" t)
(setq select-xface-directory "~/x-faces")
(add-hook 'mail-mode-hook
    (lambda ()
    (define-key (current-local-map) "\C-c\C-f"
       'select-xface)))

を書いておいた.適当.

関連リンク

[PC周辺] mu-cite @FreeBSD (20050217)

FreeBSD の ports にないので,自前で install. ただし面倒なことはしたくないので,.el および .elc を ~/lisp 以下に放り込むことにする.

% wget http://www.jpl.org/elips/mu/snapshots/mu-cite-200202250931.tar.gz
% tar zxfv mu-cite-200202250931.tar.gz
% cd mu-cite-200202250931
% make (byte compile される)
% mkdir -p ~/lisp
% cp -v *.el *.elc ~/lisp

あとは .emacs の上の方に,

(setq load-path (cons "~/lisp" load-path))

を書いて,下の方(もしくは .wl)に

(autoload 'mu-cite-original "mu-cite" nil t)
(add-hook 'mail-citation-hook (function mu-cite-original))
(setq message-cite-function (function mu-cite-original))

と書いておく.

関連リンク

[PC周辺] FreeBSD 5.3R (20050217)

久しぶりに FreeBSD をつかってみることにした. やるきなしなしセットアップ.

<URL:http://core.ring.gr.jp/pub/FreeBSD/releases/i386/5.3-RELEASE/floppies/> から floppy image の boot.flp kern1.flp kern2.flp を取得して, boot.flp から起動.あとは指示にまかせるだけ.

40G の HDD を,

と切って,Distributions はとりあえず Minimal で.

ちなみに Minimal だと base のみ install されて perl,X.Org,src,ports あたりが install されないので, こいつらのうち src/sys (つまり kernel) および ports のみを後で

# /stand/sysinstall

で入れた.他(perl やら X.Org やら)は ports を使う.

rc.conf は

hostname="xxx.localdomain"
ifconfig_lnc0="DHCP"
sshd_enable="YES"
ntpdate_flags="yyy.localdomain"
ntpdate_enable="YES"
ntpd_enable="YES"

みたいな感じ.

で,ports であるが,とりあえず cvsup しないことには話が始まらないのであるが,

# /stand/sysinstall

で,Package の cvsup を install.で,

% ssh -L 5999:cvsup3.jp.FreeBSD.org:5999 somewhere.mydomain

して Port Forward しておき,

% cd /usr/ports
# cp /usr/share/examples/cvsup/ports-supfile .
# vi ports-supfile
-*default host=cvsup3.jp.FreeBSD.org
+*default host=localhost
# cvsup -g portse-supfile

で ports を同期.次に portupgrade を install.

# cd /usr/ports/sysutils/portupgrade
# make install

あとは,ports の各 directory で make install したり, portinstall を使ったりで compile/install しまくり.

pkg_info によると現在以下の package がはいっている.充分だ.

ImageMagick-6.1.9.2 Image processing tools
ORBit2-2.12.1       High-performance CORBA ORB with support for the C language
Xaw3d-1.5_1         A 3-D Athena Widget set that looks like Motif
aalib-1.4.r5_1      An ascii art library
apache-1.3.33_1     The extremely popular Apache http server.  Very fast, very 
apel-emacs21-10.6   A Portable Emacs Library for emacs21
atk-1.8.0           A GNOME accessibility toolkit (ATK)
auctex-11.55        Integrated environment for writing LaTeX using GNU Emacs
autoconf-2.13.000227_5 Automatically configure source code on many Un*x platforms 
autoconf-2.53_3     Automatically configure source code on many Un*x platforms 
automake-1.5_2,1    GNU Standards-compliant Makefile generator (version 1.5)
bash-2.05b.007_2    The GNU Bourne Again Shell
bison-1.75_2        A parser generator from FSF, (mostly) compatible with Yacc
bitmap-emacs21-8.5_1 Bitmap-mule, Package to use bitmap in Emacs21
bitmap-fonts-1.0    Bitmap font, (6x12, 7x14, 8x16, 12x24) dots bitmap font
bitstream-vera-1.10_1 Bitstream Vera TrueType font collection
boehm-gc-6.4        Garbage collection and memory leak detection for C and C++
bogofilter-0.92.8   "Fast, teachable, learning spam detector"
ccache-2.4_1        A tool to minimize the compile time of C/C++ programs
cdb-0.75            A fast lookup database library & utilities
coreutils-5.2.1     The Free Software Foundation's core utilities
cvsup-16.1h         General network file distribution system optimized for CVS 
db42-4.2.52_3       The Berkeley DB package, revision 4.2
emacs-21.3_4        GNU editing macros
eterm-0.9.2_1       X11 terminal emulator based on rxvt/xterm
expat-1.95.8        XML 1.0 parser written in C
faces-1.7.7_5       Visual mail, user and print face server
fam-2.6.9_6         A file alteration monitor
firefox-1.0_7,1     Web browser based on the browser portion of Mozilla
flim-emacs21-1.14.7 FLIM, message representation or encoding elisp library for 
fontconfig-2.2.3,1  An XML-based font configuration API for X Windows
freetype2-2.1.7_4   A free and portable TrueType font rendering engine
gconf2-2.8.1_1      A configuration database system for GNOME
gd-2.0.33_1,1       A graphics library for fast creation of images
gettext-0.14.1      GNU gettext package
ghostscript-gnu-7.07_12 GNU Postscript interpreter
gimp-2.2.3,1        A GNU Image Manipulation Program
gimp-print-4.2.7_1  GIMP Print Printer Driver
glib-1.2.10_11      Some useful routines of C programming (previous stable vers
glib-2.4.8          Some useful routines of C programming (current stable versi
gmake-3.80_2        GNU version of 'make' utility
gnomehier-1.0_22    A utility port that creates the GNOME directory tree
gnomemimedata-2.4.2 A MIME and Application database for GNOME
gnomevfs2-2.8.3_3   GNOME Virtual File System
gnupg-1.4.0_1       The GNU Privacy Guard
graphviz-1.16       Graph Visualization Software from AT&T and Bell Labs
gsfonts-8.11_2      Fonts used by GNU Ghostscript (or X)
gsl-1.5             The GNU Scientific Library - mathematical libs
gsm-1.0.10          Audio converter and library for converting u-law to gsm enc
gtk-1.2.10_12       Gimp Toolkit for X11 GUI (previous stable version)
gtk-2.4.14_2        Gimp Toolkit for X11 GUI (current stable version)
gtk-engines2-2.2.0_6 Theme engine for the gtk+-2.0 toolkit
guile-1.6.5         GNU Ubiquitous Intelligent Language for Extension
gv-3.6.1            A PostScript and PDF previewer
help2man-1.34.2     Automatically generating simple manual pages from program o
hicolor-icon-theme-0.5 A high-color icon theme shell from the FreeDesktop project
imake-6.8.1         Imake and other utilities from X.Org
imlib2-1.1.2_1      The next generation graphic library for enlightenment packa
intltool-0.32.1     Tools to internationalize various kinds of data files
ja-ddskk-emacs21-12.2.0 Simple Kana to Kanji conversion program on Emacsen
ja-kterm-6.2.0_5    An xterm that speaks Japanese
ja-nkf-2.04         Network Kanji code conversion Filter
ja-platex209-1.0_2  Old version of ASCII Japanese pLaTeX (based on LaTeX 2.09)
ja-ptex-tetex-3.1.8_3 ASCII Japanese pTeX which supports teTeX distribution
ja-skk-jisyo-cdb-200412 CDB jisyo (dictionary) files for the SKK Japanese-input sof
jasper-1.701.0      An implementation of the codec specified in the JPEG-2000 s
jbigkit-1.6         Lossless compression for bi-level images such as scanned pa
jpeg-6b_3           IJG's jpeg compression utilities
lcms-1.14,1         Light Color Management System -- a color management library
libIDL-0.8.5        A library for creating trees of CORBA Interface Definition 
libXft-2.1.6        A client-sided font API for X applications
libart_lgpl2-2.3.17 Library for high-performance 2D graphics
libast-0.5_1        A library of assorted spiffy things
libbonobo-2.8.1     A component and compound document system for GNOME2
libcroco-0.6.0      CSS2 parsing library
libexif-0.6.10      Library to read digital camera file meta-data
libfpx-1.2.0.11     Library routines for working with Flashpix images
libgsf-1.10.1       An extensible i/o abstraction for dealing with structured f
libiconv-1.9.2_1    A character set conversion library
libijs-0.35         C library that supports plugin printer driver for Ghostscri
libltdl-1.5.10      System independent dlopen wrapper
libmng-1.0.8        Multiple-image Network Graphics (MNG) reference library
librsvg2-2.8.1_1    Library for parsing and rendering SVG vector-graphic files
libtool-1.3.5_2     Generic shared library support script (version 1.3)
libtool-1.5.10      Generic shared library support script (version 1.5)
libungif-4.1.3      Tools and library routines for working with GIF images
libwmf-0.2.8.3      Tools and library for converting Microsoft WMF (windows met
libwww-5.4.0_1      The W3C Reference Library
libxml2-2.6.17      XML parser library for GNOME
linc-1.0.3_2        A library for writing networked servers & clients
m4-1.4.1            GNU m4
man2html-3.0.1_1    Convert nroff(1) man pages to HTML
mhc-emacs21-20050120 Message Harmonized Calendaring system
mhonarc-2.6.10      WWW front end for mail archives
mozilla-1.7.5_1,2   The open source, standards compliant web browser
mpeg2codec-1.2_1    An MPEG-2 Encoder and Decoder
mule-ucs-emacs21-0.85.r3 Universal encoding system for GNU Emacs 21
namazu2-2.0.14      Full-text search system intended for easy use
nspr-4.4.1_1        A platform-neutral API for system level and libc like funct
p5-File-MMagic-1.22 Perl5 module to guess file type like file(1)
p5-XML-Parser-2.34_1 Perl extension interface to James Clark's XML parser, expat
p5-gettext-1.03     Message handling functions
pango-1.6.0         An open-source framework for the layout and rendering of i1
pcre-5.0            Perl Compatible Regular Expressions library
perl-5.8.6_2        Practical Extraction and Report Language
php4-4.3.10_2       PHP Scripting Language (Apache Module and CLI)
pkgconfig-0.15.0_1  A utility used to retrieve information about installed libr
png-1.2.8_1         Library for manipulating PNG images
popt-1.7            A getopt(3) like library with a number of enhancements, fro
portupgrade-20041226_1 FreeBSD ports/packages administration and management tool s
python-2.4_1        An interpreted object-oriented programming language
rplay-3.3.2_2       Network audio player
rsync-2.6.3_1       A network file distribution/synchronization utility
ruby-1.8.2_2        An object-oriented interpreted scripting language
ruby18-GD-0.7.4_5   Ruby extension library to use Thomas Boutell's gd library
ruby18-bdb1-0.2.2   Ruby interface to Berkeley DB revision 1.8x with full featu
screen-4.0.2_1      A multi-screen window manager
semi-emacs21-1.14.6 SEMI, Library of MIME feature for GNU Emacs for emacs21
shared-mime-info-0.15_7 A MIME type database from the FreeDesktop project
sudo-1.6.8.7        Allow others to run commands as root
swig-1.3.21_1       Simplified Wrapper and Interface Generator
t1lib-5.0.1,1       A Type 1 Rasterizer Library for UNIX/X11
tcl-8.4.7,1         Tool Command Language
teTeX-base-3.0_2    Thomas Esser's distribution of TeX & friends (binaries)
teTeX-texmf-3.0     Thomas Esser's distribution of TeX & friends (texmf tree)
tex-texmflocal-1.9  Meta-port that creates a site-local $TEXMF directory
texi2html-1.76_1,1  Texinfo to HTML converter
tiff-3.7.1_2        Tools and library routines for working with TIFF images
tk-8.4.7,2          Graphical toolkit for TCL
unzip-5.51          List, test and extract compressed files in a ZIP archive
w3m-0.5.1           A pager/text-based WWW browser
wanderlust-emacs21-2.12.0 Yet another message interface on Emacsen
wget-1.8.2_6        Retrieve files from the Net via HTTP and FTP
xface.el-emacs21-1.3.6.24_2 X-Face encoder/decoder/viewer for Emacsen
xorg-clients-6.8.1_1 X client programs and related files from X.Org
xorg-fonts-encodings-6.8.1 X.Org font encoding files
xorg-fonts-truetype-6.8.1 X.Org TrueType fonts
xorg-libraries-6.8.1_1 X11 libraries and headers from X.Org
xterm-200           Terminal emulator for the X Window System
zip-2.3_2           Create/update ZIP files compatible with pkzip
zsh-4.2.4           The Z shell
関連リンク
参照リンク

[PC周辺] RDoc (20050216)

<URL:http://rdoc.sourceforge.net/>

Ruby の Source Code から Document を生成するやつ.

この RDtool との比較がかなり秀逸というか,なんというか.

関連リンク

[PC周辺] icewm ワークスペース間移動 (20050216)

うざったい Window があったので,それを別の ワークスペースに移動したのであるが, よく考えたらワークスペースの移動の仕方を把握していなかった. ワークスペースまわりの Icon も不要だと思ってことごとく表示してないし...

というわけで調べた.

Ctrl + Alt + カーソル

らしい.φ(..)メモメモ.

関連リンク

[PC周辺] mhc 0.25.1+20050120-1 (20050215)

18:00 on Friday

とか書かれた mail を予定に取り込もうとすると

(wrong-type-argument char-or-string-p nil)

でこける.というのは,mhc-guess.el 内の,

(defun mhc-guess/make-date-from-english-relative-week (now dow rel-word week)
...
)

という関数の,

(downcase rel-word)

の箇所でこけているっぽい.これは

mhc-guess-date-regexp-list

を順に処理していく時に呼ばれるっぽいが,その中に,

... mhc-guess/make-date-from-english-relative-week 2 1 nil)
... mhc-guess/make-date-from-english-relative-week 1 2 3)
... mhc-guess/make-date-from-english-relative-week 1 nil nil)

というのがあって,第三引数が nil になっている場合にこけているらしい. なんというか,なんだかなあ...

たぶん,mhc-guess.el に

@@ -472,7 +472,8 @@
                       ("Wednesday" . "水") ("Thursday" . "木")
                       ("Friday" . "金") ("Saturday" . "土")
                       ("Sunday" . "日")))
-         (rel (downcase rel-word)))
+         (rel rel-word))
+      (if rel-word (setq (downcase rel-word)))
       (mhc-guess/make-date-from-relative-week
        now
        (if (null rel)

とかいう感じの patch が必要.とりあえず

mhc-guess/make-date-from-english-relative-week

を自前で defun してしのぐことにする.

(require 'mhc)
(defun mhc-guess/make-date-from-english-relative-week (now dow rel-word week)
  (unless mhc-guess-ignore-english-date
    (let ((dow-alist '(("Monday" . "月") ("Tuesday" . "火")
		       ("Wednesday" . "水") ("Thursday" . "木")
		       ("Friday" . "金") ("Saturday" . "土")
		       ("Sunday" . "日")))
	  (rel rel-word))
      (if rel-word (setq (downcase rel-word)))
      (mhc-guess/make-date-from-relative-week
       now
       (if (null rel)
	   nil
	 (cond ((and (string= rel "this") (null week))
		"今度")
	       ((and (string= rel "this") week)
		"今週")
	       ((and (string= rel "next") (null week))
		"今度")
	       ((and (string= rel "next") week)
		"来週")
	       (t
		nil)))
       (cdr (assoc-ignore-case dow dow-alist))))))
参照リンク

[PC周辺] OpenCV を Debian に入れる (20050211)

OpenCV (Intel Open Source Computer Vision Library) は Intel がオープンソースで公開している CV 関連のライブラリ.

% sudo apt-get install libopencv0.9-5  libopencv-dev libopencv-doc
% sudo apt-get install libhighgui0.9-5 libhighgui-dev  
% sudo apt-get install libcvaux0.9-5   libcvaux-dev 
OpenCV 関連 Link

[PC周辺] はてなダイアリーキーワード自動リンクAPI (20050210)

というのがある らしい

[PC周辺] mac mini で Linux (20050208)

電脳ぺんぎんさんが 動かしているっぽい

boot loader まわりで嫌なことになっていたら 嫌だったので手を出さなかったわけであるが, 普通に mac mini で bootable な CD があれば,install できるっぽい.

この辺 を参照すれば Debian が入るのだろうか...

関連リンク

[PC周辺] iPod shuffle (20050208)

iPod 故障 につき購入を検討中...まいった.

がしかし, 「この商品は入荷までに時間がかかる場合があります」とのこと.

どうしてくれよう...

関連リンク
参照リンク

[PC周辺] auctex 11.55 (20050207)

Debian sid の auctex の version が 11.54-3 から 11.55-1 にあがったわけですが, 再び [myn:2004092700] と同様に title の font が大きくなってしまって感じが悪い.

ということで調べてみたら,

font-latex-title-fontity

ではなく

font-latex-title-fontify

を 'height に設定しなければならなくなったらしい. というか,fontity って typo だったのか...

/usr/share/doc/auctex/ChangeLog.gz によると,

2005-01-13  David Kastrup  <dak(at)gnu.org>

	* font-latex.el (font-latex-set-title-face)
	(font-latex-title-fontify): font-latex-title-fontify, not
	fontity.  fontify, fontify, fontify.

ということらしい.

関連リンク
参照リンク

[PC周辺] A9 toolbar for firefox (20050207)

Linux 版 firefox の A9 toolbar ですが, [myn:2004121100]の文字化けが解消された模様. 現在の Version は 1.2.22.73.

関連リンク

[音楽 , PC周辺] 日曜音楽鑑賞/iPod 故障 (20050206)

iPod がなんといいますか壊れた.

普通に NotePC の HDD とかが壊れた時のような嫌な音がしてるんですけど...

ポケットに入れたまま結構な距離走ったのがだめだったっぽい. というか,そらそうだろ,という感じですが.

ということで今週は日曜音楽鑑賞お休み. というか,iPod をどうしてくれよう...

関連リンク
参照リンク

[PC周辺] 日付付き雑記 RSS対応 (20050204)

せっかく 外からRSS対応したのに 本家に RSS に対応 されてしまった.

関連リンク

[PC周辺] libboost (20050204)

なんかいろいろ使えそうなのでメモ.

graphviz の .dot のグラフ構造も読み/書きできるっぽい.

関連リンク

[PC周辺] SNOWMAN MONITOR (20050203)

<URL:http://myn.meganecco.org/chess/snowman.cgi>

[myn:2004070902] とコードを共有しつつつくってみた. ちなみに <URL:/index.rdf> を生成するやつ*5ともコードを共有している.

最近は, ちぇすやらすののページは, RSS でチェックするまでもなくいきなり開くケースが多いが.

関連リンク
参照リンク

[PC周辺] Ruby の module/class 階層関係のグラフ化 (20050201)

Ruby でごにょごにょ書いていると module/class 階層がやたらめったら複雑になって, 可視化したくなったので,その時にいろいろ(でもないけど)調べてたメモ.

で,いきなり別物をあげますが, コールグラフ作成スクリプト というのがあるらしい.

% ruby -r callg.rb hoge.rb

として hoge.rb を実行すると hoge.dot と hoge.dot.png が生成される. 内部で system で graphviz の dot を呼んでいるっぽい.

で,ごにょごにょ調べて辿りついたのが, <URL:http://objectgraph.rubyforge.org/>. hoge/hoge.rb に module Hoge を書いてあるとして,

% ruby -r hoge/hoge.rb objectgraph.rb -all -name-space Hoge

とすると,.png に Ruby Class Hierarchy を吐いてくれるっぽい.比較的便利.

ちなみに,どうでもいいが,

% wget -q -O - 'http://rubyforge.org/cgi-bin/viewcvs.cgi/*checkout*/objectgraph/objectgraph.rb?rev=HEAD&cvsroot=objectgraph&content-type=text/plain' | ruby -r hoge/hoge.rb - -dot -name-space Hoge

とかして遊んでみたり.

ちなみに青木峰郎さんの ソースコードを読むための技術 は,なかなかまとまってていいです.

関連リンク
参照リンク

[PC周辺] 購入予定リスト (20050129)

をつくってみることにした.

<URL:http://myn.meganecco.org/tobuy.html>

関連リンク

[PC周辺] ruby-graphviz and GraphR (20050128)

<URL:http://raa.ruby-lang.org/project/ruby-graphviz/>

graphviz を ruby から使う Interface.

ということで package 化.

% tar zxfv ruby-graphviz_0.6.0.tar.gz 
% mv ruby-graphviz ruby-graphviz-0.6.0
% cd ruby-graphviz-0.6.0
% dh_make -e myn(at)meganecco.org -f ../ruby-graphviz_0.6.0.tar.gz
% vi debian/rules

configure-stamp: のところに
ruby extconf.rb を書く

install: のところを
-$(MAKE) install DESTDIR=$(CURDIR)/debian/ruby-graphviz
+$(MAKE) install DESTDIR=$(CURDIR)/debian/ruby-graphviz 'sitedir=$$(prefix)/lib/ruby'
に変更

% echo > debian/dirs

こうしないと dpkg -L に usr/bin usr/sbin が含まれるので.

% fakeroot make -f debian/rules binary
% sudo dpkg -i ../ruby-graphviz_0.6.0-1_i386.deb

とか,extconf.rb を使う ruby script からの package の作成は こんな感じでいいっぽい.

sample は tests 以下にあって,

% ./maketest.sh

で png をいろいろ作ってくれる.

tests も package に含めたい場合は,make binary する前に,

% echo tests >> debian/docs

しておく.

似たようなものに GraphR というのがあるらしい.

% tar zxfv graphr-0-1-9.tar.gz
% mv graphr-0-1-9 graphr-0.1.9
% cd graphr-0.1.9
% dh_make -e myn(at)meganecco.org -f ../graphr-0-1-9.tar.gz
% vi debian/rules

configure-stamp: のところに
ruby -e 'require "mkmf"; create_makefile("graph")'
を書く

install: のところを
-$(MAKE) install DESTDIR=$(CURDIR)/debian/ruby-graphviz
+$(MAKE) install DESTDIR=$(CURDIR)/debian/ruby-graphviz 'sitedir=$$(prefix)/lib/ruby'
に変更

% echo > debian/dirs

こうしないと dpkg -L に usr/bin usr/sbin が含まれるので.

% echo tests >> debian/dirs
% fakeroot make -f debian/rules binary
% sudo dpkg -i ../graphr_0.1.9-1_i386.deb

extconf.rb がない場合でも, たとえば ./lib/graph を /usr/lib/ruby/1.8 以下に copy りたい場合はこうすればいいっぽい.

というか,GraphR の tests 以下の sample は RubyUnit をつかっているっぽい...というか,開発がとまっているのかも.

関連リンク

[PC周辺] Mozilla Firebird Extensions (20050127)

普段使っている Extensions のメモ.

関連リンク
参照リンク

[PC周辺] vera-mode (20050126)

VERA という HDL 検証用の言語があるのであるが, それの Emacs における major-mode が存在して, それが Emacs Vera Mode (vera-mode)

ということでパッケージ化.

% tar zxfv vera-mode-2.16.tar.gz
% cd vera-mode-2.16
% dh_make -e myn(at)meganecco.org -f ../vera-mode-2.16.tar.gz

あとは,

% fakeroot make -f debian/rules binary
% sudo dpkg -i ../vera-mode_2.16-1_i386.deb

これで,

置かれる.

[PC周辺] dselect の挙動が以前の状態にもどった... (20050118)

というのは,

dpkg (1.10.26) unstable; urgency=low

  The "Captain Tight-Pants" Release.

  * Revert to current 'stable' behaviour of Space/Enter/'Q' in the dselect
    help screen, Space leaves the help screen and Enter and 'Q' do nothing.
    It's dangerous to encourage users to press Enter or 'Q' since they
    commit changes in the package selection screen.

ということらしい.

Enter の振舞いがもとにもどって,なんだか非常に感じが悪い...

ところで /usr/share/doc/dselect/changelog.Debian.gz が less で見れなくてなんだろうかと思ったのだが,

dpkg (1.10.25) unstable; urgency=low

  The "你他媽的天下所有的人都該死" Release.

とか書いてあった.なんかすごいリリース名...

[PC周辺] graphviz で日本語を使う (20050117)

[myn:2005010901] の graphviz であるが, 日本語化パッチ とかがあるみたいだが, この方 は UTF-8 で成功しているみたいで,

つまり,

[fontname="Kochi Gothic"]

とかしたら描画できるっぽい.

ついでに map をごにょごにょといじっているわけですが, これ以上規模が大きくなると, 画像ファイルが大きくなりすぎて感じ悪い...

現状では dot を使ってるのだが, そのうち twopi にしてみようかと... ただ twopi だとどうも overlap がいやらしいんですが...

ちなみに graphviz ですが,vrml とかも吐けるらしいです. 用途がはっきりいって不明ですが. で,vrml ですが, freewrl とかいう Debian の package で見ることができます.

関連リンク
参照リンク

[PC周辺] 日付付き雑記 欠番 (20050115)

[snow:03049] によると,

気づいてなかった(笑)

らしい(ぉ.

おそらく日記デバッグ 付近でなにか混乱したんだろうなあと.

ともかく適当に [myn:2005011400] のコードで対処.

関連リンク

[PC周辺] 日付付き雑記 記事 ID の URL へのマッピング (20050114)

おもいっきりはまる...

0238.html は 02381 〜 02390 の記事を持っているらしい.

02380 〜 02389 が素直な実装だと思うのだが, なにか思うところがあって,こうなっているのだろうか...

ともかく,

id=id.to_s
g="%05d"%id
h="%04d"%((id-1)/10)
url=%Q!http://tirasweel.dyndns.org/~snowman/diary/#{h}.html#D#{g}!

とかしてみる.

というか,

(ぉ.

というか,00113 の記事がない...嫌がらせだ...

id=id.to_s
raise if id==113
g="%05d"%id
id-=1 if id>113
h="%04d"%(id/10)
url=%Q!http://tirasweel.dyndns.org/~snowman/diary/#{h}.html#D#{g}!
関連リンク
参照リンク

[PC周辺] AVG Anti-Virus (20050113)

<URL:http://www.grisoft.com/>

Free Edition の Version が 6 から 7 にあがったので, Windows 機に Install.

何度も AVG6 に警告されていたのだけれども, かなり長い間無視しつづけてた...

関連リンク
参照リンク

[PC周辺] Mac mini (20050112)

img:http://images-jp.amazon.com/images/P/B0007DGQKI.09.LZZZZZZZ.jpg

だれかがすぐ Linux を入れるんだろうな...

「16.5cm X 16.5cm X 5cm」.

欲しくてしかたない...

ところで最近 Nano-ITX の話題をまったく聞かないが,どうなっているのだろうか...

関連リンク
参照リンク

[PC周辺] graphviz (20050109)

graphviz を使ってみた.

mapとか,おもしろいです.

ちなみ server-parsed imagemap (.map) を apache 側で有効にするには,

[/etc/apache/httpd.conf]
-    #AddHandler imap-file map
+    AddHandler imap-file map
[/etc/apache/httpd.conf]
+LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so

とすればいいっぽいです.

関連リンク
参照リンク

[PC周辺] namazu 2.0.14 (20050107)

かなり放置してましたが, namazu を 2.0.13 から 2.0.14 にあげました.

2.0.13 以前のヴァージョンには 脆弱性 があるそうです.

関連リンク

[PC周辺] bugzilla (20050106)

bugzilla を導入してみた.Debian の package で.

内部的には mysql を使うらしいが mysql を良く理解していなくても,なんとか install できた. というか,そのまま apt-get install するだけなんですが.

ちなみに default では,top の index.html は

/var/www/bugzilla/index.html

にあって,こいつが,

META HTTP-EQUIV="REFRESH" CONTENT="0; URL=/cgi-bin/bugzilla/index.cgi"

とかをしてます.

あと,private network で動かしているので,

に,sendmail (もしくは exim とか) のかわりに nkf + imput (im) を使うことにした.

package の im を install してやって,

[/etc/im/SiteConfig]
FromDomain=meganecco.org
ToDomain=meganecco.org
Smtpservers=meganecco.org

みたいに private network からもたたける SMTP server を指定してやる. これで imput の設定は終り.

bugzilla は default では (というか script に hard coding されてるんですが...) /usr/lib/sendmail をたたくわけで,これを変更してやる.

[/usr/share/bugzilla/lib/processmail]
-open(SENDMAIL, "|/usr/lib/sendmail $sendmailparam -t -i") ||
+open(SENDMAIL, "| /usr/bin/nkf -j | /usr/bin/imput -t") ||

こんな感じで OK.

ちなみに imput (というか sendmail もそう) の -t option は,標準入力から To: やら From: やらをの Header 情報を受けつけるようにする option. Header と Body の境界は空行で specify する.

あと,iso-2022-jp じゃないとうまくとおらない(imput でも sendmail でも) なので,nkf -j で iso-2022-jp に変換している.

まあ,それだけ.

参照リンク

[PC周辺] viewcvs (20050105)

Debian の viewcvs がなにやら

UnknownReference: current_root

とかいう妙な Error Message とともに backtrace を返して, html 出力の途中でこける.

具体的には

と想定して,以下のようにしてみた時である.

で,これで,view=log で file を見た時に, html の最後の方が,

View only Branch:
An Exception Has Occurred
Python Traceback

Traceback (most recent call last):
  File "/usr/lib/python2.3/site-packages/viewcvs/viewcvs.py", line 3235, in main
    request.run_viewcvs()
  File "/usr/lib/python2.3/site-packages/viewcvs/viewcvs.py", line 360, in run_viewcvs
    self.view_func(self)
  File "/usr/lib/python2.3/site-packages/viewcvs/viewcvs.py", line 1919, in view_log
    generate_page(request, cfg.templates.log, data)
  File "/usr/lib/python2.3/site-packages/viewcvs/viewcvs.py", line 684, in generate_page
    template.generate(sys.stdout, data)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 253, in generate
    self._execute(self.program, fp, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 370, in _execute
    step[0](step[1], fp, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 410, in _cmd_if_any
    self._do_if(value, t_section, f_section, fp, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 442, in _do_if
    self._execute(section, fp, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 370, in _execute
    step[0](step[1], fp, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 409, in _cmd_if_any
    value = _get_value(valref, ctx)
  File "/usr/lib/python2.3/site-packages/viewcvs/ezt.py", line 522, in _get_value
    raise UnknownReference(refname)
UnknownReference: current_root

となって,こける.まあ実害ないのだが気持ち悪い. なお上記で使用した viewcvs の version は

0.9.2+cvs.1.0.dev.2004.07.28-1.3

ということで cvs 版を使うようにしてみた.

なかなか快適.あとは rsync を cron で行なうようにしておけば OK.

[PC周辺] dbskkd-cdb と郵便番号辞書 (20050104)

skk server として dbskkd-cdb を使っているのであるが, これは複数辞書に対応していないようなので, 郵便番号辞書も含めた形式で辞書を作りなおしてみた.

なお dbskkd-cdb が default で使用する辞書は

/usr/share/skk/SKK-JISYO.cdb

であり,Debian の場合 skkdic-cdb という package に含まれているが, 自分で作成する場合は dbskkd-cdb package に含まれている makeskkcdbdic を利用して

% sudo sh /usr/share/doc/dbskkd-cdb/examples/makeskkcdbdic \
  /usr/share/skk/SKK-JISYO.L /usr/share/skk/SKK-JISYO.L.cdb

とするらしい. makeskkcdbdic は cdbmake という command を利用するので, freecdb という package も install しておく必要がある.

そして,以下のようにして 郵便番号辞書も含めた形式で cdb 辞書を作成.

% cd /tmp
% skkdic-expr \
  /usr/share/skk/SKK-JISYO.L + /usr/share/skk/SKK-JISYO.zipcode |\
  skkdic-sort > SKK-JISYO.LL
% sh /usr/share/doc/dbskkd-cdb/examples/makeskkcdbdic \
  SKK-JISYO.LL SKK-JISYO.L.cdb
% sudo cp SKK-JISYO.L.cdb /usr/share/skk

dbskkd-cdb は inetd から起動する(Debian の場合)ので,

% sudo pkill dbskkd-cdb

して dbskkd-cdb を殺してしまえば,新しい辞書が使えるようになる.

[PC周辺] 年賀状を LaTeX で作成 (20050103)

[myn:2004010500] を使いまわして,宛名印刷.

今回は裏も LaTeX で書いてみた.

\documentclass{tarticle}
\usepackage{graphicx}
\pagestyle{empty}
\begin{document}
\setlength{\unitlength}{1mm}
\begin{picture}(143,100)(0,0)
% \put(0,0){\framebox(143,100){}}
\put(5,60){\includegraphics[width=4cm,angle=90]{tori_moji.eps}
\put(58,30){\includegraphics[width=5.8cm,angle=90]{tori.eps}
\put(10,40){
  \begin{minipage}{7cm}
    昨年は大変お世話になりました.\\
    本年も宜しくお願い申し上げます.
  \end{minipage}
}
\put(60,16){
  \begin{minipage}{8cm}
     \begin{minipage}{7cm}
        \hbox{\yoko〒 000--0000}
     \end{minipage}
     \begin{minipage}{7cm}
        ほげ県ほげ市ほげ町\rensuji{99}\\
        ほげほげはうす\rensuji{999}号室\\
        {\large     \hspace{1cm} ほげ ほげげ }\\
        {\small \tt \hspace{.2cm} hoge@hogege.xxx}
      \end{minipage}
  \end{minipage}
}
\end{picture}
\end{document}

みたいな感じで.非常にやるきがない.

プリンタが Windows にぶらさがっているネットワークプリンタなので,

.tex → .dvi → .ps → .pdf (by Distiller) → 印刷

という流れで印刷することになった. ということで位置あわせが .dvi 生成,もしくは .ps 生成の箇所で入るわけだけれども,

dvips -O -9cm,-2cm -o - inpug.dvi > output.ps

とかでなんとなく対処.「印刷」してみて offset 値(-O の引数)にフィードバック,とかいうなんともださいやり方.

関連リンク

[PC周辺] 日記日記 システムアップグレード (20050102)

関連リンク
参照リンク

[PC周辺] Linux 上の TeX 環境で多書体に挫折 (20050101)

帰省しているので年賀状がどれくらい届いているのか不明なわけですが, そもそも年賀状書いてないので,家に戻ってから処理する予定.

で,暇なので,LaTeX で年賀状を書いていたわけですが, やはり LaTeX だとフォントをいろいろいじれないのでなんか悲しい.

ということで, TTF を LaTeX でつかってやろうともがくものの, dvips がうまくいかずに断念...

xdvi で TTF を表示するところまではなんとかいけるんですが, その先は LaTeX (と dvi やら ps やら gs やら)の処理系をわかっていないと, やはり無理っぽい.

以下メモ.

参考にした URL

.tfm の用意と vfontmap の更新

ttf-mikachan という package に入っている /usr/share/fonts/truetype/mikachan/mikachan.ttf をつかってやろうと,もがきます.

% cd /tmp
% wget http://oku.edu.mie-u.ac.jp/~okumura/texfaq/jis-tfm.zip
% unzip jis-tfm.zip

% cd /usr/share/texmf/fonts/tfm/ptex 
% sudo cp jis.tfm mika.tfm
% sudo cp /tmp/jis-v.tfm tmika.tfm

つまり /usr/share/texmf/fonts/tfm/ptex 以下に

jis-v.tfm は Debian にないようだったので <URL:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/> から取得.

がしかし,Debian の LaTeX の処理系は /var/cache を見に行くようなので,以下をする.

% cd /var/cache/fonts/tfm/
% sudo cp /usr/share/texmf/fonts/tfm/ptex/*mika.tfm .

あとは以下で vfontmap の更新(Debian の場合).

% sudo vi /etc/texmf/vfontmap.d/20mika.map
mika /usr/share/fonts/truetype/mikachan/mikachan.ttf
tmika /usr/share/fonts/truetype/mikachan/mikachan.ttf
% sudo /usr/sbin/update-vfontmap

これで /var/lib/texmf/vfontmap が更新されるらしい.

あとは addjfonts.sty を用意して,

\documentclass{jarticle}
\usepackage{addjfonts}
\DefineJapaneseFamily{mikachan}{mika}{tmika}{mika}
\begin{document}
\textmika{ほげ}
\end{document}

を platex して, xdvi で見ると「みかちゃんフォント」で一応表示される.

で,できた .dvi を dvips してやると(設定してないので)当然のようにとおらないわけですが,

どこをどう設定してやればいいのか良くわからなかった, というか素直に openoffice とかを使えばいいじゃん, とか思い始めたので,やるきをなくして断念.

関連リンク
参照リンク

[PC周辺] やるきなしなし検索システム (20041229)

記事数が増えてきたので,記事毎の検索をできるようにしてみた. ちなみに今までは,月毎の検索しかできなかったわけであるが.

「記事毎の検索」はテスト運用中のため cron 等をまだ仕込んでません(URL も変更するかも).

関連リンク
参照リンク

[PC周辺] firefox と flash と esd と @Debian (20041229)

いつのころからか *6 esd を起動している状態で, firefox で FLASH が見れなくなってしまっていました. 見れない,というよりも, サウンドデバイスをたたけなくて止まる,というほうが正確かも. 音のない FLASH は見れてたので.

で調べてみたら,

などによると,libesd.so.1 が必要ならしい.と,いうことらしい.

たしかに

% strings /usr/lib/flashplugin-nonfree/libflashplayer.so | grep -i esd

しても,libesd.so.1 に依存しているように見える.ちなみに debian の package (libesd0 0.2.35-2) では /usr/lib/libesd.so.0 はあるけど libesd.so.1 はない. ということで,

% cd /usr/lib
% sudo ln -s libesd.so.0 libesd.so.1

して解決.ちなみに上記 URL にある /tmp/.esd/socket は, 普通は esd が起動すると作成されるものです.

関連リンク
参照リンク

[PC周辺] Debian の gtkpod / libgtk2.0-0_2.4.14-2 + gtkpod_0.85.0-0.1 (20041228)

Debian (sid) の package の gtkpod ですが, gtkpod_0.85.0-0.1 が出た模様.で,これなんですが,

Depends: libatk1.0-0 (>= 1.7.2), libc6 (>= 2.3.2.ds1-4),
 libglib2.0-0 (>= 2.4.7), libgtk2.0-0 (>= 2.4.4),
 libid3tag0 (>= 0.15.0b), libpango1.0-0 (>= 1.6.0)

という依存関係を持っていて,なぜか

libgtk2.0-0_2.4.14-2 + gtkpod_0.85.0-0.1

だとまともに動いてくれません.

libgtk2.0-0_2.4.14-1 + gtkpod_0.85.0-0.1

だと正常に動作します.

ちなみにどんな感じで動かないかというと, iPod のデータの「読み込み」を行なった時に, たとえば /mnt/ipod に iPod を mount しているとすると, /mnt へ無限にアクセスする,という状況になります. たしか,strace した時の感じでは /mnt が File ではない (というか当然 Directory なんですが...), とかそんなのでこけて無限ループにはまっていたような気がします.

メモ
関連リンク

[PC周辺] 壊れた EPS File (20041228)

[myn:2004122100] であるが,やはり壊れているようで, その .eps を含む .dvi を dvips を通して作った .ps を gv で見てみると gv が激しくとち狂う.

具体的には

とか.激しく不快.おそらくどこかでスタック処理でこけている予感.

Illustrator 10 でなんとかしてみる

ということでまず Illustrator 10 で開いてそれを 保存してみるという策をやってみたが,開く時に

http://upload.meganecco.org/files/1104100513.94368.png

みたいな嫌がらせをされる. できるだけ元情報を無くしたくないし, そもそも Windows でいろいろ試行錯誤したくないので あきらめる.

gs (ghostscript) でなんとかしてみる

というか普通の画像なのに, どうして .eps などという微妙な形式でくれるんだろうか.

% gs -sDEVICE=epswrite -sOutputFile=output.eps \
    -dQUIET -dNOPAUSE -dSAFER -dBATCH input.eps

これで一応 output.eps が吐かれるのだが, BoundingBox と HiResBoundingBox の行の情報がなんだか変になって, gv で見た時の位置がおかしくなるので, output.eps のその行を input.eps の該当行で置き換える. これで表示位置の問題が解決.

あと,一応情報の欠落がないか画像に変換して diff してみる.

% gs -sDEVICE=pnm -sOutputFile=output.pnm \
    -dQUIET -dNOPAUSE -dSAFER -dBATCH output.eps
% gs -sDEVICE=pnm -sOutputFile=input.pnm \
    -dQUIET -dNOPAUSE -dSAFER -dBATCH input.eps
% diff output.pnm input.pnm

画像情報としては情報の欠落がないっぽい. ただし .eps に含まれている諸々の 情報はなくなってしまっている気がしないでもないが.

関連リンク

[PC周辺] 最近の RSS Feed (20041227)

ここ最近 エロサイトや画像掲示板までが RSS Feed を開始しつつあるわけで, 特に画像掲示板なんかは

<content:encoded><![CDATA[
ここが html
]]></content:encoded>

みたいな感じで html が埋め込んである.

というか, アキバBlog(秋葉原ブログ)<URL:http://blog.livedoor.jp/geek/index.rdf> とかも,いつのまにか画像が埋め込まれいる模様...

なんというか,こういう記事ベース(もしくはスレッドベース)の 文章コンテンツ配送(というか最近は html.というか配送なの?)って 最終的にどういう形式におちつくのかが気になって仕方ない...

関連リンク

[PC周辺] icewm 1.2.18 (20041225)

icewm の version が 1.2.18 にあがった模様.

<URL:http://sourceforge.net/project/shownotes.php?release_id=290926>

私が使っている機能まわりの変更はなさげだがメモっておくと,

ぐらい.

ちなみに MouseWinMove というのは, Window の任意の場所をクリックして Window を移動できたりだとかする機能ならしい (MouseWinSize は同様にリサイズする).

常に全 Window を最大化して使っているので, 使わないわけですが.

関連リンク

[PC周辺] lilbox (20041223)

ちなみに lilbox が mysql を使わないような実装に変更されたので, ようやく導入にふみきったわけであり, [myn:2004120100] あたりは この導入のためにごにょごにょやっていてわけである. 結局 mysql が面倒になったのであきらめた,のであるが.

で,php4 を debian (sid) の apache (apache2 ではない) で動かすには,

% sudo apt-get install php4-cgi
% sudo apt-get install libapache-mod-php4

だけでよさげ.

関連リンク
参照リンク

[PC周辺] Amazon.co.jp リンク (20041223)

なんか Amazon.co.jp が用意してくれたリンクは,

いろいろ問題があったので, lilbox を使うことにした.

ただし lilbox も default が EUC-JP (なんか日本語がぶち切られる...)なので, ごにょごにょと UTF-8 化.

関連リンク
参照リンク

[PC周辺] EPS 中のバイナリデータのサイズ (20041221)

人からもらった .eps file を含む .dvi を dvips すると

premature end of file in binary section

とかエラーが出たので調べてみた.

<URL:http://oku.edu.mie-u.ac.jp/~okumura/texfaq/qa/4516.html> のように

%%BeginData: 26688 Hex Bytes
%0000330000660000990000CC0033000033330033660033990033CC0033FF

とある場合は,26688 というのは16進の文字(0〜F)の数であって % や 改行は含まない. 紹介した URL ではオリジナル の dvips が 26688 を「総バイト数」としてとりあつかっていたので, dvips を修正した,ということらしい.

で,私のもらった .eps に関しては,

%%BeginData: 2275516

となっていて,この場合の解釈は「総バイト数」でいいんですが,どうやら この .eps の中のデータに関しては「16進の文字」が 2275516 個になってい るらしい.つまり上で紹介した URL の問題とは逆の問題.

ということで,

%%BeginData: 2275516 Hex Bytes

に修正したら dvips がとおるようになった.なんだかなぁ...

関連リンク
参照リンク

[PC周辺] クロスコンパイル (20041220)

古いシステム(gcc が 2.9.3,binutils が 2.10.91) で,いきなり gcc 3.4.3 を install したら, ld が

Not enough room for program headers (allocated 7, need 8)

とか言って binary を link できなくなってしまった.

いろいろあがいたけれど,結局どうしようもなくなったので, linux 環境間でクロスコンパイルをしてみた.

具体的には,

から

へのクロスコンパイルである.

そもそも libc が違うということは, OS は一緒だけれども全く違うシステムとなるわけで, がしかし,微妙に同じなわけで,非常にややこしい...

準備

% cd /work/myn/serio
% wget http://core.ring.gr.jp/pub/GNU/gcc/gcc-3.4.3/gcc-core-3.4.3.tar.bz2
% wget http://core.ring.gr.jp/pub/GNU/binutils/binutils-2.15.tar.bz2
% tar jxfv gcc-core-3.4.3.tar.bz2
% tar jxfv binutils-2.15.tar.bz2

これで,

というディレクトリが作業ディレクトリ(/work/myn/serio)にある状態.

cross binutils の compile

% cd /work/myn/serio
% mkdir cross-binutils
% cd cross-binutils
% ../binutils-2.15/configure \
--build=i586-pc-linux-gnu \
--host=i586-pc-linux-gnu \
--target=i686-pc-linux-gnu \
--prefix=/work/myn/cross
% make -j6
% make install

Dual PenIV Xeon 計算機で compile してたので,-j6 とかしている.

これで,/work/myn/cross/bin 以下に i686-pc-linux-gnu-ld とかができる. target となる (SerioWare 側の) library 等を入れるための

/work/myn/cross/i686-pc-linux-gnu

とかいう directory もできる.

ちなみに,

となっていて,つまり

i586-pc-linux-gnu → i686-pc-linux-gnu

といったクロスコンパイル環境をつくろうとしている.実際には

i686-pc-linux-gnu → i686-pc-linux-gnu

であるが,host と target が同じたと クロスコンパイル環境をビルドするように configure が振舞ってくれない. たぶん.

SerioWare から header と library を copy してくる

serioware とかいう host だとして,

% cd /work/myn/cross/i686-pc-linux-gnu
% rsync -avz serioware:/usr/include/ include0
% rsync -avz serioware:/usr/lib/     lib0
% rsync -avz serioware:/lib/         lib1

とかしておく.

cross gcc の compile (1)

一般に cross gcc の compile は 2段階に分けておこなうらしいので, それに従った.通常は,

とするらしい.今回は glibc は compile せず,copy してくる.

header の準備

linux の header が必要.

% cd /work/myn/cross/i686-pc-linux-gnu
% mkdir include
% rsync -avz /usr/src/kernel-source-2.6.9/include/linux       include
% rsync -avz /usr/src/kernel-source-2.6.9/include/asm-i386/   include/asm
% rsync -avz /usr/src/kernel-source-2.6.9/include/asm-generic include

とかする.

SerioWare の header の準備

copy していた SerioWare の header を /work/myn/cross/i686-pc-linux-gnu につっこむ.

% cd /work/myn/cross/i686-pc-linux-gnu
% rsync -avz include0/*.h  include
% rsync -avz include0/sys  include
% rsync -avz include0/gnu  include
% rsync -avz include0/bits include

これぐらいで充分ぽい.なお,SerioWare の sigthread.h の問題だと思うが 以下のパッチが必要だった.

[/work/myn/cross/i686-pc-linux-gnu/include/bits/sigthread.h]
-extern int pthread_kill (pthread_t __threadid, int __signo) __THROW;
+extern int pthread_kill (pthread_t __thread, int __signo) __THROW;
compile

以下で.

% cd /work/myn/serio
% mkdir cross-gcc
% cd cross-gcc
% ../gcc-3.4.3/configure \
--build=i586-pc-linux-gnu \
--host=i586-pc-linux-gnu \
--target=i686-pc-linux-gnu \
--prefix=/work/myn/cross \
--with-headers=/work/myn/cross/i686-pc-linux-gnu/include \
--enable-languages=c \
--disable-shared --disable-threads --with-newlib
% make -j6
% make install

これぐらいでいけた.ちなみに make する時に i686-pc-linux-gnu-ar と i686-pc-linux-gnu-ranlib が使われるようなので, それらは適当な PATH のとおっている directory に copy して使った.

というのは,

export PATH=/work/myn/cross/bin:$PATH

とかして混乱するのが嫌だったので.

ちなみに,この状態で

/work/myn/cross/bin/i686-pc-linux-gnu-gcc
/work/myn/cross/i686-pc-linux-gnu/bin/gcc

とかができるが,ひとまずこれは使わない.

ちなみに使ってみると,

/work/myn/cross/i686-pc-linux-gnu/bin/ld: warning: ld-linux.so.2, needed by /lib/libc.so.6, not found (try using -rpath or -rpath-link)
/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol_skip@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_rtld_global@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_lookup_versioned_symbol@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_start_profile@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_check_map_versions@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_mcount@GLIBC_2.1'
/lib/libc.so.6: undefined reference to `__libc_enable_secure@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_get_origin@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_dst_substitute@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_debug_state@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_init@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_dst_count@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_out_of_memory@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_signal_error@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_debug_printf@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_r_debug@GLIBC_2.0'
/lib/libc.so.6: undefined reference to `_dl_map_object_deps@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_unload_cache@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_relocate_object@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_tls_symaddr@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `__libc_stack_end@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_argv@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_catch_error@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_lookup_symbol_skip@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_lookup_symbol@GLIBC_PRIVATE'
/lib/libc.so.6: undefined reference to `_dl_map_object@GLIBC_PRIVATE'

みたいな寒いエラーメッセージが返ってくる.

ちなみにこのエラーメッセージの一行目は下の作業で SerioWare の ld-linux.so.2 を用意してやると消える.他は当然無理.

cross gcc の compile (2)

library の準備

copy していた SerioWare の library を /work/myn/cross/i686-pc-linux-gnu につっこむ.

% cd /work/myn/cross/i686-pc-linux-gnu/lib
% ln -s ../lib0/* .
% ln -s ../lib1/* .

この状態では,

[/work/myn/cross/i686-pc-linux-gnu/lib/libc.so]
GROUP ( /lib/libc.so.6 /usr/lib/libc_nonshared.a )

となっているので,これを

[/work/myn/cross/i686-pc-linux-gnu/lib/libc.so]
GROUP ( /work/myn/cross/i686-pc-linux-gnu/lib/libc.so.6 /work/myn/cross/i686-pc-linux-gnu/lib/libc_nonshared.a )

と変更する.これが重要.非常に.

compile

この段階でようやく /work/myn/cross/bin に PATH をとおす.

% export PATH=/work/myn/cross/bin:$PATH

で,

% cd /work/myn/serio
% mkdir cross-gcc2
% cd cross-gcc2
% ../gcc-3.4.3/configure \
--build=i586-pc-linux-gnu \
--host=i586-pc-linux-gnu \
--target=i686-pc-linux-gnu \
--prefix=/work/myn/cross \
--enable-shared
% make -j6
% make install

これで,

/work/myn/cross/bin/i686-pc-linux-gnu-gcc
/work/myn/cross/i686-pc-linux-gnu/bin/gcc

ができて, こいつらが SerioWare の glibc を link するような gcc になっている.

target binutils の compile (SerioWare で動く binutils)

% cd /work/myn/serio
% mkdir target-binutils
% cd target-binutils
% ../binutils-2.15/configure \
--build=i586-pc-linux-gnu --host=i686-pc-linux-gnu \
--prefix=/work/myn/cross/new
% make -j6
% make install

ここで,

--build=i586-pc-linux-gnu --host=i686-pc-linux-gnu

は,i586-pc-linux-gnu (Debian) 上で i686-pc-linux-gnu (SerioWare) 向けの バイナリをつくるという意味. これで,i686-pc-linux-gnu-gcc を使ってくれる.

ちなみに /work/myn/cross/new に突込んでいる.これをあとで SerioWare 側に rsync しようというもくろみ.

target gcc の compile (SerioWare で動く gcc)

% cd /work/myn/serio
% mkdir target-gcc
% cd target-gcc
% ../gcc-3.4.3/configure \
--build=i586-pc-linux-gnu --host=i686-pc-linux-gnu \
--prefix=/work/myn/cross/new
% make -j6
% make install

binutils と同様.

SerioWare 側に転送する

% rsync -avz /work/myn/cross/new serioware:

これで serioware:new 以下に /work/myn/cross/new が copy られる.

なお syslimits.h がみつからなくて,serioware 側で gcc が動かなかったので, 以下もした.

% rsync -avz /work/myn/cross/lib/gcc/i686-pc-linux-gnu/3.4.3/include/syslimits.h serioware:new/lib/gcc/i686-pc-linux-gnu/3.4.3/include/

SerioWare 側,設定

いきなり

% gcc

とかすると SEGV でおちた...

これは先に入れた trouble の原因である

/usr/local/lib/libgcc_s.so.1

が悪いらしい.ということで

# cp new/lib/libgcc_s.so.1 /usr/local/lib/libgcc_s.so.1

ちなみに

% export LD_LIBRARY_PATH=/home/myn/new/lib:/usr/lib

とかしても動くようになるが, この場合 binutils の native compile で, うまくこの環境変数を使ってくれなくて, ことごとく SEGV でおちる状態になってしまった...

また,compile 時に header が無いとか,crt1.o が無いとか怒られるので,

% cd ~/new/lib/gcc/i686-pc-linux-gnu/3.4.3
% cp -av /usr/lib/crt*  .
% cp -av /usr/include/* include

してごまかした.また sigthread.h の修正が cross compiler 作成の際に必要だったように, SerioWare 側でも必要だった.

binutils native compile @SerioWare

% export PATH=/home/myn/new/bin:$PATH

しておいて,普通に ./configure ; make ; make install でいけた.

gcc native compile @SerioWare

binutils と同様. ちなみに gcc-core (つまり c++ とかは無し)を install した.

さらに native compile @SerioWare

cross compiler でつくった native compiler で compile しただけだと なんだか不安なので,一応 native compiler でさらに compile.

% export PATH=/usr/local/bin:$PATH

して,

g++ も欲しかったので gcc は gcc-core じゃないやつで,

% ./configure --enable-languages=c,c++
% make
% make install

した.

[PC周辺] つぶねこ POP バグ修復 (20041219)

[myn:2004121601] ですが [chess:200412171335] で閉じた模様.

関連リンク

[PC周辺] つぶねこ POP バグ報告 (20041216)

[myn:2004070400]とか [chess:200407031353]とかみたいな症状にまたなっている模様...

全ての画像 POP で表示箇所が限定されてしまっています.

http://upload.meganecco.org/files/1103222272.08507.jpg

User Agent は以下.

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5)
Gecko/20041207
Firefox/1.0 (Debian package 1.0-5)

なお,以下の Windows 版 firefox ではまともに表示されるっぽい...

Mozilla/5.0 (Windows; U; Windows NT 5.0; ja-JP; rv:1.7.5)
Gecko/20041108
Firefox/1.0
関連リンク
参照リンク

[PC周辺] gtkpod (20041216)

gtkpod なのであるが, debian の場合 0.72-2-2 とかいうヴァージョンが最新版であり, つまりこの場合「On-The-Go プレイリスト」を読んでくれない.

と,いうことで,0.85.0 の debian パッケージを作ってみた.

% tar zxfv gtkpod-0.85.0.tar.gz
% cd gtkpod-0.85.0
% dh_make -e myn(at)meganecco.org -f ../gtkpod-0.85.0.tar.gz
% dpkg-buildpackage -rfakeroot
% sudo dpkg -i ../gtkpod_0.85.0-1_i386.deb

gtkpod の configure で,結構いろいろなライブラリが要求されるので, それら(lib*-dev みたいなやつ)は事前に入れておく.

関連リンク
参照リンク

[PC周辺] 中国語入力環境@Emacs (20041213)

(setq default-input-method 'chinese-tonepy-punct)

としておいて,C-\ か,

C-u C-\ chinese-tonepy-punct

か,

## default-input-method: chinese-tonepy-punct

とかを各 file に書いておくか(## は適宜コメント形式にあわせて変更).

で,hao3chi1 や pi2jiu3 で「好吃」とか「啤酒」とかが出る.

関連リンク

[PC周辺] A9 toolbar for firefox (20041211)

Linux 版 firefox の話ですが, toolbar に日本語のキーワードを入れて検索しようとすると, 見事に化けます...

関連リンク
参照リンク

[PC周辺] 不正中継 / spammer check (20041210)

<URL:http://www.declude.com/junkmail/support/ip4r.htm> が網羅的でよさげ.

[PC周辺] A9.com の firefox 向け ``Search Engines'' plugin (20041210)

今は <URL:http://www.mozilla.org/products/firefox/central.html#central-engines> にもありますが, <URL:http://mycroft.mozdev.org/quick/a9.html>

関連リンク
参照リンク

[PC周辺] HDD 性能 (20041209)

さらにやるきなしなしに NotePC についてた TOSHIBA MK4020GLS *7とかも調べてみた.

% sudo hdparm -t /dev/hda
/dev/hda:
 Timing buffered disk reads:   66 MB in  3.04 seconds =  21.71 MB/sec

遅いな...

関連リンク

[PC周辺] iPod HDD 性能 (20041205)

iPod の HDD の速度を計ってみた.

% sudo hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads:   42 MB in  3.05 seconds =  13.76 MB/sec

ちなみに ST340015A *8 とかいう IDE の適当 HDD の速度は,

% sudo hdparm -t /dev/hda
/dev/hda:
 Timing buffered disk reads:  124 MB in  3.03 seconds =  40.92 MB/sec

ぐらい.

200MB 程度の動画の物理的移動とかに普通に使ってもいいのかもしれない.

関連リンク
参照リンク

[PC周辺] iPod (20041201)

買った.[snow:02940] によると

あまり珍しくない

らしいが,実は職場ではだれも持っていなかったりする.

音楽関係の人々であつまったりすると, 結構な割合いで持っているんですが.

で,なにやらはじめは初期化しないといけない,という噂を聞いたので, Windows 計算機がてもとになかったので,おもむろに Linux でやってみた.

% sudo cfdisk /dev/sda
% sudo mkfs.vfat -F32 -n "ipod" /dev/sda1

で...

というか,cfdisk でパーティションが切られてなさげだったので, おもむろに全部 /dev/sda1 にしてしまったのであるが, どうやら iPod の kernel みたいなものまで消してしまったっぽいことが発覚 (普通は /dev/sda2 に mp3 とかを突込んでいくことになるらしい).

だたしブートローダは無事なわけで,

で,また林檎マーク,というループ状態になってしまった.

かなりとほほ.

ということで Windows で初期状態に復元して,現在 gtkpod で使用中. かなり普通に使える.

関連リンク
参照リンク

[PC周辺] apacha2 + php4 + mysql @debian (20041201)

% sudo apt-get install mysql-server mysql-client
% sudo apt-get install php4-cgi
% sudo apt-get install php4-mysql
% sudo apt-get install libapache2-mod-php4

ぐらいでそれっぽいものがインストールされる.

ただしこれだけでは mod_php4 から mysql の関数を呼べない.

Fatal error: Call to undefined function: mysql_connect() in /var/www/hoge.php on line 78

みたいな感じで怒られる.調べてみると,

% diff -u0w  /etc/php4/a*/*
--- /etc/php4/apache/php.ini    2004-12-01 09:23:53.000000000 +0900
+++ /etc/php4/apache2/php.ini   2004-12-01 11:25:49.000000000 +0900
@@ -1078 +1077,0 @@
-extension=mysql.so

となっていたので,どこか(どれかの pachage)で apache2 用の設定がされなかったっぽい. /etc/php4/apache2/php.ini に extension=mysql.so を追記して, 問題解決.

ついでに,/etc/apache2/apache2.conf で,

AddDefaultCharset     ISO-8859-1

とかになっていて,default で HTTP の Header 部分が,

Content-Type: text/html; charset=ISO-8859-1

になって,かなり感じ悪かったので, AddDefaultCharset の行を削除...

関連リンク
参照リンク

[PC周辺] iPod (20041127)

現在 26900円になっています. 普段が 28140円なので,1240円お得. えと,えと,さらに最大 10% 還元.

というか,iPod 全般的に安くなってるし...

40G を衝動買いしてしまいそう...

ちなみに iPod Photo は値段かわらず.

関連リンク
参照リンク

[PC周辺] rd-mode memo (20041123)

M-x describe-mode

によると,

C-c C-u		rd-insert-url
C-c C-y		rd-yank-as-url
C-c C-v		rd-cite-region

C-c ESC y	rd-yank-pop-as-url

C-c TAB b	rd-insert-verb
C-c TAB f	rd-insert-footnote
C-c TAB u	rd-insert-reftourl
C-c TAB r	rd-insert-ref
C-c TAB i	rd-insert-index
C-c TAB k	rd-insert-keyboard
C-c TAB v	rd-insert-var
C-c TAB c	rd-insert-code
C-c TAB e	rd-insert-emphasis

らしい.知らなかった....

今まで色をつけるだけぐらいにしか rd-mode を使ってなかった...

[PC周辺] Big Brother (20041118)

Big Brother という監視ソフトがあるんですが, なんで「Big Brother」という名前なのかが妙に気になっていたのですが, どうやら, <URL:http://internet.watch.impress.co.jp/www/column/autobahn/0112.htm> という私生活を監視する TV 番組に由来するっぽい. <URL:http://bigbrother.channel4.com/bigbrother/> とか.

ちなみに日本でも 「卵の館」 とかいう番組があって,これはインタネットで常時中継されてました. あと電波少年の企画でもこういうの結構ありましたっけ.

ちなみに卵の館は, スタッフと出演者がカメラに映らないところで SEX をしたから急に打ち切りになったとかそういう噂がありますが.

<URL:http://curry.2ch.net/tv/kako/973/973147255.html>

[PC周辺] Debian sed 4.1.2-2 (20041118)

<URL:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=281601>

info がこわれてるんですけど...

関係ないけど <URL:http://www.debian.org/Bugs/> って比較的使えるもんだなと 思って若干びっくり.

[PC周辺] ちぇすがひろった Pen3-1GHz x2 (20041116)

Pen3 を2つも拾ってしまうと, やはり Linux で SMP にするしかないでしょう...

某所の環境では SUPERMICRO SUPER 370DE6 とかいう M/B で プロキシマシン他として活躍している模様.

<URL:http://www.kakaku.com/sku/price/054072.htm> によるとかなり値をはるようで瞬殺却下されそうですが.

というか SUPERMICRO 高すぎ.

関連リンク

[PC周辺] Amazon.co.jp リンク (20041116)

なんとなく Amazon.co.jp なリンクを表示するようにしてみた. JavaScript が Off ならば当然表示されないわけで.

レイアウトは微妙にかっこうわるいかもしれないけど, まあそこはあまりつっこまないということで.

ちなみに 1024x768 @firefox で最低限見れるようにはつくっているつもり.

関連リンク
参照リンク

[PC周辺] bogofilter と BerkeleyDB と NFS と (20041116)

bogofilter (一般的な spam filter) は ~/.bogofilter/ 以下に BerkeleyDB で db をつくっていくわけですが, tcp,rsize=8192,wsize=8192 といった option で NFS mount した ~ の場合,うまく lock できずに, bogofilter が動いてくれませんでした. 他のところに問題があるのかもしれませんが,ともかくだめでした.

具体的には,

open("/home/hoge/.bogofilter/lockfile-p", O_RDWR|O_SYNC) = 3
lseek(3, 0, SEEK_CUR)                   = 0
lseek(3, 0, SEEK_SET)                   = 0
lseek(3, 0, SEEK_CUR)                   = 0
read(3, "0", 1)                         = 1
lseek(3, 0, SEEK_CUR)                   = 1
read(3, "0", 1)                         = 1
lseek(3, 0, SEEK_CUR)                   = 2
read(3, "0", 1)                         = 1
lseek(3, 0, SEEK_CUR)                   = 3
(snip)
read(3, "0", 1)                         = 1
lseek(3, 0, SEEK_CUR)                   = 1024
read(3, "", 1)                          = 0
lseek(3, 0, SEEK_SET)                   = 0
mkdir("/home/hoge/.bogofilter", 0755) = -1 EEXIST (File exists)
open("/home/hoge/.bogofilter/lockfile-d", O_RDWR|O_CREAT|O_EXCL, 0644) = -1 EEXIST (File exists)
open("/home/hoge/.bogofilter/lockfile-d", O_RDWR) = 4
fcntl64(4, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = -1 ENOLCK (No locks available)
write(2, "bogofilter: lock(/home/hoge/."..., 75bogofilter: lock(/home/hoge/.bogofilter/lockfile-d): No locks available
) = 75

で,「No locks available」とか言って怒られます. 期待される動作は,

fcntl64(4, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0

なんですが...

ともかく,local disk の適当な箇所を ~/.bogofilter に ln -s しておくことにする.

参照リンク

[PC周辺] Apple iPod mini 4GB (20041115)

26900円になっていたので買おうかと思ったのですが, いつのまにか28140円にもどってました...

さっさと週末のうちに買っておけばよかった...

関連リンク
参照リンク

[PC周辺] JavaScript 化 (20041113)

ナビ を JavaScript 化. やるきなしなトップメッセージも JavaScript 化. 使った method は document.write() だけ,やるきなしなし.

関連リンク
参照リンク

[PC周辺] A9 (20041111)

<URL:http://a9.com/>

Amazon 子会社が運営しているらしい. なんか結構便利っぽいかもしれない.

参照リンク

[PC周辺] esd cascade (20041107)

なんというか,esd を cascade 接続してみた. つまり remote host (hoge)で

% esd -public -tcp -port 20000

としておいて,それに対して手元のマシンでは esddsp を使って esd を立ち上げる.つまり,

% esddsp -s hoge:20000 esd

とか.普通に, 手元のマシンの esd をたたくと,remote host から音がなる.なんかすごい.

host0% esd -public -tcp -port 20000
host1% esddsp -s host0:20000 esd -public -tcp -port 20000
host2% esddsp -s host1:20000 esd -public -tcp -port 20000
host3% esddsp -s host2:20000 esd -public -tcp -port 20000
host4% esddsp -s host3:20000 esd -public -tcp -port 20000

とかすると無限に cascade できたりして...

計算機パワーがあったら, 途中で ssh とかをかまして通信路を圧縮してみるといいかもしれない.

ちなみに,しばらく前, KDE を使っていたときは aRts が立ち上がっていたので,それを叩いて音を出していたんですが, 重いわりに,すぐ落ちるし,かつ使い勝手もいまいちなので, 最近は esd を再びつかっています.

参照リンク

[PC周辺] smartmontools (20041107)

ちぇす がたまに話題にしているが,S.M.A.R.T なんてなんのことか良く知らない, というか興味がなかったわけであるが, ふと思いついたので使ってみた.

% sudo apt-get install smartmontools

default の状態だと smartd が起動しないので,

[/etc/default/smartmontools]
enable_smart="/dev/hda"
start_smartd=yes

とかして,

% sudo /etc/init.d/smartmontools start

man smartd によると log が syslog (/var/log/daemon.log とか)に流れるらしいので, これでしばらく様子を見てみる.

参照リンク

[PC周辺] firefox の TextArea/Field でのキーバインド (20041107)

まず User Agent を晒してしまうと,

Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.3)
Gecko/20041102
Firefox/1.0RC1 (Debian package 0.99+1.0RC1-3)

なわけですが(というか Debian sid のもの), 1.0RC とか名乗り初めたぐらいから TextArea/Field でのキーバインド(の仕様?)が変更された模様です. 以前は Emacs (というかいわゆる readline) のキーバインドが 利用できていたわけですが.

mozillaZine 日本語版 - MZ-jp フォーラムの 記事 によると,

Bug 257405 - Use gtk2 native keybindings for input and textarea

ということで gtk2 のバインディングが利用されるように 変更されたということらしいです.

記事にもあるとおり ~/.gtkrc-2.0 に

gtk-key-theme-name = "Emacs"

を書いておけばいいらしいです.

この firefox の仕様変更のためにかなり最近効率がおちていたので バインドをもとにもどせてかなりハッピー.

関連リンク

[PC周辺] つぶちぇすもにた 更新 (20041106)

なんとなく <URL:http://myn.meganecco.org/chess/?rss> で RSS を吐くようにしてみた.ついでになんとなく UTF-8 化.

やるきなしなし,いやがらせ.

関連リンク

[PC周辺] EPIA-N8000 (20041104)

[myn:2004042001][myn:2004052600] の話なわけですが, そろそろ発売されるっぽい...

関連リンク
参照リンク

[PC周辺] namazu UTF-8 query (20041030)

[myn:2004102700] の 「UTF-8 でクエリが namazu に渡される」ほげほげですが, 以下のやるきなしなしスクリプト(CGI)で回避することにしました.

#!/usr/local/bin/ruby

require "cgi"
require "uconv"

class CGI
  def redirect(url); out({"status"=>"REDIRECT","location"=>url}){url} end
end

cgi=CGI.new("html4Tr")

begin
  q=cgi.params["query"][0]
  q=Uconv.u8toeuc(q)
  q=CGI.escape(q)
  q="whence=0&max=20&result=normal&sort=score&query=#{q}"
  cgi.redirect("http://myn.meganecco.org/namazu/?#{q}")
rescue
  cgi.redirect("http://myn.meganecco.org/")
end
関連リンク
参照リンク

[PC周辺] icewm memo (20041030)

なんか shortcut key の設定もできるようなので,してみた.

% cp /etc/X11/icewm/keys  ~/.icewm
% vi ~/.icewm
-key "Alt+Ctrl+t"               xterm
+key "Alt+Ctrl+t"               Eterm

やるきしにゃしにゃ.

Title Bar を Double Click で,縦方向最大化,という設定にしたいのだが, やりかたがわからず放置.ただし,縦方向最大化は

Alt+Shift+F10 or Shift+(Title Bar Double Click)

ならしいので,とりあえずはそれを使うことにする.

参照リンク

[PC周辺] icewm (20041030)

KDE の重さに辟易としてきたので,昔私が qvwm を使っていたころ 同僚が「軽い」と言って使っていた icewm を使いはじめる.

カスタマイズ上等!などと叫びながらとりあえず,

mkdir ~/.icewm
cp /etc/X11/icewm/winoptions  ~/.icewm
cp /etc/X11/icewm/toolbar     ~/.icewm
cp /etc/X11/icewm/preferences ~/.icewm

winoptions には Window の挙動に関する記述, toolbar には TaskBar に表示される quick launcher に関する記述, preference には icewm 全般の設定が入っているっぽい. 当然 Debian での話.

で,toolbar は,

[toolbar]
prog XTerm xterm x-terminal-emulator -ls
prog FTE fte fte
prog Mozilla mozilla mozilla

となっていたので,まずすべて comment out. preferences は,

@@ -200 +200 @@
-# TaskBarShowMailboxStatus=1 # 0/1
+TaskBarShowMailboxStatus=0 # 0/1
@@ -209 +209 @@
-# TaskBarShowWorkspaces=1 # 0/1
+TaskBarShowWorkspaces=0 # 0/1
@@ -218 +218 @@
-# TaskBarShowTray=1 # 0/1
+TaskBarShowTray=0 # 0/1
@@ -257 +257 @@
-# ShowProgramsMenu=1 # 0/1
+ShowProgramsMenu=0 # 0/1
@@ -392 +392 @@
-# TaskBarCPUDelay=500 # [10-3600000]
+TaskBarCPUDelay=3000 # [10-3600000]
@@ -398 +398 @@
-# TaskBarNetDelay=500 # [10-3600000]
+TaskBarNetDelay=3000 # [10-3600000]
@@ -1159 +1159,2 @@
-WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
+# WorkspaceNames=" 1 ", " 2 ", " 3 ", " 4 "
+WorkspaceNames=" 1 ", " 2 "

ぐらいで修正.意図は,

ぐらい.winoptions は,

XMMS_Playlist.ignoreWinList: 1
XMMS_Equalizer.ignoreWinList: 1
XMMS_Playlist.ignoreQuickSwitch: 1
XMMS_Equalizer.ignoreQuickSwitch: 1

ぐらいを追記してやって, QuickSwitch (task switch / swicher) や WinList で, xmms の playlist と equalizer を無視するようにしてやる.

これで,かなり使えるようになった.軽いし.

参照リンク

[PC周辺] CSS の position: fixed (20041026)

<URL:http://www.htmq.com/style/position.shtml> とか, スクロールしても固定位置に表示しつづけるというものなわけですが, IE ではサポートされていないっぽい. background は fixed にすることができるようであるが...

左に表示するようにしてみたナビゲーションですが, fixed にしてたんですが,IE で見るとかなりしょぼいことになったので, とりあえず position: absolute で行くことにした.

ユーザエージェント毎に CSS を切り替えるというのも, 解として考えられるが,面倒なのでパス.

追記

iframe に関しても IE は,

<BASE TARGET="_top">

とかを解釈してくれないっぽい.

関連リンク
参照リンク

[PC周辺] toogle (20041026)

<URL:http://www.c6.org/toogle/>

いいな,こういうの.

ちなみに AA-lib とかを使ってたりするのだろうか?

[PC周辺] SEO (20041026)

某 WEB デザインをしている友人から電話.

最近クライアントが下手に SEO (Search Engine Optimization) という言葉を知ってしまっているがために, デザインに関しても「SEO 対策,よろしくね」とか言われるそうだ.

タイトルにちゃんと内容にマッチした言葉を入れるだとか, きちんと html を書いて, (そういう意味で*9) まともなコンテンツを製作するだとか, あとは,最近はあまりロボットが見てくれない例の META TAG を使うだとか, そういう小手先のことはできるわけですが,所詮小手先. まあ,ディレクトリ型のポータルにいろいろ登録する,とかもありますが, これはデザインとは関係がない. というか,普通に見易くコンテンツを構成すれば, 普通に Google とかが拾ってくれると思うが....

結局,(Google のランク上位の)大きなサイトからリンクしてもらうだとか, 広告料払ってほげほげするとかしか, 目に見える効果とかはすぐに出ないわけで, その友人は,そういうことをクライアントに説明する言葉を考えているそうな.

ということで,本日友人から入手した情報のメモ.

SEO で思い出したので書いておく.ゴッゴル *10

[PC周辺] 富士フイルム F420 (20041019)

img:http://images-jp.amazon.com/images/P/B00008B1CA.09.MZZZZZZZ.jpgF402 *11 を愛用してて,ISO 800 をサポートす るこれの後継は img:http://images-jp.amazon.com/images/P/B0000UMW92.09.MZZZZZZZ.jpgF420 *12 なわけで,他の性能も,

とかで,まあ許容できる不要な機能の付加かなあ,と.安いし.

がしかし,積極的に購入する理由がなくなりつつあるので, とりあえず放置.

関連リンク
参照リンク

[PC周辺] デジカメ購入検討中 (20041014)

諸事情によりまたデジカメを購入しようかと画策中. 記録マニアの私としては,

あんまりまだ調べていないけど,とりあえず,

ぐらいを候補にあげておく.ちいさいので.

というか,こうやって考えると, 今使っている「FinePix F402」は完全に私の要求を満たしてるわけで, そもそも本当に新しいのを買うのだか...

参照リンク

[PC周辺] *conv (20041002)

なんかいろいろあって混乱してきた.

[PC周辺] IE でこのページの表示が真白になる (20041002)

[myn:2004093002] の続き.

[chess:200409302354] によると,

<meta http-equiv="Content-type" content="text/html; charset=utf-8" />

の前に

<title>MYNやるきなしなし</title>

とかしているのがだめならしい. これって,つまり rd2html-lib.rb がだめということなのでは...

とりあえず,

module RD
  class RD2HTMLVisitor < RDVisitor
    def html_head
      ret = %|<head>\n|
      ret << html_content_type + "\n" if html_content_type
      ret << html_title + "\n"
      ret << link_to_css + "\n" if link_to_css
      ret << forward_links + "\n" if forward_links
      ret << backward_links + "\n" if backward_links
      ret << %Q[</head>]
    end 
  end
end

で override することにした.

関連リンク

[PC周辺] IE でこのページの表示が真白になる (20040930)

との報告を各方面から受けるわけですが, 私は firefox で確認しているのでそんなことは知りません.

ちなみに, IE でエンコード設定が「日本語(自動設定)」になっていると, このページは Shift_JIS と判定されて NG ならしいです.

エンコードを UTF-8 にするとか,なんとかしてみてください.

関連リンク
参照リンク

[PC周辺] Windows で自動起動な CD-R をつくる (20040928)

の atrunmk.exe を使えばいいらしい.というか,いつもこれを使っている.

ちなみに,

[Autorun]
open=start "index.html"

とかは書けないらしい.

[PC周辺] auctex (20040927)

LaTeX を書くときに昔から auctex を愛用しているわけですが, 最近の version の auctex は \section{hoge} の hoge の font を(Emacs 上 で)大きく表示するので感じが悪い.

と,いうことで,.emacs に

(setq font-latex-title-fontity 'color)

とかを書いておくと,色が変化するだけになるっぽい. font を大きくしたければ(default の状態),

(setq font-latex-title-fontity 'height)

とすればいいらしい.

参照リンク

[PC周辺] krusader (20040920)

とかいう filemanager の存在を知る.

<URL:http://krusader.sourceforge.net/>

http://upload.meganecco.org/files/1095680434.35464.png

そして K-Launcher を思い出す...

[PC周辺] apache2 on Debian (20040916)

なんか apache2 ですが,設定の仕方が apache の時に比べ若干変更になって いるのでメモ.ただし Debian 向け.

Debian での apache2 の設定は /etc/apache2 以下にあって,そこの README に細かいことがいろいろ書いてある.

なんというか,symlink を貼って module の有効/無効を切り替えるというの は,過去の設定の履歴が残らないので,甚だ感じが悪いような気がするのです が,これってどうなんでしょうな...

text file に module の有効/無効を書くんだったら RCS で履歴を管理できた りするわけですが.

apache2.conf

「main configuration file」らしい. とりあえず ~/public_html/ を無効にして,cgi が動くように設定.

-#UserDir disabled root
+UserDir disabled
-#AddHandler cgi-script .cgi
+AddHandler cgi-script .cgi

まだ Debian の default の状態では,

Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
Include /etc/apache2/httpd.conf
Include /etc/apache2/ports.conf
Include /etc/apache2/conf.d/[^.#]*
Include /etc/apache2/sites-enabled/[^.#]*

とかになっている.

httpd.conf

空にしておくらしい.

ports.conf

apache2 の起動するポート番号.default は 80.

conf.d/[^.#]*

apache を利用する package がここに設定 file を置くらしい.

mods-enabled/*.load and mods-enabled/*.conf

mods-available/ に *.load と *.conf が用意されていて, 有効にしたい module の設定 file を mods-enabled に symlink するらしい.

a2enmod や a2dismod という symlink を貼る command もあるけど, 自分で link を貼るのと別にかわりない...

sites-enabled/[^.#]*

mods-enabled と同様に site-available/ の file への symlink を貼るらし い.apache2-common package を install してある default の状態では,

% ls -l /etc/apache2/sites-enabled 
total 0
lrwxrwxrwx  1 root root 36 Mar  8  2004 default -> /etc/apache2/sites-available/default

となっていて,この default file に apache2.conf の次に重要げな設定が書 いてある.

DocumentRoot /var/www/
ServerAdmin webmaster@localhost

とか.

参照リンク

[PC周辺] UTF-8 化 (20040914)

してみた.

% LANG=C wget --help | head -1
GNU Wget 1.9.1, a non-interactive network retriever.
% LANG=zh_CN.UTF-8 wget --help | head -1
GNU Wget 1.9.1,非交互式的网络文件下载工具.

とかも書ける...

関連リンク
参照リンク

[PC周辺] mlterm 設定 (20040914)

~/.mlterm/main に設定が書いてあるわけですが, 「Ctrl+右クリック」であらわれる設定ダイアログで,

use_transbg = true
bg_color = black
fg_color = white

みたいな設定をしようとすると,どうやら, use_transbg と bg_color は排他的な設定になっているらしく,

use_transbg = true
fg_color = white

になってしまい,bg_color が default の white になり, mlterm 上でマウスで選択する時とか, 選択している文字が見えなくなってしまう.むう.ということで手動で設定.

% mlterm -v
mlterm version 2.8.0 post/cvs-1.646
関連リンク

[PC周辺] 中国語環境 (20040914)

Debian での話ですが,

[/etc/locale.gen] 追記
zh_CN.UTF-8 UTF-8

して,

# /usr/sbin/locale-gen

で localisation files を生成.あとは,mlterm とかで,

% export LANG=zh_CN.UTF-8

とかするだけで使えるっぽい.

参照リンク

[PC周辺] msnbot/0.11 (20040914)

ちょっと前の話ですが,

65.54.188.60 - - [21/Aug/2004:17:48:03 +0900] "GET / HTTP/1.0" 200 2490 "-" "msnbot/0.11 (+http://search.msn.com/msnbot.htm)"

やつのアクセス頻度はちょっと非道くないか? あと,名前ひけないし...

% dig -x 65.54.188.65

; <<>> DiG 9.2.4rc2 <<>> -x 65.54.188.65
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35919
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;65.188.54.65.in-addr.arpa.     IN      PTR

;; AUTHORITY SECTION:
188.54.65.in-addr.arpa. 3600    IN      SOA     dns.cp.msft.net. msnhst.microsoft.com. 2004072101 1800 900 1209600 3600

;; Query time: 133 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Aug 21 17:50:13 2004
;; MSG SIZE  rcvd: 114
関連リンク

[PC周辺] FreeBSD 6 (20040913)

cvsup すると FreeBSD 6 になったので,compile/install してみた. 手順をまちがえて,なにをしてもバスエラーで落る状態になってしまった.

関連リンク

[PC周辺] VMWare の ポートフォワード (20040910)

Linux 版 VMWare で,NAT で guest OS を飼っているのですが, guest OS の某 port をフォワードしたくて,はまる.

/etc/vmware/vmnet8/nat/nat.conf

20250 = 192.168.92.130:20250
20251 = 192.168.92.130:20251

とかを書けば,

% telnet localhost 20250

とかが,とおるようになるはずなんですが,とおらなくて 数日放置...結局,書く場所の問題で,

[incomingtcp]

の下付近に書かないとだめだったというオチ. 数日間 UDP を無意味にフォワードしてました.とほほ.

[PC周辺] robot... (20040828)

個人で検索エンジンをつくったらどうなるだろうか, とか,ふと思ったので,書いてみたわけですが, クロールするのはいいとして,検索部分がやたら遅い... Ruby で書いてるし(ぉ

というわけで現在の被リンクランクとかを載せてみたり. ドメインがなるべくばらけるように取得した 1664ページ中の上位.

まあ,そんなもんなんかな,と. ちなみに,クロールの始点は適当にアンテナとかから.

そろそろ飽きてきたし,別段やるきもなしなしなので, とりあえずこの辺で手をとめてしまうような気がする....

関連リンク

[PC周辺] つぶちぇすからのいやがらせ (20040826)

なんか, <URL:http://sippo.dyndns.org/~chesu/diary/> にいつも使ってるホストからアクセスすると, OOo Windows 版 のダウンロードが始まってしまうんですが...

ここ最近へなちょこロボットで http://myn.meganecco.org/ を起点にして クロールしまくってたんですが,それに気付かれた,ってことなんでしょうか. むう.

参照リンク

[PC周辺] パノラマ風写真大作戦! (20040826)

使ってみました.結構きれいに仕上がります. もうちょっと自動化できてもいいのかも.

[PC周辺] Debian CMOS clock (20040825)

Dual Boot にしている場合, CMOS clock (ハードウェアクロック) を GMT にしていると,Windows との時差が 9時間できてしまうわけですが, その設定は,/etc/default/rcS にあるらしい.

UTC=yes

だと,CMOS clock が GMT になって,no だと local 時間になる.

[PC周辺] cvs tunnel patch (20040825)

以前は,<URL:ftp://ftp.jpl.org/pub/misc/> にあったわけですが, cvs 1.12.7 以降は patch なしで使えるそうです.

% cvs -d :pserver:anonymous@cvs.w3m.sourceforge.net:/cvsroot/w3m login

とするところを,

% cvs -d ':pserver;proxy=localhost;proxyport=3128:anonymous@cvs.w3m.sourceforge.net:/cvsroot/w3m' login

とかすれば proxy 経由でつながるらしい.

[PC周辺] Online 翻訳 (20040823)

日本語への変換は,<URL:http://www.excite.co.jp/world/> で結構(でも ないけど)できるわけですが,Chinese ⇔ English とか,そういうのもやりた かったので,そういうのができるサイトのメモ.

[PC周辺] Times-Roman and Helvetica (20040821)

[myn:2004082001] の続き.

Tgif で書いた eps を Illustrator で開くと Times-Roman と Helvetica がない,と,怒られる...

Times-Roman と Helvetica って Windows に標準で付いてきたり しないんですね...

.obj から .eps への変換の時に,Makefile で,

.obj.eps:
	tgif -stdout -print -eps -color $< |\
	sed 's,Times-Roman,TimesNewRomanPSMT,;s,Helvetica,ArialMT,' > $@

として,Times-Roman を TimesNewRomanPSMT に Helvetica を ArialMT に 変更するようにして,とりあえず対処.ただし,Font の幅が違うので, うまく Illustrator が文字列を吸い出してくれない(途中で切れる) 場合があって,それは Illustrator で手動で修正.

ちなみに Helvetica はスイスの正式国名「Confoederatio Helvetica」というラテン語 から来ているそうな.

関連リンク

[PC周辺] pstoedit w/ImageMagick w/ghostscript (20040820)

eps を wmf に変換したくて,pstoedit でできるということに気付く. がしかし,``Windows 9x/NT only'' の機能だということに気付かずに, はまりまくり...

で,Windows 版の pstoedit を導入したが, CORE_RL_Magic++.dll が無いとかで command を実行する度にいちいちうるさい. どうやら Windows 版 pstoedit は Windows 版 ImageMagick に依存するらしい...

と,いうことで,Windows 版 ImageMagick も導入... がしかし,さらに

Can't load gswin32c

とかでこける...gs にも依存するのかよ,とかぶつぶつ言いながら, Windows 版 ghostscript を導入.

で,いちおう動くようにはなったけど,eps の中に画像を含めていたり, Tgif で書いたような点がやたら多いような模様をうまく変換してくれなくて, 結局 Illustrator を使うことにした...とほほ.

参照リンク

[PC周辺] cygwin の XWin (20040820)

cygwin で XWin という command で X server が起動できるわけですが, なぜかキーボードが日本語配列になる. たぶんどこかで大昔に設定したような気がするけど,忘れた...

ということで,

% setxkbdmap en_US

で設定.ちなみに私は英語キーボード派. がしかし \ と | が入力できずにはまる...

/etc/X11/xkb/symbols/pc/latin に,無理矢理

key <AC12> { [ backslash, bar ] };

を適当な位置に書いて対処してしまいました... まあ動けば OK.

ちなみに XWin には -keyboard という option があるらしいが, 現在の XWin には実装されていないらしい.むぅ.

[PC周辺] dpkg -l のいつも忘れるあれ (20040819)

単に dpkg -l とすると,長い package 名が欠けて表示されてしまう場合があ るわけですが,

% COLUMNS=200 dpkg -l

とかすると,たぶんまともに表示されます.

[PC周辺] 最近 update した主なもの (20040817)

[PC周辺] 今日思い出した Emacs の機能 (20040809)

M-x makefile-backslash-region
M-x c-backslash-region

もしくは C-c C-\. リージョン内の各行末にきれいに \ をつける,とか,そういう機能. いつも「C-c C-\」を忘れてしまう...

ちなみに,M-x comment-region は C-c C-c.

[PC周辺] Tgif で上付き/下付き文字 (20040809)

はまりました.

というか,メニューとかが日本語化されていない Tgif を使っているので, 「上付き/下付き文字」の英語が わからなかっただけなような気もするのですが.

Edit->Text->Insert Right Superscript (上付き 添字)
Edit->Text->Insert Right Subscript   (下付き 添字)

だそうです.ちなみに Alt-Ctrl-6 および Alt-Ctrl-5 にキーが割り当てられています.

参照リンク

[PC周辺] namazu (20040804)

コンテンツを全部消してしまって, namazu の復帰にとまどったのでメモ. というかはじめからやりなおしたんですが.

% cd myn.meganecco.org
% mkdir namazu
% cd namazu
% mkdir .index
% LANG=ja_JP.eucJP mknmz ../200*.html -O .index
% ln -s /usr/lib/cgi-bin/namazu.cgi index.cgi
% cp /etc/namazu/namazurc .namazurc
% vi .namazurc
@@ -14 +14 @@
-#Index         /var/lib/namazu/index
+Index         .index
@@ -48 +48 @@
-#Replace       /home/foo/public_html/  http://www.foo.bar.jp/~foo/
+Replace       .*/\.\./  /
@@ -69 +69 @@
-#Lang          ja
+Lang          ja
% vi .index/NMZ.head.ja
-<!-- LINK-REV-MADE -->
-<link rev=made href="mailto:webmaster@puti.xxxx.xxxxxxx.gr.jp">
-<!-- LINK-REV-MADE -->
% vi .index/NMZ.foot.ja
-<address>
-<!-- ADDRESS -->
-<a href="mailto:webmaster@puti.xxxx.xxxxxxx.gr.jp">webmaster@puti.xxxx.xxxxxxx.gr.jp</a>
-<!-- ADDRESS -->
-</address>

あとは,

LANG=ja_JP.eucJP mknmz ../200*.html -O .index

を起動するように crontab を仕込む.

参照リンク

[PC周辺] Ruby で再帰正規表現 (20040730)

Ruby で再帰的な正規表現って結局どうやって書いたらいいのか良く判らなくなって, いろいろ探していて見付けたサイト.