Top / Linux / Dazuko / FAQ-MEMO1

Dazukofs cannot be complied with kernel-2.6.30
Dazukofs が kernel-2.6.30ではコンパイルできない?

Environment(環境)
linux-image 2.6.30-5
gcc version 4.3.4 (Debian 4.3.4-1)
Date
2009/10/10 (2009/08/25)

kernel-2.6.30 の環境では、 dazukofs-3.1.0-rc2 はビルドできません。*1

This problem was solved in release 3.1.1.
dazukofs-3.1.1で解決されました。 (2009/10/09)
http://lists.gnu.org/archive/html/dazuko-devel/2009-10/msg00001.html

Error Message

make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.30-1-686'
  CC [M]  /dazukofs-3.1.0-rc2/file.o
/dazukofs-3.1.0-rc2/file.c: In function 'dazukofs_open':
/dazukofs-3.1.0-rc2/file.c:185: error: dereferencing pointer to incomplete type
make[4]: *** [/dazukofs-3.1.0-rc2/file.o] Error 1
make[3]: *** [_module_dazukofs-3.1.0-rc2] Error 2
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.30-1-686'
make: *** [dazukofs_modules] Error 2

Dazuko Help ML のスレッドによると、 file.c および ign_dev.c に

#include <linux/sched.h>

を入れてやれば良いようです。
3.1.0 releaseには入っていないのでパッチを当てることが必要です。
ref: http://lists.gnu.org/archive/html/dazuko-devel/2009-09/msg00001.html

dazukofs-3.1.1で解決されました。 (2009/10/09)
ref: http://lists.gnu.org/archive/html/dazuko-devel/2009-10/msg00001.html

また、Lino Sanfilippoによると以下のパッチをあてることも推奨されています。
John Ognessは、以下のパッチを重要なものとは考えていないので 3.1.0リリースには含まれていません。(2009/09/25)
(Following patches are also recommended by Lino Sanfilippo,but these are not included in 3.1.0 release).

http://lists.gnu.org/archive/html/dazuko-devel/2009-07/msg00020.html
http://lists.gnu.org/archive/html/dazuko-devel/2009-07/msg00021.html

パッチされたファイルのビルド結果は以下のようになりました。

make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.30-1-686'
  CC [M]  /O/dazukofs-3.1.0-rc2.patched/super.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/inode.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/file.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/dentry.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/mmap.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/group_dev.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/ign_dev.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/ctrl_dev.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/dev.o
  CC [M]  /dazukofs-3.1.0-rc2.patched/event.o
/dazukofs-3.1.0-rc2.patched/event.c: In function 'dazukofs_get_event':
/dazukofs-3.1.0-rc2.patched/event.c:1064: warning: 'grp' may be used uninitialized in this function
  LD [M]  /dazukofs-3.1.0-rc2.patched/dazukofs.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /dazukofs-3.1.0-rc2.patched/dazukofs.mod.o
  LD [M]  /dazukofs-3.1.0-rc2.patched/dazukofs.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.30-1-686'

となり warning は出ているものの うまく動作しているようです。

Dazukofs cannot be complied with kernel-2.6.33/34
Dazukofs が kernel-2.6.33/34 ではコンパイルできない?

(Newest rc3 cannot be compiled with kernel-2.6.32/30
rc2 rc3 が 2.6.32/30ではコンパイルできない。 )

According to the thread of linux-fs-devel, get_nlinks param is removed from fsstack_copy_attr_all.

linux/fs/fs_stack.h
before 2.6.32

extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src,
                                int (*get_nlinks)(struct inode *));

after 2.6.33

extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);

Use following version .

kernel versiondazuko-fs version
before 2.6.323.1.3-rc1
2.6.33,2.6.34,2.6.353.1.3
2.6.363.1.4

or Add NULL parameter to fsstack_copy_attr_all function in inode.c and dentry.c .

if you want to use 3.1.3 , the patch was posted at dazuko-devel forum.

Dazukofs cannot be complied with kernel-2.6.35
Dazukofs が kernel-2.6.35ではコンパイルできない?

with Ubuntu 10.10 both DazukoFS 3.1.3 and DazukoFS 3.1.4-rc2 are not compiled.

3.1.3

/home/user1/dazukofs-3.1.3# make
make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
  CC [M]  /home/user1/dazukofs-3.1.3/super.o
  CC [M]  /home/user1/dazukofs-3.1.3/inode.o
  CC [M]  /home/user1/dazukofs-3.1.3/file.o
/home/user1/dazukofs-3.1.3/file.c: In function ‘dazukofs_fsync’: 
/home/user1/dazukofs-3.1.3/file.c:243: warning: passing argument 2 of ‘lower_file->f_op->fsync’ makes integer from pointer without a cast
/home/user1/dazukofs-3.1.3/file.c:243: note: expected ‘int’ but argument is of type ‘struct dentry *’
/home/user1/dazukofs-3.1.3/file.c:243: error: too many arguments to function ‘lower_file->f_op->fsync’
/home/user1/dazukofs-3.1.3/file.c: At top level:
/home/user1/dazukofs-3.1.3/file.c:304: warning: initialization from incompatible pointer type
/home/user1/dazukofs-3.1.3/file.c:339: warning: initialization from incompatible pointer type
 make[2]: *** [/home/user1/dazukofs-3.1.3/file.o] Error 1
 make[1]: *** [_module_/home/user1/dazukofs-3.1.3] Error 2
 make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
 make: *** [dazukofs_modules] Error 2

3.1.4rc2

/home/user1/dazukofs-3.1.4-rc2# make
make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
 CC [M]   /home/user1/dazukofs-3.1.4-rc2/super.o
/home/user1/dazukofs-3.1.4-rc2/super.c: In function ‘dazukofs_evict_inode’:
/home/user1/dazukofs-3.1.4-rc2/super.c:74: error: implicit declaration of function ‘end_writeback’
/home/user1/dazukofs-3.1.4-rc2/super.c: At top level:
/home/user1/dazukofs-3.1.4-rc2/super.c:108: error: unknown field ‘evict_inode’ specified in initializer
/home/user1/dazukofs-3.1.4-rc2/super.c:108: warning: initialization from incompatible pointer type
make[2]: *** [/home/user1/dazukofs-3.1.4-rc2/super.o] Error 1
make[1]: *** [_module_/home/user1/dazukofs-3.1.4-rc2] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'
make: *** [dazukofs_modules] Error 2

Solution

copy file.c and ctl_dev.c form 3.1.4-rc2 to 3.1.3

only tested with ext2,ext3,ext4 filesystem

success log

/home/user1/dazukofs-3.1.3#make
make -C /lib/modules/`uname -r`/build SUBDIRS="`pwd`" modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.35-22-generic'
 CC [M]  /home/user1/dazukofs-3.1.3/super.o
 CC [M]  /home/user1/dazukofs-3.1.3/inode.o
 CC [M]  /home/user1/dazukofs-3.1.3/file.o
 CC [M]  /home/user1/dazukofs-3.1.3/dentry.o
 CC [M]  /home/user1/dazukofs-3.1.3/mmap.o
 CC [M]  /home/user1/dazukofs-3.1.3/group_dev.o
 CC [M]  /home/user1/dazukofs-3.1.3/ign_dev.o
 CC [M]  /home/user1/dazukofs-3.1.3/ctrl_dev.o
 CC [M]  /home/user1/dazukofs-3.1.3/dev.o
 CC [M]  /home/user1/dazukofs-3.1.3/event.o
 LD [M]  /home/user1/dazukofs-3.1.3/dazukofs.o
 Building modules, stage 2.
 MODPOST 1 modules
 CC      /home/user1/dazukofs-3.1.3/dazukofs.mod.o
 LD [M]  /home/user1/dazukofs-3.1.3/dazukofs.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.35-22-generic'

Commnet

  • dazukofs のテストプロセス(test/showfilesを使った場合)はうまく動いていることが確認されていますが、avira-antivir 3.0.5との組み合わせで固まります。(Merlin) 2009/08/31
    test/showfiles with libdazukofs.so works well but we found that Avira-Antivir_3.5.0 with this dazukofs-3.1.0-rc2.patched makes Kernel down.
  • avira-aintivir 3.0.5.0 及び 3.0.5.11 のどちらもだめです。また、3.0.5.11のcontrib ディレクトリに変更はありませんので、まだ 2.6.30以降との組み合わせではうまく動かないようです。(Merlin) 2009/09/12
  • dazukofs-3.1.2と avira-antivir-3.0.5.11の組み合わせで動作しているように見えます。解決か? (avira-antivir 側のcontribディレクトリには、 3.0.5.12,3.0.5.13でも変化なし。)
  • Avira AntiVir? Server (Unix) も Version: 3.0.5-12(2009/08/31)でも問題があるようです。(Merlin) 2009/10/09
  • avira-antivir-3.1.3.4-1でも kernel-2.6.30 以降用のdazukoは、contribに無い。(Merlin) 2010/06/09
  • avira-antivir-3.1.3.5-0 でも contrib に変わりはない。(Merlin) 2011/04/28

*1 3.1.0は rc2と中身は変わらないので同じ現象がおこります - 2009/09/28

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-05-09 (月) 18:32:18 (2745d)