1:arm linux 内核支持ppp
2: install ppp-2.4.4 (rp-pppoe要ppp的支持才能正常运行)。
3: install rp-pppoe。
4:把步骤(2)(3)中生成的相应文件下载到目标板,根据相应提示适当修改就行了。
二:需要的包
移植需要rp-pppoe和ppp。我用的是rp-pppoe3.10和ppp-2.4.4的组合。
三:具体过程
1: 配置编译内核
在内核原代码主目录下 make menuconfig
-> Device Drivers -> Network device support -> PPP (point-to-point protocol) 中,选中所有ppp选项。退出,保存配置,重新执行make zImage.
将arch/arm/boot/下的zImage下载到开发板上重启系统。
2: install ppp-2.4.4
下载的是ppp-2.4.4.tar(http://www.sfr-fresh.com/linux/misc/ppp-2.4.4.tar.gz/)解压。进入源码目录。执行./configure。
完成后。执行make,这里要进行交叉编译。因此,我在这里指定CC为arm gcc,整个命令为
make CC=arm-linux-gcc
(NOTE: 这里为你自己机子上的交叉编译器,根据具体名字而定)
编译完成后,进入pppd目录,将生成的pppd可执行文件拷贝到目标板文件系统的/usr/sbin下。
3:install rp-pppoe3.10
下载rp-pppoe3.10(http://www.roaringpenguin.com/products/pppoe)后,解压源码。进入源码目录。再进入src目录。
然后,要进行交叉编译。根据经验,使用./confiugre --host=arm-linux的命令进行配置,但不能通过,confiuge执行后,报
checking for Linux 2.6.X kernel-mode PPPoE support... cross-compiling, default:
no
checking packing order of bit fields... no defaults for cross-compiling
的错误,然后退出了confiugre程序。
configure程序其实是一sh脚本,用编辑器打开,仔细查看后,原来此脚本根本没对cross_compiling提供支持,当检测到你要进行交叉编译后,就自动退出了。解决方法一是自已在脚本中加入相关代码,一是用./configure生成非交叉编译的makefile,然后再手工修改其中的gcc为arm-linux-gcc。
第二种方法。执行./configure后,程序报生成两个makefile文件,一是在src 下的,一是在libevent下的。直接替换这两个makefile文件中的
编译完成后,src目录下会产生pppoe,pppoe-server,pppoe-sniff,pppoe-relay。把这些程序下载到目标机/usr/sbin目录下。
复制配置文件
rp-pppoe-3.10/configs目录下是rp-pppoe所需的配置文件,把这些文件全部复制到目标机的/etc/ppp目录下(没有就自己建一个)。
拨号相关的脚本程序共有6个,在rp-pppoe-3.10/scripts中。
pppoe-setup:配置程序,把输入的帐号密码等信息存入配置文件。
pppoe-start:拨号程序,连接网络。
pppoe-stop:断开。
pppoe-status:查看连接状态。
pppoe-connect:连接网络,被pppoe-start所调用。
pppoe-init:初始化,被其他程序调用。
把这些脚本也放到/usr/sbin目录下。
4: 在目标板上测试运行
试运行一下pppd,假如出现如下提示
pppd: pppd is unable to open the /dev/ppp device.
You need to create the /dev/ppp device node by
executing the following command as root:
mknod /dev/ppp c 108 0
那么就应该按照提示执行命令mknod /dev/ppp c 108 0,再运行一次pppd,假如有乱码出现就说明安装pppd成功了。
如果出现下面的信息。则说明你内核可能还不支持ppp(Fix this according to the above)
./pppd: This system lacks kernel support for PPP. This could be because
the PPP kernel module could not be loaded, or because PPP was not
included in the kernel configuration. If PPP was included as a
module, try `/sbin/modprobe -v ppp'. If that fails, check that
ppp.o exists in /lib/modules/`uname -r`/net.
See README.linux file in the ppp distribution for more details
如果内核运行再执行pppd,等一会,出现乱码,说明pppd工作正常了。
修改角本:pppoe-setup 将其中的将PPPD改为PPPD=/usr/sbin/pppd(就是你放pppd可执行程序的位置)不然会报错说找不到pppd,没有装.
执行pppoe-setup,根据提示输入拨号所需的参数(ISP提供的用记名和密码)。要确定rp- pppoe的配置文件所在的目录即/etc/ppp是可写的。否则,参数不能保存。
./pppoe-setup(下面是一些说明供参考)
>> Enter your PPPoE user name: ——此处输入拨号帐号的用户名
>> Enter the Ethernet interface connected to the ADSL modem For Solaris, this is likely to be something like /dev/hme0. For Linux, it will be ethn, where n is a number. (default eth0): ——输eth0(视情况而定)
>> Enter the demand value (default no): ——输no
>> Enter the DNS information here: ——输IP(eg:69.45.45.34)(视当地运营商的DNS服务器IP而定)
>> Please enter your PPPoE password: ——输网通用户口令
>> Choose a type of firewall (0-2): ——输0 (0为不要防火墙)
>> Accept these settings and adjust configuration files (y/n)? ——输y
执行pppoe-start后。出现connected!的提示,说明ADSL已拨号成功,可以ping 下google看通不。
Ping www.google.com
相关推荐
标题和描述中提到的知识点是将RP-PPPOE软件移植到S3C2440(QQ2440v3)处理器平台,以便在该平台上实现ADSL拨号上网功能。这涉及到Linux操作系统、嵌入式系统、网络协议以及设备驱动等多个方面的内容。 首先,移植RP...
本文档详细介绍了如何将 rp-pppoe 软件移植到基于 S3C2440 的 Linux 系统上,以实现 ADSL 拨号上网的功能。该过程主要分为四个关键步骤: 1. **ARM Linux 内核支持 PPP**:确保 Linux 内核包含了对 PPP (Point-to-...
RP-PPPOE是宽带连接中的一个关键组件,主要用于实现PPP Over Ethernet(PPPoE)协议。PPPoE是一种在以太网上传输PPP(Point-to-Point Protocol)数据包的技术,广泛应用于ADSL(Asymmetric Digital Subscriber Line...
《UCOS-II操作系统在S3C2440上的移植及UCGUI图形界面实现》 在嵌入式系统开发中,选择一个合适的实时操作系统(RTOS)对于提高系统的效率和可靠性至关重要。UCOS-II,全称为MicroC/OS-II,是一款广泛应用的、源码...
《UCOS-II在S3C2440上的移植实践详解》 UCOS-II,全称为Micro-C/OS-II,是一款广泛应用的实时操作系统(RTOS),以其小巧、高效、可移植性强等特点,在嵌入式系统领域备受青睐。S3C2440则是三星公司推出的一款基于...
uCOS-II在S3C2440上的移植
《uCOS-II在S3C2440上的移植与应用》 uCOS-II,全称为MicroC/OS-II,是一款广泛应用的实时操作系统(RTOS),以其小巧、高效、可移植性强的特点深受嵌入式开发者的青睐。在S3C2440这款流行的ARM9处理器上移植和使用...
标题中的“s3c-s3c2440-1.rar_s3c_s3c-u_s3c2440”暗示了这是一个关于S3C2440微处理器的资源包,S3C2440是Samsung公司设计的一款基于ARM920T内核的系统级芯片(SoC)。这个压缩包很可能是包含该芯片相关的技术文档、...
### U-Boot在S3C2440上的移植方法 #### 摘要与背景介绍 U-Boot(Universal Boot Loader)作为一种通用的启动加载程序,在嵌入式系统领域得到了广泛应用。它不仅具备强大的功能,还具有较高的可移植性。然而,将其...
总结来说,"uCOS-II for s3c2440 new"项目是将知名的嵌入式RTOS移植到S3C2440处理器上,以提供一个高效、实时的操作系统环境,适合对性能有较高要求的嵌入式应用。这个项目可能涵盖了移植指南、示例代码、配置文档等...
《uCOS-II操作系统在S3C2440上的移植详解》 uCOS-II是一款流行的实时操作系统(RTOS),被广泛应用于嵌入式系统中。S3C2440是Samsung公司推出的一款基于ARM920T内核的微处理器,适用于各种嵌入式应用,如手持设备和...
在介绍如何将Qt Embedded-4.5.2和tslib1.4移植到S3C2440开发环境之前,先来梳理一下文档中所涉及的关键知识点。 首先,我们谈谈Qt Embedded。Qt Embedded是专为嵌入式系统设计的一个开源的跨平台C++图形用户界面...
《UCOS在ARM9(S3C2440)上的移植详解》 UCOS,全称为uC/OS,是一款著名的嵌入式实时操作系统(RTOS),以其小巧、高效、可移植性强而广受赞誉。ARM9是ARM公司推出的一款32位微处理器系列,广泛应用于各种嵌入式系统...