Release Notes for MkLinux on HP PA-RISC |
version 2.1
This is the release of the MkLinux server based on Linux 2.0.30 and the Open Group RI Microkernel (called pmk1.1) for the HP PA-RISC 1.1 HP700 series. This distribution provides a bootable root file system, usr and var directories as compressed tar files and the Microkernel and Linux server sources.
The system comes with the complete X11R6 distribution, the ELF GNU compiler tools and gdb in RPM format.
This document describes how to install and set up an HP machine for MkLinux.
The PA1.1 family of processors are supported (PA7150, PA7100LC, PA7200). The kernel has been successfully booted on a number of HP700 machines (705, 720, 725/50, 725/100, 770) with the corresponding family of bus adaptors (WAX, LASI, ASP, SCSI and FWSCSI).
Supported devices are SCSI and FWSCSI disks, RS232 serial port, HIL and PS2 keyboard and mouse, pc586 Ethernet and CRX/GRX graphics. Fast networks, Myrinet and FDDI, are supported by the microkernel but not yet exported to the Linux server.
You need a machine on which you can plug your future Linux disk and do a 'dd'. The root partition is 64M uncompressed.
In order to install the full MkLinux system and a comfortable amount (32M) of swap space, a 425M disk is a minimum. The X11R6 suite needs to be built.
The system is robust enough to support several hours of edit-compilation-test loops without a crash. The Mach kernel and the Linux server can be rebuilt on itself as well as the GNU tools and other commands and libraries. Most of the packages not provided here can be built out of the box. However, keep in mind that a lot of functionalities may still be missing or not fully tested.
We had already ported the Open Group RI Microkernel to the HP PA-RISC (OSF1/MK-PA) and the MkLinux server was already running on the PowerMac and Intel platforms. We took this as a good opportunity to show the modularity and portability of the kernel/server architecture. The experience showed that absolutely no work was needed in the microkernel and that about 5 weeks effort was needed to port the machine dependent parts of the Linux server itself. The only changes in the machine independent code were due to the stack direction differences between the PA-RISC and other architectures.
However, since no Linux system was available for the PA-RISC, a significant amount of work was needed to obtain a usable system, including bootstrapping the Linux file system, porting commands and libraries, X11R6 support, gcc and debugger support, benchmarking and code optimization.
The distribution is quite large in size, since it includes a physical copy of the root partition and a tar file of the /usr binaries. The files in the distribution (with their size in parentheses) are:
.gz files are compressed with gzip.
The root_ext2_g_dd.bin image contains the boot, the disklabel and the root file system of a Linux (ext2) file system assuming that your target SCSI disk is at the address 6.
To load the image from the host machine, you need to plug your disk on a machine from which you can dump it:
You can now boot in single user mode, still assuming your disk is at SCSI 6:
The -a flag is to boot interactively, the kernel should start up and ask you the root device and the servers. Add -s to vmlinux to boot in single user mode:
If you are asked for a root device, answer 'sdXa' where X is your SCSI address. Accept the prompted servers.
At this stage, if your disk was not initially at SCSI 6, you can edit /etc/fstab with ed.
The swap area is the partition 2.
The first time you boot, you'll get a message saying "UNEXPECTED INCONSISTENCY RUN fsck MANUALLY" on the /usr and /var partitions. Ignore it. The disk release binary expects /var in the partition 4 and /usr in the partition 5. The partition 3 maps the full disk.
Outside MkLinux, the disks are named with the Mach terminology, Linux terminology is used when accessing them from /dev. The main difference is that the disks are referenced in Mach by letters and in Linux by numbers, while the partitions are referenced in Mach by numbers and in Linux by letters. Also minors are counted from 16 to 16 (for compatibility with Intel and PPC). For example, for the the 4th partition of a SCSI at address 6 you'll find the Mach device sd6d and Linux device /dev/sdg4 (minor 100 = 6*16 + 4)
The following files need to be modified in order to configure your network:
The next step is to ftp the usr.tar and var.tar files. Untar them in their respective mounted file systems and delete the tar files.
shutdown and reboot.
You can label a new disk or change the partition sizes with the 'disklabel' command. The disk descriptions are in /etc/disktab.
If you want your disk to be bootable, the bootsectors provided with the release should then be installed on the disk: (the root.dd dump provided in the release is already bootable).
Gdb is available to debug ELF Linux programs, however to debug the MkLinux server itself we use a remote ethernet gdb, called tgdb, which has been found very useful to do symbolic debugging on (unix or non-unix) Mach tasks. A short document on the setup of tgdb is available.
Support for loading and debugging MkLinux as a second server is not yet available.
The first PA Mach port was done by the University of Utah (see Mach/Lites 4.4 PA port ) from which many of the drivers and locore code was derived. NSWC stressed the real time support and they were the first courageous real user of the OSF1/MKPA system, helping us to identify numerous real time bugs. Finally, thanks to HP for having supported us for this project.
Last Modified: Fri Oct 15 15:23:33 CDT 1999 by eric@cirr.com
Copyright 1997 The Open Group
Copyright 1999 the Central Iowa (Model) Railroad