This page describes how to use LinuxBIOS on the AZZA PT-6IBD.
After noticing that my motherboard is not fully supported I found much appreciated help on IRC. I submited some of my data to the guys there and with some patching things finally booted. ;)
|L1 cache enabled||Unknown|
|L2 cache enabled||Unknown|
|L3 cache enabled||Unknown|
|Multiple CPU support||Unknown|
|Dual channel support||Unknown|
|On-board IDE 3.5"||Unknown|
|On-board IDE 2.5"||Unknown|
|On-board Smartcard reader||Unknown|
|On-board SD card reader||N/A|
|ISA add-on cards||Unknown|
|Audio/Modem-Riser (AMR/CNR) cards||Unknown|
|PCI add-on cards||Unknown|
|Mini-PCI add-on cards||Unknown|
|Mini-PCI-Express add-on cards||Unknown|
|PCI-X add-on cards||Unknown|
|AGP graphics cards||Unknown|
|PCI Express x1 add-on cards||Unknown|
|PCI Express x2 add-on cards||Unknown|
|PCI Express x4 add-on cards||Unknown|
|PCI Express x8 add-on cards||Unknown|
|PCI Express x16 add-on cards||Unknown|
|PCI Express x32 add-on cards||Unknown|
|HTX add-on cards||Unknown|
|Legacy / Super I/O|
|Serial port 1 (COM1)||Unknown|
|Serial port 2 (COM2)||Unknown|
|Sensors / fan control||Unknown|
|CPU frequency scaling||Unknown|
|Other powersaving features||Unknown|
|High precision event timers (HPET)||Unknown|
|Random number generator (RNG)||Unknown|
|Wake on modem ring||Unknown|
|Wake on LAN||Unknown|
|Wake on keyboard||Unknown|
|Wake on mouse||Unknown|
- Northbridge: Intel 440BX
- Southbridge: Intel 82371EB
- Super I/O: Winbond W83977EF
To check the hardware the way LinuxBIOS sees it, I used already made programs that LinuxBIOS offers. As I use Gentoo, I hacked up a few ebuilds that install the latest svn versions of these programs. You can find them on this Gentoo Forums thread.
# superiotool -dV
Superiotool showed me which (if any) Super I/O chip is on the motherboard.
# flashrom -V
This tool showed me which (if any) ROM chip is used in the mainboard, and whether Flashrom supports it.
Checkout and Patching
After you get all the data from your computer by looking with eyes on the motherboard and checking the same things with the above programs, you need to do the following.
Make yourself a directory and checkout the svn repository for LinuxBIOSv2:
Get the patch for the AZZA PT-6IBD board and apply it:
# cd LinuxBIOSv2 # wget http://www.linuxbios.org/pipermail/linuxbios/attachments/20071025/f5922745/attachment-0001.bin -O v2_i440bx_azza_pt-6ibd.patch # patch -p0 < v2_i440bx_azza_pt-6ibd.patch
If you want to use the patch with Gentoo ebuilds, add it as specified here.
Then get FILO from svn:
# cd .. # svn co svn://openbios.org/filo/trunk/filo-0.5
# cd filo-0.5 # make
Now edit the Config file with your favorite editor as you wish.
# nano Config
Here is what I ended up with:
USE_GRUB = 1 MENULST_FILE = "hda1:/boot/grub/menu.lst" MENULST_TIMEOUT = 6 IDE_DISK = 1 VGA_CONSOLE = 1 PC_KEYBOARD = 1 SERIAL_CONSOLE = 1 SERIAL_IOBASE = 0x3f8 FSYS_EXT2FS = 1 SUPPORT_PCI = 1 PCI_BRUTE_SCAN = 1 LINUX_LOADER = 1
After you're satisfied do make again and copy filo.elf to /tmp:
# make # cp filo.elf /tmp
# cd .. # cd LinuxBIOSv2/targets
Lets create the linuxbios.rom file for the motherboard:
# ./buildtarget azza/pt-6ibd && cd azza/pt-6ibd/pt-6ibd && make
We ended in the motherboard's directory, where the linuxbios.rom file resides now.
Let's put the newly made linuxbios.rom file on the ROM chip. Be sure you have the right ROM chip in the board, so you don't accidentaly ruin your original chip.
# flashrom -wv linuxbios.rom
Now reboot the machine and see if it boots ok.
When I did the above procedure my LinuxBIOS made use of only 64 MB of RAM. Some additional patches are still needed (this is being worked on).
But the result is fantastic anyway. Usual time for boot was long, 10-15s at least, now its close to 0s.
|This work is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or any later version. This work is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.|