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

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

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

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

参照リンク

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

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

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

lockd: cannot monitor 10.0.0.200
lockd: failed to monitor 10.0.0.200

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

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

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

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

関連リンク

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

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

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

関連リンク

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

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

なのであるが,

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

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

[/etc/yp.conf]
ypserver 10.0.0.3

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

ということで,

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

追記

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

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

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

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

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

参考関連 Link

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

include/linux/fs.h の struct super_operations で

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

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

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

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

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

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

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

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

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

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

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

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

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

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

とかで mount.ちなみに,

% fakeroot make -f debian/rules binary

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

% sudo apt-get install dpatch

とか.

参考関連 Link
参照リンク

このページのインデックス


Last-modified: Sat Jun 16 12:00:14 +0900 2007

全インデックス