39.31 Optima Super Vizon II 3600 Customised (Bartok)

Bartok is a custom built dual processor server with an inexpensive 20GB IDE hard disk (for Debian GNU/Linux install) and a 136GB SCSI RAID disk (made up of 4 disks).

Debian GNU/Linux 2.2r2 was originally installed (kernel-image-2.2.18pre21) from CD-ROM (4 December 2001). The SCSI RAID disk (Adaptec 2100s) was not supported by the installed kernel thus Debian was first installed on the IDE drive. A driver for the SCSI RAID was then obtained from Adaptec (dpt_i2o.o) and installed after Debian was upgraded to unstable and running with kernel-image-2.2.19. A compile of kernel-source-2.4.16 produced a dpt_i2o.o suitable for use with kernel-image-2.4.16-686-smp. On 26 March 2003 a standard kernel-image-2.4.20-686-smp was installed to provide up to date support for USB, adding a . This was upgraded to kernel-image-2.4.25-1-686-smp on 23 March 2004. The SMP kernels supports the dual processors and 4GB high memory.

Originally there were occasional I/O errors with the dpt_i2o driver for the Adaptec. Others (e.g., Ian Millsom) reported that the driver in the earlier 2.4 kernels were buggy and indeed Ian had a 2.2.19pre17 kernel patched for the driver. However, running under kernel versions 2.4.16, 2.4.20, and 2.4.25 there have been no further problems. (The 2.4.16 kernel was compiled with options p3, high memory, and SMP and the later kernels were standard Debian kernels with SMP and HIMEM).

Original partitioning was 4GB for / and the rest for /home. After a couple of years of use the 4GB for / became inadequate and things like /usr/share started moving to other places!

A new install was performed (24 March 2004) with the beta3 Debian Installer booting from CD-ROM. A default boot froze very quickly just after:

  ENABLING IO-APIC IRQs
  Setting 2 in the phys_id_present_map
  ...changing IO-APIC physical APIC ID to 2 ... ok. 
  ..TIMER: vector=0x31 pin1=2 pin2=0

Booting by entering linux noapic on the Boot: line succeeded. Automatic partition of the IDE disk was then accepted. When rebooting with Grub the boot command had to be edited to add noapic to the end of the kernel line.

39.31.1 Bartok Specifications

From the lspci and lshw commands and /proc/cpuinfo:

Spec Details
CPU: Dual Intel Pentium III (Coppermine) 1GHz
Bogomips: 2 x 2005
Memory: 1.3GB
Network: Integrated Intel PRO/100+ Intel 82559 (eepro1000)
Disk: 20GB IDE
140GB Adaptec 2100s RAID. 4 x Seegate Cheetah 10K 36GB
Video: NVidia Riva Ultra 64
Audio:
CDRW: Mitsubishi CDRW 32x12x8
CDROM: ATAPI-CD ROM-DRIVE-52MAX, ATAPI CD/DVD-ROM drive
Hostname: bartok
Domainname: togaware.com
IP Address: 105.229.8.158
Netmask: 255.255.255.192
Broadcast: 105.229.255.255
Gateway: 105.229.8.190
DNS 125.83.72.15 125.83.72.1
Boot: Lilo
Kernel: 2.4.25-1-686-smp

39.31.2 Bartok Install Log

The IDE disk was originally partitioned into three: one for swap (2GB as /dev/hda3), one for / (4GB as /dev/hda1) and the rest for /home (14GB as /dev/hda2. After a year or two of use the / partition was full! Generally, use the whole disk for / as is recommended by the Debian Installer.

The second install (23 March 2004) followed the standard path, but with noapic.

39.31.3 Load RAID Driver During Install

The Adaptec PCI Ultra 160 Single Channel RAID Controller, also known as the Adaptec 2100s, was an interesting challenge as drivers for this were not available on the install media. Thus initially it was not possible to install Linux. The initial boot with Debian GNU/Linx V2.2r2 CD-ROM failed because the disks were not found!

After the Configure Keyboard step in the Debian install process there is an opportunity to Preload Essential Modules from Floppy. This allows the loading of modules that are required for particular devices that are otherwise not provided in the kernel.

So the first attempt at installing Linux obtained the appropriate module/driver from Adaptec by downloading dptdriver-2.4.tgz from <linux.adaptec.com>. This gzipped tape archive generates /usr/adaptec/i2o_driver/:

  $ tar zxvf dptdriver-2.4.tgz
  $ cd usr/adaptec/i2o_driver/

The drivers for various versions of the kernel are then contained in dpt_i2o_prebuilt.cgz. This is a gzipped cpio archive. To extract the archive:

  $ mkdir tmp
  $ cd tmp
  $ gunzip < ../dpt_i2o_prebuilt.cgz | cpio --extract

The kernel installed was 2.2.18pre21 but there is not a corresponding dpt_i2o. The 2.2.18 version had undefined symbols and the machine froze. The 2.2.19 version worked. This was then copied onto a floppy for Debian to load:

  $ mount /floppy
  $ mkdir /floppy/boot
  $ cp dpt_i2o.2.2.19 /floppy/boot/dpt_i2o.o
  $ umount /floppy

Once dpt_i2o is installed you can create and initialise the disk partitions on the RAID:

  # cfdisk /dev/sda    (to create a single partition perhaps)
  # mke2fs /dev/sda1

Later when configuring drivers and devices you can also add modules from floppy, but they must now be in /floppy/lib/modules/scsi/dpt_i2o.o, for example.

Now we come unstuck because we create a boot floppy yet there is no way to install the RAID driver on the kernel on this boot floppy, so next reboot the RAID is no longer available and the boot hangs with a Kernel Panic and a message about block-major-8 and not being able to mount the root fs.

39.31.4 Install an IDE Hard Drive

It would appear that a sensible approach to building a computer with a SCSI RAID is to install an IDE drive onto which Debian GNU/Linux is installed. The appropriate driver for the SCIS RAID is then installed after Debian is functioning. The driver for the SCSI RAID is dpt_i2o.o, obtained from the dptdriver-2.4.tgz archive at <linux.adaptec.com>. The correct one (for kernel 2.2.19) was copied to the appropriate modules folder after upgrading the kernel to 2.2.19:

  # mount -r /dev/fd0 /floppy
  # cp /floppy/boot/dpt_i2o.o /lib/modules/2.2.19/scsi
  # umount /floppy
  # depmod -a
  # insmod dpt_i2o

Then dpt_i2o.o is listed in /lib/modules/2.2.19/modules.dep (thanks to the depmod command) and the RAID disk is accessible. There were some unresolved symbols but these seem not to affect the drive. (The choice of kernel 2.2.19 was dictated by the available kernel-images in Debian and the available drivers for specific kernels from Adaptec.)

To mount the drive add the following to /etc/fstab:

  /dev/sda1  /raid ext2    defaults,errors=remount-ro      0 0

Then create /raid and mount the RAID disk:

  # mkdir /raid
  # mount /raid

Also add dpt_i2o to /etc/modules so that the RAID is available when the machine boots.

39.31.5 Kernel Compiles to Support HIGHMEM and SMP

Eventually the standard package kernel-image-2.4.20-1-686-smp was installed, providing both SMP and HIMEM support.

Previous kernel compiles are outlined here.

  # wajig install bin86 kernel-package kernel-source-2.4.16 debconf-utils
  # cd /usr/src
  # tar jxvf kernel-source-2.2.16.tar.bz2
  # cd kernel-source-2.2.16
  # cp /boot/config-2.4.16-586 .config
  # make menuconfig
    Processor Type and Features
      CONFIG_MPENTIUMIII=y
      CONFIG_HIGHMEM4G=y (originally off)
      CONFIG_SMP=y (already set)
  # make-kpkg clean
  # make-kpkg --append-to-version -p3hmsmp --revision dha01 
              --initrd kernel_image

The aim was to have:

  • dpt_i2o provided by the kernel (2.4.14 on with CONFIG_SCSI_DPT_I2O=m)
  • support for 2 CPUs (CONFIG_SMP=y)
  • support over 1GB memory (CONFIG_HIGHMEM4G=y)

With the new kernels the initrd (initial ram disk) is the default, so it is worth moving to this. It requires changes to your /etc/lilo.conf to include initrd lines. For example:

  image=/boot/vmlinuz-2.4.16-p3hmsmp
        label=2.4.16-p3hmsmp
        read-only
        initrd=/boot/initrd.img-2.4.16-p3hmsmp
        append="noapic"

Note also that with the dual processor card in this machine (ASUS CUV4X-DLS) the noapic option was required, otherwise there is a problem with running out of IRQs and the boot hangs after the following message:

  ENABLING IO-APIC IRQs
  Setting 2 in the phys_id_present_map
  ...changing IO-APIC physical ID to 2 ... ok. 
  ..TIMER: vector=0x31 pin1=2 pin2=0

An alternative to turning APIC off is to free up the IRQs used by the PCI IDE devices. This is only useful if either the primary or secondary IDE is not being used (for IDE hard disks and IDE CD-ROM). To turn it off the secondary or both IDEs in the BIOS setup, go to Advanced\(\rightarrow\)\(\rightarrow\)Onboard PCI IDE and set it to either Primary or Disabled.



Your donation will support ongoing availability and give you access to the PDF version of the book. Desktop Survival Guides include Data Science, GNU/Linux, and MLHub. Books available on Amazon include Data Mining with Rattle and Essentials of Data Science. Popular open source software includes rattle, wajig, and mlhub. Hosted by Togaware, a pioneer of free and open source software since 1984. Copyright © 1995-2021 Graham.Williams@togaware.com Creative Commons Attribution-ShareAlike 4.0.