加载中…
个人资料
从入门到放弃
从入门到放弃
  • 博客等级:
  • 博客积分:0
  • 博客访问:493,900
  • 关注人气:57
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

linux下ppp安装及“field 'pppol2tp' has incomplete type“解决

(2016-03-22 17:11:55)
标签:

arm

linux

ppp

分类: Linux

PPP官网下载:

https://download.samba.org/pub/ppp/

 

编译:

root@zhaoxc-VBox:/opt/arm-tools/ppp-2.4.5# ./configure --prefix=/opt/arm-tools/ppp-2.4.5/install-arm/

root@zhaoxc-VBox:/opt/arm-tools/ppp-2.4.5# make CC=arm-none-linux-gnueabi

root@zhaoxc-VBox:/opt/arm-tools/ppp-2.4.5# make install

1:由于一开始的编译命令式./configure --host=arm-none-linux-gnueabi --prefix=/opt/arm-tools/ppp-2.4.5/install-arm/ 实际上生成的Makefile里面并没有指定编译器,但是make时使用的是gcc,而不是arm-none-linux-gnueabi-gcc,所以在ARM无法运行。报错“pppd -sh: cannot execute binary file

2make时出错“ppp install "error: field ‘pppol2tp’ has incomplete type”然后搜索原因,在网上找到一位大神的修复方法:在ppp-2.4.5/include/linux/if_pppol2tp.h中添加程序如下:

--- ppp-2.4.5/include/linux/if_pppol2tp.h       2009-11-16 22:26:07.000000000 +0000

+++ ppp-2.4.5/include/linux/if_pppol2tp.h       2010-07-16 22:35:22.000000000 +0100

@@ -32,6 +32,45 @@

       __u16 d_tunnel, d_session;   

 };

 

+

+struct pppol2tpin6_addr {

      __kernel_pid_t  pid;           

      int     fd;                    

+

      __u16 s_tunnel, s_session;     

      __u16 d_tunnel, d_session;     

+

      struct sockaddr_in6 addr;      

+};

+

+

+struct pppol2tpv3_addr {

      pid_t   pid;                    

      int     fd;                    

+

      struct sockaddr_in addr;       

+

      __u32 s_tunnel, s_session;     

      __u32 d_tunnel, d_session;     

+};

+

+struct pppol2tpv3in6_addr {

      __kernel_pid_t  pid;           

      int     fd;                    

+

      __u32 s_tunnel, s_session;     

      __u32 d_tunnel, d_session;     

+

      struct sockaddr_in6 addr;      

+};

+

 /* Socket options:

  * DEBUG      - bitmask of debug message categories

  * SENDSEQ  - 0 => don't send packets with sequence numbers


复制到ARM上:

按照上面的make好之后,由于make install出错,所以直接在目录中找到如下的四个文件:

chat  pppd  pppdump  pppstats

复制到ARM/usr/sbin目录下


建立/etc/ppp目录:

从ppp-2.4.5相应目录中拷贝文件,建立如下目录结构:

/etc/ppp/chap-secrets

/etc/ppp/pap-secrets

/etc/ppp/ip-up

/etc/ppp/ip-down

 

/etc/ppp/peer/


拨号上网:

见本博客其他文章。


参考网页:https://forums.gentoo.org/viewtopic-p-7100056.html

https://bugs.gentoo.org/attachment.cgi?id=320466&action=edit

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有