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.
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 2.1.3, “MUX Console Support in 2.4”)
HIL Support - useful if you have a HIL controller. See below Section 2.1.1, “HIL Support in 2.4”.
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 2.1.4, “IDE Devices Support in 2.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 2.1.2, “USB Support in 2.4”.
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.
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:
Make sure you have a 2.4.18-pa45 or higher kernel source.
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
.
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
Configure gpm with the following
options in /etc/gpm.conf
:
device=/dev/input/mice type=imps2
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/
.
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.
Make sure you have a 2.4.18 or higher kernel source.
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
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
Configure gpm with the following options
in /etc/gpm.conf
:
device=/dev/input/mice type=imps2
The XF86-Config-4 is similar to the
HIL
one, as it is also using the Linux
Input Driver.
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:
Make sure you have a 2.4.18-pa37 or higher kernel source.
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
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.
Now you can boot your system, taking care that PALO uses
console=ttyB0
.
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:
Make sure you have a recent kernel source.
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
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.
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.