Hi, I want to setup pppd to connect a Linux laptop to an embedded Linux device. The Linux box connected to a rs-232 to rs485 converter, then the convert connected via a two-wire rs-485 cable to the embedded Linux device's rs-485 port. I firstly started pppd command on the embedded device like as below: pppd nodetach noauth nocrtscts 192.168.2.1:192.168.2.2 /dev/tts4 38400 then I started the pppd command from the laptop: pppd nodetach noauth nocrtscts /dev/ttyUSB0 38400 But I cannot get it with success. Blow are the outputs from the embedded device: ------------- using channel 11 Using interface ppp0 Connect: ppp0 <--> /dev/tts4 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] sent [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15>] sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr 192.168.1.1>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] sent [CCP ConfReq id=0x2 <deflate 15> <deflate(old#) 15>] sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 192.168.1.1>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] sent [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15>] sent [IPCP ConfReq id=0x3 <compress VJ 0f 01> <addr 192.168.1.1>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x2231fbc0> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] LCP: timeout sending Config-Requests Connection terminated. Modem hangup ------------- And, below are the outputs from the laptop: ------------- using channel 11 Using interface ppp0 Connect: ppp0 <--> /dev/ttyUSB1 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x65b0bb44>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] sent [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0x6798784> <pcomp> <accomp>] Received bad configure-ack: 02 06 00 00 00 00 05 06 06 79 87 84 07 02 08 02 sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xa68f2c25>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x999e75e8>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xe48a6820>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xe6e1b1f2>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x6dadc190>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x2853972c>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x7098fa53>] rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] sent [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x2 <asyncmap 0x0> <magic 0x9f25675c> <pcomp> <accomp>] rcvd [CCP ConfReq id=0x2 <deflate 15> <deflate(old#) 15>] Discarded non-LCP packet when LCP not open rcvd [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr 192.168.1.1>] Discarded non-LCP packet when LCP not open sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x9caf929f>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xe985c8da>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x7687563e>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x15ee5953>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xdc3fa3d3>] rcvd [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] sent [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [LCP ConfAck id=0x3 <asyncmap 0x0> <magic 0x65fa025d> <pcomp> <accomp>] rcvd [CCP ConfReq id=0x3 <deflate 15> <deflate(old#) 15>] Discarded non-LCP packet when LCP not open rcvd [IPCP ConfReq id=0x3 <compress VJ 0f 01> <addr 192.168.1.1>] Discarded non-LCP packet when LCP not open sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xcd5ff25f>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xab78829e>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xdd2bda4d>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x808f9e80>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x812567ed>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xc85ce0ab>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xdadb426e>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x2f02532>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x908d45ee>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0xbec415ec>] rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] sent [LCP ConfNak id=0x1 <magic 0x4d50dea6>] rcvd [LCP ConfNak id=0x1 <magic 0x4d50dea6>] sent [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x3652fa84> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <magic 0x3652fa84> <pcomp> <accomp>] sent [LCP ConfNak id=0x2 <magic 0x7b4602cc>] rcvd [LCP ConfNak id=0x2 <magic 0x7b4602cc>] sent [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x4d4c86ad> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x3 <asyncmap 0x0> <magic 0x4d4c86ad> <pcomp> <accomp>] sent [LCP ConfNak id=0x3 <magic 0xb130d3ae>] rcvd [LCP ConfNak id=0x3 <magic 0xb130d3ae>] sent [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x5a1aad5> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x4 <asyncmap 0x0> <magic 0x5a1aad5> <pcomp> <accomp>] sent [LCP ConfNak id=0x4 <magic 0x26436890>] rcvd [LCP ConfNak id=0x4 <magic 0x26436890>] sent [LCP ConfReq id=0x5 <asyncmap 0x0> <magic 0xa74ff8ce> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x5 <asyncmap 0x0> <magic 0xa74ff8ce> <pcomp> <accomp>] sent [LCP ConfNak id=0x5 <magic 0x33aaea4c>] rcvd [LCP ConfNak id=0x5 <magic 0x33aaea4c>] sent [LCP ConfReq id=0x6 <asyncmap 0x0> <magic 0x17689d3c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x6 <asyncmap 0x0> <magic 0x17689d3c> <pcomp> <accomp>] sent [LCP ConfNak id=0x6 <magic 0x75c004cc>] rcvd [LCP ConfNak id=0x6 <magic 0x75c004cc>] sent [LCP ConfReq id=0x7 <asyncmap 0x0> <magic 0x30370fd6> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x7 <asyncmap 0x0> <magic 0x30370fd6> <pcomp> <accomp>] sent [LCP ConfNak id=0x7 <magic 0x30f05bd5>] rcvd [LCP ConfNak id=0x7 <magic 0x30f05bd5>] sent [LCP ConfReq id=0x8 <asyncmap 0x0> <magic 0x7d6dbfb8> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x8 <asyncmap 0x0> <magic 0x7d6dbfb8> <pcomp> <accomp>] sent [LCP ConfNak id=0x8 <magic 0x470b32bb>] rcvd [LCP ConfNak id=0x8 <magic 0x470b32bb>] sent [LCP ConfReq id=0x9 <asyncmap 0x0> <magic 0x867ff64e> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x9 <asyncmap 0x0> <magic 0x867ff64e> <pcomp> <accomp>] sent [LCP ConfNak id=0x9 <magic 0xd39b62f3>] rcvd [LCP ConfNak id=0x9 <magic 0xd39b62f3>] sent [LCP ConfReq id=0xa <asyncmap 0x0> <magic 0xc8942ab> <pcomp> <accomp>] rcvd [LCP ConfReq id=0xa <asyncmap 0x0> <magic 0xc8942ab> <pcomp> <accomp>] sent [LCP ConfNak id=0xa <magic 0xf72b23a6>] rcvd [LCP ConfNak id=0xa <magic 0xf72b23a6>] Serial line is looped back. sent [LCP TermReq id=0xb "Loopback detected"] rcvd [LCP TermReq id=0xb "Loopback detected"] sent [LCP TermAck id=0xb] rcvd [LCP TermAck id=0xb] Connection terminated. ------------- On the otherhand, I can make success with similar commands when two devices connected with rs-232. So I guess, this failure was because the rs-485 is half-duplex. But I searched google, people seemed say pppd should work over a point-to-point rs-485 connection. So I want to get help from your experts. Thanks in advance. -woody
On 17/03/2017 1:48 PM, Woody Wu wrote: > Hi, > > I want to setup pppd to connect a Linux laptop to an embedded Linux > device. The Linux box connected to a rs-232 to rs485 converter, then > the convert connected via a two-wire rs-485 cable to the embedded > Linux device's rs-485 port. > This generally will not work as rs-485 is half duplex, the issue is that the switching time between transmit and receive will mean loss of data, how ever RS-422 will work. > On the otherhand, I can make success with similar commands when two > devices connected with rs-232. So I guess, this failure was because > the rs-485 is half-duplex. But I searched google, people seemed say > pppd should work over a point-to-point rs-485 connection. So I want > to get help from your experts. > I've not done any searches but I can not see how it could ever work. PPP is a an async meaning it can transmit and receive at any time. > Thanks in advance. > -woody Mike
On 03/17/2017 11:45 AM, Mike O'Connor wrote: > On 17/03/2017 1:48 PM, Woody Wu wrote: >> Hi, >> >> I want to setup pppd to connect a Linux laptop to an embedded Linux >> device. The Linux box connected to a rs-232 to rs485 converter, then >> the convert connected via a two-wire rs-485 cable to the embedded >> Linux device's rs-485 port. >> > This generally will not work as rs-485 is half duplex, the issue is that > the switching time between transmit and receive will mean loss of data, > how ever RS-422 will work. > >> On the otherhand, I can make success with similar commands when two >> devices connected with rs-232. So I guess, this failure was because >> the rs-485 is half-duplex. But I searched google, people seemed say >> pppd should work over a point-to-point rs-485 connection. So I want >> to get help from your experts. >> > I've not done any searches but I can not see how it could ever work. PPP > is a an async meaning it can transmit and receive at any time. >> Thanks in advance. >> -woody > Mike > One of the search result is this: "http://linux-ppp.vger.kernel.narkive.com/Xcw4wgUF/ppp-over-rs-485", in which Karthik mentioned he has success with the rs-485 point to point connect although he still has problem with multi-drop bus. To me, I only has interests in point-to-point and hope there exits a solution. -woody
Hi Woody
> One of the search result is this:
> "http://linux-ppp.vger.kernel.narkive.com/Xcw4wgUF/ppp-over-rs-485",
> in which Karthik mentioned he has success with the rs-485 point to
> point connect although he still has problem with multi-drop bus. To
> me, I only has interests in point-to-point and hope there exits a
> solution.
>
> -woody
>
Reading that post, its clear to me that the original poster was probably
not actually able to use rs485. IE he had made a mistake in testing.
Its just not going to work.
Mike
On 03/17/2017 01:37 PM, Mike O'Connor wrote:
> Hi Woody
>> One of the search result is this:
>> "http://linux-ppp.vger.kernel.narkive.com/Xcw4wgUF/ppp-over-rs-485",
>> in which Karthik mentioned he has success with the rs-485 point to
>> point connect although he still has problem with multi-drop bus. To
>> me, I only has interests in point-to-point and hope there exits a
>> solution.
>>
>> -woody
>>
> Reading that post, its clear to me that the original poster was probably
> not actually able to use rs485. IE he had made a mistake in testing.
>
> Its just not going to work.
>
> Mike
>
Well... it looks like there is no solution. It's bad to me, but thank
you anyway!
-Woody
On 03/16/17 23:18, Woody Wu wrote: > Hi, > > I want to setup pppd to connect a Linux laptop to an embedded Linux > device. The Linux box connected to a rs-232 to rs485 converter, then the > convert connected via a two-wire rs-485 cable to the embedded Linux > device's rs-485 port. [...] > On the otherhand, I can make success with similar commands when two > devices connected with rs-232. So I guess, this failure was because the > rs-485 is half-duplex. But I searched google, people seemed say pppd > should work over a point-to-point rs-485 connection. So I want to get > help from your experts. I see evidence of other problems in your trace as well. The PC is receiving its own transmissions, which is very bad, and is the proximate cause of the failure. It means that the converter device you're using has local echo enabled. If there's some way to turn off local echo, you may get a little further. Check the manufacturer's documentation for that converter. This shouldn't happen: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] But even though that caused this failure, I don't think it's the root problem. As another poster said, it's not going to work like this. Two-wire TIA-485 is indeed half-duplex. There are protocols designed for use on it (MODBUS is one example), but right in the introduction to RFC 1661 (PPP), it says that you need full-duplex by design. I think it would be possible to make it work on a half-duplex link, but it wouldn't be simple or terribly efficient. The two schemes I can imagine are: - Use a master-slave type of relationship. This means having one end (perhaps the PC in this case) sending some sort of signal (I suggest using back-to-back flags; two 0x7E in a row) to let the slave side know it should send something if it has it, or to send an empty packet. The master then just periodically polls for data or sends what it has. - Use something like ALOHA or CSMA. Both of these require some means of knowing that your transmitted message has been garbled by a collision so that you can back off and retry. That might require some electrical work on your part. -- James Carlson 42.703N 71.076W <carlsonj@workingcode.com>
[-- Attachment #1: Type: text/plain, Size: 788 bytes --] Woody Wu <narkewoody@gmail.com> wrote: > I want to setup pppd to connect a Linux laptop to an embedded Linux > device. The Linux box connected to a rs-232 to rs485 converter, then > the convert connected via a two-wire rs-485 cable to the embedded Linux > device's rs-485 port. Depending upon what you really want to do (is it run ppp? Or is it, get IP connectivity?), you may want to look at: https://datatracker.ietf.org/doc/draft-ietf-6lo-6lobac/ There is some userspace code out there from Carsten I think. -- ] Never tell me the odds! | ipv6 mesh networks [ ] Michael Richardson, Sandelman Software Works | network architect [ ] mcr@sandelman.ca http://www.sandelman.ca/ | ruby on rails [ [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 487 bytes --]
On 03/17/2017 08:05 PM, James Carlson wrote: > On 03/16/17 23:18, Woody Wu wrote: >> Hi, >> >> I want to setup pppd to connect a Linux laptop to an embedded Linux >> device. The Linux box connected to a rs-232 to rs485 converter, then the >> convert connected via a two-wire rs-485 cable to the embedded Linux >> device's rs-485 port. > [...] >> On the otherhand, I can make success with similar commands when two >> devices connected with rs-232. So I guess, this failure was because the >> rs-485 is half-duplex. But I searched google, people seemed say pppd >> should work over a point-to-point rs-485 connection. So I want to get >> help from your experts. > > I see evidence of other problems in your trace as well. The PC is > receiving its own transmissions, which is very bad, and is the proximate > cause of the failure. It means that the converter device you're using > has local echo enabled. If there's some way to turn off local echo, you > may get a little further. Check the manufacturer's documentation for > that converter. This shouldn't happen: > > sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] > rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] Thank you James. I think the converter should be fine, without echo, since I remembered before the ppp setup, I tested it with mimicom on both devices and did not recognized any 'echo' behavior. But I like to double check it when I come to office next Monday. > > But even though that caused this failure, I don't think it's the root > problem. As another poster said, it's not going to work like this. > > Two-wire TIA-485 is indeed half-duplex. There are protocols designed > for use on it (MODBUS is one example), but right in the introduction to > RFC 1661 (PPP), it says that you need full-duplex by design. > > I think it would be possible to make it work on a half-duplex link, but > it wouldn't be simple or terribly efficient. The two schemes I can > imagine are: > > - Use a master-slave type of relationship. This means having one end > (perhaps the PC in this case) sending some sort of signal (I suggest > using back-to-back flags; two 0x7E in a row) to let the slave side > know it should send something if it has it, or to send an empty > packet. The master then just periodically polls for data or sends > what it has. Does this mean I hava to change the pppd source code or even the Linux kernel? > > - Use something like ALOHA or CSMA. Both of these require some means > of knowing that your transmitted message has been garbled by a > collision so that you can back off and retry. That might require > some electrical work on your part. >
On 03/17/2017 11:13 PM, Michael Richardson wrote: > > Woody Wu <narkewoody@gmail.com> wrote: > > I want to setup pppd to connect a Linux laptop to an embedded Linux > > device. The Linux box connected to a rs-232 to rs485 converter, then > > the convert connected via a two-wire rs-485 cable to the embedded Linux > > device's rs-485 port. > > Depending upon what you really want to do (is it run ppp? Or is it, get IP > connectivity?), you may want to look at: > > https://datatracker.ietf.org/doc/draft-ietf-6lo-6lobac/ > > There is some userspace code out there from Carsten I think. Michael, the 6lobac you mentioned looks exactly what I needed. But it looks a quite new standard and no a real implementation on Linux or Windows, right? > > -- > ] Never tell me the odds! | ipv6 mesh networks [ > ] Michael Richardson, Sandelman Software Works | network architect [ > ] mcr@sandelman.ca http://www.sandelman.ca/ | ruby on rails [ >
On 03/19/17 10:40, Woody Wu wrote:
>
>
> On 03/17/2017 08:05 PM, James Carlson wrote:
>> - Use a master-slave type of relationship. This means having one end
>> (perhaps the PC in this case) sending some sort of signal (I suggest
>> using back-to-back flags; two 0x7E in a row) to let the slave side
>> know it should send something if it has it, or to send an empty
>> packet. The master then just periodically polls for data or sends
>> what it has.
>
> Does this mean I hava to change the pppd source code or even the Linux
> kernel?
I don't think it would necessarily require pppd source changes (though
it's possible someone might want to add an option to control the
feature), but it'd certainly require substantial kernel changes to add
the logic to do the signaling and timing elements.
--
James Carlson 42.703N 71.076W <carlsonj@workingcode.com>
On 03/17/2017 08:05 PM, James Carlson wrote: > On 03/16/17 23:18, Woody Wu wrote: >> Hi, >> >> I want to setup pppd to connect a Linux laptop to an embedded Linux >> device. The Linux box connected to a rs-232 to rs485 converter, then the >> convert connected via a two-wire rs-485 cable to the embedded Linux >> device's rs-485 port. > [...] >> On the otherhand, I can make success with similar commands when two >> devices connected with rs-232. So I guess, this failure was because the >> rs-485 is half-duplex. But I searched google, people seemed say pppd >> should work over a point-to-point rs-485 connection. So I want to get >> help from your experts. > > I see evidence of other problems in your trace as well. The PC is > receiving its own transmissions, which is very bad, and is the proximate > cause of the failure. It means that the converter device you're using > has local echo enabled. If there's some way to turn off local echo, you > may get a little further. Check the manufacturer's documentation for > that converter. This shouldn't happen: > > sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] > rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb3a3da0c> <pcomp> <accomp>] Thank you James. I think the converter should be fine, without echo, since I remembered before the ppp setup, I tested it with mimicom on both devices and did not recognized any 'echo' behavior. But I like to double check it when I come to office next Monday. > > But even though that caused this failure, I don't think it's the root > problem. As another poster said, it's not going to work like this. > > Two-wire TIA-485 is indeed half-duplex. There are protocols designed > for use on it (MODBUS is one example), but right in the introduction to > RFC 1661 (PPP), it says that you need full-duplex by design. > > I think it would be possible to make it work on a half-duplex link, but > it wouldn't be simple or terribly efficient. The two schemes I can > imagine are: > > - Use a master-slave type of relationship. This means having one end > (perhaps the PC in this case) sending some sort of signal (I suggest > using back-to-back flags; two 0x7E in a row) to let the slave side > know it should send something if it has it, or to send an empty > packet. The master then just periodically polls for data or sends > what it has. Does this mean I hava to change the pppd source code or even the Linux kernel? > > - Use something like ALOHA or CSMA. Both of these require some means > of knowing that your transmitted message has been garbled by a > collision so that you can back off and retry. That might require > some electrical work on your part. >