Home > Intel Communities > Open Port IT Community > Intel® vPro™ Expert Center > Blog > 2007 > November > 11
Currently Being Moderated
4

One of the tasks every BIOS vendors has to do when building a BIOS that sits on top of a Intel AMT enabled computer is to convert the text-mode display into a series of VT100 codes that are sent into the Intel AMT serial-over-LAN port to a terminal console. As I noticed when building IAmtTerm.exe , BIOS vendors do this very differently and sometimes very inefficiently.

 

The BIOS is in a position to capture displayed text when it's on the screen, something that the management engine (ME) on which Intel AMT runs can't do. Simply put, display and keyboard information does not flow thru Intel AMT. In order to provide text display and keyboard input remotely, Intel AMT provides the pipe (the virtual serial port) but needs the BIOS to do the rest. BIOS vendors where left to build code that would convert incoming VT100 codes into user key strokes and display changes into VT100 codes. As a result, how this operation is performed varies greatly from vendors to vendors, even for different BIOS from the same manufacturer (mobile vs. desktop).

 

 

The first difference is the handling of keys such as F1 to F10, there are no less than 3 different ways BIOS perform this conversion and so, IAmtTerm.exe provides 3 different mappings. Users have to change the key mapping manually and try them out. Secondly, some BIOS vendors tested against different VT100 terminals, notably terminals with only 24 lines instead of 25 lines. A real display and IAmtTerm.exe both have 25 lines, but many terminals have 24 since it was the convention during the modem days of the 80's to use the bottom text line as terminal status line. Some BIOS will try various tricks to display only 24 lines, hiding the top line, etc. Users that use IAmtTerm's "Terminal Analyzer" will also notice that different BIOS vendors convert text to VT100 differently. Some BIOS will send a full line whenever anything on that line has changed. Sometimes the codes for moving the cursor will be sent when the terminal cursor is already at that exact position on the screen. In one case, I even saw all of the display attributes (foreground and background color) be sent before each character on the screen, slowing down the display significantly.

 

 

In the latest versions of the Intel AMT Developer Tool Kit (DTK), I added Intel AMT Guardport, a light-weight C/C++ based serial agent. This new agent allows the user to shell to a command prompt and for the first time, Guardport also includes most of the same VT100 conversion that BIOS perform. When building Guardport, we took care to support all 3 F1 to F10 key mappings, and optimize VT100 display conversion to provide the best possible display speed. As a bonus, we also added proprietary mouse support, so you can enter a mouse enabled text application such as "Edit" and move the mouse over the application.

 

 

Ylian (Intel AMT Blog)

 

 

Tags: intel, amt, sol, serial, vt100


Add a comment Leave a comment on this blog post.
Nov 14, 2007 10:01 AM Vadim Sukhomlinov Vadim Sukhomlinov    says:

Ylian,

Of course in SW we can implement even hundreds ways to workaround magic VT100 implementations by OEMs. But the root cause is simple - awful planning process at Intel. Why didn't we provide guidelines on VT100 & SOL implementation in BIOS vendors? Why we didn't validate this strictly? Its leads to bad end-user experience which impacts on our sales and acceptance of vPro in the market!

 

Vadim

Nov 14, 2007 10:10 AM Ylian Saint-Hilaire Ylian Saint-Hilaire    says in response to Vadim Sukhomlinov:

I don't know the answer. There is some workaround but you can't work around the BIOS not sending some keyboard keys to the application for example. The terminal can only do so much. Yes, it would have been nice to have a single uniform way for converting to VT100. Another issue I found with BIOS vendors is that the different vendors store different events in the Intel AMT event log. So the boot process looks different depending on the BIOS vendor.

 

Ylian

Nov 14, 2007 10:31 AM Vadim Sukhomlinov Vadim Sukhomlinov    says in response to Ylian Saint-Hilaire:

so, once we have internal awareness on these issues what can we do to fix them? and what do we do now?

you do a great effort with DTK which is highly useful, but it doesn't solve root cause.

Nov 14, 2007 10:49 AM Ylian Saint-Hilaire Ylian Saint-Hilaire    says in response to Vadim Sukhomlinov:

We are not going to do anything about this now, the solution we have in place is pretty good, certainly not perfect. Also, apart from going into the BIOS, the better way to fix a computer is to boot a recovery OS, run Intel AMT Guardport (a serial-over-LAN agent) and use that. Intel AMT Guardpost can perform TCP-over-SOL, supports all F1 to F12 key mappings, you can even shell to the DOS prompt, enter EDIT and use the mouse on top of the VT100 terminal. In the future, improved ROS that make advanced use of SOL is the winner.

 

Ylian