Linux 版 (精华区)

发信人: wugang (网络之狼·卐卐卐卐), 信区: Linux
标  题: 如何驱动 DFE-530TX RevB 网卡 
发信站: 哈工大紫丁香 (2001年01月03日23:22:18 星期三), 站内信件

发布者:Crystal 阅读次数:39  
作 者: 宝岛 


D-link 出了个新版的 DFE-530TX RevB, 多了个 WOL 的功能,不过原来的驱动程
序via-rhine不能直接支持这款网卡。下面介绍一下怎样驱动这块网卡。 

我的电脑上有两张 DFE-530TX,一旧一新,这里把设置方法分享一下。 

因为我的电脑同时插了两张卡,所以我把驱动程序分成两个,via-rhine.c 给 
RevA 的 530 用,via-rhineB.c 的给 RevB 的 530 用。 

如果你的电脑只有一张 RevB 的卡,你可以选择直接修改原始的程程序或设置, 


修改后新增的行前面多个 \\\#\\\ 以方便阅读,但请不要把 \\\#\\\ 也写进你的
文件里。 

kernel source 以 2.2.14 为蓝本。 

一.、解开 source 后先修改几个文件 

1、修改 

/usr/src/linux/drivers/net/via-rhine.c 

原始代码: 
...... 
static struct pci_id_info pci_tbl[] = { 
{ "VIA VT86C100A Rhine-II", 0x1106, 0x6100, 0xffff, 
PCI_USES_MEM|PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128, via_probe1},
 
{ "VIA VT3043 Rhine", 0x1106, 0x3043, 0xffff, 
PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128, via_probe1}, 
{0,}, /* 0 terminated list. */ 
}; 
...... 

修改成: 
...... 
static struct pci_id_info pci_tbl[] = { 
{ "VIA VT86C100A Rhine-II", 0x1106, 0x6100, 0xffff, 
PCI_USES_MEM|PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128, via_probe1},
 
{ "VIA VT3043 Rhine", 0x1106, 0x3043, 0xffff, 
PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128, via_probe1}, 
# { "VIA VT3043 Rhine RevB1", 0x1106, 0x3065, 0xffff, 
# PCI_USES_IO|PCI_USES_MEM|PCI_USES_MASTER, 128, via_probe1}, 
{0,}, /* 0 terminated list. */ 
}; 
...... 
新的文件请存成 /usr/src/linux/drivers/net/via-rhineB.c,以符合下面的设置
。 

2、 修改 

/usr/src/linux/drivers/net/Config.in 

原始程序: 
..... 
tristate \\\PCI NE2000 support\\\ CONFIG_NE2K_PCI 
tristate \\\TI ThunderLAN support\\\ CONFIG_TLAN 
tristate \\\VIA Rhine support\\\ CONFIG_VIA_RHINE 
tristate \\\SiS 900/7016 PCI Fast Ethernet Adapter support\\\ 
CONFIG_SIS900 
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then 
..... 

修改成: 
..... 
tristate \\\PCI NE2000 support\\\ CONFIG_NE2K_PCI 
tristate \\\TI ThunderLAN support\\\ CONFIG_TLAN 
tristate \\\VIA Rhine support\\\ CONFIG_VIA_RHINE 
# tristate \\\VIA Rhine RevB support\\\ CONFIG_VIA_RHINEB 
tristate \\\SiS 900/7016 PCI Fast Ethernet Adapter support\\\ 
CONFIG_SIS900 
if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then 
..... 

3、修改 

/usr/src/linux/drivers/net/Makefile 

原始程序: 
...... 
ifeq ($(CONFIG_TLAN),y) 
L_OBJS += tlan.o 
else 
ifeq ($(CONFIG_TLAN),m) 
M_OBJS += tlan.o 
endif 
endif 

ifeq ($(CONFIG_VIA_RHINE),y) 
L_OBJS += via-rhine.o 
else 
ifeq ($(CONFIG_VIA_RHINE),m) 
M_OBJS += via-rhine.o 
endif 
endif 

ifeq ($(CONFIG_ZNET),y) 
L_OBJS += znet.o 
endif 
...... 

修改成: 
...... 
ifeq ($(CONFIG_TLAN),y) 
L_OBJS += tlan.o 
else 
ifeq ($(CONFIG_TLAN),m) 
M_OBJS += tlan.o 
endif 
endif 

ifeq ($(CONFIG_VIA_RHINE),y) 
L_OBJS += via-rhine.o 
else 
ifeq ($(CONFIG_VIA_RHINE),m) 
M_OBJS += via-rhine.o 
endif 
endif 

#ifeq ($(CONFIG_VIA_RHINEB),y) 
#L_OBJS += via-rhineB.o 
#else 
# ifeq ($(CONFIG_VIA_RHINEB),m) 
# M_OBJS += via-rhineB.o 
# endif 
#endif 

ifeq ($(CONFIG_ZNET),y) 
L_OBJS += znet.o 
endif 
...... 


二、 配置kernel 

运行命令 make conifg 或者 make menuconfig, 我个人喜欢用 make 
menuconfig。如果上面的修改都对的话,你就能在 

Networking device support --> Ethernet (10 or 100Mbit) 

里找到 “VIA Rhine RevB support”, 要 <*> 还是 就看个人考虑吧, 我是选
择 把驱动程序做成一个模块, 
做成模块还要改 modules.conf,如果是直接加进 kernel 里的话要在 lilo.
conf 里加上设置参数。 


三、 编译kernel 

接下来 make dep, 
make BzImage, 
make modules 
make modules_install 

就跟平常一样了。 
make modules_install后可在 /lib/modules/kernel-ver/net 里找到 
via-rhine.o 与 
via-rhineB.o 


四、修改 /etc/modules.conf 或/etc/lilo.conf 

1、查看网卡的中断和地址设置 

运行命令 
cat /etc/proc 

看一看网卡的中断和地址设置 
Vendor id=1106, Device id=3043 ==> 这是 RevA 的卡 
Vendor id=1106, Device id=3065 ==> 这是 RevB 的卡 

Vendor.....的下一行有 IRQ 的 data, 下两行有 IO PORT 的 data 
我的 RevA irq 为 9, RevB 的 irq 为 10. 

2、 修改 /etc/modules.conf (旧版的 modprobe 使用 /etc/conf.modules),加
入下面两行: 

alias eth0 via-rhine io=0x8000 irq=9 
alias eth1 via-rhineB io=0x8400 irq=10 
(我的电脑不加 io 也能动, 但不加 irq 就不行) 

3、如果你在配置kernel的时候,将网卡的驱动程序直接打进kernel,在这里你要
 修改 /etc/lilo.conf ,加入两行 
ether=0,0,eth0 
ether=0,0,eth1 

如果不能驱动的,那就定写上详细的参数: 
ether=9,0x8000,eth0 
ether=10,0x8400,eth1 

大致上这样就行了,你可以试试,如果有写错的地方, 也请各位不吝指正。 



 


--
             .                       *            .      .                     
       .              .    Go 天竺 !         .                                 
          ★               +++++++++            .              *               
              .                              .                                 
       *           ▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▇▆▅▄▃  
▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▁▁▂▃▄▅▆▇█▇▇▆▅▄▃▂▂▃▄▅▆▃▂              Go!  天竺  @>>--,--'--- http://beauty.hit.edu.cn 

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: spy.KGB.ru]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.833毫秒