| BSD/mac68k Booter Manual  |   | 
Version 8, 30th June 1998. For Booter 1.11.3
Index of Topics
The BSD/mac68k Booter is a Mac OS application which boots the NetBSD/mac68k
(and OpenBSD/mac68k) operating system.
NetBSD/mac68k, also known as MacBSD, is a port of the UNIX-like operating
system NetBSD to the Motorola 680x0 processor-based family of Macintosh
computers. For more general information on NetBSD/mac68k, point your web
browser at any of the following sites...
Some NetBSD/mac68k Web Sites
- 
http://www.NetBSD.org/ports/mac68k
 The area of the main NetBSD web site dedicated to the mac68k port.
http://www.MacBSD.com/macbsd
 The MacBSD web site, including more mac68k port-specific information.
 
The 'port-mac68k' mailing list
- 
If you like NetBSD/mac68k and/or use it, you should subscribe to the mac68k
port mailing list, port-mac68k@NetBSD.org.
You can subscribe theport-mac68klist on the NetBSD Mailing Lists
web page, or by sending mail tomajordomo@NetBSD.orgwith no subject and the single-line message:
subscribe port-mac68k
 
and send back the authentication mail you'll get.
 
The minimum hardware configuration includes a 68020 with a 68851 PMMU chip
or a 68030 or better processor, without which the Booter will refuse to
start. The Booter has been tested recently under System 7.1 and 7.5 (both
minimal and full installs), but it should work under any System 7 setup.
System 6.0.x is not supported because the Booter requires the machine to be
booted in 32-Bit Addressing mode. The Booter also will certainly fail if
Virtual Memory is enabled, so turn that off too while you're snooping around
in the Memory control panel.
The Macintosh models that are supported to some extent by NetBSD/mac68k vary
on what seems to be a daily basis sometimes. Check the web sites, and especially the user survey
contained therein, for more information.
First and foremost you must have formatted and partitioned a drive for A/UX,
and run Mkfs, and downloaded and installed at least the base package and a
kernel.  If you haven't done this, you should visit  the above Web sites for more information.
Assuming you have enough of Unix (and Mac OS!) installed, here is how to boot
it:
  - Open the BSD/mac68k Booter from the Mac OS. A window will appear
      entitled 'BSD/mac68k Launch'. The default Booter settings should work
      for most Macs, although if your A/UX partitioned drive is not at SCSI
      ID 0, then you will need to configure the Booter.
      
   
- Choose 'Booting...' from the Options menu to open the main 'Boot
      Options' configuration dialog. Configure the boot options in accordance
      with your system (the most commonly changed ones will be 'Root SCSI ID'
      and 'Kernel Name'). When you have finished, click OK
      
   
- You may wish to edit some of the options under 'Serial ports...' if you
      want to use the serial console or boot echo features, or if you are
      having trouble booting on a machine with interesting serial port
      hardware (e.g. PowerBooks). If you want to log debugging
      information, you should look in 'Startup...'. All the boot options
      available are documented below in
      'Boot Options Ad Nauseam'
      
   
- After you have configured all the boot options you want, you may wish
      to save them for future boots, using the 'Save Options' command under
      the File menu
      
   
- Now choose 'Boot Now' from the Options menu
First off, the Booter must attempt to open the kernel you've specified. If
you've specified a kernel in your BSD partition, it will take a second to
search for it. Then the Booter will (hopefully) identify the kernel as a
68K executable and print its entry address, which will look similar to this:
MID_M68K executable: entry 0x3356.
(Here, as in the rest of the boot process, the numbers you get may not be
the same as the numbers I get. They are highly kernel-dependent.) Then it
will proceed to load the kernel. As the different sections of the kernel are
loaded, numbers will appear in the status window, which look something like
this:
768400+57532+99064+45588+48244
These numbers correspond to the sizes of the text (executable machine code)
section, the static data section, the bss (uninitialized data) section, the
symbol table, and the string table, respectively. The final message displayed
before the jump to kernel space should be as follows:
  Bye-bye...
        So I sez to him...  The real way
        that it should be done is to...
Then the system will act as if it is restarting, and when the restart would
normally happen, the screen will go blank and a short list of memory mappings
will appear, followed by a copyright notice and autoconfiguration information,
which signals that you've booted.
The boot process is not completely machine- and installation-independent.
Therefore, the Booter allows you to set certain options and flags in order
to communicate to the kernel important facts about your machine. Most of
these options are set in the 'Booting' dialog
window, though some are set in the 'Serial
ports...', 'Monitors' and the 'Preferences' dialog windows.
- 
  
Described below are the options that can be set from the 'Booting' dialog
window. In most cases you should be able to boot after modifying only these
options.
Kernel Location: Mac OS file or BSD device
-     
  The chief purpose of the Booter is to load the BSD operating system
  code into memory.  This code is called the kernel and is normally
  contained in a file called netbsd. This file is normally in
  the root directory of the root partition of your BSD file system. However,
  it is also possible to load kernels from the Mac OS file system, such as
  when testing new systems, or on systems where SCSI is not yet supported.
  This boot option lets you select the location of your kernel; if you
  select Mac OS the Booter will look in its own folder for the kernel (or
  another folder selected by pressing the 'Set' button). This option should,
  as stated above, normally be set to BSD device.
Kernel Name
- 
  Normally, the kernel is named netbsd, and that is what you
  should enter for the Kernel Name. However, if you are testing a
  recently-installed kernel, or simply want to boot an alternate kernel, you
  can enter that name here too. Note well, however, that much BSD software
  assumes that the kernel is namednetbsdand is in the root
  directory, so if you have a kernel that works well, you should probably name
  it as that.
Partition and Root SCSI ID
- 
  The Booter needs to know which partition contains your kernel, if you are
  booting from the BSD/mac68k file system. You should enter the SCSI ID of
  the drive which contains your root partition. If there is no SCSI ID
  entered, zero is assumed.  By default, the Booter should locate your root
  partition. If you have more than one such partition at the selected SCSI
  ID, you may want to force it to use one of them by entering the name of
  the partition in the Partition Name field (This would be the name which
  your disk formatting software gave the partition when you created it
  e.g. 'UNIX Root&Usr slice 0', 'NetBSD Root & Usr' or 'A/UX Root').
  If you do not enter a name, the Booter tries to guess the correct
  partition. The first Unix (i.e. type="Apple_UNIX_SVR2") partition
  with 'Root' in the name is its best guess, and if there isn't one of
  those, then the first Unix partition which doesn't have 'Swap' in it's
  name is its next best.
Enabled?
- 
  This option will allow systems to boot without a root SCSI ID specified,
  e.g. using NFS filesystems. For normal usage you will probably want
  to leave this on.
Ask for alternate root/swap?
- 
  This option allows the user to specify an alternate root or swap device
  right before the root partition is mounted. This allows you to, for
  example, boot off a kernel on the first SCSI disk (sd0) and specify that
  root is on cd0 (a CD-ROM) or sd1 (et cetera). For normal usage you
  will probably want to leave this blank.
RAM size and Auto-size RAM
- 
  You should click Auto-size RAM to have the Booter automatically calculate
  the amount of RAM installed in your computer. This will not be an option
  in future releases. The paranoid can type in the amount of RAM (in
  megabytes) in the appropriate box as well.
GMT Bias and Auto-set GMT Bias
- 
  This should be a number of minutes which are added to UTC (Coordinated
  Universal Time, also known as Greenwich Mean Time or GMT) to get to your
  time zone. If you have the Mac OS Map control panel set with your location,
  you can enable the 'Auto-set GMT Bias' option to set this information.
Single User
- 
  This option tells the kernel to boot the system in single-user
  (administrative) mode, as opposed to your normal everyday multi-user
  boot. This can be necessary when you're having trouble booting into
  multi-user, or if you need to edit some files before the system finishes
  booting.
Extra kernel debugging messages
- 
  This option tells the kernel to display some extra debugging information.
Jump into debugger after booting
- 
  This flag tells the kernel to go into the debugger (either kgdb or ddb)
  shortly after initialization.
Don't disable VBL interrupts on video cards
- 
  Booter versions after version 1.8 attempt to disable vertical blanking
  (VBL) interrupts on all active video cards found, because current
  implementations of the grf_mv (Macintosh QuickDraw-compatible NuBus video
  card) driver do not handle VBL interrupts reliably. If this process fails
  (and it should be obvious if it fails; an error code is printed and the
  boot stops) then you should check this box and try booting again.
Video address hack (for LC575 & LC475)
- 
  This option should allow the internal video to be used as the console on
  these two Macs with almost any kernel. These machines use the MMU to remap
  the video address under Mac OS, and this mapping is lost when BSD/mac68k
  kernel execution begins. Do not use this option for any machine other than
  the LC/Performa 475, 575 & 630 series, as it may cause undesired kernel
  crashes.
The options in this dialog window, described below, pertain chiefly to the
initial settings of the new zsc/zstty serial driver:
- 
  
Serial Boot Echo
- 
  Output from the kernel will be echoed to the printer port at 9600 baud,
  no parity, 8 data bits, 1 stop bit, if this option is checked. (See also
  the 'Default Serial Speed' boxes)
Serial Console (Modem or Printer)
- 
  The selected serial line will be used as the console, with the same
  communications settings as with Serial Boot Echo (above), if this option
  is checked. Be careful that you do not have a getty process running on the
  same serial line you are using as the console (i.e. do not run getty on
  both ttye0 and tty00 if Modem port is serial console) because this could
  panic the kernel. Note that you can select a port for the serial console,
  but the serial boot echo is always on the Printer port.
LocalTalk connected to Printer port
- 
  In some instances the kernel will freeze if it is connected to a
  high-traffic LocalTalk network. Although LocalTalk is not supported in the
  kernel, if this box is checked it will keep the kernel from panicking if
  it encounters this situation.
Open port before booting (for PowerBook)
- 
  In order for PowerBooks to use the serial port(s), they must be turned on
  before booting in order to get the Power Manager to turn the power on to
  the chip and the ports. Setting this option should only be necessary if
  you are booting NetBSD/mac68k on a PowerBook.
Default Serial Speed
- 
  With NetBSD/mac68k kernels later than 20th October 1997 (i.e. 1.3),
  the port speed can be set by typing the new speed in here. This might be
  useful if you want to log boot messages to a HP DeskJet printer, for
  example.
Set Modem (or Printer) port to 'stty raw' defaults
- 
  This option instructs the kernel to set the defaults for the serial port
  in question to those from the 'stty raw' command. BSD assumes serial ports
  are hooked up to terminals by default, and the default behavior for
  terminals is for the kernel to echo back characters that the user types
  into the terminal. In 'raw' mode, no assumptions are made about what's on
  the other end of the serial port. Among other changes, no characters are
  echoed back out the port.
  
  The difference is important if your BSD/mac68k machine is connected to the
  serial interface of an HP DeskWriter printer. They (and possibly other
  printers) report status by sending a character to the host computer.
  Without this boot option, BSD would think that a person was typing these
  characters and echo them back. But then the printer thinks it is supposed
  to print these characters. On the DeskWriter, these characters can come
  out as ugly white-on-black block letters (garbage). This printing will
  happen seemingly spontaneously, with no intervention from the user.
  Setting this boot option should cure the problem.
   
  This option is probably not appropriate for a serial port hooked to a
  terminal, as the normal terminal defaults are the best in this case.
 
External clock sources
- 
  The new zsc/zstty driver (introduced in NetBSD/mac68k 1.2) tries to
  support more of the options Apple originally foresaw for the Mac's serial
  ports. One feature is support for feeding the Mac a clock from which it
  will generate the baud rate used to send and receive data. Potential uses
  include talking to certain Personal LaserWriters and driving MIDI adapter
  units.
  
  Each serial port has two input pins, so there are four possible clock rate
  values.  When a clock rate is entered, two things happen. First, the
  associated pin is flagged as reserved for a clock, and second, the clock
  rate is considered when NetBSD requests a particular baud rate.
   
  The first action happens as these pins (which have different names under
  BSD and Mac OS) are usually considered as modem signal pins by BSD. The
  kernel must respond accordingly whenever the modem thinks a data carrier
  has been detected, something which would normally happen less than once a
  second. Clock rates, on the other hand, are usually in the millions of
  cycles per second, so the clock reservation acts as a protection for the
  NetBSD kernel.
   
  Note that one of the pins on the printer port (GPi/DCD) isn't actually
  usable by the baud rate hardware; it corresponds to the fully-featured
  clock input on the modem port.  Thus it is included to protect the kernel
  from a device intended for the modem port yet connected to the printer
  port.
 
Current kernels and X Window servers cannot change video modes very well.
The BSD/mac68k console will work with almost any depth or resolution, but
the X Window system (and maybe the DT multi-window console) cannot.
For those of you whose use your Macs for Mac OS as well as BSD/mac68k, these
options allow you to keep you Mac OS screen the way you like them, and then
change the settings just before booting the BSD/mac68k kernel:
- 
  
Change Monitor Colourmap to GreyScale
- 
  Support for colour is not currently in all X servers, but some of them
  do support 256 greys. This option should make the X Window system a
  little more usable on those systems
Change Monitor Depth
- 
  A set of common depths, some of which your Mac may not support. If the
  requested depth isn't supported, no depth change should occur
Change Monitor Resolution
- 
  Common Mac OS screen sizes, which both your monitor and your Mac may
  not support. If your Mac doesn't support the requested size, the screen
  may flash, but no change should happen. If you monitor doesn't support
  the requested resolution and scan rate, behaviour depends on the monitor
  and cable. Usually, there will be no resolution change. If you have a Mac
  to PC style cable which is set differently to your monitor's capabilities,
  the monitor may lose sync, and in rare situations, damage may occur
Note that these options only affect the main monitor. They don't currently do
anything with multiple monitor setups.
A few more miscellaneous options pertaining to the operation of the Booter
itself are in the Preferences dialog window:
- 
  
Auto boot on startup / Timeout before boot
- 
  If you have saved your normal boot preferences, you might want to just
  boot right into BSD as soon as you open the Booter. Checking 'Auto boot on
  startup' will make the Booter start booting a specified number of seconds
  after it starts.
Show dialog & wait for OK before booting
- 
  If the above option is checked, then a dialog window will appear before
  booting that asks you whether you want to Boot or Cancel. This was
  implemented so you might read the messages in the window before they are
  blanked out by the appearance of the console.
Debugging level
- 
  Setting the debug level to 1 or greater values gets you lots of debugging
  spew in the status window that can help you diagnose what's going wrong in
  the boot process.  But normally you will want to leave this at 0.
Log debugging to file / Set...
- 
  If you want to keep a log of the messages in the status window, so that
  you can dump it into a mail message or just look at it later, check this
  box and click on 'Set...' to choose where you want the log file created.
  Note that the Booter will not replace an already-existing log file, but
  will append to it, even though it says "Replace existing 'bootlog'?" when
  you save it. Note also that when people ask for a bootlog they usually
  want you to turn debugging on (to level 1 or 2) and use this option.
  Normally, of course, you won't need to keep the bootlog turned on.
No env dumps
- 
  If this option is  not  checked, the Booter will dump the boot
  environment, a list of variables not unlike the UNIX process environment,
  into the status window before booting. If this option  is  checked,
  the booter will not spew this entire list of strings into the window before
  booting. They are nice for bug reports, but they do slow down the boot
  process. This option disabled goes well with 'Show dialog & wait for OK
  before booting' being enabled & a nice, big boot window. :)
Halt on non-fatal errors
- 
  A few errors (mostly concerning such recondite things as video board
  interrupt errors) are considered non-fatal. If you are having trouble with
  BSD/mac68k video, you might want to try turning this on, so that you can
  read the error messages as they scroll by. Mostly, though, you'll not need
  to worry about this; leave it unchecked
Some of the following errors are practically FAQs on the port-mac68k list.
Some are not. Any of these could possibly happen to you. This guide can help
you understand what is going wrong. Don't leave Mac OS without it!
Couldn't locate any partitions on SCSI ID (0). Cannot open kernel
(0,?)netbsd.
- 
  This error occurs when the Booter cannot open the partition you specified
  for the kernel. Check for typos in the SCSI ID and/or Partition Name boxes
  in the 'Booting' dialog window.
File 'foobar' is nonexistent. Cannot open kernel (0,?)foobar.
- 
  This error occurs when the Booter found the partition, but couldn't open
  the kernel you specified. Make sure you specified the right partition, and
  make sure you didn't mistype the name of the kernel (in the 'Booting'
  dialog window.)
Cannot malloc()...
malloc() failed...
Not enough free memory to load this kernel.
(et cetera)
- 
  These all mean that the Booter has run out of memory. Increase the Booter's
  memory partition using the 'Get Info' command in the Finder, and try
  booting again.
Magic numbers do not match -- Improper UFS partition.
- 
  This means that the Booter went to read the NetBSD partition you specified,
  and it didn't find a valid BSD filesystem there. Did you remember to run
  Mkfs on the partition?
Error -nnn turning off interrupts for slot SS
Error -nnn {getting name of,trying to open} slot 0xSS video driver
(et cetera)
- 
  Though these shouldn't happen, if a video card error stops your booting,
  you might want to try booting again with "Don't disable VBL interrupts on
  video cards" checked in the 'Booting' dialog window.
Error #-nnn locking kernel memory.
- 
  The Booter is trying to boot with virtual memory enabled, and it couldn't
  lock the kernel buffer in real RAM. Booting with virtual memory enabled is
  not supported at all, and on top of that, it is extremely unlikely to work.
  You should turn off VM in the Memory control panel, restart, and try
  booting again.
Failed to read executable header from kernel image.
This kernel is not in a format which the Booter can execute.
The kernel does not appear to be a 68k kernel.
Short boot_read. Kernel file corrupt?
- 
  These messages all indicate that the Booter can't imagine that the file you
  have designated as a kernel is really a NetBSD 680x0 executable. It may
  have become corrupted in transfer - you did use binary mode when FTPing,
  didn't you? - or you may have forgotten to untar the kernel.
The Booter src code package contains a file ChangeLog.txt which has a detailed log of different
Booter versions. Here is a summary of the ones you will probably need to
know about:
Version: 1.9.4
Author: Brian Gaeke
- 
  
    - First Booter to support any 68040 (i.e. Quadra-class)
	machines. Known to boot kernels from NetBSD/mac68k versions 1.1 and
	later. For kernels older than 1.1, your mileage may vary -- in theory
	the support is still there, but it's not been tried in quite a
	while
  
 
Version: 1.9.6
Author: Allen Briggs
- 
  
    - Allows booting with larger kernels (many post 1.2 kernels require
	this Booter)
    
- Known to have problems booting the Mac IIvx
  
 
Version: 1.9.7
Author: Steve Brown
- 
  
    - New 'Auto Set GMT bias' checkbox which uses the 'Map' Mac OS Control
	panel to set Unix's time zone information
    
- Known to have problems booting the Mac IIvx
  
 
Version: 1.10.0
Author: Allen Briggs
- 
  
    - New ability to boot from gzip-ed kernel files
    
- Known to have problems booting the Mac IIvx
  
 
Version: 1.10.3b1
Author: Nigel Pearson
- 
  
    - Some user interface improvements and new functionality
    
- Fixes the recent problems with booting the Mac IIvx
    
- New serial fields to set different default serial port speeds
    
- New Monitors options which allow changing of the main screen depth
	before booting
  
 
Version: 1.11.1
Authors: Scott Reynolds, Nigel Pearson 
- 
  
    - More user interface improvements
    
- If boot is aborted, resets monitor depth
    
- Saves preferences in a file in the System Folder
    
- Added video address hack for LC475/LC575 Macs to allow console on
	internal video
    
- Mac OS kernel file can be selected using a file requestor, allowing
	selection of a kernel file which is an alias, is not in the current
	directory, et cetera
    
- Better debugging/error output for low-level SCSI stuff
  
 
Version: 1.11.2
Authors: Eugenio Macia Vivo, Nigel Pearson
- 
  
    - Booter now checks for Virtual Memory, and pops up an alert and
	exits if used
    
- Monitors options now allow changing of main screen's resolution and
	colour mode (to greys) before booting. The latter is for some of the
	new Xservers which don't work with colour yet
    
- Now correctly kills running applications (checks for AppleScript
	beforehand)
  
 
Version: 1.11.3
Author: Nigel Pearson
- 
  
    - Booter can now request that the kernel jumps into a debugger after
        startup
    
- Some flags moved around in (and between) dialogs
    
- Low-level SCSI error-handling bugfixes
    
- Bugfix of monitor depth change stuff (Booter 1.11.2 used to try
        change resolution whenever depth change was requested)
  
 
The Booter is currently being maintained by Nigel Pearson.
<nigel@ind.tansu.com.au or
nigel@socs.uts.edu.au>
There are a list of Booter improvement suggestions in the file
TO-DO.txt (in the src code package). Feel free to
email any new suggestions to Nigel after glancing through that file. Also
feel free to contact Nigel about implementing any of them yourself!
If you have a bug report for the Booter, please send him a complete record
of your system configuration, including NuBus cards, along with a detailed
description of the erroneous behavior and how to repeat it. If you broke
into MacsBug, you should include the contents of the Standard Log (type
StdLog into the MacsBug command buffer and hit return; with luck it will
end up in the Desktop Folder of your boot disk.) Note: If you got past
the NetBSD copyright message, the error is probably not the fault of the
Booter.
The long list of people have worked on the Booter: Allen Briggs, Steve
Brown, Chris Caputo, Michael Finch, Brian Gaeke, Brad Grantham, Markus
Hitter, Dan Jacobowitz, Lawrence Kesteloot, Nigel Pearson, Scott Reynolds,
Bill Studenmund and Eugenio Macia Vivo.
This manual was written originally for NetBSD/mac68k Booter version 1.9.4
by Brian Gaeke. Thanks to Bill Studenmund for descriptions of the new serial
port options.
Apple, Macintosh, LocalTalk, System 7, and Mac OS are all registered
trademarks of Apple Computer Corporation. UNIX is a registered trademark
of SCO. Other trademarks mentioned herein are property of their respective
companies.
Copyright (C) 1996 Brian R. Gaeke
Copyright (C) 1997-8 Nigel Pearson
All rights reserved.
Redistribution and use of this document, with or without
modification, are permitted provided that the following conditions
are met:
  - Redistributions of this document must retain the above copyright
      notice, this list of conditions and the following disclaimer.
  
- The name of the author may not be used to endorse or promote products
      including this document without specific prior written permission.
THIS DOCUMENT IS PROVIDED BY THE AUTHORS 'AS IS' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Up to NetBSD/mac68k Port Page
  
  www@NetBSD.org
  $NetBSD: index.html,v 1.3 2007/07/29 02:41:29 kano Exp $
  Copyright © 1996-2003
    The NetBSD Foundation, Inc.  ALL RIGHTS RESERVED.