Ubuntu下用源码安装drcom时候,make报错,9.10和10.04都此问题。
/tmp/drcom/drcom.c: In function ‘build_ack_skb’: /tmp/drcom/drcom.c:686: error: ‘struct sk_buff’ has no member named ‘dst’ /tmp/drcom/drcom.c: In function ‘build_auth_skb’: /tmp/drcom/drcom.c:723: error: ‘struct sk_buff’ has no member named ‘dst’ make[3]: *** [/tmp/drcom/drcom.o] Error 1 make[2]: *** [_module_/tmp/drcom] Error 2 make[2]: Leaving directory `/usr/src/linux-headers-2.6.32-14-generic’ make[1]: *** [default] Error 2 make[1]: Leaving directory `/tmp/drcom’ Compile drcom kernel module failed!
解决方案:
编辑/kmod/drcom.c
查找__ip_select_ident(iph, skb->dst, 0);
改为 __ip_select_ident(iph, skb_dst(skb), 0);
Tip:一共有两处需要修改,建议额外安装dkms软件包,sudo apt-get install dkms,这样就不用每次更新内核后再手动编译drcom了