Installation instructions for the Alloy-1440xx Fibre NIC under Linux ================================== Introduction: The Alloy-1440xx is a 100Mb Fiber-NIC which comes in both ST/SC connectors. Test system: Pentium III-850 390MB RAM Installation instructions: There are two ways of installing the drivers for the Alloy-1440xx cards. You can use the inbuilt drivers (tested kernel-2.4.21) or the ones that come with the NIC (tested with RH7.1 2.4.2-2 kernel) Installation for RedHat-7.1 =========================== Requirements for RedHat-7.1 --------------------------- kernel-source-2.4.2-2 RPM gcc (and other compiler tools) Installation under RedHat-7.1 ----------------------------- It is assumed that the above packages are preinstalled, if not, mount the RedHat7.1 CD's and install them. (For information on how to do this see 'Additional Information' at the end of this file) Compiling the driver (one supplied with the NIC): ------------------------------------------------- 1) get the driver off the Alloy CDROM mount /dev/cdrom /mnt/cdrom 2) copy to a temporary directory and decompress the source files cp /mnt/cdrom/Drivers/LINUX/rhinefet.tgz /usr/src cd /usr/src tar xvzf rhinefet.tgz 3) compile the driver cd /usr/src/rhinefet make If it works, there will now be a rhinefet.o file in the current directory. 4) test the driver loading insmod ./rhinefet.o If it works, there will be no error messages. If there is undefined symbols, there might be a conflict in kernel sources (check that you have the same version source as your boot up kernel) 5) copy the driver into the kernel's module directory, and refresh the module list cp rhinefet.o /lib/modules/2.4.2-2/kernel/drivers/net depmod -a 6) edit the modules.conf file to reflect the driver required for the NIC vi /etc/modules.conf look for a line with "alias " where netdevice is eth0 for first NIC, eth1 for 2nd NIC change that to "alias rhinefet" 7) reboot and the driver will load. Installation for generic Linux distribution [advanced] ====================================================== Requirements ------------ Latest Linux kernel source(2.4.21 at time of writing) gcc (and other compiler tools) Installation ------------ unpack the Linux kernel source to /usr/src, and configure the kernel as per Kernel HOWTO. make menuconfig Adding the driver: ------------------ 1) In addition to the customizations, select the following: Network Device Support --> [Y] EISA, VLB, PCI and on board controllers [Y] VIA Rhine Support odule 2) Compile the kernel as usual (as per Kernel HOWTO) (make dep && make bzImage && make modules && make modules_install) 3) Install kernel (as per Kernel HOWTO) This step depends on which loader you use (GRUB or LILO). Set up the new kernel as your default kernel to load. 4) edit the modules.conf file to reflect the driver required for the NIC vi /etc/modules.conf look for a line with "alias " where netdevice is eth0 for first NIC, eth1 for 2nd NIC change that to "alias via-rhine" 5) Reboot for new kernel to take effect Known limitations and benchmark: ================================ Running a ncftp transfer test between a Windows XP (same specs) as the Linux server, back-to-back fiber (same card), yields a throughput of ~56Mb/s average. At the time of writing the card doesn't appear to support full duplex under the Linux drivers. Additional Notes: ================= - The driver on the Alloy-supplied CD is "rhinefet" as opposed to the one in the new kernel "via-rhine". Do not get them confused. The "via-rhine" driver in 2.4.2-2 kernel does NOT work with the Alloy- 1440xx card. It is believed that the kernel drive has to be of at least LK-1.1.14+ (only tested with LK-1.1.17) for it to work with the NIC. - The driver that is supplied by Alloy tested in this document does not contain a version number, but rhine_main.c is dated Jan 30 2003, with filesize 78972) Testing done by: ================ Alvin Sim (elflord@faerie.cx) on behalf of Alloy Computer Products (Australia) Pty Ltd. 25/7/2003 Additional Information: ======================= there's two types of Linux distributions: - package based - RPM packaging (RedHat, Mandrake, Suse, etc) - deb packaging (Debian, etc) - tgz packaging (Slackware, etc) - customized setup - no real packaging, compile everything from scratch The procedures outlined are based on RH7.1 , which is RPM-based. Quick info: - Standard Kernel HOWTO (for compiling kernel) - RPM HOWTO (for how to use RPM to add/remove/update packages) - if you chose "Server" or "All" install, I believe all the above is auto-selected to be installed - so there's nothing to be done. Links: http://www.rpm.org/ - RPM Homepage - more info than you'll ever need to know http://www.redhat.com/docs/manuals/linux/RHL-8.0-Manual/custom-guide/s1-rpm-using.html - more summarised version of RPM usage Summary of procedures (the commands given are sample-RedHat centric): - mount the CDROM: mount /dev/cdrom /mnt/cdrom - go to the packages directories cd /mnt/cdrom/RedHat/RPMS (for RedHat distribution - Mandrake stores them in different locations) somewhere within the subdirectories (depending on which disk) there will be "kernel-source-2.4.2-2.i386.rpm" (the version number varies between RedHat 7.x/8.x) - install the source rpm -ivh kernel-source.2.4.2-2.i386.rpm (default RH7.1 kernel source) - install compiler (gcc) rpm -ivh gcc-x.x-x.i386.rpm (again version depends on which distribution of Linux) If the rpm is not on Disk1,try Disk 2. To switch disks: - unmount the current live CDROm umount /dev/cdrom - switch disks - remount the new CDROM mount /dev/cdrom /mnt/cdrom All distributions of Linux come with some form of compiler package.