Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
biosext [2008/02/27 21:21] mdc |
biosext [2008/11/19 01:20] (current) markwarren Link to Coreboot dev't section. Reword to avoid implying that it works with all MBs. |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Adding gPXE to BIOSes ====== | ====== Adding gPXE to BIOSes ====== | ||
- | === Add gPXE to the BIOS of the Jetway J7F2WE family of motherboards (replacing the Intel UNDI PXE code)=== | + | === Add gPXE to the BIOS of the Jetway J7F2WE family of motherboards (replacing the Intel UNDI PXE code) === |
Jeff Campbell, Turks & Caicos Islands, February 27, 2008 | Jeff Campbell, Turks & Caicos Islands, February 27, 2008 | ||
** Note: This is completely without warranty. It worked for me. It may not work for you. It may wreck your system. If you don't know what you're doing, don't do it. You have no recourse but to blame yourself and sit in the dark rocking in the fetal position if this fails.** | ** Note: This is completely without warranty. It worked for me. It may not work for you. It may wreck your system. If you don't know what you're doing, don't do it. You have no recourse but to blame yourself and sit in the dark rocking in the fetal position if this fails.** | ||
+ | |||
+ | The "[[http://www.ioss.com.tw/web/English/RD1BIOSSavior.html|RD1 BIOS Savior]]" from [[http://www.ioss.com.tw/|IOSS]] is a US$30 device that can plug into a motherboard BIOS ROM socket to allow manual switching between two BIOS chips. This allows you to boot from one BIOS ROM and then switch to a second BIOS ROM chip for trial flashing. If the new BIOS fails, you can switch back to the first, unmodified BIOS ROM, and try again (info from [[http://en.wikipedia.org/wiki/LinuxBIOS#Developing_and_debugging_coreboot|Coreboot]]). | ||
I am currently using a large number of J7F2WE based motherboards for a computing cluster. The machines have no local storage at all, just a 1 GHz Via C7 processor and 1 GB of RAM. The on-board NIC on the motherboard is based on the VIa Rhine II chipset. My machines also have three more NICs per box, but they don't factor in to getting gPXE loaded. gPXE replaces the Intel PXE code included for the on-board NIC. | I am currently using a large number of J7F2WE based motherboards for a computing cluster. The machines have no local storage at all, just a 1 GHz Via C7 processor and 1 GB of RAM. The on-board NIC on the motherboard is based on the VIa Rhine II chipset. My machines also have three more NICs per box, but they don't factor in to getting gPXE loaded. gPXE replaces the Intel PXE code included for the on-board NIC. | ||
Line 13: | Line 15: | ||
=== Make a DOS bootable USB drive === | === Make a DOS bootable USB drive === | ||
- | We're going to be working with BIOS flashing utilities that run under DOS. Before you continue you should make a DOS bootable USB key (and ensure you can get it to boot on your system). We'll put various utilities and ROM files on it during this how-to. You can follow my instructions here (assuming you have access to a MS Windows machine) to make one: http://www.etherboot.org/wiki/make_usb_drive | + | We're going to be working with BIOS flashing utilities that run under DOS. Before you continue you should make a DOS bootable USB key (and ensure you can get it to boot on your system). We'll put various utilities and ROM files on it during this how-to. You can follow my [[make_usb_drive|instructions]] (assuming you have access to a MS Windows machine) to make one. |
=== Grab the latest BIOS for your board === | === Grab the latest BIOS for your board === | ||
- | You should be able to find the latest BIOS on the manufacturers website. In my case I'm using A14 of the Jetway BIOS, which I found here: http://www.jetwaycomputer.com/VIA2.html | + | You should be able to find the latest BIOS on the manufacturers website. In my case I'm using A14 of the Jetway BIOS, which I found on the [[http://www.jetwaycomputer.com/VIA2.html|Jetway home page]]. |
I also grabbed the AWFLASH 8.80 utility, which we'll need to backup the existing BIOS and reflash the new gPXE enhanced BIOS. | I also grabbed the AWFLASH 8.80 utility, which we'll need to backup the existing BIOS and reflash the new gPXE enhanced BIOS. | ||
Line 25: | Line 27: | ||
=== Grab the CBROM utility === | === Grab the CBROM utility === | ||
- | This is the magic tool that makes it possible. CBROM comes in various flavours, you can read more about it here: http://www.etherboot.org/wiki/biosmodule?s=cbrom | + | This is the magic tool that makes it possible. CBROM comes in various flavours, you can read more about it [[biosmodule|here]] |
* CBROM 1.xx is for Award BIOS 4.5 series only | * CBROM 1.xx is for Award BIOS 4.5 series only | ||
Line 37: | Line 39: | ||
=== Identify your NIC chipset === | === Identify your NIC chipset === | ||
- | I learned how to do this here: http://www.etherboot.org/wiki/romburning | + | (I learned how to do this [[romburning|here]].) |
Boot your system in to linux and then run: | Boot your system in to linux and then run: | ||
Line 45: | Line 47: | ||
Scan the output for your onbaord NIC, mine showed up as: | Scan the output for your onbaord NIC, mine showed up as: | ||
- | root@bops1-cf:~# lspci | + | # lspci |
- | + | ... | |
- | --snip -- | + | |
00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) | 00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78) | ||
- | -- snip -- | ||
To build a gPXE ROM via Rom-o-matic, we need to know the vendor and chipset id's. | To build a gPXE ROM via Rom-o-matic, we need to know the vendor and chipset id's. | ||
Line 55: | Line 55: | ||
Using the infromation from above, lets interogate the PCI device: | Using the infromation from above, lets interogate the PCI device: | ||
- | root@bops1-cf:~# lspci -n -s 00:12.0 | + | # lspci -n -s 00:12.0 |
- | 00:12.0 0200: 1106:3065 (rev 78) | + | ... |
+ | 00:12.0 0200: 1106:3065 (rev 78) | ||
Make a note of the vendor and device IDs (1106 and 3065 respectively in the above example). | Make a note of the vendor and device IDs (1106 and 3065 respectively in the above example). | ||
Line 62: | Line 63: | ||
=== It's ROM-o-matic time, baby! === | === It's ROM-o-matic time, baby! === | ||
- | Now that you know your vendor and device ID, cruise on over to http://rom-o-matic.net/ | + | Now that you know your vendor and device ID, cruise on over to [[http://rom-o-matic.net/|ROM-o-matic]] |
This is a wonderful tool that will build the ROM you are going to add to the BIOS. | This is a wonderful tool that will build the ROM you are going to add to the BIOS. | ||
- | We want to use the gPXE generator found here: http://rom.etherboot.org/rom/ | + | We want to use the [[http://rom.etherboot.org/rom/|gPXE generator]]. |
At the time of writing it was at version 0.9.3. | At the time of writing it was at version 0.9.3. | ||
Line 101: | Line 102: | ||
G:\>CBROM606.EXE J7F2WA14.BIN /D | G:\>CBROM606.EXE J7F2WA14.BIN /D | ||
+ | |||
CBROM V6.06 (C)Award Software 1999 All Rights Reserved. | CBROM V6.06 (C)Award Software 1999 All Rights Reserved. | ||
Line 183: | Line 185: | ||
Note line 8! So it appeared to load. Now it was time to flash the new updated BIOS file in to the machine. | Note line 8! So it appeared to load. Now it was time to flash the new updated BIOS file in to the machine. | ||
- | === Flash you new gPXE enhance BIOS in to the eeprom === | + | === Flash your new gPXE enhanced BIOS in to the eeprom === |
Up until this point, we've been playing with files on the USB key, but haven't touched your actual BIOS for writing. Now we will. | Up until this point, we've been playing with files on the USB key, but haven't touched your actual BIOS for writing. Now we will. | ||
- | I used the awdflash utility, following the instructions from the Jetway site, and flashed it with: | + | I used the AWDFLASH utility, following the instructions from the Jetway site, and flashed it with: |
AWDFLASH.EXE /cd/cp/ch/wb/qi gpxe14.bin | AWDFLASH.EXE /cd/cp/ch/wb/qi gpxe14.bin |