[an error occurred while processing this directive]

INSTALLING REDHAT6.2(kernel 2.2.14) on the COMPAQ PRESARIO 1694


I was able to install REDHAT6.2 standard distribution on the COMPAQ Presario 1694  without any problem. Sound works too. It was detected automagicaly during the installation. I did not try yet a modem. I guess it is a WINMODEM :((. HP Laser printer works too. REDHAT's 'printtool' is a great piece of software.

The whole installation starts  by inserting RH6.2 CD into the CD drive and reboot the laptop.  Easy and simple.

I do not have any PCMCIA card to check if the PCMCIA subsystem works or not. I am willing to include on this page any info about PCMCIA support. Please, let me know (IgorF@ix.netcom.com). Thanks !

The 'touchpad' on the COMPAQ Presario 1694 did not work correctly. It is a PS/2 controlled device. The cursor was very jumpy. I tried ALL the PS/2 drivers from the RH6.2 distribution to no avail. After 2-3 days of unsuccessful attempts to force the mouse to behave, I found on the NET the solution. It was called "kernel compilation". I was not sure if I am able to do the job...  but at the end I said...  what the heck..  let's  try... and I can tell you now.... compilation and installation of the kernel is _very_ _simple_ and _easy_.

My journey started here. On that page I have found a software patch for one of the kernel driver files.. to be precise: /usr/src/linux/drivers/char/pc_keyb.c

THIS IS THE offending part of the original PS/2 driver code:
static unsigned char handle_kbd_event(void)
{
        unsigned char status = kbd_read_status();
        unsigned int work = 10000;

        while (status & KBD_STAT_OBF) {
              unsigned char scancode;

               scancode = kbd_read_input();
              if (status & KBD_STAT_MOUSE_OBF) {
                        handle_mouse_event(scancode);
               } else {
                    if (do_acknowledge(scancode))
                              handle_scancode(scancode, !(scancode & 0x80));
                      mark_bh(KEYBOARD_BH);
               }

               status = kbd_read_status();

              if(!work--)
               {
                       printk(KERN_ERR "pc_keyb: controller jammed (0x%02X).\n",
                               status);
                     break;
               }
        }

       return status;
}


 


After the change, the same code snippet looks like this (the change is colored RED):
static unsigned char handle_kbd_event(void)
{
        unsigned char status = kbd_read_status();
        unsigned int work = 10000;

        while (status & KBD_STAT_OBF) {
               unsigned char scancode;

               scancode = kbd_read_input();
               if ( !(status & KBD_STAT_GTO) &&
                    !(status & KBD_STAT_PERR ) ) {

                       if (status & KBD_STAT_MOUSE_OBF) {
                               handle_mouse_event(scancode);
                       } else {
                               if (do_acknowledge(scancode))
                                       handle_scancode(scancode, !(scancode & 0x80));
                               mark_bh(KEYBOARD_BH);
                       }
                                         }
               status = kbd_read_status();

               if(!work--)
               {
                       printk(KERN_ERR "pc_keyb: controller jammed (0x%02X).\n",
                               status);
                      break;
               }
        }

       return status;
}


Now is time to recompile the kernel.  How ? Here's how :
Open an 'xterm' as root. If you have started the session as a regular user you can switch to super user with command 'su'.

[tina@tina tina]$cd /usr/src/linux
[tina@tina linux]$ pwd
/usr/src/linux
[tina@tina linux]$su
Password:
[root@tina linux]#

do a make menuconfig and select the kernel-2.2.14-i586.config   file from /usr/src/linux/configs.

Load an Alternate Configuration File

enter the path to the configuration file and at the end answer to the "Do you wish to save your new kernel configuration?" with "YES"

We have to edit the Makefile. Open the Makefile with your favorite editor and modify ONE line at the top of the file.

Original Makefile looks like this:
VERSION = 2
PATCHLEVEL = 2
SUBLEVEL = 14
EXTRAVERSION = -5.0

and the 'new' Makefile looks like this:
VERSION = 2
PATCHLEVEL = 2
SUBLEVEL = 14
EXTRAVERSION = -COMPAQ-PRESARIO-1694

The next steps which follow are here:

[root@tina linux]# make dep
[root@tina linux]# make bzImage
[root@tina linux]# make modules
[root@tina linux]# make modules_install
[root@tina linux]# cp arch/i386/boot/bzImage /boot/COMPAQ_PRESARIO_1694.bz
[root@tina linux]# depmod -a 2.2.14-COMPAQ-PRESARIO-1694

We have to edit /etc/lilo.conf file.

New lilo.conf file should look very similar to this ( changes are colored RED ):
install=/boot/boot.b
prompt
timeout=50
default=new_linux

image=/boot/vmlinuz-2.2.14-5.0
        label=linux
        initrd=/boot/initrd-2.2.14-5.0.img
        read-only
        root=/dev/hdb1

image=/boot/COMPAQ_PRESARIO_1694.bz
        label=new_linux
        read-only
        root=/dev/hdb1

other=/dev/hda1
        label=dos
 

We have to run lilo now.
[root@tina linux]# lilo

That's all, folks !!   Happy linuxing :)

Links:
http://www.vandervossen.net/linux/linux-compaq-presario-1675.html
http://www.boinklabs.com/library/cpq1690.html