.. zephyr:code-sample:: telnet-console :name: Telnet console :relevant-api: shell_api net_core net_if net_mgmt Access Zephyr shell over telnet. 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` 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` guide. Run Zephyr samples/net/telnet application in QEMU: .. zephyr-app-commands:: :zephyr-app: samples/net/telnet :host-os: unix :board: qemu_x86 :goals: run :compact: 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 ` 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 ` documentation section. Connect ethernet cable from :ref:`Freedom-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: .. zephyr-app-commands:: :zephyr-app: samples/net/telnet :board: frdm_k64f :goals: build :compact: Flash the resulting Zephyr binary following the :ref:`Freedom-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 ` 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.