ubuntu与 一台特殊的MCU进行PPP连接的问题


现象:

  双方利用pppd进行连接,双方都已显示IP。但是ping不通,2.5min后断开连接。

原因:

  pppd默认硬件流控制,而我们的MCU恰好CTS信号线是存在问题的,MCU上的linux系统是检测不到的。但是为什么能走到连接这一步,学识浅薄还不能解释。只能推测说,正式建立连接前的包,不受ctsrts流控制。

解决方案:

      pppd选项加一个  nocrtscts

过程:

①最初发现是因为测试写的libppp.so

②使用最简单pppd命令测试,问题存在

③设置iptables 顺便了解以下,防火墙规则,设置命令啥的

④查看syslog,没发现啥。在NetworkManager那花了大功夫,啥也没懂。

Nov 25 15:32:14 hzfuji-VirtualBox systemd-udevd[7520]: ethtool: autonegotiation is unset or enabled, the speed and duplex are not writable.
Nov 25 15:32:14 hzfuji-VirtualBox NetworkManager[522]:  [1637825534.1941] manager: (ppp0): new Ppp device (/org/freedesktop/NetworkManager/Devices/7)
Nov 25 15:32:15 hzfuji-VirtualBox pppd[7518]: not replacing default route to enp0s3 [10.0.2.2]
Nov 25 15:32:15 hzfuji-VirtualBox NetworkManager[522]:  [1637825535.5300] device (ppp0): state change: unmanaged -> unavailable (reason 'connection-assumed', sys-iface-state: 'external')
Nov 25 15:32:15 hzfuji-VirtualBox pppd[7518]: local  IP address 192.168.244.4
Nov 25 15:32:15 hzfuji-VirtualBox pppd[7518]: remote IP address 192.168.244.3
Nov 25 15:32:15 hzfuji-VirtualBox NetworkManager[522]:  [1637825535.5354] device (ppp0): state change: unavailable -> disconnected (reason 'none', sys-iface-state: 'external')

⑤了解原来MCU是如何进行ppp连接,以前有跑一个modem,ppp连接时他发出来的

⑥MCU串口开发时,我就有发现该modem有通过GPIO控制信号线的行为

⑦推测出可能跟硬件流相关

相关