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

博客主要围绕Makefile展开,介绍了rh9.0和fc2系统中include目录及HEADS的变化。还针对编译时出现的错误给出解决办法,如文件找不到的复制操作、结构类型替换、参数修改等,以及链接阶段错误去掉static修饰符使编译通过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


编译顺利通过!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值