1。Makefile: include目录变化:
rh9.0 : /usr/src/linux-2.4.20-8
fc2: /usr/src/linux-2.6.5-1.358
HEADS的变化:
rh9.0: /usr/include/linux/version.h
fc2: /usr/src/linux-2.6.5-1.358/include/linux/version.h
2。编译时错误的解决:
1。irq_vectors.h 等等文件提示找不到:
cp /usr/src/linux-2.6.5-1.358/include/asm/mach-default/* /usr/src/linux-2.6.5-1.358/include/asm/
2。在dsr_output1函数中:
2.6内核中没有rt_key这个结构了,取而代之的是flowi
所以所有的rt_key类型的变量要用flowi结构替代。
3。sock结构中的 bound_dev_if (rh9.0) 变成 sk_bound_dev_if (fc2)
4。CURRENT_TIME结构从xtime.tv_sec变为current_kernel_time(),后者返回一个timespec结构,包含time_t tv_sec。所以解决方法是:CURRENT_TIME变为CURRENT_TIME.tv_sec。
5。__ip_select_ident(..)的参数从2个改为3个。第三个参数设置为0。
6。nf_hook_ops的结构发生了变化,多了一个成员,struct modele* owner,不知道是做什么用的。暂时把它置为THIS_MODULE
7。在链接阶段出现错误:
**** Warning:”dsr_stat” [/root/dsr-for-fc2/dsr.ko] undefined!
解决办法是在其声明的头文件了把static 修饰符去掉。
编译顺利通过!