1 (C)Copyright 1999-2000 SysKonnect.
2 ===========================================================================
3
4 sk98lin.txt created 12-Sept-2000
5
6 Readme File for sk98lin.o v3.05
7 SK-NET Gigabit Ethernet Adapter SK-98xx Driver for Linux
8
9 This file contains
10 (1) OVERVIEW
11 (2) REQUIRED FILES
12 (3) INSTALLATION
13 (4) INCLUSION OF THE ADAPTER AT SYSTEM START
14 (5) DRIVER PARAMETERS
15 (6) LARGE FRAME SUPPORT
16 (7) TROUBLESHOOTING
17 (8) HISTORY
18
19 ===========================================================================
20
21
22
23 (1) OVERVIEW
24 ============
25
26 The sk98lin driver supports the SysKonnect SK-NET Gigabit Ethernet
27 Adapter SK-98xx family on Linux 2.2.x and above.
28 It has been tested with Linux on Intel/x86, ALPHA and UltraSPARC machines.
29 From v3.02 on, the driver is integrated in the linux kernel source.
30 ***
31
32
33 (2) REQUIRED FILES
34 ==================
35
36 The linux kernel source.
37 No additional files required.
38 ***
39
40
41 (3) INSTALLATION
42 ================
43
44 The following steps describe the actions that are required to install
45 the driver and to start it manually. These steps should be carried
46 out for the initial driver setup. Once confirmed to be ok, they can
47 be included in the system start which is described in the next
48 chapter.
49
50 NOTE 1: You must have 'root' access to the system to perform
51 the following tasks.
52 NOTE 2: IMPORTANT: In case of problems, please read the section
53 "Troubleshooting" below.
54
55 1) The driver can either be integrated into the kernel or it can
56 be compiled as a module.
57 Select the appropriate option during the kernel configuration.
58 For use as a module, your kernel must have
59 'loadable module support' enabled.
60 For automatic driver start, you also need 'Kernel module loader'
61 enabled.
62 Configure those options, build and install the new kernel. If you
63 choose to use the driver as a module, do "make modules" and
64 "make modules_install".
65 Reboot your system.
66
67 4) Load the module manually by entering:
68 insmod sk98lin.o
69 If the SysKonnect SK-98xx adapter is installed in your
70 computer and you have a /proc filesystem, running the command
71 'more /proc/net/dev' should produce an output containing a
72 line with the following format:
73 eth0: 0 0 ...
74 which means that your adapter has been found and initialized.
75
76 NOTE 1: If you have more than one SysKonnect SK-98xx adapter, the
77 adapters will be listed as 'eth0', 'eth1', 'eth2', etc.
78 For each adapter, repeat the steps 5) and 6).
79 NOTE 2: If you have other Ethernet adapters installed,
80 your SysKonnect SK-98xx adapter can be mapped to 'eth1' or
81 'eth2' ...
82 The module installation message (in system logfile or
83 on console, depending on /etc/syslog.conf) prints a line
84 for each adapter that is found, containing the
85 corresponding 'ethX'.
86
87 5) Select an IP address and assign it to the respective adapter by
88 entering:
89 ifconfig eth0 <ip-address>
90 This causes the adapter to connect to the ethernet. The solitary
91 yellow LED at the adapter is now active, the link status LED of
92 the primary port is on and the link status LED of the secondary
93 port (on dual port adapters) is blinking (only if the laters are
94 connected to a switch or hub).
95 You will also get a status message on the console saying
96 "ethX: network connection up using port Y" and indicating
97 the selected connection parameters.
98
99 NOTE: If you are in doubt about IP addresses, ask your network
100 administrator for assistance.
101
102 6) Your adapter should now be fully operational.
103 Use 'ping <otherstation>' to verify the connection to other
104 computers on your network.
105 By entering 'ifconfig', you can check the number of packets sent
106 and received by your adapter and additional some other information
107 regarding the adapter configuration.
108
109 7) The driver module can be stopped and unloaded using the following
110 commands:
111 ifconfig eth0 down
112 rmmod sk98lin
113 ***
114
115
116 (4) INCLUSION OF THE ADAPTER AT SYSTEM START
117 ============================================
118
119 Since a large number of different Linux distributions are
120 available, we are unable to describe a general installation procedure
121 for the driver module.
122 Because the driver is now integrated in the kernel, installation should
123 be easy, using the standard mechanism of your distribution.
124 Refer to the distribution's manual for installation of ethernet adapters.
125 ***
126
127
128 (5) DRIVER PARAMETERS
129 =====================
130
131 Parameters can be set at the command line while loading the
132 module with 'insmod'. The configuration tools of some distributions
133 can also give parameters to the driver module.
134 If you use the kernel module loader, you can set driver parameters
135 in the file /etc/modules.conf (or old name: /etc/conf.modules).
136 Insert a line of the form:
137
138 options sk98lin ...
139
140 For "...", use the same syntax as described below for the command
141 line parameters of insmod.
142 You either have to reboot your computer or unload and reload
143 the driver to activate the new parameters.
144 The syntax of the driver parameters is:
145
146 insmod sk98lin parameter=value1[,value2[,value3...]]
147
148 value1 is for the first adapter, value2 for the second one etc.
149 All Parameters are case sensitive, so write them exactly as
150 shown below.
151
152 Sample: Suppose you have two adapters. You want to set AutoNegotiation
153 on Port A of the first adapter to ON and on Port A of the
154 second adapter to OFF.
155 You also want to set DuplexCapabilities on Port A of the first
156 adapter to FULL and on Port A of the second adapter to HALF.
157 You must enter:
158
159 insmod sk98lin.o AutoNeg_A=On,Off DupCap_A=Full,Half
160
161 NOTE: The number of adapters that can be configured this way is
162 limited in the driver (file skge.c, constant SK_MAX_CARD_PARAM).
163 The current limit is 16. If you happen to install
164 more adapters, adjust this and recompile.
165
166
167 5.1 Per-Port Parameters
168 -----------------------
169 Those setting are available for each port on the adapter.
170 In the following description, '?' stands for the port for
171 which you set the parameter (A or B).
172
173 - Auto Negotiation
174 Parameter: AutoNeg_?
175 Values: On, Off, Sense
176 Default: Sense
177
178 The "Sense"-mode finds out automatically whether the link
179 partner supports autonegotiation or not.
180
181 - Duplex Capabilities
182 Parameter: DupCap_?
183 Values: Half, Full, Both
184 Default: Both
185
186 This parameters is relevant only if autonegotiation for
187 this port is not "Sense". If autonegotiation is "On", all
188 three values are possible. If it is "Off", only "Full" and
189 "Half" are allowed.
190 It is useful if your link partner does not support all
191 possible combinations.
192
193 - Flow Control
194 Parameter: FlowCtrl_?
195 Values: Sym, SymOrRem, LocSend, None
196 Default: SymOrRem
197
198 This parameter can be used to set the flow control capabilities
199 that the port reports during autonegotiation.
200 The meaning of the different modes is:
201 -- Sym = Symetric: both link partners are allowed to send PAUSE frames
202 -- SymOrRem = SymetricOrRemote: both or only remote partner are allowed
203 to send PAUSE frames
204 -- LocSend = LocalSend: only local link partner is allowed to send
205 PAUSE frames
206 -- None: no link partner is allowed to send PAUSE frames
207
208 NOTE: This parameter is ignored if autonegotiation is set to "Off".
209
210 - Role in Master-Slave-Negotiation (1000Base-T only).
211 Parameter: Role_?
212 Values: Auto, Master, Slave
213 Default: Auto
214
215 This parameter is only valid for the SK-9821 and SK-9822 adapters.
216 For two 1000Base-T ports to communicate, one must take the role as
217 master (providing timing information), while the other must be slave.
218 Normally, this is negotiated between the two ports during link
219 establishment. If this should ever fail, you can force a port to a
220 specific setting with this parameter.
221
222
223 5.2 Per-Adapter Parameters
224 --------------------------
225
226 - Preferred Port
227 Parameter: PrefPort
228 Values: A, B
229 Default: A
230
231 This is used to force the preferred port to A or B (on two-port NICs).
232 The preferred port is the one that is used if both are detected as
233 fully functional.
234
235 - RLMT (Redundant Link Management Technology) Mode
236 Parameter: RlmtMode
237 Values: CheckLinkState,CheckLocalPort, CheckSeg
238 Default: CheckLinkState
239
240 RLMT (the driver part that decides which port to use) knows three
241 ways of checking if a port is available for use:
242
243 -- CheckLinkState = Check link state only: RLMT uses the link state
244 reported by the adapter hardware for each individual port to determine
245 whether a port can be used for all network traffic or not.
246
247 -- CheckLocalPort - Check other port on adapter: RLMT sends test frames
248 from each port to each other port and checks if they are received by
249 the other port, respectively. Thus, the ports must be connected to the
250 network such that LLC test frames can be exchanged between them
251 (i.e. there must be no routers between the ports).
252
253 -- CheckSeg - Check other port and segmentation: RLMT checks the other port
254 and in addition requests information from the Gigabit Ethernet
255 switch next to each port to see if the network is segmented between
256 the ports. Thus, this mode is only to be used if you have Gigabit
257 Ethernet switches installed in your network that have been configured
258 to use the Spanning Tree protocol.
259
260 NOTE: The modes CheckLocalPort and CheckSeg are meant to operate in
261 configurations where a network path between the ports on one
262 adapter exists. Especially, they are not designed to work where
263 adapters are connected back-to-back.
264 ***
265
266
267 (6) LARGE FRAME SUPPORT
268 =======================
269
270 Large frames (also called jumbo frames) are now supported by the
271 driver. This can result in a greatly improved throughput if
272 transferring large amounts of data.
273 To enable large frames, set the MTU (maximum transfer unit)
274 of the interface to the value you wish (up to 9000). The command
275 for this is:
276 ifconfig eth0 mtu 9000
277 This will only work if you have two adapters connected back-to-back
278 or if you use a switch that supports large frames. When using a
279 switch, it should be configured to allow large frames, without
280 autonegotiating for them.
281 The setting must be done on all adapters that can be reached by
282 the large frames. If one adapter is not set to receive large frames,
283 it will simply drop them.
284
285 You can switch back to the standard ethernet frame size with:
286 ifconfig eth0 mtu 1500
287
288 To make this setting persistent, add a script with the 'ifconfig'
289 line to the system startup sequence (named something like "S99sk98lin"
290 in /etc/rc.d/rc2.d).
291 ***
292
293
294 (7) TROUBLESHOOTING
295 ===================
296
297 If you run into problems during installation, check those items:
298
299 Problem: The SK-98xx adapter can not be found by the driver.
300 Reason: Look in /proc/pci for the following entry:
301 'Ethernet controller: SysKonnect SK-98xx ...'
302 If this entry exists, then the SK-98xx adapter has been
303 found by the system and should be able to be used.
304 If this entry does not exist or if the file '/proc/pci'
305 is not there, then you may have a hardware problem or PCI
306 support may not be enabled in your kernel.
307 The adapter can be checked using the diagnostic program
308 which is available from the SysKonnect web site:
309 www.syskonnect.de
310 Some COMPAQ machines have a problem with PCI under
311 Linux. This is described in the 'PCI howto' document
312 (included in some distributions or available from the
313 www, e.g. at 'www.linux.org'). This might be fixed in the
314 2.2.x kernel series (I've not tested it).
315
316 Problem: Programs such as 'ifconfig' or 'route' can not be found or
317 you get an error message 'Operation not permitted'.
318 Reason: You are not logged in as user 'root'. Logout and
319 login as root or change to root via 'su'.
320
321 Problem: Using the command 'ping <address>', you get a message
322 "ping: sendto: Network is unreachable".
323 Reason: Your route is not set up correct.
324 If you are using RedHat, you probably forgot
325 to set up the route in 'network configuration'.
326 Check the existing routes with the 'route' command
327 and check if there is an entry for 'eth0' and if
328 it is correct.
329
330 Problem: The driver can be started, the adapter is connected
331 to the network, but you can not receive or transmit
332 any packet; e.g. 'ping' does not work.
333 Reason: You have an incorrect route in your routing table.
334 Check the routing table with the command 'route' and
335 read the manual pages about route ('man route').
336 NOTE: Although the 2.2.x kernel versions generate the routing
337 entry automatically, you may have problems of this kind
338 here, too. We found a case where the driver started correct
339 at system boot, but after removing and reloading the driver,
340 the route of the adapter's network pointed to the 'dummy0'
341 device and had to be corrected manually.
342
343 Problem: You want to use your computer as a router between
344 multiple IP subnetworks (using multiple adapters), but
345 you can not reach computers in other subnetworks.
346 Reason: Either the router's kernel is not configured for IP
347 forwarding or there is a problem with the routing table
348 and gateway configuration in at least one of the
349 computers.
350
351 Problem: At the start of the driver, you get an error message:
352 "eth0: -- ERROR --
353 Class: internal Software error
354 Nr: 0xcc
355 Msg: SkGeInitPort() cannot init running ports"
356 Reason: You are using a driver compiled for single processor
357 machines on an multiprocessor machine with SMP (Symetric
358 MultiProcessor) kernel.
359 Configure your kernel appropriate and recompile the kernel or
360 the modules.
361
362 If your problem is not listed here, please contact SysKonnect's technical
363 support for help (linux@syskonnect.de).
364 When contacting our technical support, please ensure that the
365 following information is available:
366 - System Manufacturer and Model
367 - Boards in your system
368 - Distribution
369 - Kernel version
370 ***
371
372
373 (8) HISTORY
374 ===========
375
376 VERSION 3.05 (In-Kernel version)
377 Problems fixed:
378 - Failed for multiple adapters in kernel 2.4.0
379 New features:
380 - New versions of several common modules
381
382 VERSION 3.04 (In-Kernel version)
383 Problems fixed:
384 - Driver start failed on UltraSPARC
385 - Rx checksum calculation for big endian machines did not work
386 - Jumbo frames were counted as input-errors in netstat
387
388 VERSION 3.03 (Standalone version)
389 Problems fixed:
390 - Compilation did not find script "printver.sh" if "." not in PATH
391 Known limitations:
392 - None
393
394 VERSION 3.02 (In-Kernel version)
395 Problems fixed:
396 - None
397 New Features:
398 - Integration in Linux kernel source (2.2.14 and 2.3.29)
399 Known limitations:
400 - None
401
402 VERSION 3.01
403 Problems fixed:
404 - None
405 New Features:
406 - Full source release
407 Known limitations:
408 - None
409
410 VERSION 3.00
411 Problems fixed:
412 - None
413 New Features:
414 - Support for 1000Base-T adapters (SK-9821 and SK-9822)
415 Known limitations:
416 - None
417
418 VERSION 1.07
419 Problems fixed:
420 - RlmtMode parameter value strings were wrong (#10437)
421 - Driver sent too many RLMT frames (#10439)
422 - Driver did not recognize network segmentation (#10440)
423 - RLMT switched too often on segmented network (#10441)
424 Known limitations:
425 - None
426
427 VERSION 1.06
428 Problems fixed:
429 - System panic'ed after some time when running with
430 RlmtMode=CheckOtherLink or RlmtMode=CheckSeg (#10421)
431 Panic message: "Kernel panic: skput: over ... dev: eth0"
432 - Driver did not switch back to default port when connected
433 back-to-back (#10422).
434 Changes:
435 - RlmtMode parameter names have changed
436 New features:
437 - There is now a version for ALPHA processors
438 Known limitations:
439 - None
440
441 VERSION 1.05
442 Problems fixed:
443 - Driver failed to load on kernels with version information
444 for module symbols enabled
445 Known limitations:
446 - None
447
448 VERSION 1.04
449 Problems fixed:
450 - Large frame support does work now (no autonegotiation
451 support for large frames, just manually selectable)
452 New Features:
453 - Receive checksumming in hardware
454 - Performance optimizations
455 Some numbers (on two PII-400 machines, back-to-back):
456 netpipe: 300 MBit/sec, with large frames: 470 MBit/sec
457 ttcp: 38 MByte/sec, with large frames: 60 MByte/sec
458 ttcp (UDP send): 66 MByte/sec, with large frames: 106 MByte/sec
459 Known limitations:
460 - None
461
462 VERSION 1.03
463 Problems fixed:
464 - Unloading with "rmmod" caused segmentation fault (#10415)
465 - The link LED flickered from time to time, if no link was
466 established (#10402)
467 - Installation problems with RedHat 6.0 (#10409)
468 New Features:
469 - Connection state ouput at "network connection up"
470 Known limitations:
471 - None
472
473 VERSION 1.02
474 Problems fixed:
475 - Failed with multiple adapters
476 - Failed with Single Port adapters
477 - Startup string was only displayed if adapter found
478 - No link could be established on certain switches when the switches were
479 rebooted. (#10377)
480 Known limitations:
481 - Segmentation fault at "rmmod" with kernel 2.2.3 on some machines
482
483 VERSION 1.01
484 Problems fixed:
485 - Sensor status was not set back to 'ok' after 'warning/error'. (#10386)
486 Changes:
487 - improved parallelism in driver
488
489 VERSION 1.00
490 Known limitations:
491 - not tested with all kernel versions (I don't have that much time :-)
492 - only x86 version available (if you need others, ask for it)
493 - source code not completely available
494
495 ***End of Readme File***
496
497
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.