If you want to take advantage of the latest kernel improvements, we suggest you to retrieve it from the official PA-RISC/Linux CVS. You can of course either download it from http://www.kernel.org/, or use the Debian package, but 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 correspond to your hardware :
Remenber that make oldconfig is a good base to start with, since it works for almost all machines. |
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, PDC see Section 6.2.3)
HIL Support - useful if you have a HIL controller. See below Section 6.2.1.
Console drivers - is directly related to your console mode (STI console or STI framebuffer)
Sound - enables/disables the Harmony driver
As you 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 functionnalities 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 6.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 there Section 6.2.2
At the time this HOWTO was written, there was no floppy drive support; and what's more, it was not expected to have one any day. |
When you're done with it, save your kernel configuration. Everything is written in the .config file. You should back it up because a make distclean will remove it. At this very 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 what it says :
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 |
bash# 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 |
USB support on HP-PA is still experimental, therefore it is only proposed 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 spoiled. They do not behave as expected at all.
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 |
bash# 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, as it is also using the Linux Input Driver.
PDC Console has been improved by Richard Hirst in pa37 kernel, though it is still a very experimental feature. It is expected to provide adequate PDC 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_PDC_CONSOLE=y |
On your target system, check that the following devices are available :
/dev/ttyB0 |
bash# cd /dev; ./MAKEDEV ttyB0 |
It needs a recent MAKEDEV package to be created this way. By the time this HOWTO was written, such a package could only be found on netinst ISO provided at http://www.pateam.org/download.html. |
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 your IDE Chipset 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 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* |
bash# cd dev; ./MAKEDEV hda hdb hdc hdd hde |
It needs a recent MAKEDEV package to be created this way. By the time this HOWTO was written, such a package could only be found on netinst ISO provided at http://www.pateam.org/download.html. |
Of course we didn't mention much of the non architecture independant options. Moreover, the above settings may vary depending on your hardware. This is just an example. |