My AMT Experience 2: Intel® AMT SOL Development Experience

Original Chinese link: /zh-cn/blogs/2009/03/25/intel-amt-sol

Serial Over LAN (SOL) is a serial port redirection function of Intel® AMT used to simulate serial port communication on standard network connection. People who have used and configured device without display interface all know that a serial cable is often needed.  One end is connected to the required operable device (such as a switch, a firewall, etc.) and the other end is connected to the serial port of your own notebook. We can open the Hyper Terminal in Windows and configure the serial connection parameters, then in the Hyper Terminal, we can see the configuration interface of the device at the other side, which is text command line mode or an operable menu in text mode for better. But the limited serial cable length makes the method above only practical when the operator is around the device, imposing greater physical limitations. With SOL features of Intel® AMT, the above method can avoid the physical length limitation of serial cable by transmitting serial port data via the Internet. SOL data transmission is based on TCP, using the TCP 16994/16995 port (IANA has defined the two ports as Intel® AMT redirection port which can be automatically recognized as amt-redire-tcp by the latest Wireshark packet-catching tool), which means serial port data transmission is possible whenever TCP is connected.

 The availability of Intel® AMT SOL features are dependent on several factors:

         1) Vendors can control the enabling and disabling of Intel® AMT SOL features in motherboard production by configuring BIOS firmware parameters;

         2) Intel® AMT SOL features can be activated or disabled via Intel AMT MEBx configuration menu;

         3) Intel® AMT SOL features can be remotely activated or disabled via Intel AMT SecurityAdministrationService interface;

         4) Whether or not to open TCP port required by SOL can be controlled via Intel® AMT RedirectionService;

 According to my experience, the priority should be 1) > 2) > 3) > 4). And SOL features are available only when all setup in the four steps above have been enabled.

 We shall set OemParametersType to 1 (UseSOL) in the remote boot parameter when remotely configuring client BIOS using Intel® AMT SOL. Only in this way can Intel® AMT BIOS boot in SOL mode and simultaneously export output data to the local display and SOL serial port, when both local and remote interfaces and operations are the same. Will SOL features be unavailable if we do not specify the parameter when we reboot the client? No. The only effect of booting without UseSOL parameter is that the BIOS output will not be exported to the SOL serial port. If we write data to the SOL serial port manually, the remote console can still receive it via the Hyper Terminal or other terminal tools. For example, we can open Intel® AMT SOL serial port via serial port program and write data into it when Windows is booted, so that the data can be seen by the terminal window of the console; and data entered via the terminal window keyboard can be received by the client serial port program.

 If DOS is booted instead of UseSOL, like Windows, it has to interact with the terminal window of the remote console by reading and writing SOL serial port via programs. If UseSOL is booted, DOS output can be automatically redirected to the terminal window of the remote console without reading and writing the serial port as DOS input and output is based on BIOS, and the remote console input will be automatically received by the DOS system. If we still use programs to read and write SOL serial port on DOS, my test shows that the data written to the port can still be transmitted to the terminal window of the remote console. But the DOS system also continues screen output, which will soon override the data written on the serial port. If you do not check the terminal window of the remote console carefully, you might think that data directly written to the SOL serial port has not reached the remote console.

 As for Linux systems, you can see its BIOS-based boot menu (e.g. LinuxGrub) by booting UseSOL. Core boot output is not exported to SOL by default. We generally add a parameter console=ttyS1 in the core boot parameter, then the core boot data will be automatically exported to ttyS1 serial port. It should be noted that the AMT SOL serial port is ttyS0 if the host has no physical serial port; ttyS1 for one physical serial port, and so on. When Linux is fully booted, default consoles will not be exported to the AMT SOL without configuration. Generally, if you want to export any console to the SOL, you have to modify /etc/inittab file and open a console on the SOL serial port (ttyS1 in most cases) with agetty, so that a login prompt can be seen in the terminal window of the remote console.

Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.