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

TOMOYO Linux Cross Reference
Linux/Documentation/networking/device_drivers/ethernet/dlink/dl2k.rst

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

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

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

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php