如何在Linux 2.6上创建Sis191千兆以太网驱动程序

如何在Linux 2.6上创建Sis191千兆以太网驱动程序

Sis191驱动程序问题

这个操作方法对于那些拥有sis191千兆以太网集成接口(板载LAN)的人来说,但是不能得到sis191默认驱动程序的工作(实际上,驱动程序被称为sis190,此卡的FastEthernet版本)。 我的宏碁Aspire SA90是一个很好的例子。

注意:这个howto是使用Ubuntu 7.10与内核2.6.22一起创建的

问题

执行时

modprobe sis190

,在一个香草2.6.x内核(我的ubuntu 7.10是2.6.22),你会看到这个错误:

'Can not find ISA bridge'

没有找到网络接口。 如果你不幸运,直到我买了一个PCI网卡,你就没有网络,所以这样做是不可能的。

原因是香草司机搜索ISA桥ID 965,但是我正在执行的是968

lspci -nn
00:02.0 ISA bridge [0601]: Silicon Integrated Systems [SiS] SiS968 [MuTIOL Media IO] [1039:0968] (rev 01)
[...]
00:04.0 Ethernet controller [0200]: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter [1039:0191] (rev 02)

如您所见,我实际上有一个来自SIS的以太网控制器型号191);

解决方案

我们必须从香草驱动程序,从0x965到0x968或任何你有的ID(参见lspci的输出)更改ISA桥ID,

忽略sis191官方驱动下载。 完全过时(请参见www.sis.com/download ,然后下载中心 >网络驱动程序:SiS191千兆和SiS190 LAN:Linux)

相反,请访问www.kernel.org并获取当前内核版本的.tar.gz文件(参见

uname -r

)。 一旦解压缩

tar -xvzf [file.tar.gz]

'[kernel_src_folder] /drivers/net/sis190.c'中编辑驱动程序的源文件。 在第1576行你会发现这一节:

* sis190_get_mac_addr_from_apc - 获取SiS965型号的MAC地址
* @pci_dev:sis190 pci设备
* @net_dev:获取地址的网络设备
*
* SiS965型号,使用APC CMOS RAM存储MAC地址。
* APC CMOS RAM通过ISA桥接。
* MAC地址读入@ net_dev-> dev_addr。
* /
static int __devinit sis190_get_mac_addr_from_apc(struct pci_dev * pci_dev,struct net_device * net_dev)
{
struct pci_dev * isa_bridge = NULL;
struct sis190_private * sis_priv = net_dev-> priv;
u8 reg,temp;
int i

printk(KERN_INFO“%s:从APC \ n读取MAC地址”,net_dev-> name);

isa_bridge = pci_find_device(0x1039,0x0965,isa_bridge);
如果(!isa_bridge){
printk(“%s:找不到ISA桥\ n”,net_dev-> name);
返回0;
}

现在换行了

isa_bridge = pci_find_device(0x1039, 0x0965, isa_bridge);

isa_bridge = pci_find_device(0x1039, 0x0968, isa_bridge);

或者你实际拥有的任何ID(我的是0x0968,记得)。

编译和使用新模块

现在,将您的内核配置文件(位于/boot/config-2.6.22-14-generic中的ubuntu中)复制到内核源文件夹,并将其重命名为“.config”。 如果您知道如何处理内核源,则此步骤可能是不必要的。

现在执行

make oldconfig

接着

make modules

但是在10秒左右之后使用Ctrl + C退出,以避免编译整个内核树。 如果我们不做模块,则不会创建下一步所需的临时文件。

构建的重要事项是_only_我们的驱动程序,我们可以使其执行

make drivers/net/sis190.ko

这是编译内核模块的“错误”方式,但是最简单和最快捷的方式。

一旦编译,尝试加载它

insmod drivers/net/sis190.ko

您可能需要先卸载当前的香草驱动程序

rmmod sis190

您可以通过键入来查看它是否有效

dmesg

ifconfig -a

启用界面manuall(使用ifconfig)或自动(使用dhclient或等效的DHCP客户端命令)。

现在要永久安装新的驱动程序,将sis190.ko文件复制到modules目录中。 我的位于/lib/modules/2.6.22-14-generic/kernel/drivers/net。 但是先做一个备份的原来的一个! 为了复制,就像打字一样简单

cp [kernel_src_folder]/drivers/net/sis190.ko /lib/modules/2.6.22-14-generic/kernel/drivers/net

这就是所有的人! 祝你好运!

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏