Please see the following instructions below:
AT-2970 Gigabit Ethernet Adapter Driver for Linux (x86 edition)
II. REQUIRED FILES
IV. INCLUSION OF THE ADAPTER AT SYSTEM START
V. DRIVER PARAMETERS
VI. LARGE FRAME SUPPORT
The AT2970 driver supports the Allied Telesis AT-2970 Gigabit Ethernet Adapter on Linux 2.0.x and above.
II. REQUIRED FILES
If you get this driver on a CD, go to the correct subdirectory (drivers/at2970/Linux) where the gzip'ed tar archive and this document reside. Gunzip and untar the driver to your harddisk. The directory 'AT2970' created hereby is referenced as 'the driver directory' in the following text.
If you downloaded the driver from the web, you received a gzip'ed tar archive (If you are reading this, you probably have already gunzip'ed and untar'ed it). You will then have a subdirectory 'AT2970', which corresponds to 'the driver directory' in the following text. In this driver directory, AT2970.o is the loadable driver module.
If you are using the kernel version 2.0.36, then this is the only file that is required.
For all other kernel versions, the driver must be recompiled. The necessary driver sources are in the 'src' subdirectory.
The following steps describe the actions that are required to install the driver and to start it manually. These steps should be carried out for the initial driver setup. Once confirmed to be ok, they can be included in the system start which is described in the next section, "Inclusion of the Adapter at System Start."
NOTE: You must have 'root' access to the system to perform the following tasks.
IMPORTANT: In case of problems, please read the section "Troubleshooting" below.
Your kernel must have 'loadable module support' enabled. For automatic driver start, you also need 'Kernel daemon support (...)' (for 2.0.x kernels) or 'Kernel module loader' (for 2.2.x kernels) enabled. Configure those options, rebuild and install the new kernel and reboot your system.
Change into the driver directory.
If your kernel version is 2.0.36, the drivermodule can be used as is. Otherwise, you have to recompile it. To recompile the driver module, change to the 'src' directory and enter 'make'.
NOTE: If you have compiled here before, enter 'make clean' first. After make has finished, the file 'AT2970.o' will exist in this 'src' directory and can be used as follows.
NOTE: You can also load the module on other kernel versions by invoking the command 'insmod' (see below) with the Switch '-f'. However, there is no guarantee that this will work on all kernel versions.
Load the module manually by entering: insmod AT2970.o If the Allied Telesis SK-984x adapter is installed in your computer and you have a /proc filesystem, running the command 'more /proc/net/dev' should produce an output containing a line with the following format:
eth0: 0 0 ... which means that your adapter has been found and initialized.
NOTE: If you have more than one Allied Telesis SK-984x adapter, the adapters will be listed as 'eth0', 'eth1', 'eth2', etc. For each adapter, repeat the steps 5) and 6).
NOTE: If you have other Ethernet adapters installed, your Allied Telesis SK-984x adapter can be mapped to 'eth1' or 'eth2' ... The module installation message (in system logfile or on console, depending on /etc/syslog.conf) prints a line for each adapter that is found, containing the corresponding 'ethX'.
Select an IP address and assign it to the respective adapter by entering: ifconfig eth0. This causes the adapter to connect to the Ethernet. The solitary yellow LED at the adapter is now active, the link status LED of the primary port is on and the link status LED of the secondary port (on dual port adapters) is blinking (only if the laters are connected to a Switch or Hub).
NOTE: If you are in doubt about IP addresses, ask your network administrator for assistance.
This step is only required for 2.0.X kernel versions. Later ones do this automatically. Add a route to the routing table with the following command: route add -net netmask dev eth0 Using your IP-address, you can normally get your netaddress by replacing the host part with '0'. For a class C address, the netmask is normally '255.255.255.0'.
Your adapter should now be fully operational. Use 'Ping ' to verify the connection to other computers on your network. By entering 'ifconfig', you can check the number of packets send and received by your adapter and additional some other information regarding the adapter configuration.
The driver module can be stopped and unloaded using the following commands: ifconfig eth0 down rmmod AT2970
IV. INCLUSION OF THE ADAPTER AT SYSTEM START
Since a large number of different Linux distributions are available, we are unable to describe a general installation procedure for the driver module. However, we will provide a description of the installation with two distributions (SuSE and RedHat) as well as some help for the manual inclusion in the system startup. If possible, you should always use your distribution's way to install the driver. The manual installation is only the last means if nothing else works. For other distributions, we recommend that you read these descriptions and also refer to the distribution's manual for information regarding the network configuration.
This section assumes that you have at least completed steps 1-3 as described in the previous section.
COMMON STEPS FOR ALL DISTRIBUTIONS
Copy the driver module file AT2970.o to your modules directory: cp AT2970.o /lib/modules//net/ If this directory does not yet exist, please create it.
In Linux, modules can be loaded automatically by a kernel daemon if required. To make the new module known to this daemon, you must add one line to its configuration file (/etc/conf.modules): alias eth0 AT2970 This identifies the module (AT2970.o) which must be loaded if any accesses are made to the device eth0.
Continue with the section for the distribution in use.
Call the SuSE setup tool, 'yast'.
Go to: System administration Network configuration Network base configuration
Select the first unused line, press F5 and select 'Ethernet'.
Press F6 and enter the required addresses. Do not forget to activate the device by pressing F4.
Press F10 to save the new configuration and quit the setup tool.
Reboot your computer and test if your adapter is working.
To use the RedHat configuration tool, you must have XWindow running (NOTE: the configuration tools seems to require a screen mode with at least 256 colors). Start X11 as root or change to root user in a xterm window with 'su'. Call 'control-panel' and select 'network configuration'. After a short moment, the network configuration window is displayed. Select 'Interfaces',then 'Add'. Select 'Ethernet', press 'Ok'. Insert the IP address in the appropriate field and press ENTER. The network address and the netmask will be automatically inserted. Select the check box 'Activate interface at boot time'. Press 'Done'. Back in the network configuration window, press 'Activate'.
Select 'Routing', 'Add' and enter the following: Device: eth0 Network: Netmask: Gateway:
NOTE: a gateway is a device that connects your IP network to other IP networks. If you are not sure whether you need one, ask your network administrator.
Press 'Done', then press 'Save' and 'Quit'. Close the control panel.
Reboot your computer and test if your adapter is working. If you re-enter the configuration tool later, your device will be shown correctly as 'eth0'.
To initialize the adapter at system start, you must add the commands from the previous section "Installation" (steps 4-6) to one of the system startup scripts. Read the main pages for 'init' and 'inittab' to learn more about the boot process and to locate the correct script.
You can either use the kernel module loader (see Common Steps for All Distributions, steps 1 and 2) or add the appropriate 'insmod'-line to a startup script (with full path to the driver). You also have to add the 'ifconfig'-line to a startup script (and the 'route'-line for kernel versions 2.0.X).
V. DRIVER PARAMETERS
Parameters can be set at the command line while loading the module with 'insmod'. The configuration tools of some distributions can also give parameters to the driver module. If you use the kernel module loader, you can set driver parameters in the file /etc/conf.modules. Insert a line of the form: options AT2970 ... For "...", use the same syntax as described below for the command line paramaters of insmod. You either have to reboot your computer or unload and reload the driver to activate the new parameters. The syntax of the driver parameters is: insmod AT2970.o parameter=value1[,value2[,value3...]] value1 is for the first adapter, value2 for the second one etc. All Parameters are case sensitive, so write them exactly as shown below.
NOTE: If the compiled driver is in your current directory, use:
insmod AT2970.o ...
If it is in /lib/modules//net/, use:
insmod AT2970 ...
Sample: Suppose you have two adapters. You want to set AutoNegotiation on Port A of the first adapter to ON and on Port A of the second adapter to OFF. You also want to set DuplexCapabilities on Port A of the first adapter to FULL and on Port A of the second adapter to HALF. You must enter: insmod AT2970.o AutoNeg_A=On,Off DupCap_A=Full,Half
NOTE: The number of adapters that can be configured this way is limited in the driver (constant SK_MAX_CARD_PARAM). The current limit is 16. If you happen to install more adapters, adjust this and recompile.
Those setting are available for each port on the adapter. In the following description, '?' stands for the port for which you set the parameter (A or B).
Values: On, Off, Sense
The "Sense"-mode finds out automatically whether the link partner supports autonegotiation or not.
Values: Half, Full, Both
This parameters is relevant only if autonegotiation for this port is not "Sense". If autonegotiation is "On", all three values are possible. If it is "Off", only "Full" and "Half" are allowed. It is usefull if your link partner does not support all possible combinations.
Values: Sym, SymOrRem, LocSend, None
This parameter can be used to set the flow control capabilities that the port reports during autonegotiation. The meaning of the different modes is:
-- Sym = Symetric: both link partners are allowed to send PAUSE frames
-- SymOrRem = SymetricOrRemote: both or only remote partner are allowed to send PAUSE frames
-- LocSend = LocalSend: only local link partner is allowed to send PAUSE frames
-- None: no link partner is allowed to send PAUSE frames
NOTE: This parameter is ignored if autonegotiation is set to "Off".
Values: A, B
This is used to force the preferred port to A or B (on two-port NICs). The preferred port is the one that is used if both are detected as fully functional.
RLMT (Redundant Link Management Technology) Mode
Values: CheckLinkState,CheckLocalPort, CheckSeg
Default: CheckLinkState RLMT (the driver part that decides which port to use) knows three ways of checking if a port is available for use:
-- CheckLinkState = Check link state only: RLMT uses the link state reported by the adapter hardware for each individual port to determine whether a port can be used for all network traffic or not.
-- CheckLocalPort - Check other port on adapter: RLMT sends test frames from each port to each other port and checks if they are received by the other port, respectively. Thus, the ports must be connected to the network such that LLC test frames can be exchanged between them (