This file contains instructions for the Acer Ali M1535D Southbridge and M1631 Northbridge based mainboards. Unfortunately, there is a step in this HOWTO that could be hazardous. The hazards include (but are not limited to) 1) destroying your motherboard 2) hurting yourself 3) killing yourself Because of these hazards, you must take full responsibility if you decide to install LinuxBIOS following these procedures. Neither Los Alamos National Labs nor any lab personnel can be held responsible for any adverse consequences of your attempt to follow these procedures. WARNING: we assume you've built kernels, know how to open up your PC, and how to yank the flash part out while power is on and put in a different part. There is NO WARRANTY, express or implied, with this software. In fact, if you don't know what you're doing, and you get careless, you're going to end up with a nice paperweight instead of a motherboard, an emergency room bill, or a funeral service. YOU HAVE BEEN WARNED. Now that we're done with the mandatory US legal jargon The mainboards that are "known good" are: ASUS CUA Rev 1.03. This board already has a 32-DIP Zero Insertion Force (ZIF) socket for the flash part. This makes putting in Disk On Chip much easier. Linux distribution: RedHat 7.1 or later. We haven't tried anything else. They may all work fine. Other software notes: You MUST have 'as' version 2.9.5 or later. You MUST have ssh to connect to sourceforge You need to have a LinuxBIOS machine (the machine that runs LinuxBIOS) and a build machine (which will let you build LinuxBIOS). These can be one and the same machine. In this HOWTO we assume they're the same. We nevertheless refer to a 'build' machine and 'LinuxBIOS' machine in case you want to use a different machine. However, since we just use a console via the serial port, you need at least two machines if you want to see the output once you start LinuxBIOS. CAUTION: We have NOT YET configured the graphics card on the Asus. If your LinuxBIOS machine and build machine are the same, you can't see any output from LinuxBIOS, unless you can get your hands on a terminal. If this is the ONLY computer you have, use EXTREME CAUTION. Do NOT destroy your BIOS chip once you remove it from the socket, you will be stuck! YOU HAVE BEEN WARNED! Also, freebios and linuxbios still share the same source tree. We use the name 'linuxbios' where it makes sense, and 'freebios' otherwise. But they are the same source base. ---- NOTE: these steps are tested all the way up to the end, they work. The steps for loading linuxbios are simple: 0) get linux installed on your LinuxBIOS machine 1) Get Linuxbios source from the sourceforge 2) get a 2.4.9 kernel for you LinuxBIOS machine, patch it, then build it 3) config and build linuxbios 4) Get the MTD utilities from http://www.linux-mtd.infradead.org/ and build the 'erase' utility 5) Configure a new 2.4.9 kernel on your build machine for burning Disk On Chip 6) put a Disk On Chip into the flash socket 7) Burn the chip 8) Configure serial connection and hit reset. --- Step 0) Get Linux installed on your LinuxBIOS machine. We have used RedHat 7.1, but any recent Linux distribution should work, such as Mandrake 7.0. Step 1) o You need to get linuxbios source. cd to the directory you want the source tree to be. Then: export CVS_RSH=ssh (or in tcsh setenv CVS_RSH ssh) cvs -d:pserver:anonymous@cvs.freebios.sourceforge.net:/cvsroot/freebios login (at the password prompt, just hit ) cvs -z3 -d:pserver:anonymous@cvs.freebios.sourceforge.net:/cvsroot/freebios co freebios Step 2) o go to www.kernel.org and get linux-2.4.9 o Once you have pulled this file down and untar'ed it, apply the proper patch from the freebios/src/kernel_patches directory. The patch is: ide-spinup-2.4.9-asus.patch Your patch command will look like this: cd linux_directory patch -p1 < ~/freebios/src/kernel_patches/ide-spinup-2.4.9-asus.patch Here is the output I get when I apply the patch: patching file arch/i386/Linuxbios.in patching file arch/i386/config.in patching file drivers/ide/ide-probe.c You should NOT get any rejects when applying this patch. If you do, please make sure your patch command is correct. The most common error is supplying an incorrect patch level (the -p option). Please refer to the patch man page for details. o There are a couple of things you have to fix in the 2.4.9 kernel. First, IF YOU ARE RUNNING REDHAT 7.1 ON YOUR LinuxBIOS machine, you need to fix /drivers/char/serial.c. IF YOU DON'T DO THIS, LINUXBIOS WILL BOOT UP, BUT YOU WON'T BE ABLE TO TYPE ANYTHING USING YOUR TERMINAL KEYBOARD. Go to linux-directory/drivers/char Edit the file serial.c and comment out lines 1772 and 1773 if ((cflag & CREAD) == 0) info->ignore_status_mask |= UART_LSR_DR; Secondly, if you need to burn Disk On Chip MILLENIUM from the ASUS Go to linux-directory/drivers/mtd/devices/ Edit the file docprobe.c and change line 42. Original line 42: #define DOC_SINGLE_DRIVER New line 42: #undef DOC_SINGLE_DRIVER o Now copy config-2.4.9-asus (from /freebios/src/kernel_patches) to .config, then make oldconfig make clean make dep make vmlinux In our config file, we turned of a LOT of options OFF and we have only a bare-bones kernel, enough to bring LinuxBIOS up on the Asus. Nevertheless, important stuff we did are: 1. Changed PCI access mode to DIRECT 2. Turn on MTD support (as a MODULE) 3. DISABLED Virtual terminal 4. Turned on AliM15x3 support in IDE, ATA and ATAPI Block devices 5. Enabled Console for serial port 6. Turned on all LinuxBIOS support options (Do NOT make them as loadable modules!) If you wanna see the changes we did, run make menuconfig from your linux-directory or examine the .config file. Once you make sure that a small kernel works on your ASUS, you can turn on options in the kernel as you need them. You now have a kernel for linuxbios. Step 3) o You now need to figure out where you want to put your build images. DO NOT PUT THESE IN THE LINUXBIOS SOURCE TREE. You want to put them OUTSIDE THE TREE, so you can always cvs update and not lose any of your build directory. Linuxbios does all the builds in a single directory, much as BSD does. To build linuxbios requires a Makefile, a crt0.S file, and a ld script file. These are generated by a config tool located in freebios/utils/config The config tool is a Python program originally written by Dean Risinger of the ACL. To build the initial Makefile, assembly stub, and ld script, you need to build a config file (simple), run the config tool, cd to the build directory, and type 'make'. Here is a config file for the ASUS CUA # Sample config file for ACER M1631 CHIPSET ON A ASUS # with DoC Millennium (as root) # This will make a target directory of ./asus-cua target asus-cua # ASUS CUA main board mainboard asus/cua # ****************** NEED CORRECT DOC IPL # use DOC MIL option USE_DOC_MIL docipl mainboard/asus/cua/ipl.S # Enable Serial Console for debugging option SERIAL_CONSOLE=1 # Enable IRQ Routing table stuff option HAVE_PIRQ_TABLE=1 # Enable MicroCode update and L2 Cache init for PII and PIII option UPDATE_MICROCODE option CONFIGURE_L2_CACHE # Use the internal VGA frame buffer device - DISABLED FOR NOW! # option HAVE_FRAMEBUFFER # I want that floppy ... option MUST_ENABLE_FLOPPY # *****************MODIFIED BY BHARATH******************** # Path to your kernel (vmlinux) linux /usr/src/vmlinux-acer-2.4.9 # Kernel command line parameters #commandline root=/dev/hda2 console=ttyS0,115200 console=tty0 single # *******************MODIFIED BY BHARATH **************** commandline root=/dev/hda5 console=ttyS0,115200 floppy=nodma single The target command names the build directory. The mainboard command names the mainboard. We have set options for a serial console which will get you linuxbios debug output via the serial port; updating microcode on the PIII (mandatory for coppermine!); configuring the L2 cache (harmless, leave it in); disable frame buffer init (no VGA support yet). You have to tell it where to find the vmlinux you build (the 'linux' command); and finally you need a commandline for now. That's the file. To run the config tool, you need two args: the first is the name of a config file, and the second is the (absolute) pathname of the freebios source tree. The config tool is NLBConfig.py. Make sure you use that and not LBConfig.py, the older version. Here's what it looks like when you run it. python ~/freebios/util/config/NLBConfig.py asus-cua.config ~/freebios /root/linuxbios/config_files/asus-cua is not a directory. I know I should make this, but I'm too paranoid To fix this, type mkdir -p /root/linuxbios/config_files/asus-cua then run this program again Note this first time, we got an error, since I forgot to make the 'target' directory. So, for the second run, I do the mkdir, then run the tool: mkdir -p asus-cua python ~/src/freebios/util/config/NLBConfig.py asus-cua.config ~/src/freebios The output of the tool is: Will place Makefile, crt0.S, ldscript.ld in /root/linuxbios/config_files/asus-c ua Process config file: /root/linuxbios/freebios/src/mainboard/asus/cua/Config Now Process the i386 base files Process config file: /root/linuxbios/freebios/src/arch/i386/Config Process config file: /root/linuxbios/freebios/src/arch/i386/boot/Config Process config file: /root/linuxbios/freebios/src/arch/i386/lib/Config Process config file: /root/linuxbios/freebios/src/arch/i386/smp/Config Process config file: /root/linuxbios/freebios/src/lib/Config Process config file: /root/linuxbios/freebios/src/boot/Config Process config file: /root/linuxbios/freebios/src/rom/Config Added mainboard init file: cpu/i386/entry16.inc Added ldscript init file: /root/linuxbios/freebios/src/cpu/i386/entry16.lds Added mainboard init file: northbridge/acer/m1631/chipset_init.inc Added mainboard init file: superio/acer/m1535/setup_serial.inc Added mainboard init file: pc80/serial.inc Process config file: /root/linuxbios/freebios/src/northbridge/acer/m1631/Config Process config file: /root/linuxbios/freebios/src/southbridge/acer/m1535/Config Added mainboard init file: cpu/p6/earlymtrr.inc Process config file: /root/linuxbios/freebios/src/cpu/p5/Config Process config file: /root/linuxbios/freebios/src/cpu/p6/Config Trying to create /root/linuxbios/config_files/asus-cua/Makefile Trying to create /root/linuxbios/config_files/asus-cua/ldoptions Trying to create /root/linuxbios/config_files/asus-cua/crt0.S Trying to create /root/linuxbios/config_files/asus-cua/LinuxBIOSDoc.config OK, all those messages are normal. Now we do a make: cd asus-cua make We now have three files to be loaded into the Disk On Chip. The first is called docipl. It is 512 bytes. The second is called linuxbios.strip, and is the binary image of the linuxbios that gets loaded into Doc. The third file is your kernel, and is stripped and compressed, vmlinux.bin.gz -rw------- 1 rminnich CIC-ACL 512 Dec 20 08:41 docipl -rwx------ 1 rminnich CIC-ACL 33494 Dec 20 08:41 linuxbios.strip* -rwx------ 1 rminnich CIC-ACL 756069 Dec 20 08:41 vmlinux.bin.gz* You're now ready to burn the Disk On Chip, but first .... Steps 4 and 5 illustrate ONE WAY of burning Disk On Chip. If you have other ways of burning LinuxBIOS onto Flash, please go ahead and use your steps. Step 4) Get the MTD utilities from http://www.linux-mtd.infradead.org/ (see the instructions at that site) cvs -d :pserver:anoncvs@cvs.infradead.org:/home/cvs co mtd cd mtd/util sh -x MAKEDEV make (You need the erase utility) Install the erase utility where it is in your path. Step 5) Configuring your kernel on your build machine for Disk on Chip. You are going to use the script burn_mtd_asus_cua. PLEASE NOTE: THIS SCRIPT WORKS ONLY ON MOTHERBOARDS WITH THE ACER ALI M1631 northbridge. WE TESTED THIS SCRIPT ON THE ASUS CUA. The fix for other chipsets seems simple enough: just change the setpci line in burn_mtd_asus_cua to enable your chipset to write to flash. However, you have to get this information from the chipset documentation. THIS, IN OUR EXPERIENCE, IS HARD! Again, if you have other ways of burning LinuxBIOS onto Flash, please go ahead and do so! You need a new 2.4.9 kernel for your build machine so you can burn the Disk On Chip. Get a 2.4.9 kernel, untar it. MAKE SURE YOU change linux-directory/drivers/char/mtd/devices/docprobe.c as shown in Step 2). Copy the file config-2.4.9-flash-burn from freebios/src/kernel_patches to your 2.4.9 directory as .config make oldconfig make clean make dep make bzImage make modules make modules_install You should test this kernel by making a boot floppy. Once you are satisfied this kernel works, add an entry to lilo.conf. Step 6) NOTE: BE ADVISED THAT THIS STEP CAN HURT OR KILL YOU! YOU ARE WORKING WITH A POWERED-ON COMPUTER AT THIS POINT. THE COMPUTER NEEDS TO BE OPENED UP, AND YOU NEED TO REMOVE A CHIP WHILE THE COMPUTER IS ON. IF YOU HAVE NOT DONE THIS TYPE OF WORK, DO NOT DO IT! WE TAKE NO RESPONSIBILITY FOR ANYTHING THAT HAPPENS AT THIS STEP. BEFORE DOING THIS STEP WITH POWER ON, YOU SHOULD TRY IT WITH POWER OFF. Open your build machine (LEAVE THE POWER ON), yank the flash, and plug in the DoC. We recommend you practice this first with the power off. Make sure that whatever you do, you are not shorting things out. Avoid using a metal tool! NOTE: YOU CAN HURT YOURSELF AT THIS STEP. We can't take any responsibility for what happens to you here. If you haven't done this, or are not trained, or have a history of getting hurt by hardware, DON'T DO IT. Step 7) Run the following script: RUN THIS SCRIPT FROM THE BUILD DIRECTORY FOR LINUXBIOS Run the burn_mtd_asus_cua script from freebios/util/mtd Here's what the output looks like when you run it: mmod: module docprobe is not loaded rmmod: module doc2001 is not loaded rmmod: module docecc is not loaded 6+1 records in 7+0 records out 0+1 records in 1+0 records out Erase Total 128 Units Performing Flash Erase of length 8192 at offset 0xfe000 done 1+0 records in 1+0 records out 1+0 records in 1+0 records out 126+0 records in 126+0 records out 896+0 records in 896+0 records out AGAIN, PLEASE NOTE: THIS SCRIPT ONLY WORKS ON A MOTHERBOARD WITH THE ACER ALI M1631 Northbridge. IF YOUR BUILD MACHINE DOES NOT USE THIS CHIPSET, YOU NEED TO FIGURE OUT HOW TO ENABLE FLASH WRITING FOR YOUR CHIPSET! Step 8) Hook a serial cable form your LinuxBIOS machine to your terminal. Settings are 115200 baud, 8 data bits, no parity, 1 stop bit. POWER OFF THE MACHINE. DoC requires this. Turn it back on. Linuxbios should come up in a few seconds. Here is a dump from minicom when I booted my LinuxBIOS machine and typed in an ls command: LinuxBIOS booting... Finding PCI configuration type. PCI: Using configuration type 1 Scanning PCI bus...PCI: pci_scan_bus for bus 0 pci_get_sizedev_fn 0x0, register 0, read-only SO, ignoring it addr was 0x8, size was 0x8 pci_get_sizedev_fn 0x0, register 1, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:00 [10b9/1621] pci_get_sizedev_fn 0x8, register 0, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x8, register 1, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:08 [10b9/5247] pci_get_sizedev_fn 0x30, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x30, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x30, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x30, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:30 [10b9/5451] pci_get_sizedev_fn 0x38, register 0, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x38, register 1, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x38, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x38, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x38, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x38, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:38 [10b9/1533] pci_get_sizedev_fn 0x80, register 0, read-only SO, ignoring it addr was 0x1f1, size was 0x1f1 pci_get_sizedev_fn 0x80, register 1, read-only SO, ignoring it addr was 0x3f5, size was 0x3f5 pci_get_sizedev_fn 0x80, register 2, read-only SO, ignoring it addr was 0x171, size was 0x171 pci_get_sizedev_fn 0x80, register 3, read-only SO, ignoring it addr was 0x375, size was 0x375 pci_get_sizedev_fn 0x80, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:80 [10b9/5229] pci_get_sizedev_fn 0x88, register 0, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x88, register 1, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x88, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x88, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x88, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x88, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:88 [10b9/7101] pci_get_sizedev_fn 0xa0, register 1, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0xa0, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0xa0, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0xa0, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0xa0, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 00:a0 [10b9/5237] PCI: pci_scan_bus for bus 1 pci_get_sizedev_fn 0x0, register 2, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 3, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 4, read-only SO, ignoring it addr was 0x0, size was 0x0 pci_get_sizedev_fn 0x0, register 5, read-only SO, ignoring it addr was 0x0, size was 0x0 PCI: 01:00 [10de/00a0] PCI: pci_scan_bus returning with max=01 PCI: pci_scan_bus returning with max=01 done Acer sizeram pcidev 00005d68 0x6c 0xf7d2a83d, size 0x8000000 0x70 0xf7c1a82d, size 0x4000000 0x74 0xf7d2a82d, size 0x8000000 size in 0x6c is 0x10000000 size in 0x70 is 0x8000000 size in 0x74 is 0x10000000 totalram: 640M Initializing CPU #0 Updating microcode microcode_info: sig = 0x00000683 pf=0x00000010 rev = 0x00000000 Enabling cache... Setting variable MTRR 0, base: 0MB, range: 512MB, type: WB Setting variable MTRR 1, base: 512MB, range: 128MB, type: WB Setting variable MTRR 2, base: 640MB, range: 0MB, type: UC done. Max cpuid index : 3 Vendor ID : GenuineIntel Processor Type : 0x00 Processor Family : 0x06 Processor Model : 0x08 Processor Mask : 0x00 Processor Stepping : 0x03 Feature flags : 0x0387fbff Cache/TLB descriptor values: 1 reads required Desc 0x01 : Instr TLB: 4KB pages, 4-way set assoc, 32 entries Desc 0x02 : Instr TLB: 4MB pages, fully assoc, 2 entries Desc 0x03 : Data TLB: 4KB pages, 4-way set assoc, 64 entries Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x00 : null Desc 0x82 : L2 Unified cache: 256K bytes, 8-way set assoc, 32 byte line size Desc 0x08 : Inst cache: 16K bytes, 4-way set assoc, 32 byte line size Desc 0x04 : Data TLB: 4MB pages, 4-way set assoc, 8 entries Desc 0x0c : Data cache: 16K bytes, 2-way or 4-way set assoc, 32 byte line size op: 0x03 eax:0x00000000 ebx:0x00000000 ecx:0x4744fe9c edx:0x0001a723 MTRR check Fixed MTRRs : Enabled Variable MTRRs: Enabled Configuring L2 cache...CPU signature of 680 so no L2 cache configuration Enable Cache done. Disabling local apic...done. CPU #0 Initialized Allocating PCI resources...COMPUTE_ALLOCATE: do IO compute_allocate_io: base 0x1000 compute_allocate_io: base 0x1000 BUS 1: set iolimit to 0xfff BUSIO: done Bridge Bus 0x1, iobase now 0x1000 DEVIO: Bus 0x0, devfn 0x30, reg 0x0: iosize 0x100 -->set base to 0x1000 DEVIO: Bus 0x0, devfn 0x80, reg 0x4: iosize 0x10 -->set base to 0x1100 BUS 0: set iolimit to 0x1fff COMPUTE_ALLOCATE: do MEM compute_allocate_mem: base 0x80000000 compute_allocate_mem: base 0x80000000 DEVMEM: Bus 0x1, devfn 0x0, reg 0x0: memsize 0x1000000 -->set base to 0x80000000 BUS 1: set memlimit to 0x80ffffff BUSMEM: Bridge Bus 0x1,membase now 0x81000000 DEVMEM: Bus 0x0, devfn 0x30, reg 0x1: memsize 0x1000 -->set base to 0x81000000 DEVMEM: Bus 0x0, devfn 0xa0, reg 0x0: memsize 0x1000 -->set base to 0x81001000 BUS 0: set memlimit to 0x810fffff COMPUTE_ALLOCATE: do PREFMEM Compute_allocate_prefmem: base 0x81100000 Compute_allocate_prefmem: base 0x81100000 DEVPREFMEM: Bus 0x1, devfn 0x0, reg 0x1: prefmemsize 0x2000000 -->set base to 0x82000000 BUS 1: set prefmemlimit to 0x83ffffff BUSPREFMEM: Bridge Bus 0x1, prefmem base now 0x84000000 BUS 0: set prefmemlimit to 0x83ffffff ASSIGN RESOURCES, bus 0 Bus 0x0 iobase to 0x1000 iolimit 0xfff Bus 0x0 membase to 0x80000000 memlimit 0x80ffffff Bus 0x0 prefmembase to 0x81100000 prefmemlimit 0x83ffffff Bus 0x0 devfn 0x30 reg 0x0 base to 0x1001 Bus 0x0 devfn 0x30 reg 0x1 base to 0x81000000 Bus 0x0 devfn 0x80 reg 0x4 base to 0x1101 Bus 0x0 devfn 0xa0 reg 0x0 base to 0x81001000 Bus 0x1 devfn 0x0 reg 0x0 base to 0x80000000 Bus 0x1 devfn 0x0 reg 0x1 base to 0x82000000 done. Enabling PCI resourcess...DEV Set command bus 0x0 devfn 0x0 to 0x6 DEV Set command bus 0x0 devfn 0x8 to 0x7 DEV Set command bus 0x0 devfn 0x30 to 0x3 DEV Set command bus 0x0 devfn 0x38 to 0xf DEV Set command bus 0x0 devfn 0x80 to 0x1 DEV Set command bus 0x0 devfn 0x88 to 0x0 DEV Set command bus 0x0 devfn 0xa0 to 0x2 DEV Set command bus 0x1 devfn 0x0 to 0x2 done. intel_mainboard_fixup() Zeroing PCI IRQ settings...done. Copying IRQ routing tables...done. SET THAT BIT! Jumping to linuxbiosmain()... Welcome to start32, the open sourced starter. This space will eventually hold more diagnostic information. January 2000, James Hendricks, Dale Webster, and Ron Minnich. Version 0.1 Gunzip setup output data is 0x00100000 Gunzipping boot code 46:fill_inbuf() - ram buffer:0x0000e0ac 73:fill_inbuf() - nvram:0x00010000 block_count:0 flush 0x00100000 count 0x00008000 flush 0x00108000 count 0x00008000 flush 0x00110000 count 0x00008000 flush 0x00118000 count 0x00008000 73:fill_inbuf() - nvram:0x00020000 block_count:1 flush 0x00120000 count 0x00008000 flush 0x00128000 count 0x00008000 flush 0x00130000 count 0x00008000 73:fill_inbuf() - nvram:0x00030000 block_count:2 flush 0x00138000 count 0x00008000 flush 0x00140000 count 0x00008000 flush 0x00148000 count 0x00008000 flush 0x00150000 count 0x00008000 73:fill_inbuf() - nvram:0x00040000 block_count:3 flush 0x00158000 count 0x00008000 flush 0x00160000 count 0x00008000 flush 0x00168000 count 0x00008000 73:fill_inbuf() - nvram:0x00050000 block_count:4 flush 0x00170000 count 0x00008000 flush 0x00178000 count 0x00008000 flush 0x00180000 count 0x00008000 flush 0x00188000 count 0x00008000 flush 0x00190000 count 0x00008000 flush 0x00198000 count 0x00008000 flush 0x001a0000 count 0x00008000 73:fill_inbuf() - nvram:0x00060000 block_count:5 flush 0x001a8000 count 0x00008000 flush 0x001b0000 count 0x00008000 flush 0x001b8000 count 0x00008000 flush 0x001c0000 count 0x00008000 73:fill_inbuf() - nvram:0x00070000 block_count:6 flush 0x001c8000 count 0x00008000 flush 0x001d0000 count 0x00005720 <991> command line - [root=/dev/hda5 console=ttyS0,115200 floppy=nodma single] Jumping to boot code Linux version 2.4.9 (root@localhost.localdomain) (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81)) #2 Sun Oct 21 13:47:17 MST 2001 BIOS-provided physical RAM map: BIOS-e801: 0000000000000000 - 000000000009f000 (usable) BIOS-e801: 0000000000100000 - 0000000027f00000 (usable) On node 0 totalpages: 163584 zone(0): 4096 pages. zone(1): 159488 pages. zone(2): 0 pages. Kernel command line: root=/dev/hda5 console=ttyS0,115200 floppy=nodma single Initializing CPU#0 Detected 400.896 MHz processor. Calibrating delay loop... 799.53 BogoMIPS Memory: 642048k/654336k available (495k kernel code, 11900k reserved, 165k data, 172k init, 0k highmem) Dentry-cache hash table entries: 131072 (order: 8, 1048576 bytes) Inode-cache hash table entries: 65536 (order: 7, 524288 bytes) Mount-cache hash table entries: 16384 (order: 5, 131072 bytes) Buffer-cache hash table entries: 65536 (order: 6, 262144 bytes) Page-cache hash table entries: 262144 (order: 8, 1048576 bytes) CPU: L1 I cache: 16K, L1 D cache: 16K CPU: L2 cache: 256K Intel machine check architecture supported. Intel machine check reporting enabled on CPU#0. CPU serial number disabled. CPU: Intel Pentium III (Coppermine) stepping 03 Enabling fast FPU save and restore... done. Enabling unmasked SIMD FPU exception support... done. Checking 'hlt' instruction... OK. POSIX conformance testing by UNIFIX mtrr: v1.40 (20010327) Richard Gooch (rgooch@atnf.csiro.au) mtrr: detected mtrr type: Intel PCI: Using configuration type 1 PCI: Probing PCI hardware Unknown bridge resource 0: assuming transparent Linux NET4.0 for Linux 2.4 Based upon Swansea University Computer Society NET3.039 IA-32 Microcode Update Driver: v1.08 Starting kswapd v1.8 pty: 256 Unix98 ptys configured Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A block: 128 slots per queue, batch=16 Uniform Multi-Platform E-IDE driver Revision: 6.31 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ALI15X3: IDE controller on PCI bus 00 dev 80 PCI: No IRQ known for interrupt pin A of device 00:10.0. Please try using pci=biosirq. ALI15X3: chipset revision 195 ALI15X3: not 100% native mode: will probe irqs later ALI15X3: simplex device: DMA will fail!! ALI15X3: simplex device: DMA disabled ide0: ALI15X3 Bus-Master DMA disabled (BIOS) ALI15X3: simplex device: DMA disabled ide1: ALI15X3 Bus-Master DMA disabled (BIOS) hd0: C/H/S=0/0/0 from BIOS ignored jamming drive present for hda hda: IBM-DTLA-307030, ATA DISK drive ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx hdc: CREATIVE CD5233E, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 ide1 at 0x170-0x177,0x376 on irq 15 ide1: probed IRQ 15 failed, using default. hda: 60036480 sectors (30739 MB) w/1916KiB Cache, CHS=59560/16/63 Partition check: hda: [PTBL] [3737/255/63] hda1 hda2 < hda5 hda6 > VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 172k freed modprobe: modprobe: Can't locate module char-major-4 INIT: version 2.78 booting Welcome to Red Hat Linux Press 'I' to enter interactive startup. Mounting proc filesystem: [ OK ] Configuring kernel parameters: [ OK ] modprobe: modprobe: Can't locate module char-major-4 Setting clock (localtime): Sun Oct 21 14:29:59 MST 2001 [ OK ] Activating swap partitions: [ OK ] Setting hostname localhost.localdomain: [ OK ] Checking root filesystem /: clean, 120199/2191168 files, 608787/4377704 blocks [/sbin/fsck.ext2 -- /] fsck.ext2 -a /dev/hda5 [ OK ] Remounting root filesystem in read-write mode: [ OK ] Finding module dependencies: [ OK ] Checking filesystems /boot: clean, 33/14056 files, 9221/56196 blocks Checking all file systems. [/sbin/fsck.ext2 -- /boot] fsck.ext2 -a /dev/hda1 [ OK ] Mounting local filesystems: [ OK ] Turning on user and group quotas for local filesystems: [ OK ] Enabling swap space: [ OK ] sh-2.04# ls bin core etc lib misc mtd_utils proc sbin usr boot dev home lost+found mnt opt root tmp var sh-2.04# poweroff INIT: Switching to runlevel: 0 sh-2.04# INIT: Sending processes the TERM signal INIT: Starting killall: [ OK ] Sending all processes the TERM signal... Sending all processes the KILL signal... Syncing hardware clock to system time modprobe: modprobe: Can't locate module char-major-4 Turning off swap: Turning off quotas: Unmounting file systems: Unmounting proc file system: Halting system... ifdown: Power down. socket: Address family not supported by protocol If it doesn't work: Please email the dump from your terminal to linuxbios@lanl.gov with a description of your problem.