我有一张 davicom dm9601 USB 以太网卡。
当我插入设备时,它会被检测到并且驱动程序被加载,但我无法使用它连接到互联网。
它在 XP 和其他笔记本电脑上运行良好,但在 Ubuntu 11.10 上却无法运行
我该如何安装这个驱动程序?我试了很多方法,但都没有用。
如果我转到此链接驱动程序但未编译或者我可能做错了什么。
我找到了这个但不知道如何遵循这些步骤。
这是我的lsusb
输出:
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002
Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 003 Device
001: ID 1d6b:0001 Linux Foundation 1.1 root hub Bus 004 Device 001: ID
1d6b:0001 Linux Foundation 1.1 root hub Bus 005 Device 001: ID
1d6b:0001 Linux Foundation 1.1 root hub Bus 006 Device 001: ID
1d6b:0001 Linux Foundation 1.1 root hub Bus 007 Device 001: ID
1d6b:0001 Linux Foundation 1.1 root hub Bus 008 Device 001: ID
1d6b:0001 Linux Foundation 1.1 root hub Bus 002 Device 004: ID
064e:a103 Suyin Corp. Acer/HP Integrated Webcam [CN0314] Bus 003
Device 002: ID 08ff:1600 AuthenTec, Inc. AES1600 Bus 005 Device 002:
ID 0a46:9601 Davicom Semiconductor, Inc. DM9601 Fast Ethernet Adapter
Bus 006 Device 002: ID 046d:c045 Logitech, Inc. Optical Mouse Bus 003
Device 003: ID 0a5c:2101 Broadcom Corp. Bluetooth Controller Bus 004
Device 002: ID 04d9:1702 Holtek Semiconductor, Inc.
但是当我从不同的系统连接互联网时,它开始工作。
答案1
先决条件
您需要安装build-essential
和linux-headers-generic
软件包。如果您没有这些软件包,您可以在packages.ubuntu.com,下载*.deb
文件并手动安装。
linux-headers-generic
是一个虚拟包,它会为您正在运行的当前内核安装正确的标头。您可以通过uname -r
在终端中输入来找到它。我的是3.0.0-17-generic
。这意味着我真正应该下载的是linux-headers-3.0.0-17-generic
包。一旦您的以太网工作,apt-get install linux-kernel-headers
您就会始终拥有正确的标头。
该build-essential
软件包有很多依赖项,当您尝试安装文件时,.deb
它会告诉您缺少什么。返回packages.ubuntu.com并下载所有它*.debs
抱怨的软件包。
如果您运行的是 Ubuntu,则*.deb
可以通过双击文件来安装它们。在 Kubuntu 上,您需要右键单击并选择安装选项。
构建模块 GotoDavicom 的网站并将 下载LINUX Driver
到您的主文件夹。打开终端并输入tar -xzvf dm9601-Linux2.6_1_1
以将其解压。输入cd dm9601
以进入新创建的文件夹。输入gedit dm9601.c
以编辑损坏的源文件。更改#include <linux/config.h>
为#include <linux/configfs.h>
保存文件并关闭 gedit。输入make
以构建模块。
好的,现在您已经构建了模块。此时我们可以测试它。插入 Davicom USB 适配器后,键入sudo insmod dm9601.ko
以临时插入模块。如果一切正常,我们需要让此模块在启动时自动插入。
在启动时插入模块输入类型sudo cp dm9601.ko /lib/modules/$(uname -r)/kernel/ubuntu/net/
在文件末尾的行上sudo gedit /etc/modules
添加保存并退出 gedit。dm9601
您的模块现在应该可以在重启后工作。恭喜!每次安装内核更新时,您都需要重复构建阶段的步骤 2、3 和 7 以及插入阶段的步骤 1。
故障排除如果 insmod 无法工作,您可能需要将您的 USB 设备 ID 添加到头文件中。
输入“lsmod”并查找属于 Davicom USB 适配器的行。它应该类似于“Bus 001 Device 006: ID 0a46:9555 Davicom Semiconductor, Inc.”如果您有疑问,请拔下所有其他 USB 设备并找到唯一没有“0000:0000”的行。
对于上面的例子,输入gedit dm9601.h
并插入如下两行:
DM9601_DEV( "Davicom Semiconductor, Inc", VENDOR_ACCTON, 0x0a46, 0x9555,
DEFAULT_GPIO_RESET )
您的模块源代码现已配置为识别您的模块。从说明的构建阶段中的步骤 6 继续。