Welcome to the dark corner of BIOS reverse engineering, code injection and various modification techniques only deemed by those immensely curious about BIOS

Showing posts with label BIOS Modification in Linux. Show all posts
Showing posts with label BIOS Modification in Linux. Show all posts

Monday, March 2, 2015

Remote Access in Legacy BIOS

In this post I'm going to talk about Remote Access in Legacy BIOS via serial console. I aware some (or most) of you are aware that BIOS has provided management console via serial port for a long time. I have the opportunity to modify a customer custom Geode board BIOS to add support for Serial Console a few years ago. It's a quite nifty but rather buggy implementation though (I meant the serial console module). This one is from AMIBIOS Core8. This is the screen shot from minicom in Arch Linux.

As you can see, the terminal looks like how you would expect it when accessed via real keyboard. Unfortunately, some function keys are not working as expected. You can configure the serial port just like you'd expect on old BIOS with serial port support, i.e. the BAUD rate, flow control, bit-ness (8-bit), etc.. The Remote Access menu in the picture is where one would configure the serial port setting for the remote access (serial console).

I'm "dusting-off" this old board from storage because it's quite a nice board to tinker with. I almost forgot that it has remote BIOS access feature back then. Basically, it works like Linux serial terminal in most embedded Linux boards out there. But, this one is limited. I think many enterprise-class motherboard has this feature back in the day and also today because it's a very crucial feature for remote manageability especially if you have thousands of machine to work with. Keep watching this one guys ;-). It's gonna be interesting..

Friday, March 12, 2010

Using Modbin6 in Linux

You can use the wineconsole application to run a console BIOS utility such as modbin6 in Linux. Wineconsole is part of Wine. Now, let's see an example. Let say, I have installed Wine and I want to run modbin6 from my home directory (which should already contain the modbin6 executable), I would invoke it like this:
pinczakko@opusera:~/$ wineconsole MODBIN6.EXE
This is how the snapshot of the console which is spawned by the command above: Now, you can use the spawned console (which already runs modbin6) to navigate to the BIOS binary which you want to edit. Note that the path to the binary will default to "C:\" in wineconsole which would be in your wine "home directory". In my case the wine "home directory" is at ~/.wine and drive C in that directory is at ~/.wine/drive_c. Therefore, if you want to place the BIOS binary which you want to edit in drive C (C:\), you should copy the biary over to your drive_c directory, which is in my case at ~/.wine/drive_c. Below is the screen shot from a running Modbin6 in wineconsole. That's it. Now you should be able to work with modbin6 in linux.

Monday, December 7, 2009

Running Hexworkshop with Wine

Another indispensable BIOS modification tool is Hexworkshop. Well, there are lots of binary file editor in Linux but none of them lives up to Hexworkshop feature sets and ease of use yet (at least based on my experience).  

Fortunately, it works just fine under wine albeit sometimes with noticeable--but not distracting--slowdowns. Here is the screenshot of Hexworkshop 

Anyway, the difference between the AMI BIOS tools and Hexworkshop, lies in their installation method. You have to "install" Hexworkshop to wine (by using the winefile utility or other similar means) prior to using it, while AMI BIOS tools are just fine to invoke directly from the shell, such as:

pinczakko@opusera:~/work_in_progress$ wine AMIBCP_V3.37.exe
That's it. Now, I can mess with AMI BIOS file in Linux.

AMI BIOS Modification in Linux

Since I have a rather weird 3G modem that doesn't work correctly in Windows, I have to use Linux (x86_64) to get online. This is a drawback when I want to do some BIOS modification, until just now. I experimented with Windows AMI BIOS tools recently in my Slamd64 Linux installation with wine. The result is promising. The BIOS binary produced by the AMI BIOS tools runs just fine, equal to modifying the BIOS in Windows. Well, there is some warning of unimplemented filename related API when I run MMTOOL but overall, it works just fine.

Below is AMIBCP screenshot running under wine in Linux

Below is the screenshot of MMTOOL running under wine in Linux

Perhaps, you noticed the weird font rendering. Well, I can't get the font right yet on applications running under wine in my system.

So, now I can do BIOS modification in Linux (at least AMIBIOS) without having to resort to the "painful" Windows installation in my machine.