Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

[网卡]驱动D-Link 530TX-B

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  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 


 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:[显卡]如何驱动intel i740显卡   下一篇:[ADSL]阿尔卡特 A1000

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号