android pppoe 源码,android移植pppoe拨号上网的全过程

硬件环境:Tiny6410开发板

软件环境:fedora14 + Android 2.3.4 + linux-2.6.36

1、编译内核支持ppp

android自带pppd,所以仅仅须要移植pppoe即可了。

首先在内核中make menuconfig-> Device Drivers -> Network device support。选中全部ppp选项。退出,保存配置,又一次运行make

zImage.

Center

2、编译得到pppoe

把下载到的rp-pppoe-3.11.tar.gz解压到android文件夹下的external下:

# tar zxvf /home/qyh/rp-pppoe-3.11.tar.gz

新建Android.mk并增加下面内容:

1 LOCAL_PATH:= $(call my-dir)

2 include $(CLEAR_VARS)

3

4 LOCAL_SRC_FILES:=

5 src/pppoe.c

6 src/if.c

7 src/debug.c

8 src/common.c

9 src/ppp.c

10 src/discovery.c

11

12

13 LOCAL_MODULE_PATH := $(LOCAL_PATH)

14 LOCAL_MODULE_TAGS := eng

15 LOCAL_MODULE := pppoe

16 LOCAL_C_INCLUDES += $(LOCAL_PATH)/src

17

18 include $(BUILD_EXECUTABLE)

19

20 include $(call all-makefiles-under,$(LOCAL_PATH))

须要改动rp-pppoe-3.11/src/config.h(否则编译中会出现错误):

a)假设提示 if.c:34:26: error: net/ethernet.h: No such file or directory

凝视掉 #define HAVE_NET_ETHERNET_H 1

b)凝视掉 #define HAVE_SYS_UIO_H 1 要不然会提示重定义的警告

c)加入 #define VERSION 3.11 否则会提示VERSION没有定义

编译android,会在rp-pppoe-3.11文件夹下得到pppoe,放到开发板的system/bin文件夹下。

3、进行拨号測试

(1)拨号

进入设备终端后。输入

pppoe -d

就会发起Discorvery,在广播域内广播PADI报文,成功的话会返回发现的pppoe-server的MAC地址。而且在PC端抓包eth0的话,使用ppp||pppoed进行过滤。可以收到终端的广播报文。这样就能说明已经实现pppoe通路。

接着:

pppd pty "pppoe -I eth0" user user_xxx password my_xxx

这样就会发起pppoe链接。经过Discovery,认证。LCP,终于建立其ppp链接。

在PC端会看到新建立起来的ppp0,Client端也会看到。

通过命令netcfg能够看到:

lo UP 127.0.0.1 255.0.0.0 0x00000049

dummy0 DOWN 0.0.0.0 0.0.0.0 0x00000082

eth0 UP 192.168.1.113 255.255.255.0 0x00001003

ppp0 UP 192.168.2.101 255.255.255.255 0x000010d1

(2)測试

假设要通过pppoe上网还须要添加路由表项目。

ip route//查看路由表项

ip route del default //删除掉所有default,须要操作多遍

ip route add default dev ppp0 //将默认路由设为ppp0

ip route//再次查看

ping baidu.com(截取了中间一部分)

64 bytes from 220.181.111.85: icmp_seq=1588 ttl=55 time=46.0 ms

64 bytes from 220.181.111.85: icmp_seq=1589 ttl=55 time=45.0 ms

64 bytes from 220.181.111.85: icmp_seq=1590 ttl=55 time=44.0 ms

64 bytes from 220.181.111.85: icmp_seq=1591 ttl=55 time=43.0 ms

64 bytes from 220.181.111.85: icmp_seq=1592 ttl=55 time=41.8 ms

64 bytes from 220.181.111.85: icmp_seq=1593 ttl=55 time=50.0 ms

64 bytes from 220.181.111.85: icmp_seq=1594 ttl=55 time=50.0 ms

64 bytes from 220.181.111.85: icmp_seq=1595 ttl=55 time=49.9 ms

64 bytes from 220.181.111.85: icmp_seq=1596 ttl=55 time=48.9 ms

參考文档:

版权声明:本文博主原创文章,博客,未经同意不得转载。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值