QNX Neutrino implements the TCP/IP stack in an executable module called io-pkt. The versions of io-pkt are:
The io-pkt-v4-hc version is full-featured, while io-pkt-v4 eliminates some functionality for environments that have insufficient RAM. However, both v4 versions support PPP.
You can start the TCP/IP stack on your embedded system without a network driver as:
You might notice that -ptcpip is appended to io-pkt in sample scripts, but io-pkt functions the same with or without this postfix.
Additionally, you will typically see -dname included in scripts. This command starts a particular network driver on the stack; however, in the example below, we don't use network hardware, so we can start io-pkt without a driver.
In addition to your selected io-pkt binary, you should include the following binaries in your image (.ifs):
Additionally, you must create a directory named /etc/ppp, and a file named /etc/ppp/chap-secrets. Include the following code in the chap-secrets file:
#localhost root "foobar" * * * "foobar" *
The purpose of the last line of code allows any user from any host to log in with the password foobar.
Now, you can start PPPD for debugging purposes from a console using the command:
pppd debug nodetach crtscts auth +chap 10.0.0.1:10.0.0.2 \ netmask 255.255.255.0 /dev/ser1 115200
Or, from a startup script using this command:
pppd persist crtscts auth +chap 10.0.0.1:10.0.0.2 \ netmask 255.255.255.0 /dev/ser1 115200
For the previous command, we are specifying the network that will be established. The embedded system will be 10.0.0.1 and the other end of the link will be 10.0.0.2; it is a class C network, specified by netmask.
In addition, the auth +chap options indicate that the other end will be authenticated with CHAP (which is supported by Windows networking). The system will reference the chap-secrets file you created earlier to match the specified password.
Without the persist option in the command, the connection will terminate after a timeout, or after one successful connection.
Use the debug nodetach command to view the diagnostic output on the terminal where you started PPPD. You can also use Control+C to stop PPPD in this mode.