基於 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 中,NIC 驅動程式最常配置為可載入模組。 構建單核心的方法已經過時。 驅動程式可以作為單核心的一部分進行編譯,但不強烈建議這樣做。 本節的其餘部分假定驅動程式構建為可載入模組。 在 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 等形式的名稱。 要使 NIC 進入可操作狀態,有必要發出以下命令
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(如果 NIC 是唯一的乙太網介面卡),如果是其他乙太網介面卡,則為 eth1,依此類推。 有關可選引數列表,請參閱上一節中的表格。
找到網路配置檔案,通常是 /etc/sysconfig/network-scripts 目錄,並建立一個包含網路資訊的配置檔案 ifcfg-ethx。
請注意,對於大多數 Linux 發行版,包括 Red Hat,都提供了一個帶有圖形使用者介面的配置實用程式來執行上述步驟 2 和 3。
引數說明¶
您可以安裝此驅動程式,而無需任何其他引數。 但是,如果您要使用大量功能,則必須設定額外的引數。 以下是 Linux 裝置驅動程式支援的命令列引數列表。
mtu=packet_size |
指定最大資料包大小。 預設為 1500。 |
||||||||||||||||||||||||||
media=media_type |
指定 NIC 執行的介質型別。 autosense 自動檢測活動介質。
預設情況下,NIC 以自動檢測模式執行。 1000mbps_fd 和 1000mbps_hd 型別僅適用於光纖介面卡。 |
||||||||||||||||||||||||||
vlan=n |
指定 VLAN ID。 如果 vlan=0,則停用虛擬區域網 (VLAN) 功能。 |
||||||||||||||||||||||||||
jumbo=[0|1] |
指定巨型幀支援。 如果 jumbo=1,則 NIC 接受巨型幀。 預設情況下,此功能已停用。 巨型幀通常會提高千兆位的效能。 此功能需要巨型幀相容的遠端主機。 |
||||||||||||||||||||||||||
rx_coalesce=m |
每個中斷處理的 rx 幀數。 |
||||||||||||||||||||||||||
rx_timeout=n |
Rx DMA 等待中斷的時間。 如果設定 rx_coalesce > 0,則硬體僅為 m 幀宣告中斷。 硬體不會宣告 rx 中斷,直到收到 m 幀或達到 n * 640 納秒的超時時間。 設定適當的 rx_coalesce 和 rx_timeout 可以減少擁塞崩潰和過載,這一直是高速網路的瓶頸。 例如,rx_coalesce=10 rx_timeout=800。 也就是說,硬體僅為收到的 10 幀或 512 微秒的超時宣告 1 箇中斷。 |
||||||||||||||||||||||||||
tx_coalesce=n |
每個中斷處理的 tx 幀數。 設定 n > 1 可以減少中斷擁塞,通常會降低高速網絡卡的效能。 預設為 16。 |
||||||||||||||||||||||||||
tx_flow=[1|0] |
指定 Tx 流量控制。 如果 tx_flow=0,則停用 Tx 流量控制,否則驅動程式會自動檢測。 |
||||||||||||||||||||||||||
rx_flow=[1|0] |
指定 Rx 流量控制。 如果 rx_flow=0,則啟用 Rx 流量控制,否則驅動程式會自動檢測。 |
配置檔案示例¶
這是一個簡單的配置檔案示例
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 中配置的預設 include 目錄。 對於某些發行版,/usr/src/include/linux 和 /usr/src/include/asm 中都有標頭檔案的副本,您可以將 Makefile 中的 INCLUDEDIR 更改為 /usr/include,而無需安裝核心原始碼。
請注意,RH 7.0 在 /usr/include 中沒有提供正確的標頭檔案,包括這些檔案將導致錯誤的驅動程式版本。