dsr 源代码从rh9.0移植到fc2的过程

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 修饰符去掉。


编译顺利通过!

你可能感兴趣的:(struct,Module,include,makefile,hook,output)