Symptom: You have a Compaq Presario R3000-series machine. When you put
the 5.4 CD-ROM in and boot up, the machine powers down shortly after you
leave the beastie boot menu.
Workaround: You need a version of the patch originated by Jung-uk Kim
(http://docs.freebsd.org/cgi/mid.cgi?200407021130.58247.jkim). But
you can't apply the patch until after you install the system, but you
can't install the system until ... (etc., etc.). I have posted a
patched version of the kernel TEMPORARILY at:
http://www.m5p.com/freebsd/kernel-5.4-r3000.tar.bz2
(My version of the patch, attached, is slightly different from the
original version and disables the keyboard controller test under the
control of a device hint.) Here is how you can use this patched
kernel, after logging in as root:
A. Unpack the contents of a FreeBSD CD-ROM in some temporary space.
For example, mount the CD-ROM on /cdrom and make a directory
/usr/tmp/5.4. Then cd to /usr/tmp/5.4 and do:
(cd /cdrom, gtar cvf - .) | gtar xvfp -
B. Replace the distributed kernel with the patched kernel.
cd /usr/tmp/5.4/boot/kernel
mv kernel kernel.orig
tar xvfy kernel-5.4-r3000.tar.bz2
C. cd to /usr/tmp/5.4/boot. Add the lines:
hint.atkbdtest.0.disabled="1"
hint.acpi.0.disabled="1"
to the end of the file loader.conf (unless you know that ACPI works
on your R3000).
D. cd to /usr/tmp/5.4 and burn a new CD-ROM with this command:
mkisofs -R -b boot/cdboot -no-emul-boot . | burncd data - fixate
E. Install with the patched CD-ROM.
Install in the usual way. But after the base distribution has been
extracted, go to the emergency holographic shell (ALT-F4) and replace the
kernel which was just installed with the patched kernel:
cp /dist/boot/kernel/kernel /boot/kernel
You should now have a working system. Here is my modified version
of Jung-ok Kim's patch. -- George Mitchell
--- dev/kbd/atkbdc.c.orig Sun Aug 24 10:49:15 2003
+++ dev/kbd/atkbdc.c Tue Dec 14 15:28:11 2004
@@ -944,53 +944,59 @@
int
test_kbd_port(KBDC p)
{
- int retry = KBD_MAXRETRY;
- int again = KBD_MAXWAIT;
- int c = -1;
+ if (resource_disabled("atkbdtest", 0)) return 0;
+ else {
+ int retry = KBD_MAXRETRY;
+ int again = KBD_MAXWAIT;
+ int c = -1;
- while (retry-- > 0) {
- empty_both_buffers(p, 10);
- if (write_controller_command(p, KBDC_TEST_KBD_PORT))
- break;
- }
- if (retry < 0)
- return FALSE;
+ while (retry-- > 0) {
+ empty_both_buffers(p, 10);
+ if (write_controller_command(p, KBDC_TEST_KBD_PORT))
+ break;
+ }
+ if (retry < 0)
+ return FALSE;
- emptyq(&kbdcp(p)->kbd);
- while (again-- > 0) {
- c = read_controller_data(p);
- if (c != -1) /* try again if the controller is not ready */
- break;
+ emptyq(&kbdcp(p)->kbd);
+ while (again-- > 0) {
+ c = read_controller_data(p);
+ if (c != -1) /* try again if the controller is not ready */
+ break;
+ }
+ if (verbose || bootverbose)
+ log(LOG_DEBUG, "kbdc: TEST_KBD_PORT status:%04x\n", c);
+ return c;
}
- if (verbose || bootverbose)
- log(LOG_DEBUG, "kbdc: TEST_KBD_PORT status:%04x\n", c);
- return c;
}
int
test_aux_port(KBDC p)
{
- int retry = KBD_MAXRETRY;
- int again = KBD_MAXWAIT;
- int c = -1;
+ if (resource_disabled("atkbdtest", 0)) return 0;
+ else {
+ int retry = KBD_MAXRETRY;
+ int again = KBD_MAXWAIT;
+ int c = -1;
- while (retry-- > 0) {
- empty_both_buffers(p, 10);
- if (write_controller_command(p, KBDC_TEST_AUX_PORT))
- break;
- }
- if (retry < 0)
- return FALSE;
+ while (retry-- > 0) {
+ empty_both_buffers(p, 10);
+ if (write_controller_command(p, KBDC_TEST_AUX_PORT))
+ break;
+ }
+ if (retry < 0)
+ return FALSE;
- emptyq(&kbdcp(p)->kbd);
- while (again-- > 0) {
- c = read_controller_data(p);
- if (c != -1) /* try again if the controller is not ready */
- break;
+ emptyq(&kbdcp(p)->kbd);
+ while (again-- > 0) {
+ c = read_controller_data(p);
+ if (c != -1) /* try again if the controller is not ready */
+ break;
+ }
+ if (verbose || bootverbose)
+ log(LOG_DEBUG, "kbdc: TEST_AUX_PORT status:%04x\n", c);
+ return c;
}
- if (verbose || bootverbose)
- log(LOG_DEBUG, "kbdc: TEST_AUX_PORT status:%04x\n", c);
- return c;
}
int
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-mobile
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not
affiliated with the servers or forums shown here and is not responsible for
the content of articles, which is written by their respective authors.