调试时间: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 模式 ,无忧启动论坛http://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编程环境搭建https://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