I've solved these problems on my own systems via a couple of modifications to the OS X Darwin kernel and the ADB mouse driver. First, the ADB probing routine is modified to force the detection of a keyboard and mouse, even if they aren't found on the bus. Second, a new ADB mouse driver is used. This driver does not try to probe the mouse to determine its type; it simply assumes the mouse is a simple Type I or Type II mouse.
| [binary image] | [source code patch] | |
| [binary package] | [source code] |
sudo chown root /mach_kernel-10.2.6-forceadb
sudo chgrp wheel /mach_kernel-10.2.6-forceadb
sudo chmod a-x /mach_kernel-10.2.6-forceadb
sudo chmod go-w /mach_kernel-10.2.6-forceadb
The commands will execute and return silently if everything goes ok. If something goes wrong,
an error message will be displayed.
ls -l /mach_kernel*
(that -l is "dash ell" not "dash one")The result should look like this (with different time and date stamps, of course):
-rw-r--r-- 1 root wheel 3737772 May 2 00:49 /mach_kernel
-rw-r--r-- 1 root wheel 3728360 Jul 5 13:41 /mach_kernel-10.2.6-forceadb
The "/mach_kernel" file is your original 10.2.6 kernel. We will leave this kernel alone so
you can revert back to it at any time. "/mach_kernel-10.2.6-forceadb" is the new
kernel we will be configuring your system to use instead.
Start by going to the System Preferences panel and opening the Startup Disk pane. Choose the OS X system you normally boot to and click the "Restart..." button. Choose "Save and Restart" when prompted. Your computer will reboot.
Although this step may seem redundant since the default OS X system is already selected it is important in order to get OS X to set the OF boot-device parameter correctly. We'll be viewing and using the value of this parameter in the next step. Do not skip this step!
nvram boot-device
This command displays the value of the OF boot-device parameter which tells us the
OF name of the device you normally boot from. The exact text will depend on your configuration,
but a typical example from my system is:
ide1/@0:2,\\:tbxi
The part before the comma is what we are interested in (ide1/@0:2 in my case).
sudo nvram boot-file="<your-boot-device>,mach_kernel-10.2.6-forceadb"
Replace <your-boot-device> with the name of your boot-device as determined
above. Only use the portion of the boot-device string before the comma. For example, on
my system I would run the following command:
sudo nvram boot-file="ide1/@0:2,mach_kernel-10.2.6-forceadb"
The command will execute and return silently if everything goes ok. If something goes wrong,
an error message will be displayed.
dmesg | grep ADB
Note that the | character is a vertical bar (pipe), not an 'ell' or a one.
You should see the following output:
IOADBController: Forcing assignment of id 2.
IOADBController: Forcing assignment of id 3.
ADB present:c
This indicates that the IOADBController (the driver for the ADB bus) did not find a keyboard or
a mouse, but forced one to be configured anyway. You should be able to plug in a keyboard and
it should operate properly. The mouse will not operate yet; we need to install the new mouse
driver first.
If you do not see the output shown above, double check your configuration, especially the value of the OF boot-file parameter configured in step #8.
If your system does not boot at all, refer to the section below entitled, "Booting the Original Kernel".
Installation of the NoProbe ADB driver is simple:
To reset your OF settings, boot your machine while holding down Command-Option-P-R.
Note that you must do this on a directly-attached ADB or USB keyboard.
The machine will reset every few seconds as long as you continue holding the keys down. After
a few resets, let go of the keys and the machine should boot from the default boot device and
load the original mach kernel image.
At the 0 > prompt, run this command:
Booting the Original Kernel
If you encounter problems during the installation of the new kernel image you may be left with
a system that does not boot. Also, you may at some point wish to switch back to the original
kernel when you no longer need the ADB override. There are two ways to accomplish this:
This is the simplest method, however it will cause you to lose any custom OF configuration
you may have made. This includes things like boot arguments (ex: verbose or single user mode),
and boot device (if you do not normally boot the default system).
The boot-file OF parameter determines which kernel image is loaded. By resetting
this parameter we can cause the machine to boot the default kernel image without affecting any
other OF parameters. There are two ways to do this, depending on whether you can boot into OS X or not.
sudo nvram boot-file=""
Apple Powermac1,1 1,1f4 BootROM built on 04/09/99 at 13:57:32
Copyright 1994-1999 Apple Computer, Inc.
All Rights Reserved.
OpenFirmware 3.1.1
To continue booting, type "mac-boot" and press return.
To shut down, type "shut-down" and press return.
ok
0 >
(The dates and version numbers will probably be different on your machine.)
printenv boot-file
The current value of boot-file should be displayed. You can write this down for
future reference if you're so inclined. To reset the value, run this command:
setenv boot-file
Now you can run
mac-boot
to continue the bootup process. Your machine will boot the default kernel.
Feel free to send questions and comments to me at
akropel1@rochester.rr.com.
Copyright (c) 2003 by Adam Kropelin, All Rights Reserved.