# $PCCC_Release SCore Release 7.0.1.0 of SCore Cluster System Software (2010/12/09) $ # $PCCC_Copyright # SCore Cluster System Software version 7 # Copyright (C) 2003-2010 PC Cluster Consortium # # This software is free software; you can redistribute it and/or modify # it under the terms of the GNU Lesser General Public License version # 2.1 published by the Free Software Foundation. # # This software is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # Lesser General Public License for more details. # # You should have received a copy of the GNU Lesser General Public # License along with this software; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 # USA # # NOTICE: # SCore Cluster System Software versions 1 through 4 # Copyright (c) 2001,2000,1999,1998,1997 # Real World Computing Partnership # The SCore Cluster System Software copyright was transferred to # the PC Cluster Consortium from Real World Computing Partnership. # $ How to add non-builtin PMX/EtherHXB device driver ETHDEV_NAME : ethernet device name ETHDEV_SRC : non-PMX etherhxb device driver SOURCE_DIR : where the SCore source tree is INSTALL_DIR : the directory where SCore will be installed 1. Copy existing non-PMX etherxhb driver source code # cd $SOURCE_DIR/SCore/pmx/arch/etherhxb/driver/ # mkdir $ETHDEV_NAME; cd $ETHDEV_NAME # cp ../e1000_pmx/Makefile . # mkdir linux2_6; cd linux2_6 # cp -r $ETHDEV_SRC/* . # cp ../../e1000_pmx/linux2_6/Makefile . 2. Edit the original device driver source code 1) Add the following line --- #include "pmx_etherhxb_client.h" --- This header file replaces netif_rx, netif_receive_skb (defined in linux/netdevice.h), request_irq and free_irq (defined in linux/interrupt.h), dev_alloc_skb, dev_kfree_skb (defined in linux/skbuff.h), register_netdev, unregister_netdev (defined in linux/netdevice.h) functions. So this line must be inserted after these #include lines. 2) Change driver name < #define DRV_MODULE_NAME "$ETHDEV_NAME" > #define DRV_MODULE_NAME "$ETHDEV_NAME_scorepm1" 3. Edit the Makefile MODULE = $ETHDEV_NAME_scorepm1 MODFLAGS = -I$(srcdir) -I$(srcdir)/../../include -I$(srcdir)/../../../include -I$(srcdir)/../../../../../include INSTALL_MODSRCDIR = $ETHDEV_NAME_scorepm/linux2_6 MODSRCES set all source files for the driver. MODOBJS sets all (stage 1) object files (*.o) for the driver. 4. Edit the Makefile in $SOURCE_DIR/SCore/pmx/arch/etherhxb/driver/ to compile the added ethernet driver. 5. Now re-build your SCore source code See also $SOURCE_DIR/HowToBuild memo file # cd $SOURCE_DIR # ./configure .... # make 6. Compile the new PMX/EtherHXB device driver on a compute host In the following example, it is assumed that the $SOURCE_DIR is NFS mounted on the compute host. comp00# cd $SOURCE_DIR/build/bin comp00# ./make_all_modules 7. Setup compute hosts (nodes) as described in the HowToBuild memo. comp00# cd $INSTALL_DIR/install comp00# ./setup -score_comp 8. Check if the new PMX/EtherHXB device driver is properly buildt and installed comp00# ls -l /lib/modules//extra/score+pm/ comp00# less /etc/modprobe.conf 9. Reboot the compute host. 10. Check if the new PMX/EtherHXB device driver is properly installed and running on the compute host when the host is booted. comp00# cat /proc/pmx/ether_loader 11. Distribute the driver module to the other compute hosts and run the setup command, then reboot the host. compNN# cd /lib/modules//extra/score+pm/ compNN# scp comp00:/lib/modules//extra/score+pm/* . compNN# cd $INSTALL_DIR/install compNN# ./setup -score_comp compNN# reboot Done.