Readme File for
D-Link DGE-530T Gigabit Ethernet Adapter driver for LINUX

This file contains
1 OVERVIEW
2 REQUIRED FILES
3 INSTALLATION
4 DRIVER PARAMETERS
5 LARGE FRAME SUPPORT
6 VLAN AND LINK AGGREGATION SUPPORT (IEEE 802.1, 802.1Q, 802.3AD)
7 TROUBLESHOOTING
8 HISTORY

===========================================================================


1 OVERVIEW
============

The sk98lin driver supports the D-Link DGE-530T adapter on Linux.
It has been tested with Linux on Intel/x86 machines.
This driver support linux kernel version 2.4.18 or latter.
***


2 REQUIRED FILES
==================

The linux kernel source.
No additional files required.
***


3 INSTALLATION
================
Install linux driver as following command:

0. tar xvzf sk98lin.tgz, then goto sk98lin dir.
1. make all
2. insmod sk98lin.o
3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
		    ^^^^^^^^^^^^^^^\	    ^^^^^^^^\
				    IP		     NETMASK
Now eth0 should active, you can test it by "ping" or get more information by
"ifconfig". If tested ok, continue the next step.

The "ls /proc/net/sk98lin" command will show you the interface name to be
eth0, eth1 etc.

4. cp sk98lin.o /lib/modules/`uname -r`/kernel/drivers/net
5. Add the following lines to /etc/modules.conf:
	alias eth0 sk98lin
6. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
   located at /etc/sysconfig/network-scripts or create it manually.
7. Driver will automatically load and configure at next boot time.
***


4 DRIVER PARAMETERS
=====================
Parameters can be set at the command line after the module has been 
loaded with the command 'modprobe'.
In some distributions, the configuration tools are able to pass parameters
to the driver module.

If you use the kernel module loader, you can set driver parameters
in the file /etc/modules.conf (or old name: /etc/conf.modules).
To set the driver parameters in this file, proceed as follows:

1. Insert a line of the form :
   options sk98lin ...
   For "...", the same syntax is required as described for the command
   line paramaters of modprobe below.
2. To activate the new parameters, either reboot your computer
   or 
   unload and reload the driver.
   The syntax of the driver parameters is:

 	modprobe sk98lin parameter=value1[,value2[,value3...]]

   where value1 refers to the first adapter, value2 to the second etc.

NOTE: All parameters are case sensitive. Write them exactly as shown 
      below.

Example:
Suppose you have two adapters. You want to set auto-negotiation
on the first adapter to ON and on the second adapter to OFF.
You also want to set DuplexCapabilities on the first adapter
to FULL, and on the second adapter to HALF.
Then, you must enter:

 	modprobe sk98lin AutoNeg=On,Off DupCap=Full,Half

NOTE: The number of adapters that can be configured this way is
      limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM).
      The current limit is 16. If you happen to install
      more adapters, adjust this and recompile.


Speed
-----
Parameter:    Speed_A
Values:       10, 100, Auto
Default:      Auto

This parameter is used to set the speed capabilities.
Usually, the speed is negotiated between the two ports during link 
establishment. If this fails, a port can be forced to a specific setting
with this parameter.


Auto-Negotiation
----------------
Parameter:    AutoNeg_A
Values:       On, Off
Default:      On
  
  
Duplex Capabilities
-------------------
Parameter:    DupCap_A
Values:       Half, Full, Both
Default:      Both

If auto-negotiation is set to "On", all three values are possible. 
If it is set to "Off", only "Full" and "Half" are allowed.
This parameter is usefull if your link partner does not support all
possible combinations.


Flow Control
------------
Parameter:    FlowCtrl_A
Values:       SymOrRem, None
Default:      SymOrRem

This parameter can be used to set the flow control capabilities the 
port reports during auto-negotiation. It can be set for each port 
individually.
Possible modes:
   -- SymOrRem = SymetricOrRemote: both or only remote partner 
                  are allowed to send PAUSE frames
   -- None     = no link partner is allowed to send PAUSE frames
  
NOTE: This parameter is ignored if auto-negotiation is set to "Off".


5 LARGE FRAME SUPPORT
=======================

The driver supports large frames (also called jumbo frames). Using large 
frames can result in an improved throughput if transferring large amounts 
of data.
To enable large frames, set the MTU (maximum transfer unit) of the 
interface to the desired value (up to 9000), execute the following 
command:
      ifconfig eth0 mtu 9000
This will only work if you have two adapters connected back-to-back
or if you use a switch that supports large frames. When using a switch, 
it should be configured to allow large frames and auto-negotiation should  
be set to OFF. The setting must be configured on all adapters that can be 
reached by the large frames. If one adapter is not set to receive large 
frames, it will simply drop them.

You can switch back to the standard ethernet frame size by executing the 
following command:
      ifconfig eth0 mtu 1500

To permanently configure this setting, add a script with the 'ifconfig' 
line to the system startup sequence (named something like "S99sk98lin" 
in /etc/rc.d/rc2.d).
***


6 VLAN AND LINK AGGREGATION SUPPORT (IEEE 802.1, 802.1Q, 802.3AD)
===================================================================

The DGE-530T Linux drivers are able to support VLAN and Link Aggregation
according to IEEE standards 802.1, 802.1q, and 802.3ad. These features are
only available after installation of open source modules available on the 
Internet:
For VLAN go to: http://scry.wanfear.com/~greear/vlan.html
For Link Aggregation go to: http://www.st.rim.or.jp/~yumo

NOTE: D-Link Corporation does not offer any support for these open source 
      modules and does not take the responsibility for any kind of 
      failures or problems arising in connection with these modules.


7 TROUBLESHOOTING
===================

If any problems occur during the installation process, check the 
following list:


Problem:  The DGE-530T adapter can not be found by the driver.
Solution: In /proc/pci search for the following entry:
          'Ethernet controller: PCI device 1186:4C00 (D-Link System Inc)'
          If this entry exists, the DGE-530T Gigabit Ethernet adapter has 
          been found by the system and should be operational.
          If this entry does not exist or if the file '/proc/pci' is not 
          found, there may be a hardware problem or the PCI support may 
          not be enabled in your kernel.
          The adapter can be checked using the diagnostics program which 
          is available on the D-Link web site:
          www.dlink.com
          
          Some COMPAQ machines have problems dealing with PCI under Linux.
          Linux. This problem is described in the 'PCI howto' document
          (included in some distributions or available from the
          web, e.g. at 'www.linux.org'). 


Problem:  Programs such as 'ifconfig' or 'route' can not be found or the 
          error message 'Operation not permitted' is displayed.
Reason:   You are not logged in as user 'root'.
Solution: Logout and login as 'root' or change to 'root' via 'su'.


Problem:  Upon use of the command 'ping <address>' the message
          "ping: sendto: Network is unreachable" is displayed.
Reason:   Your route is not set correctly.
Solution: If you are using RedHat, you probably forgot to set up the 
          route in the 'network configuration'.
          Check the existing routes with the 'route' command and check 
          if an entry for 'eth0' exists, and if so, if it is set correctly.


Problem:  The driver can be started, the adapter is connected to the 
          network, but you cannot receive or transmit any packets; 
          e.g. 'ping' does not work.
Reason:   There is an incorrect route in your routing table.
Solution: Check the routing table with the command 'route' and read the 
          manual help pages dealing with routes (enter 'man route').


Problem:  Your computer should act as a router between multiple 
          IP subnetworks (using multiple adapters), but computers in 
          other subnetworks cannot be reached.
Reason:   Either the router's kernel is not configured for IP forwarding 
          or the routing table and gateway configuration of at least one 
          computer is not working.


Problem:  Upon driver start, the following error message is displayed:
          "eth0: -- ERROR --
          Class: internal Software error
          Nr:    0xcc
          Msg:   SkGeInitPort() cannot init running ports"
Reason:   You are using a driver compiled for single processor machines 
          on a multiprocessor machine with SMP (Symetric MultiProcessor) 
          kernel.
Solution: Configure your kernel appropriately and recompile the kernel or
          the modules.



If your problem is not listed here, please contact D-Link's technical
support for help.
When contacting our technical support, please ensure that the following 
information is available:
- System Manufacturer and Model
- Boards in your system
- Distribution
- Kernel version
- Driver version
***

8 HISTORY
===========

VERSION 6.10
New Features:
- none
Problems fixed:
- Fix: Race condition with padded frames
Known limitations:
- None

VERSION 6.09
New Features:
- none
Problems fixed:
- Fix: Disabled HW Error IRQ on 32-bit Yukon if sensor IRQ occurs
- Fix: Delay race condition with some server machines
Known limitations:
- None

VERSION 6.08
New Features:
- Add: Dynamic Interrupt moderation
- Add: Blink mode verification
- Fix: CSUM changes
Problems fixed:
- none
Known limitations:
- None

VERSION 6.04 - 6.07
New Features:
- Common modules update
Problems fixed:
- none
Known limitations:
- None

VERSION 6.03
New Features:
- Common modules update
Problems fixed:
- Remove useless init_module/cleanup_module forward declarations
Known limitations:
- None

VERSION 6.02 (In-Kernel version)
New Features:
- Common modules update
Problems fixed:
- Boot message cleanup
Known limitations:
- None
***End of Readme File***



