mirror of
				https://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson
				synced 2025-10-27 17:58:22 +00:00 
			
		
		
		
	 6c28f2c0f2
			
		
	
	
		6c28f2c0f2
		
	
	
	
	
		
			
			This patch fixes typos in various Documentation txts. This patch addresses some words starting with the letters 'B'-'C'. There are also a few grammar fixes thrown in for Randy. ;) Signed-off-by: Matt LaPlante <kernel1@cyberdogtech.com> Signed-off-by: Adrian Bunk <bunk@stusta.de>
		
			
				
	
	
		
			282 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			282 lines
		
	
	
		
			9.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
 | |
|     D-Link DL2000-based Gigabit Ethernet Adapter Installation
 | |
|     for Linux
 | |
|     May 23, 2002
 | |
| 
 | |
| Contents
 | |
| ========
 | |
|  - Compatibility List
 | |
|  - Quick Install
 | |
|  - Compiling the Driver
 | |
|  - Installing the Driver
 | |
|  - Option parameter
 | |
|  - Configuration Script Sample
 | |
|  - Troubleshooting
 | |
| 
 | |
| 
 | |
| Compatibility List
 | |
| =================
 | |
| Adapter Support:
 | |
| 
 | |
| D-Link DGE-550T Gigabit Ethernet Adapter.
 | |
| D-Link DGE-550SX Gigabit Ethernet Adapter.
 | |
| D-Link DL2000-based Gigabit Ethernet Adapter.
 | |
| 
 | |
| 
 | |
| The driver support Linux kernel 2.4.7 later. We had tested it
 | |
| on the environments below.
 | |
| 
 | |
|  . Red Hat v6.2 (update kernel to 2.4.7)
 | |
|  . Red Hat v7.0 (update kernel to 2.4.7)
 | |
|  . Red Hat v7.1 (kernel 2.4.7)
 | |
|  . Red Hat v7.2 (kernel 2.4.7-10)
 | |
| 
 | |
| 
 | |
| Quick Install
 | |
| =============
 | |
| Install linux driver as following command:
 | |
| 
 | |
| 1. make all
 | |
| 2. insmod dl2k.ko
 | |
| 3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
 | |
| 		    ^^^^^^^^^^^^^^^\	    ^^^^^^^^\
 | |
| 				    IP		     NETMASK
 | |
| Now eth0 should active, you can test it by "ping" or get more information by
 | |
| "ifconfig". If tested ok, continue the next step.
 | |
| 
 | |
| 4. cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
 | |
| 5. Add the following line to /etc/modprobe.conf:
 | |
| 	alias eth0 dl2k
 | |
| 6. Run "netconfig" or "netconf" to create configuration script ifcfg-eth0
 | |
|    located at /etc/sysconfig/network-scripts or create it manually.
 | |
|    [see - Configuration Script Sample]
 | |
| 7. Driver will automatically load and configure at next boot time.
 | |
| 
 | |
| Compiling the Driver
 | |
| ====================
 | |
|   In Linux, NIC drivers are most commonly configured as loadable modules.
 | |
| The approach of building a monolithic kernel has become obsolete. The driver
 | |
| can be compiled as part of a monolithic kernel, but is strongly discouraged.
 | |
| The remainder of this section assumes the driver is built as a loadable module.
 | |
| In the Linux environment, it is a good idea to rebuild the driver from the
 | |
| source instead of relying on a precompiled version. This approach provides
 | |
| better reliability since a precompiled driver might depend on libraries or
 | |
| kernel features that are not present in a given Linux installation.
 | |
| 
 | |
| The 3 files necessary to build Linux device driver are dl2k.c, dl2k.h and
 | |
| Makefile. To compile, the Linux installation must include the gcc compiler,
 | |
| the kernel source, and the kernel headers. The Linux driver supports Linux
 | |
| Kernels 2.4.7. Copy the files to a directory and enter the following command
 | |
| to compile and link the driver:
 | |
| 
 | |
| CD-ROM drive
 | |
| ------------
 | |
| 
 | |
| [root@XXX /] mkdir cdrom
 | |
| [root@XXX /] mount -r -t iso9660 -o conv=auto /dev/cdrom /cdrom
 | |
| [root@XXX /] cd root
 | |
| [root@XXX /root] mkdir dl2k
 | |
| [root@XXX /root] cd dl2k
 | |
| [root@XXX dl2k] cp /cdrom/linux/dl2k.tgz /root/dl2k
 | |
| [root@XXX dl2k] tar xfvz dl2k.tgz
 | |
| [root@XXX dl2k] make all
 | |
| 
 | |
| Floppy disc drive
 | |
| -----------------
 | |
| 
 | |
| [root@XXX /] cd root
 | |
| [root@XXX /root] mkdir dl2k
 | |
| [root@XXX /root] cd dl2k
 | |
| [root@XXX dl2k] mcopy a:/linux/dl2k.tgz /root/dl2k
 | |
| [root@XXX dl2k] tar xfvz dl2k.tgz
 | |
| [root@XXX dl2k] make all
 | |
| 
 | |
| Installing the Driver
 | |
| =====================
 | |
| 
 | |
|   Manual Installation
 | |
|   -------------------
 | |
|   Once the driver has been compiled, it must be loaded, enabled, and bound
 | |
|   to a protocol stack in order to establish network connectivity. To load a
 | |
|   module enter the command:
 | |
| 
 | |
|   insmod dl2k.o
 | |
| 
 | |
|   or
 | |
| 
 | |
|   insmod dl2k.o <optional parameter>	; add parameter
 | |
| 
 | |
|   ===============================================================
 | |
|    example: insmod dl2k.o media=100mbps_hd
 | |
|    or	    insmod dl2k.o media=3
 | |
|    or	    insmod dl2k.o media=3,2	; for 2 cards
 | |
|   ===============================================================
 | |
| 
 | |
|   Please reference the list of the command line parameters supported by
 | |
|   the Linux device driver below.
 | |
| 
 | |
|   The insmod command only loads the driver and gives it a name of the form
 | |
|   eth0, eth1, etc. To bring the NIC into an operational state,
 | |
|   it is necessary to issue the following command:
 | |
| 
 | |
|   ifconfig eth0 up
 | |
| 
 | |
|   Finally, to bind the driver to the active protocol (e.g., TCP/IP with
 | |
|   Linux), enter the following command:
 | |
| 
 | |
|   ifup eth0
 | |
| 
 | |
|   Note that this is meaningful only if the system can find a configuration
 | |
|   script that contains the necessary network information. A sample will be
 | |
|   given in the next paragraph.
 | |
| 
 | |
|   The commands to unload a driver are as follows:
 | |
| 
 | |
|   ifdown eth0
 | |
|   ifconfig eth0 down
 | |
|   rmmod dl2k.o
 | |
| 
 | |
|   The following are the commands to list the currently loaded modules and
 | |
|   to see the current network configuration.
 | |
| 
 | |
|   lsmod
 | |
|   ifconfig
 | |
| 
 | |
| 
 | |
|   Automated Installation
 | |
|   ----------------------
 | |
|   This section describes how to install the driver such that it is
 | |
|   automatically loaded and configured at boot time. The following description
 | |
|   is based on a Red Hat 6.0/7.0 distribution, but it can easily be ported to
 | |
|   other distributions as well.
 | |
| 
 | |
|   Red Hat v6.x/v7.x
 | |
|   -----------------
 | |
|   1. Copy dl2k.o to the network modules directory, typically
 | |
|      /lib/modules/2.x.x-xx/net or /lib/modules/2.x.x/kernel/drivers/net.
 | |
|   2. Locate the boot module configuration file, most commonly modprobe.conf
 | |
|      or modules.conf (for 2.4) in the /etc directory. Add the following lines:
 | |
| 
 | |
|      alias ethx dl2k
 | |
|      options dl2k <optional parameters>
 | |
| 
 | |
|      where ethx will be eth0 if the NIC is the only ethernet adapter, eth1 if
 | |
|      one other ethernet adapter is installed, etc. Refer to the table in the
 | |
|      previous section for the list of optional parameters.
 | |
|   3. Locate the network configuration scripts, normally the
 | |
|      /etc/sysconfig/network-scripts directory, and create a configuration
 | |
|      script named ifcfg-ethx that contains network information.
 | |
|   4. Note that for most Linux distributions, Red Hat included, a configuration
 | |
|      utility with a graphical user interface is provided to perform steps 2
 | |
|      and 3 above.
 | |
| 
 | |
| 
 | |
| Parameter Description
 | |
| =====================
 | |
| You can install this driver without any additional parameter. However, if you
 | |
| are going to have extensive functions then it is necessary to set extra
 | |
| parameter. Below is a list of the command line parameters supported by the
 | |
| Linux device
 | |
| driver.
 | |
| 
 | |
| mtu=packet_size			- Specifies the maximum packet size. default
 | |
| 				  is 1500.
 | |
| 
 | |
| media=media_type		- Specifies the media type the NIC operates at.
 | |
| 				  autosense	Autosensing active media.
 | |
| 				  10mbps_hd	10Mbps half duplex.
 | |
| 				  10mbps_fd	10Mbps full duplex.
 | |
| 				  100mbps_hd	100Mbps half duplex.
 | |
| 				  100mbps_fd	100Mbps full duplex.
 | |
| 				  1000mbps_fd	1000Mbps full duplex.
 | |
| 				  1000mbps_hd	1000Mbps half duplex.
 | |
| 				  0		Autosensing active media.
 | |
| 				  1		10Mbps half duplex.
 | |
| 				  2		10Mbps full duplex.
 | |
| 				  3		100Mbps half duplex.
 | |
| 				  4		100Mbps full duplex.
 | |
| 				  5          	1000Mbps half duplex.
 | |
| 				  6          	1000Mbps full duplex.
 | |
| 
 | |
| 				  By default, the NIC operates at autosense.
 | |
| 				  1000mbps_fd and 1000mbps_hd types are only
 | |
| 				  available for fiber adapter.
 | |
| 
 | |
| vlan=n				- Specifies the VLAN ID. If vlan=0, the
 | |
| 				  Virtual Local Area Network (VLAN) function is
 | |
| 				  disable.
 | |
| 
 | |
| jumbo=[0|1]			- Specifies the jumbo frame support. If jumbo=1,
 | |
| 				  the NIC accept jumbo frames. By default, this
 | |
| 				  function is disabled.
 | |
| 				  Jumbo frame usually improve the performance
 | |
| 				  int gigabit.
 | |
| 				  This feature need jumbo frame compatible 
 | |
| 				  remote.
 | |
| 				  
 | |
| rx_coalesce=m			- Number of rx frame handled each interrupt.
 | |
| rx_timeout=n			- Rx DMA wait time for an interrupt. 
 | |
| 				  If set rx_coalesce > 0, hardware only assert 
 | |
| 				  an interrupt for m frames. Hardware won't 
 | |
| 				  assert rx interrupt until m frames received or
 | |
| 				  reach timeout of n * 640 nano seconds. 
 | |
| 				  Set proper rx_coalesce and rx_timeout can 
 | |
| 				  reduce congestion collapse and overload which
 | |
| 				  has been a bottleneck for high speed network.
 | |
| 				  
 | |
| 				  For example, rx_coalesce=10 rx_timeout=800.
 | |
| 				  that is, hardware assert only 1 interrupt 
 | |
| 				  for 10 frames received or timeout of 512 us. 
 | |
| 
 | |
| tx_coalesce=n			- Number of tx frame handled each interrupt.
 | |
| 				  Set n > 1 can reduce the interrupts 
 | |
| 				  congestion usually lower performance of
 | |
| 				  high speed network card. Default is 16.
 | |
| 				  
 | |
| tx_flow=[1|0]			- Specifies the Tx flow control. If tx_flow=0, 
 | |
| 				  the Tx flow control disable else driver
 | |
| 				  autodetect.
 | |
| rx_flow=[1|0]			- Specifies the Rx flow control. If rx_flow=0, 
 | |
| 				  the Rx flow control enable else driver
 | |
| 				  autodetect.
 | |
| 
 | |
| 
 | |
| Configuration Script Sample
 | |
| ===========================
 | |
| Here is a sample of a simple configuration script:
 | |
| 
 | |
| DEVICE=eth0
 | |
| USERCTL=no
 | |
| ONBOOT=yes
 | |
| POOTPROTO=none
 | |
| BROADCAST=207.200.5.255
 | |
| NETWORK=207.200.5.0
 | |
| NETMASK=255.255.255.0
 | |
| IPADDR=207.200.5.2
 | |
| 
 | |
| 
 | |
| Troubleshooting
 | |
| ===============
 | |
| Q1. Source files contain ^ M behind every line.
 | |
| 	Make sure all files are Unix file format (no LF). Try the following
 | |
|     shell command to convert files.
 | |
| 
 | |
| 	cat dl2k.c | col -b > dl2k.tmp
 | |
| 	mv dl2k.tmp dl2k.c
 | |
| 
 | |
| 	OR
 | |
| 
 | |
| 	cat dl2k.c | tr -d "\r" > dl2k.tmp
 | |
| 	mv dl2k.tmp dl2k.c
 | |
| 
 | |
| Q2: Could not find header files (*.h) ?
 | |
| 	To compile the driver, you need kernel header files. After
 | |
|     installing the kernel source, the header files are usually located in
 | |
|     /usr/src/linux/include, which is the default include directory configured
 | |
|     in Makefile. For some distributions, there is a copy of header files in
 | |
|     /usr/src/include/linux and /usr/src/include/asm, that you can change the
 | |
|     INCLUDEDIR in Makefile to /usr/include without installing kernel source.
 | |
| 	Note that RH 7.0 didn't provide correct header files in /usr/include,
 | |
|     including those files will make a wrong version driver.
 | |
| 
 |