上一篇:如何改变Xwin的刷新频率 >>
如何驱动DFE-530TX RevB
我的电脑上有两张 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
下一篇:MOXA多串口卡在Linux下的安装 >>
相关文章:
- · 构造嵌入式Linux
- · Linux硬件通—网卡
- · 双网卡解密
- · 驱动阿尔卡特ADSL Modem A1000
- · 调制解调器的安装与配置
- · 关于D-LINK530B的安装的几点看法
- · SuSe Linux 下安装 ADSL
- · 让LINUX成功支持Cirrus Logic软猫
- · 如何驱动i810显卡
- · 实战ALSA声卡驱动程序安装
- · 怎样驱动IDE接口的刻录机
- · 如何在Linux下用DMA方式传输数据
- · Linux的硬件配置
- · 升级Linux系统的硬盘
- · 嵌入式操作系统的调试 (1)
- · 嵌入式操作系统的调试 (2)
- · 嵌入式操作系统的调试(3)
- · Linux环境下MO的使用方法
- · 在Linux下实现计算机直接电缆连接的方法
- · IDE RAID卡在linux上的应用
- · linux下用滚轮鼠标
- · 一种通用的显卡驱动方法
- · 磁带驱动器的使用
- · 给扫描仪在Linux系统里安个家
- · 在Linux下如何驱动D-link DFE-530TX(最终稿)
- · PLIP--Linux 并口网络解决方案
- · 使用U盘和USB硬盘的正确方法
- · 使用U盘和USB硬盘的正确方法
- · USB 摇杆和 Zsnes 安装 心得报告
- · 快速搞定D-Link530TX RevB网卡
- · 双启动型USB优盘的使用举例和注意问题
- · 让罗技OEM三键鼠标支持滚轮
- · 修改内核成功加载USB1.1移动硬盘盒
- · 在RedHat80下安装nvidia显卡驱动
- · Linux下AT90S8515单片机GCC编程点灯实验纪实
- · USB设备检测的一般过程
- · 校园网解决方案
- · 中小型企业的Sendmail邮件服务器应用实例
