~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

Linux Cross Reference
Linux-2.6.17/Documentation/networking/dl2k.txt

Version: ~ [ 2.6.16 ] ~ [ 2.6.17 ] ~
Architecture: ~ [ ia64 ] ~ [ i386 ] ~ [ arm ] ~ [ ppc ] ~ [ sparc64 ] ~

  1 
  2     D-Link DL2000-based Gigabit Ethernet Adapter Installation
  3     for Linux
  4     May 23, 2002
  5 
  6 Contents
  7 ========
  8  - Compatibility List
  9  - Quick Install
 10  - Compiling the Driver
 11  - Installing the Driver
 12  - Option parameter
 13  - Configuration Script Sample
 14  - Troubleshooting
 15 
 16 
 17 Compatibility List
 18 =================
 19 Adapter Support:
 20 
 21 D-Link DGE-550T Gigabit Ethernet Adapter.
 22 D-Link DGE-550SX Gigabit Ethernet Adapter.
 23 D-Link DL2000-based Gigabit Ethernet Adapter.
 24 
 25 
 26 The driver support Linux kernel 2.4.7 later. We had tested it
 27 on the environments below.
 28 
 29  . Red Hat v6.2 (update kernel to 2.4.7)
 30  . Red Hat v7.0 (update kernel to 2.4.7)
 31  . Red Hat v7.1 (kernel 2.4.7)
 32  . Red Hat v7.2 (kernel 2.4.7-10)
 33 
 34 
 35 Quick Install
 36 =============
 37 Install linux driver as following command:
 38 
 39 1. make all
 40 2. insmod dl2k.ko
 41 3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
 42                     ^^^^^^^^^^^^^^^\        ^^^^^^^^\
 43                                     IP               NETMASK
 44 Now eth0 should active, you can test it by "ping" or get more information by
 45 "ifconfig". If tested ok, continue the next step.
 46 
 47 4. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
 48 5. Add the following line to /etc/modprobe.conf:
 49         alias eth0 dl2k
 50 6. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
 51    located at /etc/sysconfig/network-scripts or create it manually.
 52    [see - Configuration Script Sample]
 53 7. Driver will automatically load and configure at next boot time.
 54 
 55 Compiling the Driver
 56 ====================
 57   In Linux, NIC drivers are most commonly configured as loadable modules.
 58 The approach of building a monolithic kernel has become obsolete. The driver
 59 can be compiled as part of a monolithic kernel, but is strongly discouraged.
 60 The remainder of this section assumes the driver is built as a loadable module.
 61 In the Linux environment, it is a good idea to rebuild the driver from the
 62 source instead of relying on a precompiled version. This approach provides
 63 better reliability since a precompiled driver might depend on libraries or
 64 kernel features that are not present in a given Linux installation.
 65 
 66 The 3 files necessary to build Linux device driver are dl2k.c, dl2k.h and
 67 Makefile. To compile, the Linux installation must include the gcc compiler,
 68 the kernel source, and the kernel headers. The Linux driver supports Linux
 69 Kernels 2.4.7. Copy the files to a directory and enter the following command
 70 to compile and link the driver:
 71 
 72 CD-ROM drive
 73 ------------
 74 
 75 [root@XXX /] mkdir cdrom
 76 [root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom
 77 [root@XXX /] cd root
 78 [root@XXX /root] mkdir dl2k
 79 [root@XXX /root] cd dl2k
 80 [root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k
 81 [root@XXX dl2k] tar xfvz dl2k.tgz
 82 [root@XXX dl2k] make all
 83 
 84 Floppy disc drive
 85 -----------------
 86 
 87 [root@XXX /] cd root
 88 [root@XXX /root] mkdir dl2k
 89 [root@XXX /root] cd dl2k
 90 [root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k
 91 [root@XXX dl2k] tar xfvz dl2k.tgz
 92 [root@XXX dl2k] make all
 93 
 94 Installing the Driver
 95 =====================
 96 
 97   Manual Installation
 98   -------------------
 99   Once the driver has been compiled, it must be loaded, enabled, and bound
100   to a protocol stack in order to establish network connectivity. To load a
101   module enter the command:
102 
103   insmod dl2k.o
104 
105   or
106 
107   insmod dl2k.o <optional parameter>    ; add parameter
108 
109   ===============================================================
110    example: insmod dl2k.o media=100mbps_hd
111    or       insmod dl2k.o media=3
112    or       insmod dl2k.o media=3,2     ; for 2 cards
113   ===============================================================
114 
115   Please reference the list of the command line parameters supported by
116   the Linux device driver below.
117 
118   The insmod command only loads the driver and gives it a name of the form
119   eth0, eth1, etc. To bring the NIC into an operational state,
120   it is necessary to issue the following command:
121 
122   ifconfig eth0 up
123 
124   Finally, to bind the driver to the active protocol (e.g., TCP/IP with
125   Linux), enter the following command:
126 
127   ifup eth0
128 
129   Note that this is meaningful only if the system can find a configuration
130   script that contains the necessary network information. A sample will be
131   given in the next paragraph.
132 
133   The commands to unload a driver are as follows:
134 
135   ifdown eth0
136   ifconfig eth0 down
137   rmmod dl2k.o
138 
139   The following are the commands to list the currently loaded modules and
140   to see the current network configuration.
141 
142   lsmod
143   ifconfig
144 
145 
146   Automated Installation
147   ----------------------
148   This section describes how to install the driver such that it is
149   automatically loaded and configured at boot time. The following description
150   is based on a Red Hat 6.0/7.0 distribution, but it can easily be ported to
151   other distributions as well.
152 
153   Red Hat v6.x/v7.x
154   -----------------
155   1. Copy dl2k.o to the network modules directory, typically
156      /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.
157   2. Locate the boot module configuration file, most commonly modprobe.conf
158      or modules.conf (for 2.4) in the /etc directory. Add the following lines:
159 
160      alias ethx dl2k
161      options dl2k <optional parameters>
162 
163      where ethx will be eth0 if the NIC is the only ethernet adapter, eth1 if
164      one other ethernet adapter is installed, etc. Refer to the table in the
165      previous section for the list of optional parameters.
166   3. Locate the network configuration scripts, normally the
167      /etc/sysconfig/network-scripts directory, and create a configuration
168      script named ifcfg-ethx that contains network information.
169   4. Note that for most Linux distributions, Red Hat included, a configuration
170      utility with a graphical user interface is provided to perform steps 2
171      and 3 above.
172 
173 
174 Parameter Description
175 =====================
176 You can install this driver without any addtional parameter. However, if you
177 are going to have extensive functions then it is necessary to set extra
178 parameter. Below is a list of the command line parameters supported by the
179 Linux device
180 driver.
181 
182 mtu=packet_size                 - Specifies the maximum packet size. default
183                                   is 1500.
184 
185 media=media_type                - Specifies the media type the NIC operates at.
186                                   autosense     Autosensing active media.
187                                   10mbps_hd     10Mbps half duplex.
188                                   10mbps_fd     10Mbps full duplex.
189                                   100mbps_hd    100Mbps half duplex.
190                                   100mbps_fd    100Mbps full duplex.
191                                   1000mbps_fd   1000Mbps full duplex.
192                                   1000mbps_hd   1000Mbps half duplex.
193                                   0             Autosensing active media.
194                                   1             10Mbps half duplex.
195                                   2             10Mbps full duplex.
196                                   3             100Mbps half duplex.
197                                   4             100Mbps full duplex.
198                                   5             1000Mbps half duplex.
199                                   6             1000Mbps full duplex.
200 
201                                   By default, the NIC operates at autosense.
202                                   1000mbps_fd and 1000mbps_hd types are only
203                                   available for fiber adapter.
204 
205 vlan=n                          - Specifies the VLAN ID. If vlan=0, the
206                                   Virtual Local Area Network (VLAN) function is
207                                   disable.
208 
209 jumbo=[0|1]                     - Specifies the jumbo frame support. If jumbo=1,
210                                   the NIC accept jumbo frames. By default, this
211                                   function is disabled.
212                                   Jumbo frame usually improve the performance
213                                   int gigabit.
214                                   This feature need jumbo frame compatible 
215                                   remote.
216                                   
217 rx_coalesce=m                   - Number of rx frame handled each interrupt.
218 rx_timeout=n                    - Rx DMA wait time for an interrupt. 
219                                   If set rx_coalesce > 0, hardware only assert 
220                                   an interrupt for m frames. Hardware won't 
221                                   assert rx interrupt until m frames received or
222                                   reach timeout of n * 640 nano seconds. 
223                                   Set proper rx_coalesce and rx_timeout can 
224                                   reduce congestion collapse and overload which
225                                   has been a bottlenect for high speed network.
226                                   
227                                   For example, rx_coalesce=10 rx_timeout=800.
228                                   that is, hardware assert only 1 interrupt 
229                                   for 10 frames received or timeout of 512 us. 
230 
231 tx_coalesce=n                   - Number of tx frame handled each interrupt.
232                                   Set n > 1 can reduce the interrupts 
233                                   congestion usually lower performance of
234                                   high speed network card. Default is 16.
235                                   
236 tx_flow=[1|0]                   - Specifies the Tx flow control. If tx_flow=0, 
237                                   the Tx flow control disable else driver
238                                   autodetect.
239 rx_flow=[1|0]                   - Specifies the Rx flow control. If rx_flow=0, 
240                                   the Rx flow control enable else driver
241                                   autodetect.
242 
243 
244 Configuration Script Sample
245 ===========================
246 Here is a sample of a simple configuration script:
247 
248 DEVICE=eth0
249 USERCTL=no
250 ONBOOT=yes
251 POOTPROTO=none
252 BROADCAST=207.200.5.255
253 NETWORK=207.200.5.0
254 NETMASK=255.255.255.0
255 IPADDR=207.200.5.2
256 
257 
258 Troubleshooting
259 ===============
260 Q1. Source files contain ^ M behind every line.
261         Make sure all files are Unix file format (no LF). Try the following
262     shell command to convert files.
263 
264         cat dl2k.c | col -b > dl2k.tmp
265         mv dl2k.tmp dl2k.c
266 
267         OR
268 
269         cat dl2k.c | tr -d "\r" > dl2k.tmp
270         mv dl2k.tmp dl2k.c
271 
272 Q2: Could not find header files (*.h) ?
273         To compile the driver, you need kernel header files. After
274     installing the kernel source, the header files are usually located in
275     /usr/src/linux/include, which is the default include directory configured
276     in Makefile. For some distributions, there is a copy of header files in
277     /usr/src/include/linux and /usr/src/include/asm, that you can change the
278     INCLUDEDIR in Makefile to /usr/include without installing kernel source.
279         Note that RH 7.0 didn't provide correct header files in /usr/include,
280     including those files will make a wrong version driver.
281 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~

This page was automatically generated by the LXR engine.
Visit the LXR main site for more information.