起動の途中で(具体的には 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
にすると、起動するようになった。
CONFIG_CRYPTO_MANAGER=m
でも OK になった模様(自動的に CONFIG_CRYPTO_MANAGER2=y となる).
忘れるのでメモ。
% 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
とか。
という組合せで,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])。
[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つ出来てしまう(消えない)問題が解決.
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/
みたいな素敵なことになる(一応動く).
なんかメール転送先のサーバが数日止っていたので,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)
ということらしい.
[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.
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 を記述して対応.やるきなしなし.
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 で対応.
9月頃からの一連の xorg の version up に関連して,icewm で Alt+TAB (quick switch とか言われるあれ)をすると固まるという症状に陥った.
package は以下のような組み合わせ(かなり抜粋).
ということで,他の Window Manager (できれば軽量)を探すことにした. 今回とりあえず候補とした(候補として試してみた)のは以下.
この中から結局 metacity を使うことにした.
ただし metacity には taskbar (Windows 以外では panel と言うらしい) が付属していないので,metacity + gnome-panel で使うことに.
以前のボスに呼び出されてボスの Dell 計算機(Dimension E520 w/Windows Vista Ultimate)の設定とかを行う.
がしかし,
このドライバーは互換性の問題のためブロックされています ドライバ Sonic Solutions DLA 発行元 Sonic Solutions
みたいなダイアログが起動する度に出てうざいので対応.具体的には ここ の適当なスレッドを参照.一番素直な解決法っぽい Dell のサポート で解決させた.
という組合せで,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 して完了.
でも同様なのであるが,なぜか 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/
とかで適当に調達しなければいけない (上を書いたときもそのようにしていたような気がする).
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 することにより解決.
ちなみに,上で混乱した状況と書いているのは,
VMWare を使うと混乱する.
具体的には,VMWare 上の Windows XP では AltIME で caps と ctrl を swap しているのであるが,その設定にひっぱられてか,xserver 側の swapcaps が効かなくなる(もしくは2回適用されてもとにもどっている?).
なんか keyboard の反応が遅くなったような気がする.
VMWare 上ではより顕著で,高速で入力していると普通に入力順が入れ替わる.
とかとか.知人によるとちょっと違う他の症状も出ているとのこと. どれがどの 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
不要なものがいろいろ入っている気がするが.
という組合せで,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
-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 をあげる度に対応することに適当に修正をかけることにする.
ある商用 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
といった感じでやるきなしなし対応.
まず,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.
-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
といった感じに.
[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;
}
とか適当にそれっぽく修正して対応.やるきなしなし.
[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 に失敗するので.
[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.
とかでこける.
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 にあてて回避.
の組み合わせの場合の話.
まず,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
いつのまにか
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> の文字化けを放置.
という組合せの時の話.
vmware-config.pl が insmod をたたくのであるが, どうやら fullpath でたたかないと SEGV (Segmentation fault) で落ちるらしい.
とりあえず <URL:http://www.vmware.com/community/thread.jspa?messageID=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 を起す).
新しい職場 では imap 環境がないらしく, 自前で fetchmail を利用して imap 環境を構築することにした.
まず,qpopper.これは管理者により APOP な設定がされているので popauth で APOP の password をつくってもらう(APOP も この 影響で廃止されそうな雰囲気があるが).
とりあえずやるきなしなしで,
[~/.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.これは 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.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
%inbox@localhost:993!
とかな folder で check (パスワードはログインパスワード). localhost がプライベートネットワークな計算機なので 普通の imap でもいいのだが,なんとなく imaps で.
[~/.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 しないことにする.
なんだか,いつのまにか(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
とか書いてあって,どれを使えばいいのか微妙...
[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時間半ぐらいかかる.
普通の負荷で,
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℃.
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")
をしても.
\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
のみにした.
AVG Free Edition 7.1.409 -> AVG Free Edition 7.5.432
そろそろ 7.1 のサポートが終了するらしいので Update.
コンソールから 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 とかが使えるし).
% cat .qmail-hoge-default |exit 100
とかで.
.qmail-hoge-default が置いてない場合は .qmail-default が参照されるわけであるが, .qmail-default を編集したくなくって, .qmail-hoge-hoge とか一部の mail address (のみ)を残しておきたい時の話.
<URL:http://myn.meganecco.org/files/lsmod.rb>
lsmod の 「Used by」 を graphviz でグラフにする.やるきなしなし.
% ./lsmod.rb | neato -Tpng | display -
みたいな感じで使う.
neato の箇所は dot や twopi や circo や fdp でも可, -Tpng の箇所は -Tjpg でも可.

最近どうも 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 対応ネットワークプリンタの場合, [管理]→[プリンタの追加] から
デバイス URI: lpd://hoge.example.org/CanonPIX
ここで,CanonPIX とかの Printer 名は
% smbclient -L hoge.example.org
とかで探す.
という手順でプリンタを追加. どこかの Page に Windows にぶらさがっている Printer に関しては
smb://hoge.example.org/CanonPIX
とするとか書いてあって若干嵌る.手元の環境では smb:// は N.G. で lpd:// としなければならなかった.
command line から CUPS を使うには,
% echo hoge | a2psj | lpr -P hoge
みたいな感じで lprng と同じ.
[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 を仕込む.
玄箱 KURO-BOX への Debian のセットアップメモ.
玄箱うぉううぉう♪の <URL:http://kuro.dsk.jp/data/dist/install_debian_standalone.txt> を参照しつつ.
以下のコマンドを叩く
# /sbin/mfdisk -e /dev/hda # sh /sbin/mkfilesystem.sh
外から ftp で debian_2006_06_10_dist.tgz を /mnt2/share/debian_2006_06_10_dist.tgz に送る
% ftp Name: root Password: kuroadmin ftp> cd /mnt2/share ftp> put debian_2006_06_10_dist.tgz
Debian のイメージを展開.玄箱で以下.
# cd /mnt # tar zxfv /mnt2/share/debian_2006_06_10_dist.tgz
/mnt が / だと思って以下みたいに file を修正.
[/etc/network/interfaces] auto lo iface lo inet loopback iface eth0 inet static address 10.0.0.6 network 10.0.0.0 netmask 255.255.255.0 broadcast 10.0.0.255 gateway 10.0.0.1
ちなみに,
auto eth0 iface eth0 inet dhcp
は,初期(のイメージの)状態では NG っぽい.
[/etc/hosts.allow] ALL : 10.0.0.0/255.255.255.0 ALL : 127.0.0.1 [/etc/resolv.conf] search meganecco.org nameserver 10.0.0.1 # /usr/bin/write_ok
再起動.玄箱で以下.
# /sbin/reboot
失敗した場合は,
裏ボタン長押し→表ボタン長押し→表ボタンを押して起動
して EM モードに.あとは,
# /bin/mount -t ext3 /dev/hda3 /mnt2 # /bin/mount -t ext3 /dev/hda1 /mnt
して設定をいじる.その後,以下で再起動.
# /usr/bin/write_ok # /sbin/reboot
tmp-kun が嫌なので,myn に変更
% su - (pw: root) # vipw myn:x:1000:100:myn the meganecco lover:/home/myn:/bin/bash # vi /etc/shadow tmp-kun を myn に置換 # mkdir /home/myn # chown myn.users /home/myn # passwd myn # passwd (ついでに root の password も変更)
ssh を入れる
# apt-get update # apt-get install ssh
作業用に rsync と less を入れる
# apt-get install rsync # apt-get install less
時間がとちくるっているので ntp を入れる
# apt-get install ntp ntpdate # vi /etc/default/ntp-servers NTPSERVERS="0.debian.pool.ntp.org" # vi /etc/ntp.conf (追記) server 0.debian.pool.ntp.org iburst server 1.debian.pool.ntp.org iburst server 2.debian.pool.ntp.org iburst server 3.debian.pool.ntp.org iburst # /etc/init.d/ntp stop # /etc/init.d/ntpdate start # /etc/init.d/ntp start
NFS の設定
# apt-get install nfs-user-server # apt-get install nfs-common (statd, lockd 用) # vi /etc/export (10.0.0.3 から mount したい場合) /mnt/share 10.0.0.3(rw,async) # /etc/init.d/nfs-user-server stop # /etc/init.d/nfs-user-server start
HDD の性能を見てみる
# apt-get install hdparm # hdparm -t /dev/hda3 /dev/hda3: Timing buffered disk reads: 64 MB in 1.18 seconds = 54.24 MB/sec
玄箱のコンソールで日本語表示ができるようにする
# apt-get install locales # vi /etc/locale.gen ja_JP.EUC-JP EUC-JP # locale-gen
ちなみに,現在 2台動いている状態.
最近 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 と異っているっぽい.
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 "0123456789" "")
=>("" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" "")
(split-string "0123456789" "" t)
=>("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")GNU Emacs 21.4.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars) of 2006-12-04 on raven, modified by Debian
(split-string "0123456789" "")
=>("0" "1" "2" "3" "4" "5" "6" "7" "8" "9")
(split-string "0123456789" "" t)
=>エラー上記の例だとわかりにくいが, たとえば以下だと Emacs22 の (subr.el の) 方が素直な気がする.
Emacs22
(split-string "0 1 2" " ") =>("0" "1" "2")
(split-string " 0 1 2" " ") =>("0" "1" "2")Emacs21
(split-string "0 1 2" " ") =>("0" "1" "2")
(split-string " 0 1 2" " ") =>("" "0" "1" "2")ちなみに関係ないが 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"]
みたいな.
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 でこける.
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
と,いう感じで直った模様.
Linux 2.6.19-rc1 以降で shfs が使えない のであきらめて sshfs を使うことにした.
sshfs は FUSE (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
とするだけ.ただし,普通にいろいろ怒られたので,メモると,
sshfs から fusermount を叩くのだが,これを実行できなければならない. Debian (sid) の場合,
% ls -l /usr/bin/fusermount -rwsr-x--- 1 root fuse 18368 Sep 10 04:24 /usr/bin/fusermount
という感じなので,fuse group に入る必要がある.
ぐらい(当然 fuse.ko を modprobe しておく必要がある).
ちなみに umount は,
% fusermount -u /home/myn/mnt
という感じで.ちなみに,いろいろ気持ち悪いので,リストすると,
という感じ.
等々の patch のため(他にもあるかも) fs.h が結構変更されてて, 結局追いきれず.
なお [myn:2006090300] は shfs_0.35-6.1 で対応されているみたい.
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
を追記するだけ.
なんというか,たぶん先月ぐらいから, 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 で凌ごうかと思う.
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 がとおるようになる模様.
上記 gcc の option は -x c++ になっていて, つまり c++ で compile しているわけであるが, false やら true やら bool があらかじめ c++ に用意されているためにこけているらしい.
とはいえどう対処したものか...といった感じではあるが, とりあえず上述の問題の kernel header の部分を
#ifndef __cplusplus typedef _Bool bool; #endif
とかするのが吉っぽい.
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 ぽい.
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)'
ロックに失敗したら例外を吐きます.
firefox で general.useragent.extra.firefox を default のものから Netscape/7.2 に 変更 していたのであるが, この状態だと,Gmail で クイック コンタクト (Quick Contact) が表示されないらしい.
ずっと,なんで クイック コンタクト が消えたのか悩んでいたのであるが, うーん,なんというか.
% /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 が行かない.
ということで,
以下のようにして ypbind が dbus を使わないようにする
[/etc/default/nis] YPBINDARGS=-no-dbus
のどちらかで対処する必要があるみたい.
nis (3.17-2) で直った模様 (#388333).
cvs2svn は CVSROOT をまるごと SVN に入れることを想定している(たぶん). かつ SVN の ROOT から trunk,branches,tags という directory を掘って trunk の下に各 module を入れていく(default では).
ということで,今回は CVS の module 1つだけを SVN に移行したかったので, 若干ややこしいことになった.
svn リポジトリの作成.
% SVNROOT=/home/myn/svnroot % svnadmin create $SVNROOT % chmod 700 $SVNROOT
cvs2svn による dump.
% DUMPFILE=/home/myn/tmp/cvs2svn_dump % CVSROOT0=/home/myn/cvsroot % cvs2svn --trunk-only --trunk="meganecco" --dump-only --dumpfile=$DUMPFILE $CVSROOT0/meganecco
cvs2svn は $CVSROOT0/meganecco という感じで CVSROOT 以下の module を full path で指定すると,module 名を認識してくれない.そこで, --trunk-only --trunk="meganecco" とすることで trunk のかわりに "meganecco" を掘らせて,その下につっこむように細工している.
svnadmin による load.
% svn mkdir file://$SVNROOT/trunk % cat $DUMPFILE | svnadmin load --parent-dir trunk $SVNROOT
trunk,branches,tags という directory を掘って trunk の下に各 module を入れていくという しきたり(?)に従い,trunk の下に load するようにしている.
で,いきなり一気に rev 4359 まで行きました. 結構時間もかかった感じ(dump に数分,load に10数分ぐらい).
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
とか.
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 のみ依存するとのこと.
CPUクーラーを交換した人 の記事に...
うちのPCはドスパラの 一番安い構成のものをベースにしているので,根本的にやるきなしなしなのである.
HDD をおもいきり積んだ時(熱対策なしで HDD x4,隙間も無し)に, ぼろぼろと HDD が壊れていって,その時以降ケースはあけっぱなし状態.
というか,ケースFANが付いていない (一度付けようとしたけど,あけっぱでいいやと思ってしまった).
今のところなんとなく安定しているので,エアフローをがんばるとかするより, たまに(これまでの経験からすると半年に一度) 掃除してやれば良いかなあというやるきなしなし加減.
ちなみに,[myn:2006081602]以降, PC が1日ぐらい暴走していたことがあったのであるが, その時の温度は 62℃ になっていた(このまま1日放置されてた...). [myn:2006081602] 以前に同じことがおこった時は MRTG によると 72℃ だったらしい. 帰宅すると部屋が熱で異様な雰囲気だった.
以前は 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.
以前は 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

Metric Grid

English Grid だと常に Grid が 4分割とか 2分割になるので, こっちの方が断然書き易いと思うのだが.
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 を使用中.
夏だから CPU の温度が高くなって良く自宅計算機が 落ちるんだろうと思っていたのであるが, あまりにも落ちまくる(普通の処理で落ちる)ので, ふたたび FAN の掃除.


異様のほこりがたまってた...
普通にしていて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℃ぐらい. 室温にもよるが.
% 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
でもいける模様.
「บาท」とかのタイ語が表示できない場合は ttf-thai-tlwg という package を入れればいいらしい.
ちなみに Emacs でタイ語を入力するには
C-u C-\ thai-kesmanee
もしくは
C-u C-\ thai-pattachote
とする.
なお,配列に関して発音とアルファベットがまったく一致しない. 気になったので,タイの人の使っているPCのキーボードを覗いてみたら, 日本語キーボードでの 「かな入力」(ローマ字入力ではないあれ)と同様に タイ語がキーボードに印刷されてました.
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 の無駄なところにはまった...
Google 検索履歴によると私の検索に関連する上位キーワード ランキングは以下のとおりらしい.
アニメとエロゲとちゅるやさん以外ははずしてるな...5/10 か.
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
をしておけばいいらしい.
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 がかかったみたいで,普通に焼けました.凄いな.
とある domain の すべての mail (ほぼすべてのメールアドレス)を
~/.qmail-hoge-default
という感じの file をつかって, あるメールアドレスに転送していたのであるが, @ の前はランダムに生成した文字列 (@ の後は管理しているドメイン)というメールアドレスに From: を偽装 した spam の bounce mail だらけになってきたので,
% mv ~/.qmail-hoge-default ~/.qmail-hoge-default.orig
した.なんだか.
% 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";
と書いてとりあえず解決.
日本語化をまともにしていない Webalizer を使い続けているわけなんですが, ひさびさに面白かったので紹介.
もちろん「滝川ハリベテル」は「滝川クリステル」が正解. [myn:2004061302]のルールに追加で,
ということらしい.
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 をセットするのが良さげ.
Subject が意味もなく windows-1252 で encode されたメールが届いて, decode できていなかったので,
(setq mime-charset-coding-system-alist (cons '(windows-1252 . iso-8859-1) mime-charset-coding-system-alist))
で対処.
いつも不便しているのであるが, 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 ということなんだと思う.
[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 が無いわけだが...
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"
で普通に動いてくれるっぽい. 細かい設定ができるかどうかとか,パフォーマンスがどうかとかは知らないが.
身の回りの 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 の一部.
[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.
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 に含めたくないのであるが, 当座はこれで.
というのは,非常に昔からある一般的な問題であって, どちらかというと 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
Java に関して [myn:2006013100] で
上位 package が見えない
ということを書いたが,なんというか,public class になっていなかった. default はなんなんでしょうな...調べればわかるんでしょうけど.
ともかく,
public class
と書かないと他の package から見えないらしい.
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 番号への変換を自分で考えなければならなかったような気がする).
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 が 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 で安定動作中.
以下を購入.
HNT-MN1GMA miniSDカード Mシリーズ アダプター付

ハギワラシスコム 1G mini SD カード.SD カードになるアダプター付.
AD-MINISDRB/U2 MiniSDカードリーダー/ライタ(USB)B

ADTEC の mini SD -> USB 変換アダプタ. SD カードを読める機器を持ってなかったので.

PSP 用のものらしい.USB で通信と電源供給を行うもの. 片方の端が USB で,もう片方の端が USB-miniB と電源.
W-ZERO3 付属の電源アダプタ(1A)に比べれば非力(たぶん 500mA)だが, 携帯用として.

持って話をするのが重い,というのと,動画や音楽を聞く用. イヤホンは別に用意,マイクはこの接続コードに付いてる. さらに着信スイッチ搭載.
これで,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
どうも bug っているのか,interface が変更されているっぽい.
という組合せだと,
X-Face: compface: (warning) <stdin>: excess data ignored
とか寒いことになる.ということで,現在,
を利用中...(ちょっと探した感じでは 1.5.1 を見付けられなかったので)
思い出したので続き.
Java では, C-c で Java の process に SIGINT を送った場合の処理を 記述できないらしい. Ruby であれば SIGINT が来ると内部で例外が発生するので, それを rescue (Java の catch 相当) するか, trap が利用できるのであるが.
つまり Java では, GUI を立ち上げて, その Close Button を押した時のイベントを受けとって 終了の処理をするしかないらしい.たぶん.
ここ数日,ものすごく久しぶりに Java を書いてたですよ.
普段はもう shell script と Ruby と C (あと Verilog-HDL も)ばっかりなので,すっかり書き方を忘れてた. はまった点を以下にメモ.
コンストラクタの呼ばれ方
Java の場合,必ず子 class のコンストラクタを呼ぶ前に 親 class のコンストラクタが呼ばれるっぽい.あと,
super();
で親 class のコンストラクタを選んで実行する時は, メソッドの最初に記述しないと怒られる.Ruby の場合は,
def initialize
がコンストラクタのようなもの *2で, これが完全に親 class の initialize を override するので, 非常に混乱した.
上位 package が見えない
package hoge.hogege;
から
package hoge;
な class が見えない.というか import できない.なんだか設定次第なよ うな気もしたが,とりあえずは面倒だったので放置した...
Object.new()
何度も
new Object();
と書くべきところを,
Object.new();
と書いてしまい,なんで compile できないんだろうかと悩む...
class 継承をした時に見える instance 変数
が,なんだか親のものが見えたりして悩む.面倒だったので いろいろと instance method に押し込んで解決させたような気がする. なんかルールがあったような気がしたが忘れた.
Thread の書きかた
そもそもどう書くべきかとか,どう書いたらどう動くとか, そういうことをすっかり忘れてしまっていて,相当なやむ.特に止め方.
また,
synchronized
というのをすっかり忘れていて相当時間を無駄にしたような気がする.
javadoc 向けなコメント
つまりそういうコメントの書き方をすっかり忘れてたので, とりあえず class や method に対して,
/** * ほげほげな method */
というのを書くに留めた.というか /** */ だけは覚えていた.
@param とか @return とかは,書いているうちに思い出したが, あとあと面倒なので思い出してないことにして放置.
等々.なんというか相当初歩的なところでつまずいて, しかもいろいろ場当たり的な対処をしてしまったような気がするが, どうせ今後 Java を書くことはほとんどないような気がするので, まあそれでいいような気がする.
忙しくて,更新全然できなかった.
さて,W-ZERO3 を入手した. WILLCOM STORE で普通に.
いや,なんというか,やはり電話にしては大きい. 話をしていると手がつかれる. ハンズフリーイヤホンマイクが欲しいところ. ちなみに平型イヤホンマイク端子...
で,AH-J3002V から電話帳を移行しなければならなかったのであるが, W-ZERO3 Wiki を参考にあっさり移行できた.ということで,今後の TODO は,
ぐらいか.とりあえず Opera は入れたので,快適に Web は見れるのであるが, なんというかターミナルがないのでいまいちザウルス並に使いこなす自信無し.
map なのであるが,結構大きめの画像で サーバーサイドイメージマップしているのであるが, それを firefox 1.5 でクリックすると, link 先に飛ぶ前になんだか妙なアラインメント (ウインドウに対して画像をアラインメントして表示しようとするっぽい) がかかってしまって,飛びたい先に飛べないっぽい. Linux (Debian) 版でも,Windows 版でも同じ.
ちなみに IE では問題なさげ.
<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 でスクロールバーが出ませんが, それはそれでよしということで.
普段つかっているデジカメが壊れたので新たに購入.
ちなみに普段つかっていたデジカメは
のF402.非常にお気に入りであったのだが,
扱いが非常に悪いので,
という症状があったものの,結構長くつかっていた.
が,先日ついにセンサまわりの接触不良(たぶん)のため なんだか色成分が足りない状況に...
で,いろいろ検討したあげく, 非常に格安な

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

を買うかで非常に悩んだが,結局 F11 (6.3メガネピクセル)を購入. F402 は「修理して使うなら使え」と実家に置いてきた.
あと,今回は,これまでの扱いの酷さを反省し, FUJIFILM AD-FX/BK エアメッシュショルダー(ブラック) も同時購入.
いまどきのデジカメは連写機能とかがついていて,かなり驚いた...
そういや [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)」まだ使えず.
"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\""; \
とする必要がある.
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.
[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 やら酷いことに...
とある 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
する.
で直る.
なんか最近ようやくこういうのの対処法が すぐに思い付くようになってきたような気がする.
Google AdSense な広告を付けてみることにした. いまいちどうカスタマイズしたらいいのか良く判らない, というかやるきなしなしなので,感じ悪くデカデカと貼り付けてます.
というか,
[https://www.google.com/support/adsense/bin/answer.py?answer=9902&topic=134] どのくらい収入を得られるかを知るには、このプログラムに申し込み、 お客様のウェブ ページで広告の掲載を開始するのが一番です。
という AdSense のヘルプは若干如何なものかと思ったり.
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.
いつのまにか,というかメジャーリリースがあったのは知ってたのですが, OpenOffice が 2.0.0 (Debian では 2.0.0-2) になってました.
というか,
% openoffice
で起動しないのでなんでだろうかと相当なやんだのですが,ooffice という command に変更されていたらしい.
あと,なんだか起動がやけに速くなったような気がする.
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 再開.
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 だったのか.
AA (Amazon Affiliate) がメインのコンテンツより先に表示されるのが感じ悪いと, 雑記の人 に指摘されたので後で表示するようにしてみた. 単に .html 内での順番を入れかえただけであるが.
% 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 を生成する必要がある.やるきなしなし.
某シミュレーションツールを利用しようとすると,
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 に時間がかかる...
恒例の速度計測.
/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
する度に速くなる...ということで,以下まとめ.
iPod nano 4G 黒キュア が 通常24時間以内発送だったのでなんとなく購入.
今までよく iPod shuffle (512M) でがんばっていたような気がする.
というか, はやく故障中の iPodを修理に出せばいいのですが.
以下の方針のもと設定.
以下の 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 ..
# 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
[/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 に行くっぽい.
/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 に書く必要が生じる.
/etc/hosts.allow に
ftpd : AAA.BBB.CCC.DDD : allow
を書く.
# 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 で厳しく制限しているのであれば, 他は緩くてもいいかもしれない.
やるきなしなし 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
と書いただけですが.
<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
なんだか 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 を使うようにする...
なんというか,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
ハッピーマンデーにも対応しているらしい.
愛用していた CF-T1RCAXR が,なんというか, 持ち上げるだけで reboot がかかるとかいう素敵な状態になって, 分解してみたけど単純な接触不良とかではないっぽくて原因がつかめず, 結局新たな NotePC の購入を検討することになった.
ポイントは,
ということで結局 T4におちつく.
スペック上は 1260g となっているが, 標準バッテリー(約475g)を 軽量バッテリー(約250g)に変更すると,1035g になる.
ビジネスモデル もあるが,これは
ということらしい. コンシューマ向けは CF-T4GW5AXRで末尾が R になる. で,こっちの保証期間 12ヶ月. だが,マイレッツ倶楽部 で購入すると 3年保証が付く.
うーむ.ということで悩む. 結局 CF-T4GW5AXS か CF-T4GW5AXR なんだが... というか, マイレッツ倶楽部 で購入すると HDD を 40G から 80G にできたりするのか... こっちの線で攻めることにする.
あとは以下の付属品を購入予定.
しかたがないので, libming (cvs版) の package 化を試みることにした.
メモがてら以下手順.
<URL:ftp://astem.ring.gr.jp/pub/linux/debian/debian/pool/main/libm/libming/libming_0.2a.cvs20020110-1.diff.gz> の patch をあてる.
で patch が失敗するが気にしない. この辺の拡張モジュールはそもそも package 化しないつもり.
debian/control をいじる.
libming と libming-dev 以外は不要なので,削除.
debian/rules をいじる.
-$(MAKE) install install-static DESTDIR=$(CURDIR)/debian/tmp +$(MAKE) install install-static DESTDIR=$(CURDIR)/debian/tmp prefix='$$(DESTDIR)/usr'
して,
cd perl_ext && $(MAKE) install PREFIX=$(CURDIR)/debian/tmp/usr cd php_ext && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp cd py_ext && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp PYLIBDIR=/usr/lib/python2.1 cd py22_ext && $(MAKE) install DESTDIR=$(CURDIR)/debian/tmp PYLIBDIR=/usr/lib/python2.2
付近はざっくり削除.また,CHANGES という file はなくなったぽいので,
-dh_installchangelogs CHANGES +dh_installchangelogs
とする.やるきなしなしだ.
util/decompile.c で compile がこけるのでいじる.
gcc -g -O2 -Wall -I. -I.. -I../src -c decompile.c -o decompile2.o decompile.c:112: error: static declaration of 'gIndent' follows non-static declaration read.h:4: error: previous declaration of 'gIndent' was here
で,確認してみると,
[read.h] extern int gIndent; [decompile.c] static int gIndent;
確かに変.
付近をながめてみた感じ, 意図としては object file 内 static 変数 (extern int gIndent とは別物) として gIndent (という変数名)を使いたかったということなのだろうか. いやがらせだ...
ともかく,以下のように patch.やるきなしなし.
-static int gIndent; +static int gIndent0; - untangleBranches(statements, 0, n, BRANCH_NONE, gIndent); + untangleBranches(statements, 0, n, BRANCH_NONE, gIndent0); - gIndent = indent; + gIndent0 = indent;
というか,strk という人が感じ悪いような気がする.
ちなみに gcc は
% gcc --version gcc (GCC) 4.0.2 20050816 (prerelease) (Debian 4.0.1-5)
あとは,
% fakeroot make -f debian/rules binary
するだけ.
remote の計算機から local の X へと openoffice を飛ばしたら メニューがすべて豆腐(□←これ)になってしまって, strace とかしまくって激しく悩んだ.
なんというか,remote 計算機にも Windows の Font が必要ということらしい. ということで [myn:2005022600] を remote 計算機でも実行.
[myn:2005072900]の続き. ちぇす 曰く,
display charset = CP932 unix charset = EUCJP-MS dos charset = CP932
のほうがいいらしい.
EUCJP-MS
って, この patch をあてないと使えないと思っていたのであるが, うちの環境(Debian sid)では,
iconv -l
によると,普通に使えるっぽい.
ちぇす 曰く,sarge でも EUCJP-MS 可ならしい.
いつも忘れるあれ.
UNIX 側が EUC-JP のファイル名を採用している場合は, smb.conf (/etc/samba/smb.conf とか) の [global] の箇所に以下を書いておけばいいらしい.
display charset = CP932 unix charset = EUC-JP dos charset = CP932
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.
<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
とかをどこかに書いておいたらいいらしい.
[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 を起動するようになっているらしい.
% 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");
むぅ...
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
ruby-gecko.rb, つまり,大雑把にいうと Gecko のレンダリングエンジンを Ruby からたたくという代物.
なんというか,firefox に比べさらに不要な機能が付いていないだけ, なんだか高速...
ちなみに,なんとなく Ruby-GNOME2 (といっても Ruby/GTK がメイン) を使いはじめることにする.
[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)))
の箇所.
[myn:2005060801] のようにしたら, なんだか,スレッド表示の際に, スレッド全てに Subject が表示されるようになってしまった...
普通は,「Re: 」を除いて同じものは,表示しないんだけど.うーむ.
[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 に対して付加した部分.
Debian sid の wl-beta package の version が 2.15.1 になったのであるが, なんだか nntp を summary 表示する際に, Subject の MIME Decode をしてくれないっぽい.
通常は 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 にひっぱられて やはりグローバル変数を使ってしまう...
久しぶりに 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 が終るのを相当な時間待つだけ.
以前は <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 したりしなければならなかったのであるが, 若干なんだか使いやすくなったような気がする.
なんだかいつのまにか特許問題云々で, 昔の UI での配布はなくなったらしい.たぶん この辺.
今はもう Linux 上で mencoder ばかりをつかってるわけであるが, その昔 Windows で avi とかをほげっていた時は, 以下の 3本 + 適当自作プログラム/スクリプトをつかっていたような気がする.
大量の画像ファイルをなんだか 色とか輝度とかそういうなんらかの指標でもって分類したくなって, その際に元画像でその指標を算出していたら時間がかかって仕方がないわけで, 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.
はじめに書いた目的のためには,このあたりのコードを利用すればいいっぽい.
というものがあるらしい.
ちなみに本家(TinyURL)は以下.
一瞬,符号化しているのか? と思ったのであるが, 単に DB を持っているだけっぽい.
スラッシュドット ジャパン の 遂に完成してしまった自己複製ロボット という記事に,
と書いてあって,coral 側は mirror ということなのだろうけど, そもそも coral ってなんなのかを調べてみた.
ということらしい.
URLのホスト名の後ろに .nyud.net:8090 をつけると P2P 経由でアクセスできるということらしい.
ここの URL は
となる.なんだか利用者数が少ないのか, ノードが外国に偏っていて,かつノード数が少ないのか,相当とても遅い.
自宅の計算機の 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 の不安定は解決したのであるが, ずっと(少なくとも7年ぐらい)愛用している CRT の iiyama A701G が,なんだかとっても不調.
数分に1回の割合で, パチパチっという音がして電子銃(の制御側?)が初期化されるような感じ. 音がした時,画面は微妙にぶれて微妙にズームして, また直ぐにもとにもどるという,なんともうっとうしい.
このままでは自宅のデスクトップ PC 用に, ついに液晶を買ってしまうかもしれない... ちなみにどうでもいいが 17inch を 1024x768 で使用している.
[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 とかの問題でなくて本当に助かった.
[myn:2005030500] で購入した PC であるが, なんだか大きな file (1G ぐらい) の md5sum をとる度に結果が異なる.
というかそもそも VMWare 上の Windows2000 で大きな file のそういう check (CRC とか)をすると,ことごとくこわれていると判定されたり, そもそも VMWare がブルーバックに落ちるので原因を探りはじめたのであるが.
当初は,
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 を使ってみたりしたのであるが,問題は解 決しなかった.
次に,負荷があがった時に特に不安定になるということがわかったので, 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 を 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 の間隔は相当狭くなっている. なにか対策を考えねばならない...
[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.
[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 なわけであるが,はまったのは以下のポイント.
IDE まわりで,
CONFIG_BLK_DEV_AMD74XX=m
として,amd74xx.ko を組込まないと IDE HDD の DMA が効かない.
OnBoard LAN の Broadcom BCM5751 は 2.6.10 までは Linux の source に tg3 (CONFIG_TIGON3) として付属していたが,2.6.11 ではそれが存在せず, <URL:http://www.broadcom.com/drivers/downloaddrivers.php> から Download してきて compile して入れなければならないということ.
というか,Debian なら bcm5700-source という package があるので,
% cd /usr/src % tar zxfv bcm5700.tar.gz % tar jxfv kernel-source-2.6.11.tar.bz2 % cd kernel-source-2.6.11 % make menuconfig % fakeroot make-kpkg \ --append-to-version -hoge \ --initrd \ --revision 1.0 \ --added-modules bcm5700 \ kernel-image kernel-headers modules_image
で
ができるので,これを dpkg -i で突っ込めばいい.
BIOS で
ACPI APIC Support
を Disabled にしないと LAN ケーブルを刺していても,刺していると認識されない(ぉ
ちなみに BIOS の Version は最新の 1003.
LEADTEK WinFast PX6600 TD (nVidia GeForce 6600 128M) とかいう VideoCard (PCI-E らしい) を刺しているのであるが,
<URL:http://vision.kuee.kyoto-u.ac.jp/~nob/doc/nvidia/nvidia.html>
を参考にしつつ設定してみたが,
Driver "nvidia"
で X が起動してくれない("vesa" ならあがるのであるが). もう,これ,原因不明でなやみまくり.
X は,
(WW) ****INVALID MEM ALLOCATION**** b: 0xd0000000 e: 0xd00fffff correcting (EE) sparse io range (base: 0x3 mask: 0xbffff988)doesn't satisfy (base & mask = mask) (EE) NVIDIA(0): Resource conflicts detected
とかでおちる.
というか,
% find /proc/driver/nvidia /proc/driver/nvidia /proc/driver/nvidia/version /proc/driver/nvidia/cards /proc/driver/nvidia/cards/0 % cat /proc/driver/nvidia/version NVRM version: NVIDIA Linux x86 NVIDIA Kernel Module 1.0-7174 Tue Mar 22 06:44:39 PST 2005 GCC version: gcc version 3.3.5 (Debian 1:3.3.5-12) % cat /proc/driver/nvidia/cards/0 Model: GeForce 6600 IRQ: 5 Video BIOS: ??.??.??.??.?? Card Type: PCI-E
とか,なんだか感じ悪い. ちなみに PCI-E だということを忘れてたので,
CONFIG_PCIEPORTBUS=y
で kernel を作りなおしても同じだった.
# lspci -vv
の該当箇所は以下.
0000:04:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0141 (rev a2) (prog-if 00 [VGA])
Subsystem: LeadTek Research Inc.: Unknown device 2a22
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Latency: 0, Cache Line Size: 0x08 (32 bytes)
Interrupt: pin A routed to IRQ 5
Region 0: Memory at f8000000 (32-bit, non-prefetchable) [size=64M]
Region 1: Memory at c8000000 (64-bit, prefetchable) [size=128M]
Region 3: Memory at fc000000 (64-bit, non-prefetchable) [size=1M]
Capabilities: [60] Power Management version 2
Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [68] Message Signalled Interrupts: 64bit+ Queue=0/0 Enable-
Address: 0000000000000000 Data: 0000
Capabilities: [78] #10 [0001]
ちなみに,
% dmesg
によると,
PCI->APIC IRQ transform: 0000:04:00.0[A] -> IRQ 5 (snip) PCI: Cannot allocate resource region 3 of device 0000:04:00.0 PCI: Failed to allocate mem resource #3:1000000@fc000000 for 0000:04:00.0 (snip) PCI: Setting latency timer of device 0000:04:00.0 to 64
らしい.
nVidia の Chipset のくせに nVidia の GPU が動かないという, これはもう ASUS をうらむしかないな,とか思いつつ, X は起動せずに外から ssh で使う方針に決定.
というか,このままの環境では bcm5700.ko をクロスコンパイルしなければ Pure 64bit 環境が手に入らないようなコスモを感じ, どこかから eepro100 かなにかを入手しようと画策中.
ちなみに amd64 化のためのクロスコンパイルの仕方は <URL:http://www.mm2d.net/linux-workstation/linux-amd64.shtml> が詳しげ.面倒なのでできればやりたくない.
tmpwm と Xnest が気になる...
やっぱり 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
とか書けば使えます.
[myn:2005032800] の続き.
Pentium 4 の sid な計算機で,
sudo apt-get install kernel-image-2.6.10-9-amd64-generic
とかして amd64 kernel を突っ込み,この kernel で netboot してみる.
# cd /var/lib/tftpboot/debian-installer/amd64/ # cp linux linux.orig # cp initrd.gz initrd.orig.gz
# cp /boot/vmlinuz-2.6.10-9-amd64-generic linux
# 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 しろということなのだろうか...
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 していない,ということなのかもしれない.
librd-ruby1.8 の バグ であるが, debian package の version 0.6.16-2 で直ったっぽい.
BIOS が壊れて復旧不能なので,PC を購入. いつものとおりドスパラの一番安い Celeron 搭載の Prime PC KnightV. 税込 ¥33,800.
ちなみに,AMD Sempron な Prime A Regulus, 税込 ¥29,790 という選択肢もあったのであるが, なんとなくあとで拡張する時にはまりそうなコスモを感じたので却下した.
Intel CeleronD 320 (478pin/2.40GHz) RETAIL
processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 4 model name : Intel(R) Celeron(R) CPU 2.40GHz stepping : 1 cpu MHz : 2395.668 cache size : 256 KB 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 : 4685.82
古い計算機との diff は以下.
-model : 2 +model : 4 -model name : Intel(R) Celeron(R) CPU 2.00GHz +model name : Intel(R) Celeron(R) CPU 2.40GHz -stepping : 9 +stepping : 1 -cpu MHz : 2001.036 +cpu MHz : 2395.668 -cache size : 128 KB +cache size : 256 KB -cpuid level : 2 +cpuid level : 5 -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 cid +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 : 3932.16 +bogomips : 4685.82
DDR SDRAM 256MB (PC2700/CL2.5)
これに古い計算機取り出した DDR SDRAM 512MB (PC2700) をプラスして,
% cat /proc/meminfo MemTotal: 776420 kB
HITACHI HDS728040PLAT20 (40GB 7200rpm 2MB)
% sudo hdparm -i /dev/hdc
/dev/hdc:
Model=HDS728040PLAT20, FwRev=PF1OA21B, SerialNo=XXXXXXXXXXXXXX
Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs }
RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=51
BuffType=DualPortCache, BuffSize=1719kB, MaxMultSect=16, MultSect=16
CurCHS=16383/16/63, CurSects=16514064, LBA=yes, LBAsects=80418240
IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120}
PIO modes: pio0 pio1 pio2 pio3 pio4
DMA modes: mdma0 mdma1 mdma2
UDMA modes: udma0 udma1 udma2 udma3 udma4 udma5 *udma6
AdvancedPM=yes: disabled (255) WriteCache=enabled
Drive conforms to: Reserved:
* signifies the current active mode
% sudo hdparm -t /dev/hdc
/dev/hdc:
Timing buffered disk reads: 172 MB in 3.03 seconds = 56.68 MB/sec
というか,初回の -t は
Timing buffered disk reads: 56 MB in 3.13 seconds = 17.91 MB/sec
だったので計測時になにかが buffering されたのかも.
Lusterware Bare Micro 白(mATX Key,Mou W/O FDD, fan)
箱他.なんだかつやつやしてます.
「W/O FDD」で,FDD 無しなんですが,買ってから気付きました. 今回は Debian 入りの HDD を移植するので問題無しなんですが.
ECS PM800-M2 (VIA PM800 & VT8237)
<URL:http://www.ecsusa.com/products/pm800-m2.html>
Rev.1.0 らしい.
SATA も Pen4 HT も Ready.
BenQ CD-656A Bulk(56x CD-ROM Drive ATAPI)
ちなみに今回は古い計算機から HDD を 3つ取り出して 移植しなければならなかったので, CD-ROM Drive ははずしてしまって,HDD x4 (だけ)な構成になっている.
恒例の速度計測.
% sudo hdparm -t /dev/sda /dev/sda: Timing buffered disk reads: 10 MB in 3.08 seconds = 3.25 MB/sec
非常に遅いな...
iPod 故障中につき購入. なんだか 1GB は「入荷までに時間がかかる」そうなので, 512MB を購入.
で,またおもむろに Linux に刺して gtkpod でいじろうとしたのであるが, 中の構造(というか file 構成とか)が iPod と違うらしく,うまく使えない.
iTune で曲を iPod shuffle に転送して, その状態を gtkpod で読んだりとかはできるのであるが, gtkpod から更新をかけるととたんに再生できなくなってしまう...
まあ,512MB 程度なので,どの曲を入れるかとかの選択も楽なわけで, 仕方なくその辺に転がっている Windows 計算機を使うことにした.
で,既にめいっぱい曲が入っている状態...
なんというか,自宅の PC が Celeron 2.0GHz というやるきなしなしなので, 3GHz ぐらいの Pentium 4 におきかえようとして, 現在の M/B で Hyper-Threading とかが使えるのかを調べつつ, BIOS の Update をしたり,BIOS の configuration をしていたのであるが,起動しなくなってしまった.
ちなみになにをしたかというとおもむろに
を,まあ,一度にしてみただけなのであるが...
仕方がないので,Pentium 4 のマシンでも買ってくることにする.むぅ.
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 する必要があるっぽい.
[myn:2005022700] であるが, <URL:http://nekhet.ddo.jp/item/454> を使うことにした...
lilbox を 3.10 にあげてみた. ちなみに UTF-8 化するには以下のようにする.
(snip)
あとは,file 自体を UTF-8 で保存する.
を参考に
% 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 ぐらいがあると
等が利用できるようになるっぽい.
<URL:http://www.itmedia.co.jp/enterprise/articles/0502/23/news028.html>
私にとって SPARC の特長ってなにかというと,
である.他にもなにかあったような気がするが忘れた. ともかくなんか,かっこいい.
遂に Dual Opteron なマシンを組むことにした.
M/B は ASUS K8N-DL.これに
+αぐらいで,30万強.少し CPU が弱いが予算の関係上まあよしとする.
% 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 も喰うらしい.ということで諦める.
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) に相当する.
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
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)))
を書いておいた.適当.
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))
と書いておく.
久しぶりに 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
<URL:http://rdoc.sourceforge.net/>
Ruby の Source Code から Document を生成するやつ.
この RDtool との比較がかなり秀逸というか,なんというか.
うざったい Window があったので,それを別の ワークスペースに移動したのであるが, よく考えたらワークスペースの移動の仕方を把握していなかった. ワークスペースまわりの Icon も不要だと思ってことごとく表示してないし...
というわけで調べた.
Ctrl + Alt + カーソル
らしい.φ(..)メモメモ.
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))))))
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
というのがある らしい .
boot loader まわりで嫌なことになっていたら 嫌だったので手を出さなかったわけであるが, 普通に mac mini で bootable な CD があれば,install できるっぽい.
この辺 を参照すれば Debian が入るのだろうか...
iPod 故障 につき購入を検討中...まいった.
がしかし, 「この商品は入荷までに時間がかかる場合があります」とのこと.
どうしてくれよう...
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.
ということらしい.
Linux 版 firefox の A9 toolbar ですが, [myn:2004121100]の文字化けが解消された模様. 現在の Version は 1.2.22.73.
iPod がなんといいますか壊れた.
普通に NotePC の HDD とかが壊れた時のような嫌な音がしてるんですけど...
ポケットに入れたまま結構な距離走ったのがだめだったっぽい. というか,そらそうだろ,という感じですが.
ということで今週は日曜音楽鑑賞お休み. というか,iPod をどうしてくれよう...
せっかく 外からRSS対応したのに 本家に RSS に対応 されてしまった.
なんかいろいろ使えそうなのでメモ.
graphviz の .dot のグラフ構造も読み/書きできるっぽい.
<URL:http://myn.meganecco.org/chess/snowman.cgi>
[myn:2004070902] とコードを共有しつつつくってみた. ちなみに <URL:/index.rdf> を生成するやつ*5ともコードを共有している.
最近は, ちぇすやらすののページは, RSS でチェックするまでもなくいきなり開くケースが多いが.
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
とかして遊んでみたり.
ちなみに青木峰郎さんの ソースコードを読むための技術 は,なかなかまとまってていいです.
をつくってみることにした.
<URL:http://myn.meganecco.org/tobuy.html>
<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 をつかっているっぽい...というか,開発がとまっているのかも.
普段使っている Extensions のメモ.
マウスジェスチャ.
Version 0.13.4
RSS Reader.
Version 1.3
Google の検索結果に preview 画像をつける.
Version 0.8
<URL:http://www.hatena.ne.jp/> のやつ. あんまりつかっていない.
Version 0.1.2
<URL:http://a9.com/> のやつ. 結構使ってるけど, History 情報をいちいち http://client.a9.com/api/toolbarapi/toolbar? に POST するっぽいので若干重い.
Version 1.0.10.50
Google の検索をするやつ.
Version 0.9.0.30
Alexa とかの情報を表示するやつ.
Version 1.3
選択箇所を翻訳するやつ.結構便利.
Version 1.4.13
Link を一気に開くやつ.ただし 100 個まで...
Version 2.3.0
Web Page の検証とかいろいろ.開発者向け? あんまり使ってない.
Version 0.9.2
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
target install の箇所で $(MAKE) を使っている行を
cp -r *.el $(CURDIR)/debian/vera-mode/usr/share/emacs/site-lisp/vera-mode
に変更.
debian/dirs の変更
% echo usr/share/emacs/site-lisp/vera-mode > debian/dirs
で, $(CURDIR)/debian/vera-mode/usr/share/emacs/site-lisp/vera-mode という directory が掘られるようにする.
emacsen な設定
% cp debian/emacsen-install.ex debian/emacsen-install % cp debian/emacsen-startup.ex debian/emacsen-startup % cp debian/emacsen-remove.ex debian/emacsen-remove
autoload したいので,
% vi debian/emacsen-startup
で,以下を追記.
(autoload 'vera-mode "vera-mode" "Vera Mode" t)
(setq auto-mode-alist (cons '("\\.vr[hi]?\\'" . vera-mode) auto-mode-alist))
この2行のコードは vera-mode.el にコメントアウトで説明されているもの. ついでに .ova も vera-mode にしたいので,
(setq auto-mode-alist (cons '("\\.ova\\'" . vera-mode) auto-mode-alist))あとは,
% fakeroot make -f debian/rules binary % sudo dpkg -i ../vera-mode_2.16-1_i386.deb
これで,
置かれる.
というのは,
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.
とか書いてあった.なんかすごいリリース名...
[myn:2005010901] の graphviz であるが, 日本語化パッチ とかがあるみたいだが, この方 は UTF-8 で成功しているみたいで,
つまり,
[fontname="Kochi Gothic"]
とかしたら描画できるっぽい.
ついでに map をごにょごにょといじっているわけですが, これ以上規模が大きくなると, 画像ファイルが大きくなりすぎて感じ悪い...
現状では dot を使ってるのだが,
そのうち twopi にしてみようかと...
ただ twopi だとどうも overlap がいやらしいんですが...
ちなみに graphviz ですが,vrml とかも吐けるらしいです. 用途がはっきりいって不明ですが. で,vrml ですが, freewrl とかいう Debian の package で見ることができます.
[snow:03049] によると,
気づいてなかった(笑)
らしい(ぉ.
おそらく日記デバッグ 付近でなにか混乱したんだろうなあと.
ともかく適当に [myn:2005011400] のコードで対処.
おもいっきりはまる...
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}!
Free Edition の Version が 6 から 7 にあがったので, Windows 機に Install.
何度も AVG6 に警告されていたのだけれども, かなり長い間無視しつづけてた...

だれかがすぐ Linux を入れるんだろうな...
「16.5cm X 16.5cm X 5cm」.
欲しくてしかたない...
ところで最近 Nano-ITX の話題をまったく聞かないが,どうなっているのだろうか...
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
とすればいいっぽいです.
かなり放置してましたが, namazu を 2.0.13 から 2.0.14 にあげました.
2.0.13 以前のヴァージョンには 脆弱性 があるそうです.
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 に変換している.
まあ,それだけ.
Debian の viewcvs がなにやら
UnknownReference: current_root
とかいう妙な Error Message とともに backtrace を返して, html 出力の途中でこける.
具体的には
と想定して,以下のようにしてみた時である.
apache 側の準備みたいなの
% viewcvs_dir=/work/viewcvs % mkdir -p $viewcvs_dir % cd $viewcvs_dir % echo Options FollowSymLinks ExecCGI Includes > .htaccess
viewcvs 設置
% ln -s /usr/lib/cgi-bin/viewcvs.cgi index.cgi % cp /usr/share/doc/viewcvs/examples/viewcvs.conf . % vi viewcvs.conf cvs_roots = cvs: /var/lib/cvs の行を cvs_roots = cvs: cvsroot に変更 svn_roots = svn: /var/lib/svn の行を削除 % ln -s /etc/viewcvs/templates .
cvsroot の rsync
% mkdir cvsroot % rsync -avz $CVSROOT/CVSROOT cvsroot % rsync -avz $CVSROOT/hoge cvsroot % chmod 755 cvsroot/*
で,これで,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 版を使うようにしてみた.
viewcvs 設置
% cvs -d ':pserver;proxy=localhost;proxyport=3128:anonymous@cvs.sourceforge.net:/cvsroot/viewcvs' login % cvs -z3 -d ':pserver;proxy=localhost;proxyport=3128:anonymous@cvs.sourceforge.net:/cvsroot/viewcvs' co -d .viewcvs viewcvs % ./viewcvs-install /work/viewcvs/.work へ install. % cd ../ % vi .work/viewcvs.conf -cvs_roots = cvs: /home/cvsroot +cvs_roots = cvs: cvsroot -use_cvsgraph = 0 +use_cvsgraph = 1 -cvsgraph_conf = /work/viewcvs/.work/cvsgraph.conf +cvsgraph_conf = /etc/cvsgraph/cvsgraph.conf (cvsgraph は Debian のものを利用する) % ln -s .work/www/cgi/viewcvs.cgi index.cgi
cvsweb 設置 (ついで)
% ln -s /usr/lib/cgi-bin/cvsweb cvsweb.cgi % ln -s /usr/share/cvsweb . % cp /etc/cvsweb.conf . - 'local' => ['Local Repository', '/var/lib/cvs'], + 'local' => ['Local Repository', 'cvsroot'], -my $iconsdir = '/cvsweb/icons'; +my $iconsdir = '/somewhere/cvsweb/icons'; -$cssurl = '/cvsweb/css/cvsweb.css'; +$cssurl = '/somewhere/cvsweb/css/cvsweb.css';
なかなか快適.あとは rsync を cron で行なうようにしておけば OK.
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 を殺してしまえば,新しい辞書が使えるようになる.
[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 の引数)にフィードバック,とかいうなんともださいやり方.
各記事毎にページを表示するようにしてみた.
帰省しているので年賀状がどれくらい届いているのか不明なわけですが, そもそも年賀状書いてないので,家に戻ってから処理する予定.
で,暇なので,LaTeX で年賀状を書いていたわけですが, やはり LaTeX だとフォントをいろいろいじれないのでなんか悲しい.
ということで, TTF を LaTeX でつかってやろうともがくものの, dvips がうまくいかずに断念...
xdvi で TTF を表示するところまではなんとかいけるんですが, その先は LaTeX (と dvi やら ps やら gs やら)の処理系をわかっていないと, やはり無理っぽい.
以下メモ.
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 とかを使えばいいじゃん, とか思い始めたので,やるきをなくして断念.
記事数が増えてきたので,記事毎の検索をできるようにしてみた. ちなみに今までは,月毎の検索しかできなかったわけであるが.
「記事毎の検索」はテスト運用中のため cron 等をまだ仕込んでません(URL も変更するかも).
いつのころからか *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 が起動すると作成されるものです.
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 なんですが...), とかそんなのでこけて無限ループにはまっていたような気がします.
[myn:2004122100] であるが,やはり壊れているようで, その .eps を含む .dvi を dvips を通して作った .ps を gv で見てみると gv が激しくとち狂う.
具体的には
とか.激しく不快.おそらくどこかでスタック処理でこけている予感.
ということでまず Illustrator 10 で開いてそれを 保存してみるという策をやってみたが,開く時に

みたいな嫌がらせをされる. できるだけ元情報を無くしたくないし, そもそも Windows でいろいろ試行錯誤したくないので あきらめる.
というか普通の画像なのに, どうして .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 に含まれている諸々の 情報はなくなってしまっている気がしないでもないが.
ここ最近 エロサイトや画像掲示板までが RSS Feed を開始しつつあるわけで, 特に画像掲示板なんかは
<content:encoded><![CDATA[ ここが html ]]></content:encoded>
みたいな感じで html が埋め込んである.
というか, アキバBlog(秋葉原ブログ) の <URL:http://blog.livedoor.jp/geek/index.rdf> とかも,いつのまにか画像が埋め込まれいる模様...
なんというか,こういう記事ベース(もしくはスレッドベース)の 文章コンテンツ配送(というか最近は html.というか配送なの?)って 最終的にどういう形式におちつくのかが気になって仕方ない...
icewm の version が 1.2.18 にあがった模様.
<URL:http://sourceforge.net/project/shownotes.php?release_id=290926>
私が使っている機能まわりの変更はなさげだがメモっておくと,
ぐらい.
ちなみに MouseWinMove というのは, Window の任意の場所をクリックして Window を移動できたりだとかする機能ならしい (MouseWinSize は同様にリサイズする).
常に全 Window を最大化して使っているので, 使わないわけですが.
ちなみに lilbox が mysql を使わないような実装に変更されたので, ようやく導入にふみきったわけであり, [myn:2004120100] あたりは この導入のためにごにょごにょやっていてわけである. 結局 mysql が面倒になったのであきらめた,のであるが.
で,php4 を debian (sid) の apache (apache2 ではない) で動かすには,
% sudo apt-get install php4-cgi % sudo apt-get install libapache-mod-php4
だけでよさげ.
なんか Amazon.co.jp が用意してくれたリンクは,
いろいろ問題があったので, lilbox を使うことにした.
ただし lilbox も default が EUC-JP (なんか日本語がぶち切られる...)なので, ごにょごにょと UTF-8 化.
人からもらった .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 がとおるようになった.なんだかなぁ...
古いシステム(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 環境間でクロスコンパイルをしてみた.
具体的には,
Debian GNU/Linux (sid)
i686-pc-linux-gnu (glibc 2.3.2, gcc 3.3.5, binutils 2.15)
から
i686-pc-linux-gnu (glibc 2.2.2)
へのクロスコンパイルである.
そもそも 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)にある状態.
% 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 とかいう 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 は 2段階に分けておこなうらしいので, それに従った.通常は,
とするらしい.今回は glibc は compile せず,copy してくる.
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
とかする.
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;
以下で.
% 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 を用意してやると消える.他は当然無理.
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 )
と変更する.これが重要.非常に.
この段階でようやく /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 になっている.
% 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 しようというもくろみ.
% 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 と同様.
% 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/
いきなり
% 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 側でも必要だった.
% export PATH=/home/myn/new/bin:$PATH
しておいて,普通に ./configure ; make ; make install でいけた.
binutils と同様. ちなみに gcc-core (つまり c++ とかは無し)を install した.
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
した.
[myn:2004121601] ですが [chess:200412171335] で閉じた模様.
[myn:2004070400]とか [chess:200407031353]とかみたいな症状にまたなっている模様...
全ての画像 POP で表示箇所が限定されてしまっています.

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
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 みたいなやつ)は事前に入れておく.
(setq default-input-method 'chinese-tonepy-punct)
としておいて,C-\ か,
C-u C-\ chinese-tonepy-punct
か,
## default-input-method: chinese-tonepy-punct
とかを各 file に書いておくか(## は適宜コメント形式にあわせて変更).
で,hao3chi1 や pi2jiu3 で「好吃」とか「啤酒」とかが出る.
Linux 版 firefox の話ですが, toolbar に日本語のキーワードを入れて検索しようとすると, 見事に化けます...
<URL:http://www.declude.com/junkmail/support/ip4r.htm> が網羅的でよさげ.
今は <URL:http://www.mozilla.org/products/firefox/central.html#central-engines> にもありますが, <URL:http://mycroft.mozdev.org/quick/a9.html>
さらにやるきなしなしに 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
遅いな...
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 程度の動画の物理的移動とかに普通に使ってもいいのかもしれない.
買った.[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 で使用中. かなり普通に使える.
% 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 の行を削除...
<URL:http://asin.meganecco.org/?asin=B0001TW2P6>

現在 26900円になっています. 普段が 28140円なので,1240円お得. えと,えと,さらに最大 10% 還元.
というか,iPod 全般的に安くなってるし...
普段 33390円のところが 32900円 (490円引き)(最大 10% 還元).
普段 44940円のところが 42900円 (2040円引き)(最大 10% 還元).
40G を衝動買いしてしまいそう...
ちなみに iPod Photo は値段かわらず.
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 を使ってなかった...
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>
<URL:http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=281601>
info がこわれてるんですけど...
関係ないけど <URL:http://www.debian.org/Bugs/> って比較的使えるもんだなと 思って若干びっくり.
Pen3 を2つも拾ってしまうと, やはり Linux で SMP にするしかないでしょう...
某所の環境では SUPERMICRO SUPER 370DE6 とかいう M/B で プロキシマシン他として活躍している模様.
<URL:http://www.kakaku.com/sku/price/054072.htm> によるとかなり値をはるようで瞬殺却下されそうですが.
というか SUPERMICRO 高すぎ.
なんとなく Amazon.co.jp なリンクを表示するようにしてみた. JavaScript が Off ならば当然表示されないわけで.
レイアウトは微妙にかっこうわるいかもしれないけど, まあそこはあまりつっこまないということで.
ちなみに 1024x768 @firefox で最低限見れるようにはつくっているつもり.
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 しておくことにする.
<URL:http://asin.meganecco.org/?asin=B0001TW2P6>

26900円になっていたので買おうかと思ったのですが, いつのまにか28140円にもどってました...
さっさと週末のうちに買っておけばよかった...
ナビ を JavaScript 化. やるきなしなトップメッセージも JavaScript 化. 使った method は document.write() だけ,やるきなしなし.
Amazon 子会社が運営しているらしい. なんか結構便利っぽいかもしれない.
なんというか,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 を再びつかっています.
ちぇす がたまに話題にしているが,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 とか)に流れるらしいので, これでしばらく様子を見てみる.
まず 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 の仕様変更のためにかなり最近効率がおちていたので バインドをもとにもどせてかなりハッピー.
なんとなく <URL:http://myn.meganecco.org/chess/?rss> で RSS を吐くようにしてみた.ついでになんとなく UTF-8 化.
やるきなしなし,いやがらせ.
[myn:2004042001] や [myn:2004052600] の話なわけですが, そろそろ発売されるっぽい...
[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
なんか 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)
ならしいので,とりあえずはそれを使うことにする.
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 を無視するようにしてやる.
これで,かなり使えるようになった.軽いし.
<URL:http://www.htmq.com/style/position.shtml> とか, スクロールしても固定位置に表示しつづけるというものなわけですが, IE ではサポートされていないっぽい. background は fixed にすることができるようであるが...
左に表示するようにしてみたナビゲーションですが, fixed にしてたんですが,IE で見るとかなりしょぼいことになったので, とりあえず position: absolute で行くことにした.
ユーザエージェント毎に CSS を切り替えるというのも, 解として考えられるが,面倒なのでパス.
iframe に関しても IE は,
<BASE TARGET="_top">
とかを解釈してくれないっぽい.
<URL:http://www.c6.org/toogle/>
いいな,こういうの.
ちなみに AA-lib とかを使ってたりするのだろうか?
某 WEB デザインをしている友人から電話.
最近クライアントが下手に SEO (Search Engine Optimization) という言葉を知ってしまっているがために, デザインに関しても「SEO 対策,よろしくね」とか言われるそうだ.
タイトルにちゃんと内容にマッチした言葉を入れるだとか, きちんと html を書いて, (そういう意味で*9) まともなコンテンツを製作するだとか, あとは,最近はあまりロボットが見てくれない例の META TAG を使うだとか, そういう小手先のことはできるわけですが,所詮小手先. まあ,ディレクトリ型のポータルにいろいろ登録する,とかもありますが, これはデザインとは関係がない. というか,普通に見易くコンテンツを構成すれば, 普通に Google とかが拾ってくれると思うが....
結局,(Google のランク上位の)大きなサイトからリンクしてもらうだとか, 広告料払ってほげほげするとかしか, 目に見える効果とかはすぐに出ないわけで, その友人は,そういうことをクライアントに説明する言葉を考えているそうな.
ということで,本日友人から入手した情報のメモ.
KDE の Konqueror のレンダリング・エンジン. Mac のブラウザであるところの Safari に採用されているらしい.
Mac OS X 用ウェブブラウジングソフトウェア. 綺麗らしい.
SEO で思い出したので書いておく.ゴッゴル *10.
の F402
*11
を愛用してて,ISO 800 をサポートす
るこれの後継は
の F420
*12
なわけで,他の性能も,
とかで,まあ許容できる不要な機能の付加かなあ,と.安いし.
がしかし,積極的に購入する理由がなくなりつつあるので, とりあえず放置.
諸事情によりまたデジカメを購入しようかと画策中. 記録マニアの私としては,
あんまりまだ調べていないけど,とりあえず,
ぐらいを候補にあげておく.ちいさいので.
というか,こうやって考えると, 今使っている「FinePix F402」は完全に私の要求を満たしてるわけで, そもそも本当に新しいのを買うのだか...
なんかいろいろあって混乱してきた.
JIS EUC SJIS をサポート
jconv
文字セット変換ライブラリ.
iconv を元にした日本語コード変換機能を提供するらしい.
<URL:http://packages.debian.org/unstable/devel/libjconv-bin.ja.html>
オジリナルの URL は不明...
Ruby の Unicode 変換モジュール.
[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 することにした.
との報告を各方面から受けるわけですが, 私は firefox で確認しているのでそんなことは知りません.
ちなみに, IE でエンコード設定が「日本語(自動設定)」になっていると, このページは Shift_JIS と判定されて NG ならしいです.
エンコードを UTF-8 にするとか,なんとかしてみてください.
の atrunmk.exe を使えばいいらしい.というか,いつもこれを使っている.
ちなみに,
[Autorun] open=start "index.html"
とかは書けないらしい.
LaTeX を書くときに昔から auctex を愛用しているわけですが, 最近の version の auctex は \section{hoge} の hoge の font を(Emacs 上 で)大きく表示するので感じが悪い.
と,いうことで,.emacs に
(setq font-latex-title-fontity 'color)
とかを書いておくと,色が変化するだけになるっぽい. font を大きくしたければ(default の状態),
(setq font-latex-title-fontity 'height)
とすればいいらしい.
とかいう filemanager の存在を知る.
<URL:http://krusader.sourceforge.net/>
そして K-Launcher を思い出す...
なんか apache2 ですが,設定の仕方が apache の時に比べ若干変更になって いるのでメモ.ただし Debian 向け.
Debian での apache2 の設定は /etc/apache2 以下にあって,そこの README に細かいことがいろいろ書いてある.
なんというか,symlink を貼って module の有効/無効を切り替えるというの は,過去の設定の履歴が残らないので,甚だ感じが悪いような気がするのです が,これってどうなんでしょうな...
text file に module の有効/無効を書くんだったら RCS で履歴を管理できた りするわけですが.
「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/[^.#]*
とかになっている.
空にしておくらしい.
apache2 の起動するポート番号.default は 80.
apache を利用する package がここに設定 file を置くらしい.
mods-available/ に *.load と *.conf が用意されていて, 有効にしたい module の設定 file を mods-enabled に symlink するらしい.
a2enmod や a2dismod という symlink を貼る command もあるけど, 自分で link を貼るのと別にかわりない...
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
とか.
してみた.
% 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,非交互式的网络文件下载工具.
とかも書ける...
~/.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
Debian での話ですが,
[/etc/locale.gen] 追記 zh_CN.UTF-8 UTF-8
して,
# /usr/sbin/locale-gen
で localisation files を生成.あとは,mlterm とかで,
% export LANG=zh_CN.UTF-8
とかするだけで使えるっぽい.
ちょっと前の話ですが,
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
cvsup すると FreeBSD 6 になったので,compile/install してみた. 手順をまちがえて,なにをしてもバスエラーで落る状態になってしまった.
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 を無意味にフォワードしてました.とほほ.
個人で検索エンジンをつくったらどうなるだろうか, とか,ふと思ったので,書いてみたわけですが, クロールするのはいいとして,検索部分がやたら遅い... Ruby で書いてるし(ぉ
というわけで現在の被リンクランクとかを載せてみたり. ドメインがなるべくばらけるように取得した 1664ページ中の上位.
まあ,そんなもんなんかな,と. ちなみに,クロールの始点は適当にアンテナとかから.
そろそろ飽きてきたし,別段やるきもなしなしなので, とりあえずこの辺で手をとめてしまうような気がする....
なんか, <URL:http://sippo.dyndns.org/~chesu/diary/> にいつも使ってるホストからアクセスすると, OOo Windows 版 のダウンロードが始まってしまうんですが...
ここ最近へなちょこロボットで http://myn.meganecco.org/ を起点にして クロールしまくってたんですが,それに気付かれた,ってことなんでしょうか. むう.
使ってみました.結構きれいに仕上がります. もうちょっと自動化できてもいいのかも.
Dual Boot にしている場合, CMOS clock (ハードウェアクロック) を GMT にしていると,Windows との時差が 9時間できてしまうわけですが, その設定は,/etc/default/rcS にあるらしい.
UTC=yes
だと,CMOS clock が GMT になって,no だと local 時間になる.
以前は,<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 経由でつながるらしい.
日本語への変換は,<URL:http://www.excite.co.jp/world/> で結構(でも ないけど)できるわけですが,Chinese ⇔ English とか,そういうのもやりた かったので,そういうのができるサイトのメモ.
[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」というラテン語 から来ているそうな.
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 を使うことにした...とほほ.
cygwin で XWin という command で X server が起動できるわけですが, なぜかキーボードが日本語配列になる. たぶんどこかで大昔に設定したような気がするけど,忘れた...
ということで,
% setxkbdmap en_US
で設定.ちなみに私は英語キーボード派. がしかし \ と | が入力できずにはまる...
/etc/X11/xkb/symbols/pc/latin に,無理矢理
key <AC12> { [ backslash, bar ] };
を適当な位置に書いて対処してしまいました... まあ動けば OK.
ちなみに XWin には -keyboard という option があるらしいが, 現在の XWin には実装されていないらしい.むぅ.
単に dpkg -l とすると,長い package 名が欠けて表示されてしまう場合があ るわけですが,
% COLUMNS=200 dpkg -l
とかすると,たぶんまともに表示されます.
M-x makefile-backslash-region M-x c-backslash-region
もしくは C-c C-\. リージョン内の各行末にきれいに \ をつける,とか,そういう機能. いつも「C-c C-\」を忘れてしまう...
ちなみに,M-x comment-region は C-c C-c.
はまりました.
というか,メニューとかが日本語化されていない Tgif を使っているので, 「上付き/下付き文字」の英語が わからなかっただけなような気もするのですが.
Edit->Text->Insert Right Superscript (上付き 添字) Edit->Text->Insert Right Subscript (下付き 添字)
だそうです.ちなみに Alt-Ctrl-6 および Alt-Ctrl-5 にキーが割り当てられています.
コンテンツを全部消してしまって, 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 を仕込む.
Ruby で再帰的な正規表現って結局どうやって書いたらいいのか良く判らなくなって, いろいろ探していて見付けたサイト.