Putting Linux on Your Motherboard
Total Page:16
File Type:pdf, Size:1020Kb
PROGRAMMING LinuxBIOS The LinuxBIOS project Putting Linux on your motherboard inuxBIOS releases yet another part If you haven’t come across the LinuxBIOS project [1] yet, you may be amazed at of your PC to Open Source software L– in this case, the BIOS chip itself. what it sets out to do. BY ANTONY STONE BIOS stands for Basic Input Output System, and the BIOS chip is installed on the motherboard by the manufacturer, and which most users, no matter which Operating System they run on their computer, hardly ever think about. They only ever see the BIOS screen when the machine is first booting up, and it is usually taken for granted as simply another piece of the hardware, which hardly anyone ever considers the idea of changing. The code inside the BIOS chip (which is simply a non-volatile memory device, so that the software is available immedi- ately the computer is powered on) is responsible for starting up the machine, checking for the presence of hardware such as memory and disk drives, and then initialising them so that the real operating system can start booting. Without the BIOS, your computer would be tedious and inconvenient, to say your own is whether your motherboard do absolutely nothing when it was the least. is compatible and supported. A very turned on, because the BIOS contains LinuxBIOS also provides a good wide range of motherboards, from an the very first instructions which the CPU amount of bootup diagnostic informa- impressive list of manufacturers, are executes in order to start everything tion on the system’s serial port, and supported by the LinuxBIOS project, and working. allows control of the bootup process your first step should be to check on the The LinuxBIOS project replaces the from a serial terminal as well. This can LinuxBIOS website to find out which normal BIOS code on your motherboard make debugging of hardware problems, models are likely to work. The most with the Linux kernel itself, so that your or reconfiguration of a system, much important requirement for a mother- machine boots instantly into Linux easier than the usual vendor-specific board to run LinuxBIOS is that it has a within seconds of turning it on. keyboard-and-screen method. BIOS chip which is removable from its LinuxBIOS has more advantages than This article shows you how to swap socket, since this is how you change the simply very fast boot times, however. your BIOS chip for LinuxBIOS, and physical chip containing the old BIOS LinuxBIOS has been mainly developed explains the detailed steps necessary to code for a larger capacity memory chip for cluster systems, because it allows compile the kernel and program the code containing the LinuxBIOS code. far greater remote management and into a LinuxBIOS chip. Note that since This article describes the PC-Chips’ configuration than a standard BIOS chip LinuxBIOS is still very much a work in M810LMR motherboard, which is a fairly does. If you have lots of servers progress, some details might have cheap but nicely integrated board, con- configured in a cluster, and you need changed since this article was written. taining on-board VGA, ethernet and to change a (normal) BIOS setting, then sound. However, the steps needed for going around connecting a screen and Hardware installing LinuxBIOS on any other sup- keyboard to each machine, rebooting The first thing to check if you’re plan- ported motherboard are very similar to and making a manual change can ning to create a LinuxBIOS system of those shown here. 76 March 2003 www.linux-magazine.com LinuxBIOS PROGRAMMING The other main item of hardware Note that, although it is possible to use required in order to create a working a “development system” for creating the LinuxBIOS system is the Disk-on-Chip LinuxBIOS code, programming this into memory device, which will be plugged the DoC, and then placing this into a into the BIOS socket on the mother- separate “target system” which will board, and which has the capacity actually run the code, it is in fact just as to contain the Linux kernel and the small simple, and more convenient, to use a amount of bootstrap code which single machine as both development and LinuxBIOS generates to initialize the target systems at the same time. It is motherboard hardware. assumed that you are already familiar Disk-on-Chip devices are memory with performing a basic Linux chips which can be “formatted” to appear installation on a machine, and that you like a hard disk device, and which can are comfortable with compiling a kernel contain a standard Linux filing system. and installing it. The steps involved in Figure 1:The ZIF socket plugged into the mother- The LinuxBIOS project uses the Disk-on- creating a LinuxBIOS machine are: board, with the original BIOS chip inserted Chip (DoC) to hold the bootup code, and •Install Linux on your target machine, also optionally a root filing system (so it including support for the flash DoC you can look underneath the ZIF socket is in fact possible to create a completely devices (which most kernels will not as you are inserting it. standalone diskless machine). have as standard) Once the ZIF socket is in place, lift the The specific DoC device used in this •Get the LinuxBIOS source code lever, insert the original BIOS chip (plac- project is the M-Systems’ MD-2800-D08 • Get the correct Linux kernel source, ing the notch or dot at the lever end of (part number MD-2802-D08 is a suitable patch it and build it the socket) and lower the lever to secure alternative as well). This device is an 8 • Configure and build the LinuxBIOS the chip in place. Then reassemble the megabyte flash-programmable device boot code for your motherboard motherboard into the case and power up which fits into the standard 32-pin •Get the Memory Technology Devices the system to make sure you get the socket used by the 2 megabit BIOS chip. (MTD) utilities and build the “erase” usual BIOS startup screen, confirming Note the slightly confusing contrast utility that the ZIF socket and BIOS chip are between the DoC devices, which are •Remove the BIOS chip from its socket correctly installed. measured in bytes, and the standard (with the power on!) and put a Disk- If you don’t already have Linux Flash Rom BIOS chips, which are on-Chip in its place installed on the machine, install a basic measured in bits. The DoC has a • Burn the LinuxBIOS image containing Linux system; note that you will require capacity 32 times that of the BIOS chip it the boot code and the kernel into the the usual development tools (compilers is replacing; the simple reason for this Disk-on-Chip etc.) for building your own kernel, and being that it is not possible to fit the •Hit reset to start the new LinuxBIOS you will also need to install Python, as Linux kernel into 2 megabits. system. this is used to create the configuration Finally, it is highly recommended that It is a good idea to plug the ZIF socket files used for LinuxBIOS. you obtain a 32-pin Zero Insertion Force into the motherboard, and then place the The first thing you should do after (ZIF) socket in order to make removal original BIOS chip into the ZIF socket in installing the basic system is compile the and insertion of the BIOS and DoC order to start the system up (Figure 1). kernel which will be used to create the devices simple and safe. Part of the Firstly, note the orientation of the BIOS LinuxBIOS system, so that it contains process for programming the code into chip in its socket (there is a notch at one support for MTD (Memory Technology the DoC device involves removing the end, or a dot in one corner, of the chip), Devices), which is unlikely to be standard BIOS chip and replacing it with remove the chip, and plug the ZIF socket included in a standard kernel. It is the DoC device – while the power is on into the motherboard socket. Place the important that you have support for and the motherboard is running. lever of the ZIF socket at the same end of loadable modules on the development Attempting this without the use of a ZIF the socket as the notch or dot was on the machine, since for programming the DoC socket is definitely not recommended. BIOS chip. device in the BIOS socket of the mother- You may need to bend the pins of board, it is necessary to run a command Getting started connectors nearby to get the ZIF socket before loading the DoC support modules, The first thing you should do is read the to fit – on the M810LMR there is an and therefore you cannot compile this LinuxBIOS FAQ, available from the web- unused 3-pin fan connector in the way. support directly into the kernel. site [1], and also the LinuxBIOS Make sure you plug the ZIF socket If you use make menuconfig to config- documentation for your chosen mother- cleanly into all 32 holes on the socket on ure your kernel, the additional options board, which in the case of the the motherboard – it’s easy to miss a you need to select (accurate for a 2.4.19 M810LMR being used here, is based couple of pins at one end and get the kernel) in order to build LinuxBIOS into around the SiS630 chipset. The FAQ whole thing moved along one place.