HOW TO ADD DRIVERS - Example shown for Intel Pro/1000 series gigabit adapters
------------------
=> If available, get the prebuilt modules for the appropriate kernel from:
ftp://www.scyld.com/pub/beowulf//updates
For example, for the 2.2.19-12 kernel:
ftp://www.scyld.com/pub/beowulf/27z-8/updates/e1000-3.6.8.1.tar.gz
=> If not available, download source code for driver. The Intel Pro/1000
series driver can be found at ftp://www.intel.com/df-support/2897/eng or
http://downloadfinder.intel.com/scripts-df/Product_Filter.asp?ProductID=415 or
http://support.intel.com/support/go/linux/e1000.htm
NOTE: If the kernel source rpm was not installed, you'll have to do that
first. It is installed by default under 27cz-9, but not under
28cz-8-beta2. The kernel source is available on the distribution
CD under Scyld/RPMS/kernel-source-2.4.9-21.1.i386.rpm
=> Add this line to the beginning of the Makefile
CFLAGS = $(KCFLAGS)
=> Make the beoboot, SMP, and UP modules for the version of the Scyld
kernel that you are running under (27cz-9 shown here):
> make KCFLAGS="-D__BOOT_KERNEL_H_ -D__module__beoboot"
> mv e1000.o /lib/modules/2.2.19-14.beobeoboot/net
> make KCFLAGS="-D__BOOT_KERNEL_H_ -D__BOOT_KERNEL_SMP=1"
> mv e1000.o /lib/modules/2.2.19-14.beosmp/net
> make KCFLAGS="-D__BOOT_KERNEL_H_ -D__BOOT_KERNEL_UP=1"
> mv e1000.o /lib/modules/2.2.19-14.beo/net
=> Add new entries for this module to the PCI table
1. Add, if necessary, the following bootmodule entry to the configuration
file (in /etc/beowulf/config.boot for 27cz-9 and /etc/beowulf/config for
28cz-4):
bootmodule e1000
2. Add entries to the device list for each device supported by this driver
(in /etc/beowulf/config.boot for 27cz-9 and /usr/share/kudzu/pcitable for
28cz-1):
pci 0x8086 0x1000 e1000
pci 0x8086 0x1001 e1000
pci 0x8086 0x1004 e1000
pci 0x8086 0x1008 e1000
pci 0x8086 0x1009 e1000
pci 0x8086 0x100c e1000
=> Build the dependency file (for each kernel) used by modprobe to load the
correct module:
For single processor kernel:
depmod -a -e -F /boot/System.map-2.2.19-14.beo 2.2.19-14.beo
For SMP (more than one processor machine) kernel:
depmod -a -e -F /boot/System.map-2.2.19-14.beosmp 2.2.19-14.beosmp
For beoboot kernel (Stage 1 image):
depmod -a -e -F /boot/System.map-2.2.19-14.beobeoboot 2.2.19-14.beobeoboot
=> Rebuild the Phase 1 and Phase 2 kernel images:
/usr/bin/beoboot -1 -f -o /dev/fd0 -c "apm=power-off"
/usr/bin/beoboot -2 -n -k /boot/vmlinuz-`uname -r` -o /var/beowulf/boot.img -c "apm=power-off"
NOTE:
----
If your master node is single processor and your compute node is SMP,
and you don't have a SMP kernel installed, you'll have to get the RPM
from the distribution CD and install it (using rpm -U). This happens
when you install on a single processor machine because the installer
selects the kernel to be installed based on the machine being installed
on. You must run the same kernel on all of the machines in the cluster.
The SMP kernel can run on both single processor and SMP machines.