dl2k.txt
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:9k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

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