command-snippets/rs232-nullmodem-ppp-internetconnection.md

7.8 KiB

https://totalizator.wordpress.com/2012/10/03/connect-windows-95-to-the-internet-using-linux-box-and-rs-232-serial-port-null-modem-cable/

How about connecting an old PC or laptop running Windows 95 to the Internet. No need for a NIC adapter or modem. All you need is a machine running Linux to share the connection, Point-to-Point Protocol daemon (PPPD) and a null modem serial cable.

Configuring pppd:

Edit your /etc/ppp/options to contain:

nodetach
debug
dump
noauth
netmask 255.255.255.0
proxyarp
192.168.1.201:192.168.1.200
ms-dns 192.168.1.1
lock
passive
lcp-echo-interval 8
lcp-echo-failure 6
nologfd
crtscts
local
connect 'chat TIMEOUT 20000 CLIENT CLIENTSERVER'
115200
/dev/ttyS0

Select a proper ms-dns and /dev/ttySx values depending on your network and hardware configuration. All the options can be also passed in command line if you prefer.

Enable ip_forwarding: 1

echo 1 > /proc/sys/net/ipv4/ip_forward

Start pppd by simply invoking it. Keep in mind that it will terminate every time the client disconnects. You can use the following script to restart it automatically:

#!/bin/sh
until pppd; do
    echo "Respawning.." >&2
    sleep 1
done

You may need root permissions for all the above commands.

Configuring Windows 95 is as simple as opening Direct Cable Connection, choosing the Guest mode and a COM port. Click Next and connection should be established immediately. You can even browse Samba shares right away. The solution should work in Windows 98 as well but I havent tested it. Happy browsing!


https://unix.stackexchange.com/questions/474687/ppp-between-two-machines-over-serial-without-a-modem

After messing around for sometime I managed to get it working. Here is the command for Fedora machine

sudo pppd -detach local debug noauth passive lock 192.168.10.100:192.168.10.1 /dev/ttyUSB0 9600

And here is the command for a Linux 4.14.0-xilinx-v2018.2 machine

pppd -detach persist debug local noauth passive lock 192.168.10.1:192.168.10.100 /dev/ttyS0 9600

I've been struggling with the problem for the past 2 months. Not sure why this question was initially downgraded. I imagine there are other people who had the same issue.


working config for me

nodetach
local
debug
noauth
passive
lock
proxyarp
defaultroute
192.168.0.10:192.168.0.201
# yourlanip:clientlanip
ms-dns 192.168.254.1
/dev/ttyUSB0
115200

how to add win 95 null modem serial internet connection http://fpga-site.com/publications/supportcenter/How%20Do%20I%20install%20a%20NULL%20Modem%20Device%20in%20Windows%2095.htm

mdmcisco.inf

[Version]
Signature="$CHICAGO$"
Class=Modem
ClassGUID={4D36E96D-E325-11CE-BFC1-08002BE10318}
Provider=%MC%
LayoutFile=LAYOUT.INF

[Manufacturer]
%Man% = Null

[Null]
%MC00% = MC00, RAS-SERIAL
%MC01% = MC01, RAS-PARALLEL
%MC02% = MC02, RAS-GENERIC

[MC00]
AddReg=All, Common, MC00Reg, 115200, EXTERNAL

[MC01]
AddReg=All, Common, MC00Reg, PARALLEL

[MC02]
AddReg=All, Common, MC02Reg, 115200, EXTERNAL

[All]
HKR,,FriendlyDriver,,Unimodem.vxd
HKR,,DevLoader,,*VCOMM
HKR,,PortSubClass,1,02
HKR,,ConfigDialog,,modemui.dll
HKR,,EnumPropPages,,"modemui.dll,EnumPropPages"

[EXTERNAL]
HKR,, DeviceType, 1, 01

[PARALLEL]
HKR,, DeviceType, 1, 04
HKR,,Override,,Paralink.vxd
HKR,, DCB, 1, 1C,00,00,00, 00,00,06,00, 15,20,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 
 13, 00, 00, 00
!--- Note: The line of code above is displayed over two lines due to space limitations.


[Common]
HKR, Answer, 1,,""
HKR, Hangup, 1,, "Bye"
HKR, Hangup, 2,, "NoResponse"
HKR, Settings, DialSuffix,, ""

; DCB's - dwords and words are byte reversed
;                                                                         ByteSize 
 (Number of bits/byte, 4-8)
!--- Note: The line of code above is displayed over two lines due to space limitations.

;                                                                             Parity 
 (0-4=None,Odd,Even,Mark,Space)
!--- Note: The line of code above is displayed over two lines due to space limitations.

;                                                                                 StopBits 
 (0,1,2 = 1, 1.5, 2)
!--- Note: The line of code above is displayed over two lines due to space limitations.

;            |DCBLength   |BaudRate    |Bit Mask    |Rsvd  |XonLim|XofLim|   |   |   |Xon
 |Xof|Err|Eof|Evt
!--- Note: The line of code above is displayed over two lines due to space limitations.

[115200]
HKR,, DCB, 1, 1C,00,00,00, 00,c2,01,00, 15,20,00,00, 00,00, 0a,00, 0a,00, 08, 00, 00, 11, 
 13, 00, 00, 00
!--- Note: The line of code above is displayed over two lines due to space limitations.


[MC00Reg] ; RAS Null-Modem
HKR, Init, 1,, "<cr>"
HKR, Init, 2,, "NoResponse"
HKR, Settings, Prefix,,""
HKR, Settings, DialPrefix,, "CLIENT<cr>"
HKR, Settings, Terminator,, "<cr>"
HKR, Monitor, 1,, "None"
HKR, Answer, 1,, "CLIENTSERVER"
HKR, Answer, 2,, "NoResponse"
; Properties - dwords and words are byte reversed
;                   |Dial Options             |InactivityTimeout        |Speaker Mode             
 |Max DTE Rate
!--- Note: The line of code above is displayed over two lines due to space limitations.

;                                |CallSetupFailTimeout     |Speaker Volume           
 |Modem Options
!--- Note: The line of code above is displayed over two lines due to space limitations.

 |Max DCE Rate
!--- Note: The line of code above is displayed over two lines due to space limitations.

HKR,, Properties, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 
 30,00,00,00, 00,c2,01,00, 00,c2,01,00
!--- Note: The line of code above is displayed over two lines due to space limitations.

HKR, Responses, "CLIENT",       1, 08, 00, 00, 00, 00, 00, 00,00,00,00 ; Server side -
 the client is requesting a connection
HKR, Responses, "<h00>CLIENT",  1, 08, 00, 00, 00, 00, 00, 00,00,00,00 ; Server side - 
 the client is requesting a connection
HKR, Responses, "CLIENTSERVER", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Client side - 
 the server has acknowledged and the connection is completed
!--- Note: The lines of code above are each displayed over two lines due to !--- space limitations.


[MC02Reg] ; Null-Modem
HKR, Init, 1,, "<cr><cr>"
HKR, Init, 2,, "NoResponse"
HKR, Settings, Prefix,,""
HKR, Settings, DialPrefix,, "HELLO<cr>"
HKR, Settings, Terminator,, "<cr>"
HKR, Monitor, 1,, "None"
HKR, Answer, 1,, "HELLO"
HKR, Answer, 2,, "NoResponse"
; Properties - dwords and words are byte reversed
;                   |Dial Options             |InactivityTimeout        |Speaker Mode             
 |Max DTE Rate
!--- Note: The line of code above is displayed over two lines due to space limitations.

;                                |CallSetupFailTimeout     |Speaker Volume           
 |Modem Options            |Max DCE Rate
!--- Note: The line of code above is displayed over two lines due to space limitations.

HKR,, Properties, 1, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00, 00,00,00,00,
 30,00,00,00, 00,c2,01,00, 00,c2,01,00
!--- Note: The line of code above is displayed over two lines due to space limitations.

HKR, Responses, "<h00>", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Accept any recvd data
 as CONNECTED.
HKR, Responses, "<hff>", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Accept any recvd data
 as CONNECTED.
HKR, Responses, "<cr>", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Accept any recvd data
 as CONNECTED.
HKR, Responses, "<lf>", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Accept any recvd data
 as CONNECTED.
HKR, Responses, "<cr><lf>", 1, 02, 00, 00, 00, 00, 00, 00,00,00,00 ; Accept any recvd data
 as CONNECTED.
!--- Note: The lines of code above are each displayed over two lines !--- due to space limitations.



[Strings]
MC = "Mark Crossley"
Man = "(NULL Modem Types)"
MC00 = "RAS Serial Cable between 2 PCs"
MC01 = "RAS Parallel Cable between 2 PCs"
MC02 = "Generic NULL Modem"