(C)Copyright 2001-2002 SysKonnect GmbH. All rights reserved =========================================================================== sk9dlin.txt created 22-Feb-2002 Readme File for sk9dlin v1.03 SysKonnect SK-9Dxx Gigabit Ethernet Adapter driver for LINUX This file contains (1) OVERVIEW (2) REQUIRED FILES (3) INSTALLATION (4) INCLUSION OF ADAPTER AT SYSTEM START (5) DRIVER PARAMETERS (6) LARGE FRAME SUPPORT (7) VLAN AND LINK AGGREGATION SUPPORT (IEEE 802.1, 802.1Q, 802.3AD) (8) TROUBLESHOOTING (9) HISTORY =========================================================================== (1) OVERVIEW ============ The sk9dlin driver supports the SysKonnect SK-9Dxx Gigabit Ethernet Adapter family on Linux 2.2.x and above. It has been tested with Linux on Intel/x86 machines. *** (2) REQUIRED FILES ================== The linux kernel source. No additional files required. *** (3) INSTALLATION ================ The following describes the actions required to install the driver and start it manually. These steps should be carried out during the initial driver setup. Once confirmed, the actions can be included in the system start which is described in the next chapter. NOTE 1: To perform the following tasks you need 'root' access. NOTE 2: In case of problems, read the section "Troubleshooting" below. Step 1 Compile the driver as a module: 1. Enable 'loadable module support' in the kernel. For automatic driver start, the 'Kernel module loader' must be enabled, too. 2. Configure these options, then build and install the new kernel. 3. Reboot your system. Step 2 Load the module manually by entering: modprobe sk9dlin NOTE 1: If you have more than one SysKonnect SK-9Dxx adapter, the adapters will be listed as 'eth0', 'eth1', 'eth2', etc. For each adapter, repeat the steps 3 and 4. NOTE 2: If there are other Ethernet adapters installed, your SysKonnect SK-9Dxx adapter can be mapped to 'eth1' or 'eth2' ... The module installation message (in the system logfile or on the console, depending on /etc/syslog.conf) displays a line for each adapter found, stating the corresponding 'ethX'. Step 3 Select an IP address and assign it to the desired adapter by entering: ifconfig eth0 This way, the adapter is connected to the ethernet. In addition, the following status message is displayed on the console: "ethX: SysKonnect SK-9Dxx Gigabit Ethernet". NOTE: If you are in doubt about IP addresses, ask your network administrator for assistance. Your adapter should be fully operational now. Step 4 1. Check the connection to other computers on your network by means of 'ping '. 2. View /proc/net/sk9dlin/[devicename] to receive information about the adapter configuration and statistics. Step 5 To stop and unload the driver module use the following commands: ifconfig eth0 down rmmod sk9dlin *** (4) INCLUSION OF ADAPTER AT SYSTEM START ======================================== Since a large number of different Linux distributions is available, it is impossible to describe a general installation procedure for the driver module. Instead, we provide some help for manually including it into the system startup and as an example describe the installation procedure for two distributions (SuSE and RedHat). For other distributions, we recommend to refer to the manual of the specific distribution to receive information about the network configuration. In the following section we assume that you have at least executed steps 1-3 of the previous chapter. 4.1 MANUAL INSTALLATION ----------------------- To initialize the adapter at system start, you must add the commands from the previous chapter (steps 4-6) to one of the system startup scripts. To learn more about the boot process and to locate the correct script read the man pages for 'init' and 'inittab'. You have to add the full path to the driver module in the 'insmod'-line. 4.2 PROCEDURE VALID FOR ALL DISTRIBUTIONS ----------------------------------------- 1. Copy the driver module file sk9dlin.o into your modules directory: cp sk9dlin.o /lib/modules//kernel/drivers/net/sk9dlin 2. If this directory does not exist, create it. If required, modules can be loaded automatically by a kernel daemon on Linux systems. 3. To make the new module known to this daemon, you must add one line to its configuration file (/etc/modules.conf, or old name: /etc/conf.modules): alias eth0 sk9dlin This command identifies the module (sk9dlin.o) that will be loaded as soon as accesses are made to the device eth0. 4. Continue with the section describing the distribution you use. 4.3 SuSE DISTRIBUTION --------------------- 1. Call the SuSE setup tool, 'yast'. 2. Go to: System administration Network configuration Network base configuration 3. Select the first unused line. 4. Press F5. 5. Select 'Ethernet'. 6. Press F6. 7. Enter the required addresses. 8. Activate the device by pressing F4. 9. Press F10 to save the new configuration. 10. Quit the setup tool. 11. Reboot your computer. 12. Check whether or not your adapter is working. 4.4 RedHat DISTRIBUTION (5.0) ----------------------------- In order to use the RedHat configuration tool, Xwindow must be running. NOTE: The configuration tool requires a screen mode with at least 256 colors. 1. Start X11 as root or change to the 'root' user by entering 'su' in an xterm window. 2. Call 'control-panel'. 3. Select 'network configuration'. The network configuration window is displayed. 4. Select 'Interfaces'. 5. Select 'Add'. 6. Select 'Ethernet'. 7. Press 'Ok'. 8. Insert the IP address in the appropriate field. 9. Press ENTER. The network address and the netmask will be inserted automatically. 10. Select the check box 'Activate interface at boot time'. 11. Press 'Done'. You will return to the network configuration window. 12. Press 'Activate'. 13. Select 'Routing'. 14. Select 'Add'. 15. Enter: 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. 16. Press 'Done'. 17. Press 'Save'. 18. Press 'Quit'. 19. Close the control panel. 20. Reboot your computer. 21. Check whether or not your adapter is working. If you re-enter the configuration tool later, your device will correctly be displayed as 'eth0'. *** (5) 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 also pass parameters to the driver module. If you use the kernel module loader, you can set driver parameters in the file /etc/modules.conf. 1. To set the driver parameters in this file, insert a line of the form : options sk9dlin ... 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 sk9dlin 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 AutoNegotiation 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 sk9dlin AutoNeg=On,Off DupCap=Full,Half NOTE: The number of adapters configurable this way is limited by the driver (file skgi.c, constant SK_MAX_CARD_PARAM). The current limit is 16. If you want to install more adapters adjust this number and recompile the file. Adapter Parameters ------------------ - Auto-Negotiation Parameter: AutoNeg Values: On, Off, Sense Default: Sense The "Sense"-mode automatically detects whether the link partner supports auto-negotiation or not. - Duplex Capabilities Parameter: DupCap Values: Half, Full, Both Default: Both This parameters is only relevant if auto-negotiation is not set to "Sense". If auto-negotiation is "On", all three settings can be chosen. If auto-negotiation is "Off", only "Full" and "Half" are allowed. This setting is recommended 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 the adapter reports during auto-negotiation. The meaning of the different modes is: -- Sym = Symetric: Both stations are allowed to send and receive PAUSE frames. -- SymOrRem = SymetricOrRemote: Either both stations may send and receive PAUSE frames or at least the local station agrees to receive PAUSE frames. -- LocSend = LocalSend: Only the local station is allowed to send PAUSE frames. -- None: Neither transmitting nor receiving station is allowed to send PAUSE frames. NOTE: This parameter is ignored if auto-negotiation is set to "Off". - Role (1000Base-T only) Parameter: Role Values: Auto, Master, Slave Default: Auto This parameter defines the role of the port for the physical clock generation. In order for two 1000Base-T ports to communicate, one must take the role as master (providing timing information), while the other must be slave. Usually, this is negotiated between the two ports during link establishment. If this fails, a port can be forced to a specific setting with this parameter. The 'Role' parameter are only valid for the SK-9D21 adapters. *** (6) LARGE FRAME SUPPORT ======================= Large frames (also referred to as jumbo frames) are supported by the driver. This might lead to considerably improved throughput when large amounts of data are transferred. To enable large frames, set the MTU (maximum transfer unit) of the interface to the desired value (up to 9000) by executing the command: ifconfig eth0 mtu 9000 This command does only have an effect if two adapters are connected back- to-back or if you use a switch that supports large frames. The switch should be configured to allow large frames (without auto-negotiation). The setting must be executed for all adapters which are to accept large frames. If one adapter is not set to accept large frames, it will simply drop them. You can switch back to the standard ethernet frame size by executing the command: ifconfig eth0 mtu 1500 To make this setting persistent, add a script containing an 'ifconfig' line to the system startup sequence (called "S99sk9dlin" or similar) in /etc/rc.d/rc2.d). *** (7) VLAN AND LINK AGGREGATION SUPPORT (IEEE 802.1, 802.1Q, 802.3AD) =================================================================== The SysKonnect 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: SysKonnect GmbH 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. *** (8) TROUBLESHOOTING =================== If any problems occur during the installation process, check the following items: Problem: The SK-9Dxx adapter cannot be found by the driver. Solution: Look in /proc/pci for the following entry: 'Ethernet controller: SysKonnect ..., 'Vendor id=1148. Device id=4400.' If this entry exists, the SK-9Dxx 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. Some COMPAQ machines have problems dealing with PCI under 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'). It might be fixed in the 2.2.x kernel versions. Problem: Programs such as 'ifconfig' or 'route' cannot be found or the error message 'Operation not permitted' is displayed. Solution: You are not logged in as user 'root'. Logout and login as 'root' or change to 'root' by entering 'su'. Problem: Upon use of the command 'ping
' the message "ping: sendto: Network is unreachable" is displayed. Solution: Your route is not set correctly. 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 see 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. Solution: There is an incorrect route in your routing table. Check the routing table with the command 'route' and read the help section dealing with routes (enter 'man route'). NOTE: Although the 2.2.x kernel versions generate the routing entry automatically, problems of this kind may occur here as well. We've come across a situation in which the driver started correctly at system start, but after the driver has been removed and reloaded, the route of the adapter's network pointed to the 'dummy0' device and had to be corrected manually. Problem: Your computer should act as a router between multiple IP subnetworks (using multiple adapters), but computers in other subnetworks cannot be reached. Solution: 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" Solution: You are using a driver compiled for single processor machines on a multiprocessor machine with SMP (Symetric MultiProcessor) kernel. Configure your kernel appropriately and recompile the kernel or the modules. If your problem is not listed here, please contact SysKonnect's technical support for help (support@syskonnect.de). When contacting our technical support, please ensure that the following information is available: - System Manufacturer and Model - Boards in your system - Distribution - Kernel version *** (9) HISTORY =========== VERSION 1.03 Changes: - New driver info and boot messages Problems fixed: - GCC linker problems with RedHat distribution - proc file system for 2.4.x kernel versions - VLAN Error - FlowCtrl init - Module parameters - Speed output (ProcFS) Known limitations: - only x86 version available - only as module - HalfDuplex not as Parameter VERSION 1.02 Problems fixed: - link problems with SK-9D21 - 'Role' parameter (master/slave) Changes: Shows status after link up Known limitations: - only x86 version available - proc file system works only for 2.2.x kernel versions VERSION 1.01 Known limitations: - only x86 version available - link problems with SK-9D21 - proc file system works only for 2.2.x kernel versions ***End of Readme File***