blob: a2ee9a57e96b3d785d3c6de548be633f63ef8b7d [file] [log] [blame]
.. _telnet-console-sample:
Sample TELNET console application
#################################
Overview
********
This application will setup IPv4/IPv6 addresses on the default
network interface. The telnet console service is started transparently
by the kernel, along with the shell and two shell modules: net and kernel.
Once up and running, you can connect to the target over the network,
using a telnet client.
Requirements
************
- :ref:`Networking with Qemu <networking_with_qemu>`
Building and Running
********************
QEMU x86
========
These are instructions for how to use this sample application using
QEMU on a Linux host connected to a network with DHCP service.
To use QEMU for testing, follow the :ref:`Networking with Qemu
<networking_with_qemu>` guide.
Run 'loop_socat' and 'loop-slip-tap' scripts from net-tools.
.. code-block:: console
$ ./loop_socat.sh
In another window:
.. code-block:: console
$ sudo ./loop-slip-tap.sh
Run Zephyr samples/net/telnet application in QEMU:
.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/telnet
$ make pristine && make run
Once started, you should see you IP address details for example:
.. code-block:: console
[Setup] [INF] main: Starting Telnet sample
[Setup] [INF] setup_ipv4: IPv4 address: 192.0.2.1
[Setup] [INF] setup_ipv6: IPv6 address: 2001:db8::1
At this point, your QEMU guest is up and running. Connect to the telnet
console from your linux host this way:
.. code-block:: console
$ telnet 192.0.2.1
Telnet escape character is '^]'.
Trying 192.0.2.1...
Connected to 192.0.2.1.
Escape character is '^]'.
Now type enter, the shell prompt will appear and you can enter commands,
for example ``help``.
Freedom-K64F Board
===================
These are instructions for how to use this sample application running on a
Freedom-K64F board. Unlike running it on QEMU, :ref:`Freedom-K64F board
<frdm_k64f>` network configuration for IPv4 will rely on DHCPv4. You cad modify
the :file:`prj_frdm_k64f.conf` to set static IPv4 addresses if it is really needed.
For detailed instructions about building, flashing and using the serial console
logs, follow the :ref:`Freedom-K64F board <frdm_k64f>` documentation section.
Connect ethernet cable from :ref:`Freedom-K64F <frdm_k64f>` board to a
local network providing IPv4 address configuration via DHCPv4. Creating your own
dhcp server on a local network is not in the scope of this README.
Build Zephyr samples/net/telnet application:
.. code-block:: console
$ cd $ZEPHYR_BASE/samples/net/dhcpv4_client
$ make pristine && make BOARD=frdm_k64f
Flash the resulting Zephyr binary following the :ref:`Freedom-K64F <frdm_k64f>`
board documentation noted above.
From your host computer, open a serial console to your board:
.. code-block:: console
$ sudo screen /dev/ttyACM0 115200
Plug the Ethernet cable to the :ref:`Freedom-K64F <frdm_k64f>` board.
Reset the board, you should see first on the console:
.. code-block:: console
[dev/eth_mcux] [INF] eth_0_init: Enabled 100M full-duplex mode.
[dev/eth_mcux] [DBG] eth_0_init: MAC 00:04:9f:69:c7:36
shell> [Setup] [INF] main: Starting Telnet sample
[Setup] [INF] setup_dhcpv4: Running dhcpv4 client...
[Setup] [INF] setup_ipv6: IPv6 address: 2001:db8::1
And if the DHCPv4 client succeeds, you will soon see something like:
.. code-block:: console
[Setup] [INF] ipv4_addr_add_handler: IPv4 address: 192.168.0.21
[Setup] [INF] ipv4_addr_add_handler: Lease time: 86400 seconds
[Setup] [INF] ipv4_addr_add_handler: Subnet: 255.255.255.0
[Setup] [INF] ipv4_addr_add_handler: Router: 192.168.0.1
The above result depends on your local network.
At this point you should be able to connect via telnet over the network.
On your linux host:
.. code-block:: console
$ telnet 192.168.0.21
Telnet escape character is '^]'.
Trying 192.168.0.21...
Connected to 192.168.0.1.
Escape character is '^]'.
You are now connected, and as for the UART console, you can type in
your commands and get the output through your telnet client.