硬件环境:Tiny6410开发板
软件环境:fedora14 + Android 2.3.4 + linux-2.6.36
所需资源:rp-pppoe-3.11.tar.gz http://www.roaringpenguin.com/products/pppoe

1、编译内核支持ppp

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

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

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWlhb195aWhhbg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">


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


參考文档:

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

android移植pppoe拨号上网的全过程的更多相关文章

  1. PPPOE拨号上网流程及密码窃取具体实现

    楼主学生党一枚,最近研究netkeeper有些许心得. 关于netkeeper是调用windows的rasdial来进行上网的东西,网上已经有一大堆,我就不赘述了. 本文主要讲解rasdial的部分核 ...

  2. MikroTik RouterOS安装后初始化配置(PPPOE拨号上网)

    1.修改登入密码 路由器默认登入账号为admin,密码为空,强烈建议修改登入密码保证安全: 2.修改接口名称 选择Interface,切换到Ethernet标签,找到状态是R(run)的两个端口. 给 ...

  3. ARM+llinux系统移植3G拨号上网收发短信(一)【转】

    本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099737 一.      PPP移植 各项工作具体说明 向Linux内核添加3 ...

  4. Ubuntu pppoe 拨号上网

    -------------蓝色是终端里面的连接方式,可以不看--------------------- ADSL上网,Ubuntu下是可以的,虽然以前没用过拨号上网,不过查了查也不是很麻烦. 打开终端 ...

  5. Ubuntu下的 PPPoE 拨号上网方法

    1. 配置 pppoe $ sudo pppoeconf 2. 联网 $ sudo pon dsl-provider 3. 断网 $ sudo poff 4. 查看日志 $ plog 5. 查看接口信 ...

  6. Ubuntu PPPoE拨号上网指定网卡

    Just follow these steps: Check that the ethernet cable is properly connected Open Terminal Run sudo ...

  7. 2440开发板linux系统移植3G拨号上网收发短信(三)

    一.用text查看模式 下面的“发”是指我敲的命令,“收”是指回车后显示的信息包括其他接收的信息. ~ >: microcom -s 115200 /dev/ttyUSB1 发:at 收:OK ...

  8. 华为AR路由器AR207-S配置pppoe拨号上网图解实例

  9. ARM+linux系统移植3G拨号上网收发短信(三)【转】

    本文转载自:http://blog.csdn.net/hanmengaidudu/article/details/17099755 一.用text查看模式下面的“发”是指我敲的命令,“收”是指回车后显 ...

随机推荐

  1. Kendo UI开发教程(26): 单页面应用(四) Layout

    Layout继承自View,可以用来包含其它的View或是Layout.下面例子使用Layout来显示一个View 1 <div id="app"></div&g ...

  2. Linux - VIM(VI)编辑器

    VIM(VI)编辑器 简介: VI是一个命令行界面下的文本编辑工具,最早在1976年BILL Joy开发,当时的名字叫做ex.VI支持绝大多数操作系统(最早在BSD上发布),并且功能已经十分强大. 1 ...

  3. 免费APP在线測试工具以及其用法

    免费APP漏洞安全检測工具:http://safe.ijiami.cn/ 漏洞分析是爱加密推出免费 APP 漏洞分析平台,服务包含一键对APK 进行签名数据信息採集.内部配置信息採集.市场渠道相关信息 ...

  4. linux shell编程指南第十八章------控制流结构

    在书写正确脚本前,大概讲一下退出状态.任何命令进行时都将返回一个退出状态.如 果要观察其退出状态,使用最后状态命令: $ echo $? 主要有4种退出状态.前面已经讲到了两种,即最后命令退出状态$ ...

  5. VC++实现位图显示透明效果--实现原理

    我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并将透明位图在一个对话框中显示 ...

  6. VC图形绘制双缓存的代码复用性讨论

    在前文中已经讨论了如何实现界面绘制双缓存的问题,前文网址如下: http://www.2cto.com/kf/201111/112429.html 双缓存的主要思路是:先把图形绘制到内存DC中,然后再 ...

  7. Hadoop 的常用组件一览

    Hadoop 集群安装及原理:hdfs命令行操作:Java操作hdfs的常用API接口:动态添加删除数据节点. HBase 集群安装及原理:Hbase命令行操作:Java操作Hbase的常用API接口 ...

  8. jQuery为啥要提供一个load()方法?

    上午的时候,找个闲暇事件整理之前整理的一些关于jQuery的东西,看到了一个之前做的jQuery的$(document).ready()与window.onload()方法的比較. 上面两个方法最重要 ...

  9. MySQL中同一时候存在创建和上次更新时间戳字段解决方法浅析

    在写这篇文章之前.明白我的MySQL版本号. mysql> SELECT VERSION(); +------------+ | VERSION() | +------------+ | 5.5 ...

  10. 《大数据互联网大规模数据挖掘与分布式处理》阅读笔记(四)-----WEB广告

    作者: 沈慧 目前,许多WEB应用通过广告而维持生计,从在线广告中获益最多的是搜索应用,“adwords”模型就是一种用于搜索查询和广告匹配的模型.这一章介绍了在线广告的相关问题.在线算法.Adwor ...