arm嵌入式系统下,手把手教你移植pppoe拨号客户端,使用pppoe拨号上网

news2024/11/15 15:51:02

移植pppoe拨号客户端

    • 一、概述
    • 二、移植过程
      • 1、内核配置
      • 2、pppd工具编译
      • 3、pppoe工具编译
    • 三、配置pppoe参数
    • 四、创建节点信息
    • 五、pppoe服务器搭建

一、概述

PPPoE(英语:Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)和数字用户线路(DSL)等以以太网协议向用户提供接入服务的协议体系。
本质上,它是一个允许在以太网广播域中的两个以太网接口间创建点对点隧道的协议。
以Linux系统常用的pppd为例,支持PPP接口上面的IP、IPv6和IPX网络层协议。
它使用传统的基于PPP的软件来管理一个不是使用串行线路而是使用类似于以太网的有向分组网络的连接。这种有登陆和口令的标准连接,方便了接入供应商的记费。并且,连接的另一端仅当PPPoE连接接通时才分配IP地址,所以允许IP地址的动态复用。
PPPoE是由UUNET、Redback Networks和RouterWare所开发的。发表于RFC 2516说明中。(来源于:百度百科
pppoe拨号上网,一般出现在家庭网络中,运营商人员将宽带接入到家庭后,会在光猫上进行配置pppoe拨号功能,输入账号密码进行登录,这样你的电脑或其他设备连接网络时,就不需要进行拨号就可以上网了,这是因为光猫里做了拨号的功能,并且现在的光猫具有路由器的功能,下面接入电脑时,会使用dhcp功能进行分配ip地址进行上网。

二、移植过程

移植过程主要是一下几个部分:内核需要支持PPPoE功能,编译pppd,编译pppoe。

1、内核配置

这一部分是内核配置,需要内核支持pppoe:
使用make menuconfig命令配置内核,可以参考一下下面的配置,将pppoe相关的选项都选中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
配置完成后,记得将内核重新编译和重新烧写到设备里。

2、pppd工具编译

因为需要交叉编译,需要用到ppp源码,可以在网上进行下载:https://download.samba.org/pub/ppp/
在这里插入图片描述
我这里下载的版本是ppp-2.4.1版本;下载完成后进行解压,进入ppp-2.4.1目录执行:

./configure
make CC=arm-linux-gcc   // 交叉编译链替换成自己的

执行完成后,在pppd目录下就会生成pppd可执行程序。将pppd拷贝到开发板上的/usr/sbin目录下,记得赋予执行权限。在移植完内核和pppd后,可以在板子上执行pppd,正常情况下会出现乱码,就说明移植成功了。

3、pppoe工具编译

pppoe的编译跟pppd类似,下面就具体说一下编译步骤。首先也是去网上下载rp-pppoe源码,网上文章中提到的官网地址,我这边登录不进去,不清楚是不是还在维护,这里提供给大家另外一个地址,也有可能是官方网站的:https://src.fedoraproject.org/repo/pkgs/rp-pppoe/ 在这个网站上自己可以下载想要的版本源码文件:
在这里插入图片描述
下载后进行解压,我下载的是3.8版本的,进入rp-pppoe-3.8/src目录执行:

./configure

配置后,需要手动修改Makefile文件中的编译链,因为在configure文件中对交叉编译链进行配置不生效,将文件中的gcc和ar修改为自己对应的编译链。记得将libevent目录下的Makefile文件也要修改。
修改后就可以进行编译了,执行make后,会生成pppoe-relay、pppoe-server、pppoe-sniff、pppoe可执行程序,将这些程序一起拷贝到开发板/usr/sbin目录下。
还有一些配置文件一块拷贝过去,在scripts目录下,将pppoe-init、pppoe-stop、pppoe-start、pppoe-setup、pppoe-status、pppoe-connect拷贝到开发板/usr/sbin目录下。
在开发板端文件系统的etc目录下新建一个ppp文件夹,再把rp-pppoe文件夹下的configs文件夹下的所有文件拷贝至刚新建的ppp中。

三、配置pppoe参数

所有的工具都拷贝到开发板中后,执行pppoe-setup开始配置:

第一个需要配置的是pppoe服务器上分配的账号名称,按照实际分配的进行填写。
在这里插入图片描述

第二个配置的是网络网卡名称,按照自己实际的网卡名称填写。
在这里插入图片描述

第三个是链接按需出现配置,直接输入no即可。
在这里插入图片描述

第四个是配置dns,我这里填写的是114.114.114.114,不清楚的话,也可以填写server。
在这里插入图片描述

第五个配置密码:
在这里插入图片描述

第六个是配置防火墙,0是不开启防火墙
在这里插入图片描述

最后输入y保存到配置文件即可,配置工作到此结束,后面会提示你使用pppoe-start命令进行拨号连接。

四、创建节点信息

在执行pppoe-start时,需要确认是否有/dev/pts节点目录,如果没有的话就需要手动创建。
进入pts,创建节点mknod 0 c 136 0; mknod 1 c 136 1。 136代表什么呢?我查阅了一番,最终在linux内核文档中找到了:
在这里插入图片描述

五、pppoe服务器搭建

如果是测试上面搭建的设备端环境是否能正常工作,就需要搭建一个测试环境:pppoe服务器。
该工作我放到了另外一篇文章中去介绍,敬请期待!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/564434.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows GUI自动化控制工具之python uiAutomation

对 Windows GUI进行自动化控制的工具有很多,比如pywinauto、pyautogui、pywin32、Autoit、airtest、UIAutomation等,UI Automation API是微软提供的自动化框架,可在支持 Windows Presentation Foundation (WPF) 的所有操作系统上使用&#xf…

Niagara—— Niagara Editor界面

目录 一,菜单栏 二,工具栏 三,预览面板 四,参数面板 五,系统总览面板 六,暂存区面板 七,选择面板 打开Niagara Editor: 双击Niagara发射器或系统;右击Niagara发射…

Qt--事件分发器

写在前面 在 Qt 中,事件分发器(Event Dispatcher)是一个核心概念,用于处理 GUI 应用程序中的事件。事件分发器负责将事件从一个对象传递到另一个对象,直到事件被处理或被取消。 每个继承自QObject或QObject的类都可以在本类中重写bool even…

基于 Amazon API Gatewy 的跨账号跨网络的私有 API 集成

一、背景介绍 本文主要讨论的问题是在使用 Amazon API Gateway,通过 Private Integration、Private API 来完成私有网络环境下的跨账号或跨网络的 API 集成。API 管理平台会被设计在单独的账号中(亚马逊云科技提供的是多租户的环境),因为客观上不同业务…

生于零售的亚马逊云科技,如何加速中国跨境电商企业出海?

导读:跨境电商进入精耕细作的新阶段。 作为中国企业出海的重要领域之一,近几年跨境电商行业处在快速发展中。商务部数据显示,2022年中国跨境电商出口达1.55万亿,同比增长11.7%。2023年1-2月,跨境电商进出口总额同比增长…

【wpf】视觉树上找元素的注意事项

前言 我们通过 VisualTreeHelper类 可以在视觉树上找元素,下面提供几个封装好的方法: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Media; using Sy…

分析| Flutter 3.10版本有哪些变化?

Flutter是Google推出的一款用于构建高性能、高保真度移动应用程序、Web和桌面应用程序的开源UI工具包。Flutter使用自己的渲染引擎绘制UI,为用户提供更快的性能和更好的体验。Flutter还提供了丰富的构建工具、库和插件,使开发人员能够更快地构建应用程序…

从浅入深理解序列化和反序列化

文章目录 什么是java序列化什么情况需要使用 Java 序列化为什么要序列化序列化和反序列化过程如下RPC 框架为什么需要序列化序列化用途序列化机制可以让对象地保存到硬盘上,减轻内存压力的同时,也起了持久化的作用序列化机制让Java对象可以在网络传输 实…

LINUX 提权 脏牛CVE-2016-5195

这里写复现过程,不写原理 Linux内核 > 2.6.22(2007年发行,到2016年10月18日才修复) 靶场环境是vluhub上的。网卡自己配置好 nmap扫一下 80端口开的,上去 52.136 再扫 1898开放 访问开干 是个cms msf上线找这…

【VictoriaMetrics】VictoriaMetrics单机版批量和单条数据写入(opentsdb格式)

VictoriaMetrics单机版支持以opentsdb格式的数据写入包含linux形式和postman形式,写入支持单条数据写入以及多条数据写入,下面操作演示下如何使用 1、首先需要启动VictoriaMetrics单机版服务 注意,如果支持opentsdb协议需要在启动单机版VictoriaMetrics的时候加上opentsdbH…

一、尚医通微信登录

文章目录 一、登录需求1、登录需求 二、微信登录1、OAuth21.1OAuth2解决什么问题1.1.1 开放系统间授权1.1.2图例1.1.3方式一:用户名密码复制1.1.4方式二:通用开发者key1.1.5方式三:颁发令牌 1.2 OAuth2最简向导1.2.1 OAuth主要角色1.2.2最简向…

就业内推 | 国企招运维、网安,五险一金全额缴,最高15k

01 北京安信创业信息科技发展有限公司 🔷招聘岗位:网络运维岗 🔷职责描述: 1、负责北区数据中心、总部数据中心、部本部、21家在京直属事业单位内网网络系统的日常运行维护工作。 2、负责网络故障的应急处置。 3、负责网络系统…

决策树及决策树的划分依据(ID3、C4.5、CART)

一、决策树是什么? 决策树是一种基于树状结构的机器学习算法,用于解决分类和回归问题。它是一种自上而下的递归分割方法,通过对特征空间的递归划分来构建一个树形模型,用于进行预测和决策。在决策树中,每个内部节点表…

Redis概述

前言 为什么要使用Redis? ​ 如果熟悉JVM底层的话,就能了解Java程序的运行大多数都是基于对内存的操作,读取、并更、清理,并同时保证数据的可靠性。即使是数据库,例如MySQL几乎都是基于对缓冲区的操作,只是通过后台…

(常见)数据模型

文章目录 数据模型概述一、数据模型概要1.模型、建模与抽象2.数据模型3.两类数据模型 二、数据库模型的组成要素1.数据结构2.数据操作3.数据的完整性约束 三、概念模型1.概要2.基本概念3.概念模型的表示方法 常用数据模型一、层次模型1.简介2.数据结构3.数据操纵与完整性约束4.…

二叉搜索树中第K小的元素

给定一个二叉搜索树的根节点 root ,和一个整数 k ,请你设计一个算法查找其中第 k 个最小元素(从 1 开始计数)。 示例 1: 输入:root [3,1,4,null,2], k 1 输出:1 示例 2: 输入&am…

List、Set、Map的区别?

List 是一个有序集合,里面可以存储重复的元素Set 是一个不能存储相同元素的集合Map 是一个通过键值对的方式存储元素的,键不能重复 Java 容器分为Collection 和Map 两大类,Collection 集合的子接口有Set、List、Queue 三种子接口。其中&#…

CSDN MD编辑器跳转方法及字体格式

一、点击关键语句跳转指定位置 在CSDN写文章的时候,写的文章过长往往会让读者很难找到自己想看的部分,这时候有个 跳转到指定位置功能 就非常的便利。CSDN在MD编辑器上(富文本编辑器只有一种)就提供了两种跳转到指定位置的方法: 一、目录跳转…

HackTheBox-关卡Fawn

1. 连接靶场,打开FAWN实例场景,检查是否互通 TASK1 3 个字母的首字母缩写词 FTP 代表什么? 答案是:File Transfer Protocol TASK2 问题是:FTP服务通常监听哪个端口? FTP监听的TCP端口号为21,监听的数据端…

【自动化测试】selenium工具

文章目录 为什么要做自动化测试?为什么选用Selenium?Selenium的工作原理SeleniumJava环境搭建Selenium常用API浏览器参数配置定位元素操作测试对象时间等待信息打印对浏览器操作键盘与鼠标操作屏幕截图弹窗处理选择框的处理上传文件 JUnit单元测试注解参…