Next file: linux/Documentation/networking/tlan.txt
Previous file: linux/Documentation/networking/sis900.txt
Back to the patch index
Back to the overall index
- Lines: 481
Tue Jan 4 10:12:10 2000
- Orig file:
- Orig date:
Wed Dec 31 16:00:00 1969
diff -u --recursive --new-file v2.2.13/linux/Documentation/networking/sk98lin.txt linux/Documentation/networking/sk98lin.txt
@@ -0,0 +1,480 @@
+(C)Copyright 1999 SysKonnect.
+sk98lin.txt created 11-Nov-1999
+Readme File for sk98lin.o v3.02
+SK-NET Gigabit Ethernet Adapter SK-98xx Driver for Linux
+This file contains
+(2) REQUIRED FILES
+(4) INCLUSION OF THE ADAPTER AT SYSTEM START
+(5) DRIVER PARAMETERS
+(6) LARGE FRAME SUPPORT
+The sk98lin driver supports the SysKonnect SK-NET Gigabit Ethernet
+Adapter SK-98xx family on Linux 2.2.x.
+It has been tested with Linux on Intel/x86 and ALPHA machines.
+From v3.02 on, the driver is integrated in the linux kernel source.
+(2) REQUIRED FILES
+The linux kernel source.
+No additional files required.
+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
+NOTE 1: You must have 'root' access to the system to perform
+ the following tasks.
+NOTE 2: IMPORTANT: In case of problems, please read the section
+ "Troubleshooting" below.
+1) The driver can either be integrated into the kernel or it can
+ be compiled as a module.
+ Select the appropriate option during the kernel configuration.
+ For use as a module, your kernel must have
+ 'loadable module support' enabled.
+ For automatic driver start, you also need 'Kernel module loader'
+ Configure those options, build and install the new kernel. If you
+ choose to use the driver as a module, do "make modules" and
+ "make modules_install".
+ Reboot your system.
+4) Load the module manually by entering:
+ insmod sk98lin.o
+ If the SysKonnect SK-98xx 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 1: If you have more than one SysKonnect SK-98xx adapter, the
+ adapters will be listed as 'eth0', 'eth1', 'eth2', etc.
+ For each adapter, repeat the steps 5) and 6).
+ NOTE 2: If you have other Ethernet adapters installed,
+ your SysKonnect SK-98xx 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'.
+5) Select an IP address and assign it to the respective adapter by
+ ifconfig eth0 <ip-address>
+ 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).
+ You will also get a status message on the console saying
+ "ethX: network connection up using port Y" and indicating
+ the selected connection parameters.
+ NOTE: If you are in doubt about IP addresses, ask your network
+ administrator for assistance.
+6) Your adapter should now be fully operational.
+ Use 'ping <otherstation>' to verify the connection to other
+ computers on your network.
+ By entering 'ifconfig', you can check the number of packets sent
+ and received by your adapter and additional some other information
+ regarding the adapter configuration.
+7) The driver module can be stopped and unloaded using the following
+ ifconfig eth0 down
+ rmmod sk98lin
+(4) 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.
+Because the driver is now integrated in the kernel, installation should
+be easy, using the standard mechanism of your distribution.
+Refer to the distribution's manual for installation of ethernet adapters.
+(5) 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 sk98lin ...
+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 sk98lin 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
+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 sk98lin.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 (file skge.c, constant SK_MAX_CARD_PARAM).
+ The current limit is 16. If you happen to install
+ more adapters, adjust this and recompile.
+5.1 Per-Port Parameters
+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).
+- Auto Negotiation
+ Parameter: AutoNeg_?
+ Values: On, Off, Sense
+ Default: Sense
+ The "Sense"-mode finds out automatically whether the link
+ partner supports autonegotiation or not.
+- Duplex Capabilities
+ Parameter: DupCap_?
+ Values: Half, Full, Both
+ Default: 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.
+- Flow Control
+ Parameter: FlowCtrl_?
+ Values: Sym, SymOrRem, LocSend, None
+ Default: SymOrRem
+ 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".
+- Role in Master-Slave-Negotiation (1000Base-T only).
+ Parameter: Role_?
+ Values: Auto, Master, Slave
+ Default: Auto
+ This parameter is only valid for the SK-9821 and SK-9822 adapters.
+ For two 1000Base-T ports to communicate, one must take the role as
+ master (providing timing information), while the other must be slave.
+ Normally, this is negotiated between the two ports during link
+ establishment. If this should ever fail, you can force a port to a
+ specific setting with this parameter.
+5.2 Per-Adapter Parameters
+- Preferred Port
+ Parameter: PrefPort
+ Values: A, B
+ Default: A
+ 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
+ Parameter: RlmtMode
+ 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
+ (i.e. there must be no routers between the ports).
+-- CheckSeg - Check other port and segmentation: RLMT checks the other port
+ and in addition requests information from the Gigabit Ethernet
+ switch next to each port to see if the network is segmented between
+ the ports. Thus, this mode is only to be used if you have Gigabit
+ Ethernet switches installed in your network that have been configured
+ to use the Spanning Tree protocol.
+ NOTE: The modes CheckLocalPort and CheckSeg are meant to operate in
+ configurations where a network path between the ports on one
+ adapter exists. Especially, they are not designed to work where
+ adapters are connected back-to-back.
+(6) LARGE FRAME SUPPORT
+Large frames (also called jumbo frames) are now supported by the
+driver. This can result in a greatly improved throughput if
+transfering large amounts of data.
+To enable large frames, set the MTU (maximum transfer unit)
+of the interface to the value you wish (up to 9000). The command
+for this is:
+ 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, without
+autonegotiating for them.
+The setting must be done 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.
+NOTE: If you look at the statistics (with netstat) in large frame
+ mode while there is traffic on the net, you will see the
+ RX error counter go up. This is because the adapter hardware
+ counts received large frames as errors, although they are
+ received correctly. So ignore this counter in that case.
+You can switch back to the standard ethernet frame size with:
+ ifconfig eth0 mtu 1500
+If you run into problems during installation, check those items:
+Problem: The SK-98xx adapter can not be found by the driver.
+Reason: Look in /proc/pci for the following entry:
+ 'Ethernet controller: SysKonnect SK-98xx ...'
+ If this entry exists, then the SK-98xx adapter has been
+ found by the system and should be able to be used.
+ If this entry does not exist or if the file '/proc/pci'
+ is not there, then you may have a hardware problem or PCI
+ support may not be enabled in your kernel.
+ The adapter can be checked using the diagnostic program
+ which is available from the SysKonnect web site:
+ Some COMPAQ machines have a problem with PCI under
+ Linux. This is described in the 'PCI howto' document
+ (included in some distributions or available from the
+ www, e.g. at 'www.linux.org'). This might be fixed in the
+ 2.2.x kernel series (I've not tested it).
+Problem: Programs such as 'ifconfig' or 'route' can not be found or
+ you get an error message 'Operation not permitted'.
+Reason: You are not logged in as user 'root'. Logout and
+ login as root or change to root via 'su'.
+Problem: Using the command 'ping <address>', you get a message
+ "ping: sendto: Network is unreachable".
+Reason: Your route is not set up correct.
+ If you are using RedHat, you probably forgot
+ to set up the route in 'network configuration'.
+ Check the existing routes with the 'route' command
+ and check if there is an entry for 'eth0' and if
+ it is correct.
+Problem: The driver can be started, the adapter is connected
+ to the network, but you can not receive or transmit
+ any packet; e.g. 'ping' does not work.
+Reason: You have an incorrect route in your routing table.
+ Check the routing table with the command 'route' and
+ read the manual pages about route ('man route').
+NOTE: Although the 2.2.x kernel versions generate the routing
+ entry automatically, you may have problems of this kind
+ here, too. We found a case where the driver started correct
+ at system boot, but after removing and reloading the driver,
+ the route of the adapter's network pointed to the 'dummy0'
+ device and had to be corrected manually.
+Problem: You want to use your computer as a router between
+ multiple IP subnetworks (using multiple adapters), but
+ you can not reach computers in other subnetworks.
+Reason: Either the router's kernel is not configured for IP
+ forwarding or there is a problem with the routing table
+ and gateway configuration in at least one of the
+Problem: At the start of the driver, you get an error message:
+ "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 an multiprocessor machine with SMP (Symetric
+ MultiProcessor) kernel.
+ Configure your kernel appropriate and recompile the kernel or
+ the modules.
+If your problem is not listed here, please contact SysKonnect's technical
+support for help (email@example.com).
+When contacting our technical support, please ensure that the
+following information is available:
+- System Manufacturer and Model
+- Boards in your system
+- Kernel version
+- Integration in linux kernel source.
+- Full source release
+- Support for 1000Base-T adapters (SK-9821 and SK-9822)
+- RlmtMode parameter value strings were wrong (#10437)
+- Driver sent too many RLMT frames (#10439)
+- Driver did not recognize network segmentation (#10440)
+- RLMT switched too often on segmented network (#10441)
+- System panic'ed after some time when running with
+ RlmtMode=CheckOtherLink or RlmtMode=CheckSeg (#10421)
+ Panic message: "Kernel panic: skput: over ... dev: eth0"
+- Driver did not switch back to default port when connected
+ back-to-back (#10422).
+- RlmtMode parameter names have changed
+- There is now a version for ALPHA processors
+- Driver failed to load on kernels with version information
+ for module symbols enabled
+- Large frame support does work now (no autonegotiation
+ support for large frames, just manually selectable)
+- Receive checksumming in hardware
+- Performance optimizations
+ Some numbers (on two PII-400 machines, back-to-back):
+ netpipe: 300 MBit/sec, with large frames: 470 MBit/sec
+ ttcp: 38 MByte/sec, with large frames: 60 MByte/sec
+ ttcp (UDP send): 66 MByte/sec, with large frames: 106 MByte/sec
+- Unloading with "rmmod" caused segmentation fault (#10415)
+- The link LED flickered from time to time, if no link was
+ established (#10402)
+- Installation problems with RedHat 6.0 (#10409)
+- Connection state ouput at "network connection up"
+- Failed with multiple adapters
+- Failed with Single Port adapters
+- Startup string was only displayed if adapter found
+- No link could be established on certain switches when the switches were
+ rebooted. (#10377)
+- Segmentation fault at "rmmod" with kernel 2.2.3 on some machines
+- Sensor status was not set back to 'ok' after 'warning/error'. (#10386)
+- improved parallelism in driver
+- not tested with all kernel versions (I don't have that much time :-)
+- only x86 version available (if you need others, ask for it)
+- source code not completely available
+***End of Readme File***
FUNET's LINUX-ADM group, firstname.lastname@example.org
TCL-scripts by Sam Shen (who was at: email@example.com)