PA-RISC/Linux Boot HOWTO
Prev | Chapter 5. Building and installing a custom kernel | Next

# 5.2. Kernel configuration

If you want to take advantage of the latest kernel improvements, we suggest you retrieve it from the official PA-RISC/Linux CVS. Please mind that the vanilla kernel that can be found at http://www.kernel.org/ is generally out of sync with the above mentioned CVS kernel, and that snapshots of this kernel are available too, check the download area. In the following, we will focus on a fresh CVS tree.

The best way to obtain appreciable performances is to get a well configured kernel. For the PA-RISC platform, make oldconfig is a kind of default setup. If you want to make your own kernel, the first step is to know what hardware you have. The best way to grab useful info is to look at your box and find a maximum of data (model name, partnumber, chipsets, and so on). If you have already booted your box, you can take a look at dmesg output. Then, go to the official hardware database or to the HP partsurfer website.

Once you know what is inside your box and what you want to do with it, just run make menuconfig or another config command.

## 5.2.1. Configuring 2.4 kernels

Here is a brief list of architecture dependent menus for 2.4 kernels. You should take a look at them, to see if the values set match your hardware. Mind that 2.4 kernels are now considered deprecated anyway: you will not get community support for them.

| Remember that make oldconfig is a good base to start with, since it works for almost any machine.

- Processor type - indicates your CPU model

- General options - tells you what is going to be enabled in your kernel (U2/Uturn, USC/GSC/HSC, Lasi, Wax, Dino, LBA/Elroy, SuperIO)

- Parallel port support - enables/disables the Lasi/ASP parport

- SCSI support - check there for your SCSI chipset (Lasi, Zalon, NCR/SYM53C8XX or other)

- Network device support - is used to set your network card (Lasi, Tulip...)

- Character devices - defines your I/O capabilities (Lasi, Dino, MUX see Section 5.2.1.3)

- HIL Support - useful if you have a HIL controller. See below Section 5.2.1.1.

- Console drivers - is directly related to your console mode (STI console or STI framebuffer)

- Sound - enables/disables the Harmony driver

As you can see, menus specifically concerned by PA-RISC hardware are not that numerous, but there are lots of dependencies between them. Now, you must configure the kernel accordingly to what you plan to use this box for. Here is a list of some menus you should be going through to configure additional functionalities you might want:

- General setup - is responsible for binary formats handled by the kernel. You need ELF, and can try SOM (support for HP/UX binaries. It *might* work with some static executables).

- Block devices - sets the ramdisk and loopback support. You probably won't use them.

- ATA/IDE/MFM/RLL support - You will need to check this to enable IDE. See Section 5.2.1.4.

- File Systems/Network File Systems - is where to set EXT3 or NFS support.

- USB support - If you have enabled SuperIO and want USB, look here: Section 5.2.1.2.

| By the time this HOWTO was written, there was no floppy drive support; and what's more, it is not expected to ever be supported.

When you're done with it, save your kernel configuration. Everything is written in the `.config` file. You should back it up because make distclean will remove it. At this stage, you can do make dep vmlinux and if everything goes fine, you will have a new kernel in a couple of minutes.

Here follows brief information about specific hardware configurations.

### 5.2.1.1. HIL Support in 2.4

Since `kernel-2.4.18-pa45`, there is a full HIL support, for mice, tablets and keyboards. It is based on the Linux Input Driver model. See the PA-RISC/Linux FAQ and the mail posted on the mailing list by Helge Deller. Here is how to configure it:

1. Make sure you have a 2.4.18-pa45 or higher kernel source.

2. Look at your kernel configuration for the following options:

       CONFIG_INPUT=y
       CONFIG_INPUT_KEYBDEV=y
       CONFIG_INPUT_MOUSEDEV=y
       CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
       CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
       CONFIG_INPUT_EVDEV=y

       CONFIG_INPUT_SERIO=y

       CONFIG_HIL=y
       CONFIG_HP_SDC=y
       CONFIG_HIL_MLC=y
       CONFIG_HP_SDC_MLC=y
       CONFIG_HIL_KBD=y
       CONFIG_HIL_PTR=y

   | There is no more `CONFIG_HIL_KBD_BASIC`.

3. On your target system, check that the following devices are available:

       /dev/input/mice
       /dev/input/mouseX
       /dev/input/eventX

   If they are not yet present, create them as `root` by running:

       [user@machine ~/dir]> cd /dev; MAKEDEV input

4. Configure gpm with the following options in `/etc/gpm.conf`:

       device=/dev/input/mice
       type=imps2

5. Here is a sample `/etc/X11/XF86Config-4`:

       Section "InputDevice"
       		Identifier      "HIL Keyboard"
       		Driver          "keyboard"
       		Option          "CoreKeyboard"
       EndSection
       Section "InputDevice"
       		Identifier      "HIL Mouse"
       		Driver          "mouse"
       		Option          "CorePointer"
       		Option          "Device"                "/dev/input/mice"
       		Option          "Protocol"              "ImPS/2"
       		Option          "ZAxisMapping"          "4 5"
       EndSection
       Section "ServerLayout"
       		Identifier      "Default Layout"
       		Screen          "Default Screen"
       		InputDevice     "HIL Keyboard"
       		InputDevice     "HIL Mouse"
       EndSection

   You can also download a sample `XF86Config-4` here: ftp://ftp.parisc-linux.org/XFree86/XF86Config-4, adjust color depth and resolution, and put it in your `/etc/X11/`.

### 5.2.1.2. USB Support in 2.4

USB support on HP-PA is still experimental, therefore it is only configured as modules in default kernel configuration. We have tried to install a B2000 with builtin USB support, both 32 and 64bit, and it worked fine, despite some keyboard problems. Don't worry, nothing critical: the range of keys located between the main part of the keyboard (the letters, backspace, enter...) and the numeric pad are broken. They do not behave at all as expected.

| You can use the numeric pad as arrow keys: when NumLock is not activated, it behaves as a navigation pad. e.g. 8 is Up Arrow, 4 is Left Arrow and so on.

1. Make sure you have a 2.4.18 or higher kernel source.

2. Look at your kernel configuration for the following options:

       CONFIG_SUPERIO=y
       CONFIG_HOTPLUG=y

       CONFIG_INPUT=y
       CONFIG_INPUT_KEYBDEV=y
       CONFIG_INPUT_MOUSEDEV=y
       CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
       CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
       CONFIG_INPUT_EVDEV=y

       CONFIG_USB=y
       CONFIG_USB_DEVICEFS=y
       CONFIG_USB_OHCI=y
       CONFIG_HID=y

3. On your target system, check that the following devices are available:

       /dev/input/mice
       /dev/input/mouseX
       /dev/input/eventX

   If they are not yet present, create them as `root` by running:

       [user@machine ~/dir]> cd /dev; MAKEDEV input

4. Configure gpm with the following options in `/etc/gpm.conf`:

       device=/dev/input/mice
       type=imps2

5. The XF86-Config-4 is similar to the `HIL` one, as it is also using the Linux Input Driver.

### 5.2.1.3. MUX Console Support in 2.4

`MUX Console` has been improved by Richard Hirst in 2.4.18-pa37 kernel, though it is still a very experimental feature. It is expected to provide adequate `MUX Console` support to `E-` and `K-Class` machines. Feedback would be really appreciated.

Now follow these steps to get it to work:

1. Make sure you have a 2.4.18-pa37 or higher kernel source.

2. Look at your kernel configuration for the following options:

       CONFIG_SERIAL_CONSOLE=y

       CONFIG_SERIAL_GSC=y

       CONFIG_SERIAL_NONSTANDARD=y
       CONFIG_SERIAL_MUX=y

3. On your target system, check that the following devices are available:

       /dev/ttyB0

   If they are not yet present, create them as `root` by running:

       [user@machine ~/dir]> cd /dev; MAKEDEV ttyB0

   | It needs a recent `MAKEDEV` package to be created this way.

4. Now you can boot your system, taking care that PALO uses `console=ttyB0`.

### 5.2.1.4. IDE Devices Support in 2.4

There is nothing really special about IDE support. You have to check that the IDE Chipset in use in your box is supported by the kernel. A common chipset found on PA-RISC hardware is `NS87415`. You can find it on B2000, J5000 and C3000 for instance. You will need IDE support to use some CD-ROM devices.

Here is an example to get IDE to work with this chipset:

1. Make sure you have a recent kernel source.

2. Look at your kernel configuration for the following options:

       CONFIG_IOMMU_CCIO=y
       CONFIG_PCI=y
       CONFIG_PCI_LBA=y
       CONFIG_IOSAPIC=y
       CONFIG_IOMMU_SBA=y
       CONFIG_SUPERIO=y

       CONFIG_IDE=y

       CONFIG_BLK_DEV_IDE=y

       CONFIG_BLK_DEV_IDEPCI=y
       CONFIG_BLK_DEV_IDEDMA=y
       CONFIG_BLK_DEV_ADMA=y
       CONFIG_BLK_DEV_IDEDMA=y
       CONFIG_BLK_DEV_NS87415=y

3. On your target system, check that the following devices are available:

       /dev/hd*

   If they are not yet present, create them as `root` by running:

       [user@machine ~/dir]> cd /dev; MAKEDEV hda hdb hdc hdd hde

| Of course we didn't mention much of the architecture independent options. Moreover, the above settings may vary depending on your hardware. This is just an example.

## 5.2.2. Configuring 2.6 kernels

Here is a brief list of architecture dependent menus for 2.6 kernels. You should take a look at them, to see if the values set match your hardware:

- Processor type and features - indicates your CPU model and some specific features such as SMP or Discontigmem support

- Bus options - tells you what bus support is going to be enabled in your kernel (U2/Uturn, USC/GSC/HSC, Lasi, Wax, Dino, LBA/Elroy, SuperIO)

- PA-RISC specific drivers - enables/disables some PA-RISC specific drivers, such as LED support, GSP and Stable Storage support.

As you can see, menus specifically concerned by PA-RISC hardware are not that numerous, and everything else is much generic by now. Still, you must configure the kernel accordingly to what you plan to use this box for and what features you want supported. Many other drivers are found in their respective submenus, such as SCSI, with the Zalon, Lasi SCSI and SYM2 drivers being there, or the Framebuffer devices (STI) in the Graphics Support menu, or the sound drivers (Harmony and AD1889) in the Sound menu. Help is often provided, feel free to look at it.

| Most of what was said for 2.4 is somewhat still applicable to 2.6.

Prev | Home | Next
GCC compiler | Up | Kernel installation