P4Pi AP转wifi模式

news2024/9/23 15:19:35

调试时间:2022.11.07

        树莓派在安装P4Pi后,会自动设置为AP热点模式。本文档通过配置将树莓派系统从ap模式转变为wifi模式。


1   调试环境

        Raspberry 4B 4GB-SDcard 32GB

        Raspberry Pi Imager v1.7.3

Raspberry Pi OS – Raspberry PiFrom industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.https://www.raspberrypi.com/software/

        P4Pi镜像版本:p4pi-2022-08-25-6932c3b7-lite.img

Release v.0.0.4 · p4lang/p4pi · GitHubP4 on Raspberry Pi for Networking Education. Contribute to p4lang/p4pi development by creating an account on GitHub.https://github.com/p4lang/p4pi/releases/tag/sigcomm2022

        网线+网线转换器(试连接端口)


2   镜像安装

SD卡需要安装一个P4Pi镜像而不只是树莓派官方镜像

        (1)打开树莓派镜像烧录器,选择存储卡,首先擦除SD卡。

        (2)擦除完成后继续选择该SD卡,选择自定义镜像,点击烧录。

        (3)烧录完成后,将SD卡插入树莓派,安装系统。

        附:烧录完成后,p4pi系统本身没有做GUI界面。但笔记本可以检测到自动开启的热点(SSID:p4pi,密码:raspberry),即烧录成功。连接热点后常用两种方法:一种是在浏览器访问192.168.4.1登入浏览器的web界面;另一种是利用CLI进行ssh连接(用户名:pi,密码:raspberry)。


3   系统网络调试

3.1 p4pi-ap模式

       初始系统将内置网卡设为网桥ap模式,ssid为p4pi。

        p4pi利用hostapd开启ap模式。配置文件路径:/etc/hostapd/hostapd.conf。

                配置主要参数:Linux 配置 WiFi 为 AP 模式 - Linux系统区 - 无忧启动论坛 - Powered by Discuz! Linux 配置 WiFi 为 AP 模式 ,无忧启动论坛icon-default.png?t=MBR7http://bbs.wuyou.net/forum.php?mod=viewthread&tid=431080&ordertype=1

        p4pi利用udhcpd为连接到树莓派的终端设备分配ip地址。

                查看系统信息                    uname -a                    显示:Linux p4pi 5.15.33-v8+…

                查看wlan0连接状态          iw wlan0 link                显示:not connected

3.2 p4pi-ap模式转wifi模式连接外网

       不能直接将网卡变为wlan模式,树莓派在网卡不能自动连接至局域网的情况下,将没有手段连接树莓派。因此为调整内置网卡连入局域网,按以下步骤进行调试:

       1.将树莓派和PC用网线相连,调整两端的eth0接口使其在同一网段。

       2.修改内置网卡转变为wifi模式。

       3.利用有线接入对树莓派进行控制,使其连接上室内局域网。

       4.利用wifi进行通信。

(1)配置静态eth0

        将树莓派与PC用网线相连,配置有线网段192.168.5.0/24。

        树莓派配置vim /etc/dhcpcd.conf,PC配置有图形化界面不做赘述。

        1)树莓派-ip 192.168.5.1/24,网关192.168.5.2/24

               interface eth0

               static ip_address = 192.168.5.1/24

               static router = 192.168.5.2/24

               static domain_name_servers = (DNS地址,非必)

        2)PC-ip 192.168.5.2/24,网关 192.168.5.1/24

        注意:配置后需要reboot重启树莓派,eth0地址才会更改。最后,在关闭WLAN情况下,PC也可以正常登录p4pi的web页面并进行ssh访问,证明有线配置成功。(如果无法有线连接尝试刷新PC配置或插拔网线)

(2)树莓派无线网配置:

        1)首先关闭AP模式

                sudo update-rc.d hostapd disable

                sudo service hostapd stop

        2)配置网口参数

                vi /etc/network/interfaces

        3)预设wifi账户密码(priority配置保留)

               vi /etc/wpa_supplicant/wpa_supplicant.conf

        4)运行wpa_supplicant.conf文件(检测上一步是否有误)

                sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

        5)配置静态ip地址(eth0在wlan0连接成功后去除)

                sudo vim /etc/dhcpcd.conf

        修改后 sudo reboot now 重启树莓派

        PC在与树莓派有线相连的情况下可以利用192.168.5.1访问web界面(树莓派配置的有线静态ip)。也可以在连入同一局域网的情况下利用192.168.1.101访问web界面(树莓派配置的无线静态ip)。利用ssh工具,PC端可以通过192.168.1.101或192.168.5.1访问p4pi系统。之前ap模式下设置的虚拟桥接br0为访问ap模式下的p4pi系统提供ip端口,ap关闭后br0也随之失效。

        netstat -rn查看网关

       配置临时网关sudo route add default gw 192.168.1.1 wlan0 (重启后会失效)


附录

P4pi GitHub:Home · p4lang/p4pi Wiki · GitHubP4 on Raspberry Pi for Networking Education. Contribute to p4lang/p4pi development by creating an account on GitHub.https://github.com/p4lang/p4pi/wikiP4-SDNLAB:

P4 网络编程语言 学习资料整理 - 爱吃西瓜的番茄酱 - 博客园前言 2014年,可编程、协议无关的数据包处理器(Programming Protocol-Independent PacketProcessors,P4)的发布,开启了SDN数据平面可编程的先河。 https://www.cnblogs.com/youcoding/p/15343829.html

P4官网:

P4 – Language Consortiumhttps://p4.org/

P4完整版编程环境搭建:

P4编程环境搭建icon-default.png?t=MBR7https://www.bbsmax.com/A/KE5Qlmv0JL/

树莓派镜像:

Raspberry Pi OS – Raspberry PiFrom industries large and small, to the kitchen table tinkerer, to the classroom coder, we make computing accessible and affordable for everybody.https://www.raspberrypi.com/software/

P4学习笔记:

YAOJ - 知乎学生 回答数 6,获得 566 次赞同https://www.zhihu.com/people/yaoj-x/posts

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

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

相关文章

值得信赖的数据同步备份软件 -Allway Sync 安全又可靠,简单又易用!

Allway Sync 是一款可靠的数据同步备份工具,最初的版本发布于 2004 年 4 月 19 号,距离今日大约有 19 年的更新历史了,足以说明软件绝对稳定,时间验证了软件的可靠性!而对于我们用户来说,数据同步备份最重要…

基于线性表的查找

目录 一、查找的基本概念 二、顺序查找 关键代码 完整代码 运行结果 增加哨兵 三、二分查找(折半查找) 关键代码 完整代码 运行结果 四、分块查找 图示 关键代码 完整代码 一、查找的基本概念 对查找表进行的操作 1.查找某个特定的数据元素是否存在 …

攻防世界-fakebook

题目 访问题目场景 我自己尝试了很久&#xff0c;发现怎么都找不到这道题的入手点&#xff0c;然后就去看了大佬们的文章&#xff0c;然后我发现这道题更趋近于真实的场景 解题过程 先使用目录扫描器扫一下发现存在robots.txt访问一下 这里发现存在一个备份文件 <?php…

html、css、js的小米商城

首页的展示 首页的功能 1、搜索栏模糊查询 在我在输入框输入关键字的时候&#xff0c;会匹配关键字&#xff0c;如果我的存放的数据里面包含这些关机键字就会显示出来。做到模糊查询的效果。 2、实现搜索功能 在首页的搜索框点击搜索的时候&#xff0c;就会对你输入的关键字进…

Redis 未授权访问的原理、危害及复现

原理介绍 Redis 未授权访问 准确的来说&#xff0c;其实并不是一个漏洞。而是由于开发人员配置不当&#xff0c;而产生的预料之外的危害。 具体原理&#xff1a; 可能由于部分业务要求&#xff0c;或者开发人员的配置不当&#xff0c;将 redis 服务器的 ip 和 port 暴露在公网…

基础数学(7)——常微分方程数值解法

文章目录期末考核方式基础知识解析解&#xff08;公式法&#xff09;解析解例题&#xff08;使用公式法&#xff0c;必考&#xff09;解析解的局限性数值解数值解的基本流程显示Euler法显示欧拉&#xff08;差值理解&#xff09;显示欧拉&#xff08;Taylor展开理解&#xff09…

ClickHouse表引擎详解看这篇就够了-基本讲解、处理逻辑、测试实例

表引擎是ClickHouse设计实现中的一大特色。表引擎在 ClickHouse 中的作用十分关键&#xff0c;直接决定了数据如何存储和读取、是否支持并发读写、是否支持 index、支持的 query 种类、是否支持主备复制等。1、表引擎概述1.1 介绍ClickHouse 提供了大约 28 种表引擎&#xff0c…

ArcGIS基础实验操作100例--实验43填充面要素空洞

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验43 填充面要素空洞 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&a…

JavaScript 条件语句

文章目录JavaScript If...Else 语句条件语句If 语句If...else 语句If...else if...else 语句JavaScript If…Else 语句 条件语句用于基于不同的条件来执行不同的动作。 条件语句 通常在写代码时&#xff0c;您总是需要为不同的决定来执行不同的动作。您可以在代码中使用条件语…

【学习笔记】Shell入门

Shell入门 https://www.bilibili.com/video/BV1WY4y1H7d3 资料&#xff1a;评论区取的 公众号的资料链接 https://pan.baidu.com/s/1_nBKUjE57MB2c96wmfSD5A 提取码&#xff1a;yyds 文章目录一、**Shell** 概述二、**Shell** 脚本入门三、变量1.系统预定义变量2.自定义变量**3…

自学软件测试该如何入门?

互联网行业发展很快技术更新也很快&#xff0c;软件测试技能要求在逐渐提高&#xff0c;自学软件测试要尽快而且入行后需要持续学习。保持好心态&#xff0c;找准教程&#xff0c;按照学习路线和自己的规划一步步学习下去~ 软件测试对代码的要求不像其他编程学科那么高&#x…

30个精品Python练手项目

随着 Python 语言的流行&#xff0c;越来越多的人加入到了 Python 的大家庭中。到底为什么这么多人学 Python &#xff1f;我要喊出那句话了&#xff1a;“人生苦短&#xff0c;我用 Python&#xff01;”&#xff0c;正是因为语法简单、容易学习&#xff0c;所以 Python 深受大…

Java微服务连接云服务器上的ZooKeeper

前言 这次要讲的连接ZooKeeper是在外网的云服务器上&#xff0c;不同于以往的本机上的虚拟机上的ZooKeeper&#xff0c;将会有一些不同于本机的连接方式。连接外网服务器进行操作可以更好的适应企业化的开发&#xff0c;脱离了本机的限制&#xff0c;具有很强的实战意义。 前…

小程序容器产品有何特点?

小程序容器顾名思义&#xff0c;是一个承载小程序的运行环境&#xff0c;可主动干预并进行功能扩展&#xff0c;达到丰富能力、优化性能、提升体验的目的。目前市面已知的技术产品包括&#xff1a;mPaas、FinClip、uniSDK 以及上周微信团队才推出的 Donut。今天&#xff0c;我们…

2022 年,这 20+22 位共建者闪耀 StarRocks 社区

2022 年即将过去&#xff0c;多变波动的大环境之中&#xff0c;一岁多的 StarRocks 社区依然保持了高速成长。这一年里&#xff0c;StarRocks 共发布 47 个大小版本&#xff0c;超过 200 人投入社区建设&#xff0c;每月 PR 数突破 1100。 在项目快速迭代的同时&#xff0c;社…

Jumpserver堡垒机部署使用详细教程

部署jumpserver服务器配置 官方建议2核8G 首先cd 到/opt目录下 curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.28.1/quick_start.sh | bash 下载的时候可能会报错&#xff0c;不用管多执行几次。 正常下载页面是这样 因为是从github拉的所以可…

volatile关键字(针对内存可见性)

一&#xff0c;示例 说明&#xff1a;创建两个线程&#xff0c;t1线程用来判断定义的flag变量是否等于0&#xff08;等于0的话进入循环什么都不做&#xff09;&#xff0c;t2线程用来输入一个变量来修改flag的值&#xff1b;我们想要通过t2线程修改flag变量的值来达到跳出t1线…

Educational Codeforces Round 140 (Rated for Div. 2)(A,B,D)

太久没写博客了&#xff0c;感觉做的题不自己写一遍思路总还是有点问题。。。又到了新年啦&#xff0c;cf的新年特效爱了爱了A. Cut the Triangle给出三角形的三个顶点坐标&#xff0c;问是否可以使用水平或者竖直线从任意一个顶点将三角形划为两部分。思路&#xff1a;易得知&…

研发协同利器:XState调研与应用

背景帖子详情是一个图文/视频混排、拥有大量长文本、大量交互和部分细节动效的页面&#xff0c;细节组件非常多&#xff0c;页面复杂度高。按以往的页面协作方式&#xff0c;会将一个个组件样式、组件数据和组件交互逻辑交给对应的开发同学完成&#xff0c;通过多人协同最终搭建…

【数据结构】C语言实现栈和队列

目录 一、栈 1、栈的概念及结构 2、如何实现栈 3、代码实现 3.1 栈的定义 3.2 栈中将要实现的函数 3.3 函数实现 二、队列 1、队列的概念及结构 2、如何实现队列 3、代码实现 3.1 队列定义 3.2 队列中将要实现的函数 3.3 函数实现 一、栈 1、栈的概念及结构 栈&am…