Firmware/Remote

From OLPC
Jump to navigation Jump to search

Firmware Remote Diagnosis

Using telnetd

  • on the target firmware system, start the telnet server:
ok telnetd
  • note the IP address shown,
  • on the host system, start the telnet client and connect to the IP address,
ok telnet IP

This is ineffective if the target system is behind a NAT router.

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. For instance, to use port 9023 you must (a) change the socat reference 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.