Juneau LUG


The Juneau Linux Users Group

IBM 6015:


The IBM 6015, which is virtually identical to the IBM 7020, is a PReP PowerPC machine in the IBM RS/6000 line of servers and workstations. There is quite a bit of information on the 6015 on the web, most of which does not need to be duplicated on this page.

6015 Front View
6015, front view

The 6015 uses standard ISA and PCI expansion cards and standard SCSI devices, so avoids the compatibility problems that plague MCA machines. There are two PCI slots, neither of which are full size (the drive buys get in the way). Therefore you can't use full size PCI cards such as RAID controllers. There are three ISA slots, and these ARE full size, with a retainer bracket mounted in the case. Normally one of the PCI slots holds the video adapter, and one of the ISA slots holds a NIC.

6015 Rear, no cover
Rear view without cover showing PCI video card (left) and ISA NIC (right) in top slots. There is one additional PCI slot under the video card, and two additional ISA slots under the NIC.

6015 Left, no cover
Side view showing NIC (left upper foreground), 8 DIMM slots (left lower foreground), and CPU (right lower foreground with heatsink. Next to the CPU is an expansion slot for a 604 upgrade).

If the video adapter has been removed, the machine will not boot. If you do not have a video adapter, and cannot locate a used IBM adapter, you can substitute an S3 Diamond Stealth 64 DRAM PCI card (Vision 864 or Vision 868). This card is very close to the S3 Stealth card IBM uses as its E15 video card - you will be able to boot with this card in the machine. If you do not get any video signal at all, try removing the BIOS chip from the S3 video card. Then you should at least see the firmware splash screen while the machine is booting, and quite possibly be able to use the console. Use the serial port to communicate with your machine if you cannot get the video framebuffer working. An excellent utility to use to reach the serial console on a 6015 (or any other serial console) is microcom. The binary available from microcom's web page is for i386, but the source code compiles and runs on IBM PowerPC machines as well.

If the IBM network card is missing and you want to boot from the network, you can try to substitute an ISA NIC. A WD8013EW NIC was tested in Juneau, and the NIC was initialized and active at boot so you may be able to use one to boot using tftp. However there seems to be a problem with the Linux kernel drivers (for 2.4.18 anyway) and most NICs. During November 2002, a kernel with a variety of modules was compiled on a 6015, and then various NICs were tested. Here are the results:

  • None of the 3Com modules would build correctly they all had unresolved symbol errors that came up during the `make modules_install` step. Therefore no 3Com NICs were tested at all.
  • The Western Digital/SMC ISA driver did compile, however the wd module refused to load with the cards present, even with the jumperable WD8013EW NICs (four were tested, both original WD cards and SMC cards). Interestingly, the original equipment IBM NIC uses this same module, and the module works fine with the IBM NIC installed.
  • The ne module would sucessfully detect various NE2000 ISA NICs and load, however the NICs would not transmit (generating transmit timeout errors in the system log).
  • No PCI NICs were detected on boot at all, and we were unable to load any of their modules.
  • Intel EtherExpress 16 NICs (using the eexpress module) would load fine, however the NIC would only transmit - not receive.
  • Intel EtherExpress 10 and EtherExpress 10+ ISA NICs (using the eepro module) performed very well, including using autoprobe to load multiple NICs.

Aside from an original equipment IBM NIC, the only other NIC that was successfully tested was the Intel EtherExpress 10 / 10+ ISA NIC. These are not jumperable, so you may need to use Intel's DOS based configuration utility to set the I/O address and IRQ for your NIC. (And of course an i386 machine to boot into DOS.)

The precompiled kernels available below support two ISA NICs, which can be either original IBM NICs using the wd driver, or Intel EtherExpress 10/10+ NICs (or one of each). The kernel expects eth0 to be at IRQ 5, I/O 0x210 and eth1 to be at IRQ 11, I/O 0x300. The hard drive kernel has iptables compiled in, allowing you to use your 6015 as a firewall.

If you acquire a 6015 that has been stripped, the biggest problem will be finding RAM. The 6015 requires 70ns, Parity (or ECC), Buffered 5 volt DIMMs. These DIMMs are not easy to find, especially as used parts retailers do not always clearly identify them and may group them with the more common 3.3 volt models. The older PowerMac line also used buffered 5 volt DIMMs, however these were usually not Parity or ECC. The 6015 will not recognize PowerMac non-Parity DIMMs. The following DIMMs have been tested in Juneau and known to work with a 6015:

Samsung KMM372C120CT1-6 (8MB, ECC)

Samsung KMM372C400BS-6 (32MB, ECC)

IBM 92G7213, p/n 05H0904, FRU 92G7429 (32MB, Parity)

IBM 92G7339, p/n 05H0935, FRU 42H2784 (32MB, Parity)*

* Although not tested, Kingston offers the KTM7339/32 module which is equivalent and should work.

Mixing Parity and ECC DIMMs in the same machine does not cause any problems.


An IBM 6015 cannot boot a stock PowerPC kernel, even a specially prepared PReP kernel. Therefore the standard boot floppies or bootable CDs cannot be used to install Linux. However Sven Dickert maintains a patch for this machine on his excellent page, currently (June 2003) for the 2.4.20 kernel. You can use his minimal file system image to boot and install Linux. From there you can download the patch itself to build your own kernel with the features you need such as iptables support.

Using Sven's patch and root filesystem, and the invaluable insights of Danilo Selvestrel, a bootable Debian installation CD has been built. You can download it from this site, but please be aware that it is a 47MB iso, and this server is limited to a 32kb/s upload speed. If anyone would like to mirror the iso, please contact us. This CD is version 0.4.5, dated 21 May 2003. Version 0.4.5 installs a Debian 2.2 base system, from which you can upgrade to Woody via dselect and apt. Version 0.4.6 installs a Debian 3.0 base system, but the iso is much larger at 102MB, so is not available for download. (If you are interested, please ask via e-mail and a CD can be posted to you.) Also, testing opportunities are limited here in Juneau with only two 6015 machines to play with (one of which is the development machine, which leaves only one available for testing). If you find that any of these images do not work for your 6015/7020, please contact us. An installation log is at the bottom of this page.

You can build your own bootable CD-Rom image for these machines to install Debian 3.0 (Woody). A pre-compiled 2.4.18 kernel (download here) is useful to bootstrap a Debian install for the 6015. It has Sven's root filesystem that will load a small ramdisk with a variety of tools. Unfortunately it is 2MB in size, so you'll need to burn it to CD to use it. (Sandalfoot machines will not boot a 2.88MB floppy.) Build your CD file system as normal, and include this image. Use mkisofs to create the .iso, using the "-prep-boot [path to this image]" to make the CD bootable on your 6015/7020.

You can also download this kernel, and place it on your bootable CD. This is a preconfigured kernel for the hard disk, which will expect the root file system to be on /dev/sda3 and will set up a serial console and activate up to two NICs as described above. If you want to change any of these values (such as the IO & IRQ values for the NICs), you can use a hex editor to edit the kernel image directly.

Place any other tools or utilties you wish on the CD. The latest Debian root image is useful for installing Linux. Debian's root image is a gzipped tarball. You can unzip this tarball and place it on your CD. Be prepared to escape to a shell quite often while attempting to install Debian, as the boot floppy installer does not always work smoothly. Also be sure that support for devfs is NOT enabled, or the Debian boot floppy installer will not see your drives.

To install Debian, boot from your CD, then partition /dev/sda. Place a type 41 PReP boot partition at /dev/sda1 & dd the hard disk kernel to it. Use /dev/sda2 for swap, and /dev/sda3 for the root partition. Move the unzipped Debian root image to /dev/sda3. Remove the CD, and reboot, and the Debian installer will greet you (either on the console or the serial port, depending on which video card you have). You will need an official Debian PowerPC CD to complete the install, or if you have a working NIC you can use http or ftp.


CD 0.4.5 (md5: ea77d4577a8f02f6758b340701b6c704) installation CD

zImage.initrd.sandalfoot (md5: d32851b9d44605f78c86b7c341ddaa4d) ramdisk kernel for bootable CD

zImage.prep (md5: 879b52c7d434eb5bb0e297e4ec272f89) harddrive kernel (root=/dev/sda3)

If you have questions please e-mail us!

CD image 0.4.5 installation log, captured via serial port. You will not see some output on a serial port, such as the kernel's boot messages. (A dmesg output is included below.)

#loaded at: 00480410 00495228

Please press Enter to activate this console.

BusyBox v0.60.0 (2001.08.19-09:26+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

# cd /root
# ls
install.sh partition.data
# ./install.sh
Checking that no-one is using this disk right now ...

Disk /dev/sda: 1017 cylinders, 133 heads, 62 sectors/track
Old situation:
Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End MB #blocks Id System
/dev/sda1 * 0+ 8- 9- 8245+ 41 PPC PReP Boot
/dev/sda2 8+ 136- 129- 131936 82 Linux swap
/dev/sda3 136+ 4094- 3958- 4052909 83 Linux
/dev/sda4 0 - 0 0 0 Empty
New situation:
Units = megabytes of 1048576 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End MB #blocks Id System
/dev/sda1 * 0+ 8- 9- 8245+ 41 PPC PReP Boot
/dev/sda2 8+ 136- 129- 131936 82 Linux swap
/dev/sda3 136+ 4094- 3958- 4052909 83 Linux
/dev/sda4 0 - 0 0 0 Empty
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
2302+1 records in
2302+1 records out
Setting up swapspace version 1, size = 135098368 bytes
mke2fs 1.19, 13-Jul-2000 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
506912 inodes, 1013227 blocks
50661 blocks (5.00%) reserved for the super user
First data block=0
31 block groups
32768 blocks per group, 32768 fragments per group
16352 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done
Writing superblocks and filesystem accounting information: done
Your hard drive is now partitioned as follows:
/dev/sda1 6MB type 41 (IBM PReP boot partition)
/dev/sda2 128MB Linux Swap partition
/dev/sda3 the rest of the disk, Linux ext2

Remove the CD and reboot to Debian to complete
the installation process with dselect. Your
network cards will not be initialized - you can
use pump for DHCP, or configure them manually
with ifconfig. Root has no password, and there
are no users configured.

# df -h
Filesystem Size Used Available Use% Mounted on
/dev/rd/0 3.9M 2.1M 1.5M 58% /
/dev/sda3 3.8G 100.0M 3.5G 3% /mnt
# reboot
# loaded at: 00480410 00495228

Debian GNU/Linux 2.2 6015 ttyS0

6015 login: root
Linux 6015 2.4.18 #15 Tue May 20 15:11:37 AKDT 2003 ppc unknown

Most of the programs included with the Debian GNU/Linux system are
freely redistributable; the exact distribution terms for each program
are described in the individual files in /usr/doc/*/copyright

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
6015:~# dmesg
Memory BAT mapping: BAT2=8Mb, BAT3=8Mb, residual: 128Mb
Total memory = 144MB; using 1024kB for hash table (at c0300000)
Linux version 2.4.18 (root@Juneau-lug) (gcc version 2.95.4 20011002 (Debian prerelease)) #15 Tue May 20 15:11:37 AKDT 2003 PReP architecture
On node 0 totalpages: 36864
zone(0): 36864 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: console=/dev/ttyS0,9600 console=tty0 ether=5,0x210,eth0 ether=11,0x300,eth1 ramdisk_size=8192 root=/dev/sda3
Console: colour VGA+ 80x25
Calibrating delay loop... 65.53 BogoMIPS
Memory: 141096k available (1724k kernel code, 876k data, 252k init, 0k highmem)
Dentry-cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode-cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount-cache hash table entries: 4096 (order: 3, 32768 bytes)
Buffer-cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
POSIX conformance testing by UNIFIX
PCI: Probing PCI hardware
NCR 53c810 rev 1 detected, setting PCI class.
Fixup res 1 (200) of dev 00:0c.0: 100 -> c0000100
Fixup res 6 (7200) of dev 00:0e.0: c0000 -> c00c0000
IBM ID: 000000fc
Setting PCI interrupts for a "IBM 6015/7020 (Sandalfoot/Sandalbow)"
Relocating PCI address 20000000 -> 1000000
PCI: Cannot allocate resource region 0 of PCI bridge 0
PCI: resource is 0..fffffff (100), parent c021605c
PCI:00:0c.0: Resource 0: 01000000-010000ff (f=101)
PCI:00:0c.0: Resource 1: c0000100-c00001ff (f=200)
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
devfs: v1.10 (20020120) Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x0
Detected PS/2 Mouse Port.
pty: 256 Unix98 ptys configured
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
request_module[parport_lowlevel]: Root fs not mounted
lp: driver loaded but no devices found
rtc: I/O port 112 is not free.
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ide-floppy driver 0.97.sv
id: 0xb4 <7> io: 0x210 <6>eth0: Intel EtherExpress Pro/10+ ISA
at 0x210,<6> a0<6>:00<6>:5a<6>:c9<6>:da<6>:a7<6>, IRQ 5, 10BaseT.
id: 0xb4 <7> io: 0x300 <6>eth1: Intel EtherExpress Pro/10 ISA at 0x300,<6> aa<6>:00<6>:b8<6>:00<6>:62<6>:b8<6>, IRQ 11, 10BaseT.
loop: loaded (max 8 devices)
ide-floppy driver 0.97.sv
SCSI subsystem driver Revision: 1.00
PCI: Enabling device 00:0c.0 (0005 -> 0007)
sym.0.12.0: setting PCI_COMMAND_PARITY...
sym0: <810> rev 0x1 on pci bus 0 device 12 function 0 irq 13
sym0: No NVRAM, ID 7, Fast-10, SE, parity checking
sym0: SCSI BUS has been reset.
scsi0 : sym-2.1.17a
Vendor: SEAGATE Model: ST15150N Rev: 8602
Type: Direct-Access ANSI SCSI revision: 02
Vendor: TEAC Model: CD-ROM CD-532S Rev: 1.0A
Type: CD-ROM ANSI SCSI revision: 02
Vendor: IBM Model: CDRM00201 !F Rev: 0724
Type: CD-ROM ANSI SCSI revision: 02
sym0:0:0: tagged command queuing enabled, command queue depth 16.
scsi1 : SCSI host adapter emulation for IDE ATAPI devices
Attached scsi disk sda at scsi0, channel 0, id 0, lun 0
sym0:0: FAST-10 SCSI 10.0 MB/s ST (100.0 ns, offset 8)
SCSI device sda: 8388315 512-byte hdwr sectors (4295 MB)
Partition check:
/dev/scsi/host0/bus0/target0/lun0: p1 p2 p3
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 3, lun 0
Attached scsi CD-ROM sr1 at scsi0, channel 0, id 6, lun 0
sym0:3: FAST-10 SCSI 10.0 MB/s ST (100.0 ns, offset 8)
sr0: scsi3-mmc drive: 0x/279x caddy
Uniform CD-ROM driver Revision: 3.12
sym0:6: FAST-5 SCSI 4.2 MB/s ST (236.0 ns, offset 8)
sr1: scsi-1 drive
Macintosh non-volatile memory driver v1.0
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
usb.c: registered new driver hid
hid-core.c: v1.8 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>
hid-core.c: USB HID support drivers
mice: PS/2 mouse device common for all mice
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 16384 bind 16384)
ip_conntrack (1152 buckets, 9216 max)
ip_tables: (C) 2000-2002 Netfilter core team
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
VFS: Mounted root (ext2 filesystem) readonly.
Freeing unused kernel memory: 252k init 48k pmac 8k chrp 12k openfirmware
Adding Swap: 131928k swap-space (priority -1)
6015:~# exit

Debian GNU/Linux 2.2 6015 ttyS0

6015 login: