基于 D-Link DL2000 的千兆以太网适配器安装¶
2002 年 5 月 23 日
兼容性列表¶
适配器支持
D-Link DGE-550T 千兆以太网适配器。
D-Link DGE-550SX 千兆以太网适配器。
基于 D-Link DL2000 的千兆以太网适配器。
该驱动程序支持 Linux 内核 2.4.7 或更高版本。我们已经在以下环境中对其进行了测试。
。Red Hat v6.2(更新内核到 2.4.7)。Red Hat v7.0(更新内核到 2.4.7)。Red Hat v7.1(内核 2.4.7)。Red Hat v7.2(内核 2.4.7-10)
快速安装¶
使用以下命令安装 Linux 驱动程序
1. make all
2. insmod dl2k.ko
3. ifconfig eth0 up 10.xxx.xxx.xxx netmask 255.0.0.0
^^^^^^^^^^^^^^^\ ^^^^^^^^\
IP NETMASK
现在 eth0 应该处于活动状态,您可以使用“ping”进行测试,或通过“ifconfig”获取更多信息。如果测试正常,请继续下一步。
cp dl2k.ko /lib/modules/`uname -r`/kernel/drivers/net
在 /etc/modprobe.d/dl2k.conf 中添加以下行
alias eth0 dl2k
运行
depmod
更新模块索引。运行
netconfig
或netconf
创建位于 /etc/sysconfig/network-scripts 的配置文件 ifcfg-eth0,或手动创建它。[请参阅 - 配置文件示例]
驱动程序将在下次启动时自动加载和配置。
编译驱动程序¶
在 Linux 中,网卡驱动程序通常配置为可加载模块。构建单内核的方法已经过时。驱动程序可以作为单内核的一部分进行编译,但不建议这样做。本节的其余部分假设驱动程序是作为可加载模块构建的。在 Linux 环境中,最好从源代码重建驱动程序,而不是依赖预编译版本。这种方法可以提供更好的可靠性,因为预编译的驱动程序可能依赖于给定 Linux 安装中不存在的库或内核功能。
构建 Linux 设备驱动程序所需的 3 个文件是 dl2k.c、dl2k.h 和 Makefile。要进行编译,Linux 安装必须包含 gcc 编译器、内核源代码和内核头文件。Linux 驱动程序支持 Linux 内核 2.4.7。将文件复制到目录中,并输入以下命令来编译和链接驱动程序
CD-ROM 驱动器¶
[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
软盘驱动器¶
[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
安装驱动程序¶
手动安装¶
编译驱动程序后,必须加载、启用该驱动程序并将其绑定到协议栈,以建立网络连接。要加载模块,请输入命令
insmod dl2k.o或
insmod dl2k.o <optional parameter> ; add parameter
示例
insmod dl2k.o media=100mbps_hd or:: insmod dl2k.o media=3 or:: insmod dl2k.o media=3,2 ; for 2 cards
请参考下面 Linux 设备驱动程序支持的命令行参数列表。
insmod 命令仅加载驱动程序,并为其指定 eth0、eth1 等形式的名称。要使网卡进入可操作状态,必须发出以下命令
ifconfig eth0 up最后,要将驱动程序绑定到活动协议(例如,Linux 的 TCP/IP),请输入以下命令
ifup eth0请注意,只有当系统可以找到包含必要网络信息的配置文件时,此操作才有意义。下一段将给出一个示例。
卸载驱动程序的命令如下
ifdown eth0 ifconfig eth0 down rmmod dl2k.o以下是列出当前加载的模块并查看当前网络配置的命令
lsmod ifconfig
自动安装¶
本节介绍如何安装驱动程序,使其在启动时自动加载和配置。以下描述基于 Red Hat 6.0/7.0 发行版,但也可以轻松移植到其他发行版。
Red Hat v6.x/v7.x¶
将 dl2k.o 复制到网络模块目录,通常是 /lib/modules/2.x.x-xx/net 或 /lib/modules/2.x.x/kernel/drivers/net。
找到启动模块配置文件,最常见的是在 /etc/modprobe.d/ 目录中。添加以下行
alias ethx dl2k options dl2k <optional parameters>其中,如果网卡是唯一的以太网适配器,则 ethx 将为 eth0,如果安装了另一个以太网适配器,则为 eth1,依此类推。有关可选参数的列表,请参阅上一节中的表。
找到网络配置文件,通常是 /etc/sysconfig/network-scripts 目录,并创建一个名为 ifcfg-ethx 的配置文件,其中包含网络信息。
请注意,对于大多数 Linux 发行版(包括 Red Hat),都提供了一个带有图形用户界面的配置实用程序来执行上述步骤 2 和 3。
参数描述¶
您可以在不使用任何其他参数的情况下安装此驱动程序。但是,如果要使用广泛的功能,则必须设置额外的参数。以下是 Linux 设备驱动程序支持的命令行参数列表。
mtu=packet_size |
指定最大数据包大小。默认值为 1500。 |
||||||||||||||||||||||||||
media=media_type |
指定网卡工作的媒体类型。autosense 自动感应活动媒体。
默认情况下,网卡以自动感应模式运行。1000mbps_fd 和 1000mbps_hd 类型仅适用于光纤适配器。 |
||||||||||||||||||||||||||
vlan=n |
指定 VLAN ID。如果 vlan=0,则禁用虚拟局域网 (VLAN) 功能。 |
||||||||||||||||||||||||||
jumbo=[0|1] |
指定巨型帧支持。如果 jumbo=1,则网卡接受巨型帧。默认情况下,此功能被禁用。巨型帧通常可以提高千兆网卡的性能。此功能需要与巨型帧兼容的远程端。 |
||||||||||||||||||||||||||
rx_coalesce=m |
每次中断处理的接收帧数。 |
||||||||||||||||||||||||||
rx_timeout=n |
接收 DMA 等待中断的时间。如果设置 rx_coalesce > 0,则硬件仅对 m 个帧断言中断。在接收到 m 个帧或达到 n * 640 纳秒的超时之前,硬件不会断言接收中断。设置适当的 rx_coalesce 和 rx_timeout 可以减少拥塞崩溃和过载,这一直是高速网络的瓶颈。 例如,rx_coalesce=10 rx_timeout=800。也就是说,硬件仅对接收到的 10 个帧断言 1 次中断,或超时 512 微秒。 |
||||||||||||||||||||||||||
tx_coalesce=n |
每次中断处理的发送帧数。设置 n > 1 可以减少通常会降低高速网卡性能的中断拥塞。默认值为 16。 |
||||||||||||||||||||||||||
tx_flow=[1|0] |
指定发送流控制。如果 tx_flow=0,则禁用发送流控制,否则驱动程序自动检测。 |
||||||||||||||||||||||||||
rx_flow=[1|0] |
指定接收流控制。如果 rx_flow=0,则启用接收流控制,否则驱动程序自动检测。 |
配置文件示例¶
这是一个简单的配置文件的示例
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
故障排除¶
Q1. 源文件的每一行后面都包含 ^ M。
确保所有文件都是 Unix 文件格式(无 LF)。尝试以下 shell 命令来转换文件
cat dl2k.c | col -b > dl2k.tmp mv dl2k.tmp dl2k.c或
cat dl2k.c | tr -d "\r" > dl2k.tmp mv dl2k.tmp dl2k.c
Q2:找不到头文件 (*.h
)?
要编译驱动程序,您需要内核头文件。安装内核源代码后,头文件通常位于 /usr/src/linux/include 中,这是 Makefile 中配置的默认包含目录。对于某些发行版,/usr/src/include/linux 和 /usr/src/include/asm 中有头文件的副本,您可以将 Makefile 中的 INCLUDEDIR 更改为 /usr/include,而无需安装内核源代码。
请注意,RH 7.0 未在 /usr/include 中提供正确的头文件,包括这些文件将生成错误版本的驱动程序。