Using Debian 3.1 (Sarge) on a Sun Fire X4100 or X4200
(updated 2006-08-22, page obsolete?)
Reports have come in that Debian is installable since ‘etch’ installer beta3 (amd64 & i386)
If you want to stick with sarge there are some backported images available through: http://kmuto.jp/debian/d-i/.
Reportedly sarge-custom-0801.iso (amd64 & i386) works.
The “stock” kernel-image-2.6.8-amd64-k8-smp does not contain the neccessary mpt fusion device driver for the LSISAS 1064 chipset. Please also check http://ioctl.org/unix/debian/x4100 out which describes how to create a suitable install CD with the kernels below incorporated.
Getting debian onto mirrored SAS disks (step by step, questions? email Fredrik Lundholm)
1. Connect an IDE disk and install Debian, see pictures below. To enable the secondary IDE controller in the BIOS make sure that Advanced -> IDE Configuration -> OnBoard PCI IDE Controller is set to [Both].
2. Create the SAS mirror, (press ctrl-c at boot when at the LSI BIOS and create a mirror).
3. Boot into Debian on the IDE disk.
4. Download and dpkg -i
kernel-image-2.6.8-dol-03-amd64-k8smp_10.00.Custom_i386.deb
(updated 2005-01-16-HIGMEM added)
OR:
kernel-image-2.6.8-dol-03-11-amd64-k8-smp_10.00.Custom_amd64.deb
(updated 2005-02-06 64 bit kernel)
5. Make sure mpt fusion device driver gets loaded by initrd.
(to be able to see the disks when booting from the new kernel)
I added:
/etc/mkinitrd/modules:
scsi_mod
mptbase
mptsas
mptscsih
sd_mod
in /etc/modules add:
mptbase
mptsas
mptscsih
6. cd /boot/
7. mkinitrd -o /boot/initrd.img-2.6.8-dol-03-amd64-k8-smp 2.6.8-dol-03-amd64-k8-smp
8. Run ‘update-grub’.
9. Make sure the newly created kernel entry in /boot/grub/menu.lst also contains an initrd reference.
8. Reboot again, choose the new kernel, the machine should see the new sas mirror device as /dev/sda.
9. Partition the mirror using fdisk, create file systems as needed.
10. Use dump & restore to move the installation from the IDE to the SAS disks.
Partition the SAS disk as following: (example)
(sda1 20GB /)
(sda2 20GB spare)
(sda3 swap)
‘cd /’
‘dump -0 -f /dev/sda2 .’
mount /dev/sda1 on /mnt (ext3 file system)
cd /mnt
‘restore rf /dev/sda2′
11. Configure grub to prepare for SAS disk boot of the kernel:
boot/grub/device.map: (example)
(hd0) /dev/hdc
(hd1) /dev/sda
/boot/grub/menu.lst: (example)
title Debian GNU/Linux, Internal disk
root (hd1,0)
kernel /boot/vmlinuz-2.6.8-dol-02-amd64-k8-smp root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.8-dol-02-amd64-k8-smp
12. Now put grub on the SAS disk:
grub-install /dev/sda
and for sane operation make a
grub-install /dev/hdc (or whatever you used to boot from)
13. Make sure (/mnt)/etc/fstab on the /dev/sda SAS disk is updated to mount the /dev/sda1 as opposed to older hdx devices.
14. Make the BIOS boot from the SAS disk by adjusting the boot order.
15. Done!!!! when logged in confirm we are on /dev/sda:
dol@dhcp72:~$ uname -a
Linux dhcp72 2.6.8-dol-02-amd64-k8-smp #1 SMP Tue Jan 3 23:53:01 CET 2006 i686 GNU/Linux
dol@dhcp72:~$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda1 19236308 1385720 16873436 8% /
tmpfs 453068 0 453068 0% /dev/shm
/dev/hdc1 18414092 1384532 16094180 8% /mnt
Connecting an IDE disk to a X4×00 server using the secondary controller built into the server.
Connecting an IDE cable to the motherboard of the X4100:

Outside view of the system:

What steps I took to build the kernel:
apt-get install kernel-source-2.6.8-16 (from debian)
apt-get install kernel-headers-2.6.8-11-amd64-k8-smp (from debian)
copy the kernel-headers-2.6.8-11-amd64-k8-smp .config-file to the /usr/src/ kernel-source directory.
get the fusion-3.0.2.57 driver. Due a mistake in the fusion driver it wont work correctly on the 2.6.8 kernel.
dhcp72:/usr/src/kernel-source-2.6.8/drivers/message/fusion> diff linux_compat.h linux_compat.h.org
28c28
< /* define msleep, msleep_interruptible which came in lk 2.6.9
---
> /* define msleep, msleep_interruptible which came in lk 2.6.8
34c34
< #if (defined(CONFIG_SUSE_KERNEL) && LINUX_VERSION_CODE == KERNEL_VERSION(2,6,5)) || LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9)
---
> #if (defined(CONFIG_SUSE_KERNEL) && LINUX_VERSION_CODE == KERNEL_VERSION(2,6,5)) || LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8)
make-kpkg kernel_image
Done!
From my X4100:
...
Fusion MPT base driver 3.02.57
Copyright (c) 1999-2005 LSI Logic Corporation
Fusion MPT SAS Host driver 3.02.57
ACPI: PCI interrupt 0000:02:03.0[A] -> GSI 28 (level, low) -> IRQ 28
mptbase: Initiating ioc0 bringup
ioc0: SAS1064: Capabilities={Initiator}
scsi2 : ioc0: LSISAS1064, FwRev=01040000h, Ports=1, MaxQ=267, IRQ=28
Vendor: FUJITSU Model: MAV2073RCSUN72G Rev: 0301
Type: Direct-Access ANSI SCSI revision: 04
SCSI device sdi: 143374738 512-byte hdwr sectors (73408 MB)
SCSI device sdi: drive cache: write through
/dev/scsi/host2/bus0/target2/lun0: p1
Attached scsi disk sdi at scsi2, channel 0, id 2, lun 0
Attached scsi generic sg9 at scsi2, channel 0, id 2, lun 0, type 0
Vendor: FUJITSU Model: MAV2073RCSUN72G Rev: 0301
Type: Direct-Access ANSI SCSI revision: 04
SCSI device sdj: 143374738 512-byte hdwr sectors (73408 MB)
SCSI device sdj: drive cache: write through
/dev/scsi/host2/bus0/target3/lun0: unknown partition table
Attached scsi disk sdj at scsi2, channel 0, id 3, lun 0
Attached scsi generic sg10 at scsi2, channel 0, id 3, lun 0, type 0
…

