diff options
Diffstat (limited to 'sys/pc98/boot/biosboot/README.serial')
-rw-r--r-- | sys/pc98/boot/biosboot/README.serial | 164 |
1 files changed, 164 insertions, 0 deletions
diff --git a/sys/pc98/boot/biosboot/README.serial b/sys/pc98/boot/biosboot/README.serial new file mode 100644 index 0000000..8ace505 --- /dev/null +++ b/sys/pc98/boot/biosboot/README.serial @@ -0,0 +1,164 @@ + + SERIAL CONSOLE USAGE NOTES + Written by + Bill Paul <wpaul@ctr.columbia.edu> + +The FreeBSD boot block can now be used to boot FreeBSD on a system with +only a dumb terminal on a serial port (COM1) as a console. This feature +is provided for the benefit of people who wish to install FreeBSD on +dedicated file/compute/terminal server machines that have no keyboard +(or monitor) attached, just as is possible with Sun workstations and +servers. People who don't need this extra functionality shouldn't notice +the changes at all (unless I've screwed something up horribly). + +Note that 'options COMCONSOLE' can still be used to force the kernel to +boot in 'serial console' mode regardless of what boot options you use. + +To boot FreeBSD in serial console mode, you must do the following: + +- UNPLUG YOUR KEYBOARD. Most PC systems probe for the keyboard during the + Power-On Self-Test (POST) and will generate an error if the keyboard + isn't detected. Additionally, many machines will pause the boot process + and wait for you to reattach the keyboard and press a key before + proceeding any further. If your computer complains about the lack of a + keyboard but boots anyway, then you don't have to do anything special. + (One machine with a PHOENIX BIOS that I have here merely says 'Keyboard + failed' then continues to boot normally.) If your machine complains + loudly about the lack of a keyboard and won't continue to boot until you + plug it back in, you'll have to go into your CMOS configuration menu and + change the 'Keyboard' setting to 'Not installed' in order to bypass the + keyboard probe. + + NOTE #1: + Setting the keyboard to 'Not installed' in the CMOS configuration + does *NOT* mean that you won't be able to use your keyboard. All this + does is tell the BIOS not to probe for a keyboard at power-on so that + it won't bitch and moan if the keyboard isn't plugged in. You can leave the + keyboard plugged in even with this flag set to 'Not installed' and the + keyboard will still work. I repeat: changing the CMOS 'keyboard' setting + to 'Not installed' only disables the BIOS's keyboard probe; it does + *NOT* actually disable the keyboard. + + NOTE #2: + If your system has a PS/2 mouse, chances are very good that you will + need to unplug your mouse as well as your keyboard. This is because + PS/2 mice share some hardware with the keyboard, and leaving the mouse + plugged in can fool the keyboard probe into thinking the keyboard is + still there. I have access to a Gateway 2000 Pentium 90Mhz system with + an AMI BIOS that behaves this way. In general this is not a problem + since the mouse isn't much good without the keyboard anyway. + +- PLUG A DUMB TERMINAL INTO COM1. If you don't have a dumb terminal, you + can use an old PC/XT with a modem program, or the serial port on + another UNIX box. If you don't have a COM1, get one. At this time, + there is no way to select a port other than COM1 without recompiling + both the kernel and the boot blocks. If you're already using COM1 for + another device, you'll have to temporarily remove that device and + install a new boot block and kernel once you get FreeBSD up and running. + (It is assumed that COM1 will be available on a file/compute/terminal + server anyway; if you really need COM1 for something else (and you can't + switch that something else to COM2), then you probably shouldn't even + be bothering with all this in the first place.) + + NOTE #1: + The serial port settings are hardcoded to 9600 baud, 8 bits, no parity, + 1 stop bit. + + NOTE #2: + In addition to a serial cable, you will need a null modem adapter + in order to connect the terminal to the PC's serial port. If you don't + have one, go to Radio Shack and buy one: they're cheap. + + NOTE #3: + If you wish to drop into the kernel debugger from the serial console + (useful for remote diagnostics, but also dangerous if you generate a + spurious BREAK on the serial port!) then you should compile your kernel + with the following options: + + options BREAK_TO_DEBUGGER + options DDB + +- BOOT THE MACHINE. The boot block will probe for a keyboard on your + system. If it fails to find one, you'll see a prompt appear on the + terminal that looks something like this: + + No keyboard found. + + >> FreeBSD BOOT @ 0x10000: 640/7168 k of memory + Usage: [[[0:][fd](0,a)]/kernel][-abcCdhrsv] + Use 1:sd(0,a)kernel to boot sd0 if it is BIOS drive 1 + Use ? for file list or press Enter for defaults + Boot: + + This is identical to the prompt that normally appears on the VGA console, + except for the 'No keyboard found' message that indicates a keyboard + couldn't be detected. (If a keyboard is detected, the boot prompt will + appear on the VGA display as usual.) + + From here you can boot the system (or let it autoboot by itself) just + like you can from the VGA console and the kernel will automatically + use COM1 as the console device. No recompilation or 'options COMCONSOLE' + is required. This is done by passing a special flag to the kernel in + the 'boothowto' word. (The curious can refer to <sys/reboot.h> and the + sio driver sources for details.) + +- You will notice that there's a new boot flag: -h. You can use this to + force the kernel to switch console devices. For instance, if you boot + from the VGA console, you can use -h to force the kernel to use the + serial port as its console device. Alternatively, if you boot from + the serial port, you can use the -h to force the kernel to use the VGA + display as the console instead. (Can you say 'toggle' boys and girls? + I knew you could. :) + + +Should you wish to force booting off a serial console no matter if +there's a keyboard connected or not, you can also uncomment the line +with the ``FORCE_COMCONSOLE'' definition in the Makefile. Remake and +reinstall your bootblocks, and finally relabel your disk (disklabel -B) +to pick up those boot blocks. + + +CAVEATS: + +- The idea here is to allow people to set up dedicated servers that require + no graphics hardware or attached keyboards. Unfortunately, while (most?) + every system will let you boot without a keyboard, there are quite a few + that will not let you boot without a graphics adapter. Machines with + AMI BIOSes can be configured to boot with no graphics adapter installed + simply by changing the 'graphics adapter' setting in the CMOS configuration + to 'Not installed.' However, many machines do not support this option + and will refuse to boot if you have no display hardware in the system. With + these machines, you'll have to leave some kind of graphics card plugged in, + (even if it's just a junky mono board) although you won't have to attach + a monitor into it. You might also try installing an AMI BIOS. :) + +- Using a port other than COM1 as the console requires some recompiling. + Again, it's usually assumed that COM1 will be available for use as a + console device on a dedicated file/compute/terminal server, so hopefully + you'll never need to do this. But if you feel you must change the console + to a different port, here's how: + + o Get the kerndist kernel source package. + o Edit /sys/i386/boot/biosboot/Makefile and set COMCONSOLE to the + address of the port you want to use (0x3F8, 0x2F8, 0x3E8 or + 0x2E8). Only COM1 through COM4 can be used; multiport serial + cards will not work. No interrupt setting is needed. + o Create a custom kernel configuration file and add the following + lines: + + options "CONADDR=0x3F8" + options "CONUNIT=0" + + Set CONADDR to the same address that you selected for COMCONSOLE + in the bootbios Makefile. Set CONUNIT to the unit number of the + serial port that this address corresponds to (0 = sio0, 1 = sio1, + etc). This implies that the serial port you want to use must be + configured into the kernel in the normal way first. I'm not + going to list all the possible combinations here; just use your + head and you should be okay. + o Recompile both the boot blocks and the kernel. + o Install the boot blocks with the disklabel command and boot + from the new kernel. + + +$Id: README.serial,v 1.5 1996/04/13 11:57:18 jkh Exp $ |