Rust implementation of the Point-to-Point Protocol (PPP) for embedded systems. no-std
compatible, no alloc (heap) required.
- RFC 1661 - The Point-to-Point Protocol (PPP)
- RFC 1332 - The PPP Internet Protocol Control Protocol (IPCP)
- RFC 1334 - PPP Authentication Protocols
Put this in /etc/ppp/pap-secrets
, where myhostname
is the hostname of your machine.
myuser myhostname mypass 192.168.7.10
socat -v -x PTY,link=pty1,rawer PTY,link=pty2,rawer
pppd $PWD/pty1 115200 192.168.7.1: ms-dns 8.8.4.4 ms-dns 8.8.8.8 nodetach debug local persist silent noproxyarp
RUST_LOG=trace cargo run --bin simple -- --device pty2
ping 192.168.7.10
minicom -D /dev/ttyUSB0 -b 115200
- put whatever AT commands you need to connect (such as
ATD*99#
) - Control+A Q
- RUST_LOG=trace cargo run --bin simple -- --device /dev/ttyUSB0
If you want to "MITM" the serial communications to see the raw bytes coming and going, you can do this:
socat -v -x /dev/ttyUSB0 PTY,link=pty,rawer
and then use $PWD/pty
instead of /dev/ttyUSB0
This work is licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.