Firmware/Remote

From OLPC
< Firmware
Revision as of 23:02, 25 February 2013 by Quozl (talk | contribs) (Using telnetd)
Jump to: navigation, search

Firmware Remote Diagnosis

Using telnetd

Ofw-telnet-external.png

On the target firmware system:

  • start the telnet server:
ok telnetd
  • note the IP address shown,
  • wait for connection to arrive.

On the host system:

  • start the telnet client and connect to the IP address,
ok telnet IP

Once connected, the host keyboard and display will be using the command interpreter of the target.

To disconnect, type exit-telnet in the target command interpreter, or use ^] to exit the telnet client.

This method is ineffective if the target system is behind a NAT router with respect to the host, since the IP address is not routable.

Using rdc via a relay

The instructions are for the remote support agent:

  • set up a TCP relay on ports 8024 and 8023 of a host that is accessible to the user over the internet:
% socat \
  TCP-LISTEN:8024,fork,reuseaddr,nodelay,bind=127.0.0.1 \
  TCP-LISTEN:8023,reuseaddr,nodelay
  • start your telnet client and connect to port 8024:
% telnet -- 127.0.0.1 -8024
(the odd arguments are to force automatic initiation of TELNET options which would otherwise be omitted due to the non-standard port number).
  • ask the user to type rdc IP on the remote system, where IP is the IP address of the host running socat:
ok rdc IP
  • use the remote system via the connection. When done, type exit-rdc or just close the connection.

The port number can be changed by mutual agreement. The default is 8023. For instance, to use port 9023 you must (a) change the socat command from 8023 to 9023, and (b) add 9023 to the end of the rdc command:

ok rdc IP 9023

Using rdc on a local network

  • on the host firmware system, start rdcd to listen for connections, and note the IP address shown,
ok rdcd
  • on the target firmware system, type rdc IP,
ok rdc IP
  • use the remote system via the connection. When done, type exit-rdc or close the connection with ctrl-].

Combining with serial terminal

Use of rdc, rdcd, telnet and telnetd are ineffective if the problem being diagnosed is networking. In that case, the target firmware system must be accessed via serial.

Therefore, use another system as a relay, and start the serial program.

Internals

  • telnet - a plain telnet client,
  • telnetd - a telnet server that binds the console to the accepted connection,
  • rdc - a telnetd that makes rather than accepting a connection.
  • rdcd - a telnet that accepts rather than making a connection.