如何仅使用Raspberry Pi的串行线将其连接到Internet

步骤1:确定usb uart转换器rx/tx线
您需要确保转换器上的哪些引脚是rx/tx串行线。不要依赖转换器pcb上的标记,因为它们可能不正确!如果您知道哪条线是tx和rx,则可以跳过此步骤。
如果不确定哪条线是tx,可以在可疑引脚上串联一个电阻和led,led应当闪烁
假定/dev/ttyusb0是转换器,
# this will make a led attached to the tx blink once
stty -f /dev/ttyusb0 9600 raw
dd if=/dev/zero of=/dev/ttyusb0 bs=1000 count=1
一旦确定了tx引脚,就可以将其连接到转换器上的可疑rx引脚构成回波环路。您应该能够收到写入的内容。
screen /dev/ttyusb0 115200
在屏幕会话中键入字符时,连接tx-rx时屏幕应回显它们。
步骤2:将计算机连接到raspberry pi
将usb 《-》 uart转换器连接到raspberry pi 。您需要连接tx,rx和gnd线。 tx代表“发送器”,rx代表“接收器”。连接两个uart设备时,必须以tx和rx交叉的方式连接它们。这意味着从一个设备上的tx引脚输出到另一设备上的rx输入引脚,反之亦然。有时称为空调制解调器。
uart convertor raspberry pi gpio
gnd ---------------------- gnd
tx output pin ------------ rxd pin 10 on gpio header
rx input pin ------------- txd pin 8 on gpio header
请确保您的转换器使用3.3v逻辑电平输出! raspberry在其gpio上使用3.3v逻辑,较高的电压可能会损坏gpio!如果您的转换器使用5v逻辑电平,则必须使用某些逻辑电平转换器。
步骤3:使用控制台测试连接
默认情况下,raspbian使用内置的uart进行linux控制台访问和内核调试。现在,我们将利用此优势来测试接线。稍后我们将禁用此功能,并仅使用uart进行联网。
可以通过/dev/ttyama0专用设备访问raspi的uart。
首先,确保串行控制台位于启用。在cmdline.txt中,您应该看到类似以下内容的
dwc_otg.lpm_enable=0 console=ttyama0,115200 kgdboc=ttyama0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
最重要的部分是 console = ttyama0,115200 ,这将告诉内核将uart假定为系统控制台。
手动编辑文件或使用raspi-config(高级选项)在串行端口上启用控制台。
第二,在linux计算机上,键入:
screen /dev/ttyusb0 115200
这将连接到raspberry pi控制台。您应该看到一个登录提示,并且能够登录。如果看不到任何内容,请尝试按enter。此外,在raspi启动时,您还应该看到内核消息。
如果没有显示器和键盘,则可以使用串行控制台连接到raspberry pi。只要确保已在cmdline.txt
中启用了控制台,就可以检查串行连接,然后可以继续下一步。
步骤4:安装必要的工具
您将需要使用“ pppd”工具来管理连接。它是‘ppp’软件包的一部分。
将ppp软件包安装到linux主机和raspberry pi:
sudo apt-get install ppp
如果没有的话您可以从raspberry pi上访问internet(一个鸡蛋问题),您可以手动下载.deb程序包,将它们放在sd卡或闪存驱动器上,然后手动安装它们。只需确保下载并安装所有依赖项即可。
sudo dpkg -i xyz.deb
步骤5:接管raspberry pi的uart
现在,当串行链接可靠工作时。我们可以禁用控制台功能,仅将uart用于网络。
首先,从cmdline.txt中删除所有ttyama0引用,如果不知道如何,请参考上一步:
dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait
在下次重新启动时,您将可以根据需要使用ttyama0。
在我们的情况下,我们将为某些合理的行为配置uart并启动ppp daemon建立一个
这些命令基本上可以满足我们的需要:
stty -f /dev/ttyama0 raw
pppd /dev/ttyama0 115200 10.0.5.2:10.0.5.1 noauth local debug dump defaultroute nocrtscts
ip地址10.0.5.2和10.0.5.1表示本地:正在使用的远程地址用于连接。您可以选择任何ip地址,只需确保网络范围不同于您正在使用的ip地址即可。在我们的例子中,10.0.5.2将是我们pi的地址,10.0.5.1将是我们linux主机的地址。
由于除了串行端口之外,我无权访问raspberrypi ,我稍微调整了pppd参数并将它们添加到/etc/rc.local脚本中,以便它们在每次raspberry启动时都执行,并且pppd始终保持运行,因此我可以随意连接和断开raspberry。
我的rc.local:
echo “starting pppd.。.”
stty -f /dev/ttyama0 raw
stty -f /dev/ttyama0 -a
pppd /dev/ttyama0 115200 10.0.5.2:10.0.5.1 noauth local debug dump defaultroute nocrtscts persist maxfail 0 holdoff 1
“ persist maxfail 0 holdoff 1”参数将使pppd尝试永久连接。
当您插入a监视到您的raspberry,您应该在屏幕上看到启动脚本的输出。
步骤6:在主机上运行pppd
启动ppp守护程序在您的计算机上:
sudo stty -f /dev/ttyusb0 raw
sudo pppd /dev/ttyusb0 115200 10.0.5.1:10.0.5.2 proxyarp local noauth debug nodetach dump nocrtscts passive persist maxfail 0 holdoff 1
在两个设备上都运行pppd时,它们应该握手并建立链接。输出应如下所示:
using channel 10
using interface ppp0
connect: ppp0 《--》 /dev/ttyusb0
sent [lcp confreq id=0x5 ]
rcvd [lcp confreq id=0x2 ]
sent [lcp confack id=0x2 ]
rcvd [lcp confack id=0x5 ]
sent [lcp echoreq id=0x0 magic=0xb4bad9a9]
sent [ccp confreq id=0x4 ]
sent [ipcp confreq id=0x4 ]
rcvd [lcp echoreq id=0x0 magic=0x263f80e1]
sent [lcp echorep id=0x0 magic=0xb4bad9a9]
rcvd [lcp echorep id=0x0 magic=0x263f80e1]
rcvd [ccp confreq id=0x2 ]
sent [ccp confack id=0x2 ]
rcvd [ipcp confreq id=0x2 ]
sent [ipcp confack id=0x2 ]
rcvd [ccp confack id=0x4 ]
deflate (15) compression enabled
rcvd [ipcp confack id=0x4 ]
cannot determine ethernet address for proxy arp
local ip address 10.0.5.1
remote ip address 10.0.5.2
script /etc/ppp/ip-up started (pid 3826)
script /etc/ppp/ip-up finished (pid 3826), status = 0x0
现在,从linux主机上,您应该能够ping或ssh raspberrypi
ping 10.0.5.2
如果ping工作正常,您可以继续执行下一步。
步骤7:设置路由和nat
一旦我们在计算机和计算机之间建立了ip链接,在raspberry pi中,我们可以配置计算机以将流量从raspi路由到internet。
首先,启用流量转发:
sudo sysctl -w net.ipv4.ip_forward=1
下一步,启用nat假装将raspi的内部地址转换为计算机的地址。假设“ eth0”是计算机上用于连接外部世界的接口:
sudo iptables -t nat -a postrouting -o eth0 -j masquerade
现在,您应该可以通过ssh进入raspberry并ping到一些internet服务器: ! - )
完成

紫光展锐正式加入全网通产业联盟,助力全网通发展
云知声上市了吗_云知声股份结构分析
家用电风扇电路的工作原理
信仰BAT,有可能让你错失良机
中国首例基于5G的远程人体手术—帕金森病“脑起搏器”植入手术成功实现
如何仅使用Raspberry Pi的串行线将其连接到Internet
5G信息通信技术峰会今日举行 5G标准化进程提速
压敏电阻在运行过程中会存在哪些不足
台积电将在6月8日召开2021年度股东大会
iOS 14出现问题:第三方应用更新后,苹果将偷偷地更换自家APP
洗衣机一般能用几年
工业互联网平台助力智改数转工作有序进行
java结合redis秒杀功能
叶面积测试仪的应用可以更好地分析植物的长势
万亿级显示大时代正在来临
汽车CAN网络测试开发方法
你知道smt排阻有无方向性吗?
国辰智企HSE安全生产管理平台:化工企业可持续发展的重要保障
BAAS精讲(上篇):一切从失败的B2B电商模式说起
暖通空调物联网解决方案如何帮助OEM节省大量成本