歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 如何驅動DFE-530TX RevB

如何驅動DFE-530TX RevB

日期:2017/2/27 14:18:03   编辑:更多Linux
  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_MEMPCI_USES_IOPCI_USES_MEMPCI_USES_MASTER, 128, via_probe1}, { "VIA VT3043 Rhine", 0x1106, 0x3043, 0xffff, PCI_USES_IOPCI_USES_MEMPCI_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_MEMPCI_USES_IOPCI_USES_MEMPCI_USES_MASTER, 128, via_probe1}, { "VIA VT3043 Rhine", 0x1106, 0x3043, 0xffff, PCI_USES_IOPCI_USES_MEMPCI_USES_MASTER, 128, via_probe1}, # { "VIA VT3043 Rhine RevB1", 0x1106, 0x3065, 0xffff, # PCI_USES_IOPCI_USES_MEMPCI_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



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



Copyright © Linux教程網 All Rights Reserved