linux网卡驱动程序的编译与安装


  size  used by    not tainted
rhinefet               38752   1
8139too                16448   1
mii                     2408   0  [8139too]
这样,看到rhinefet模块已经加载了,基本上,这样就证明已经编译成功.

6. 让它开机时加载
[root@kindgeorge dlkfet-4.24]# vi /etc/modules.conf
在后面加上一行:  alias eth1 rhinefet
7. 配置一下网络
[root@kindgeorge dlkfet-4.24]# vi /etc/sysconfig/network-sc-ripts/ifcfg-eth1
   
device=eth1
bootproto=static
ipaddr=192.168.4.202
netmask=255.255.255.0
network=192.168.4.0
gateway=192.168.4.250
broadcast=192.168.4.255
onboot=yes
8.启动网卡,然后用ifconfig查看,
 ifup eth1
[root@kindgeorge dlkfet-4.24]# ifconfig
eth0      link encap:ethernet  hwaddr 00:0a:e6:30:0d:0e 
          inet addr:211.239.218.153  bcast:211.239.218.255  mask:255.255.255.0
          up broadcast running multicast  mtu:1500  metric:1
          rx packets:3780479 errors:0 dr-opped:0 overruns:0 frame:0
          tx packets:3833860 errors:0 dr-opped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          rx bytes:1118112324 (1066.3 mb)  tx bytes:1111887387 (1060.3 mb)
          interrupt:11

eth1      link encap:ethernet  hwaddr 00:0f:3d:82:ec:1d 
          inet addr:192.168.4.202  bcast:192.168.4.255  mask:255.255.255.0
          up broadcast running multicast  mtu:1500  metric:1
          rx packets:749312 errors:0 dr-opped:0 overruns:0 frame:0
          tx packets:976174 errors:0 dr-opped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          rx bytes:43695059 (41.6 mb)  tx bytes:1472142037 (1403.9 mb)
          interrupt:5 base address:0xe000

9.重新启动机器,可以自动加载和使用了.大功告成.

五. 按照安装说明的方法自动编译安装. 
     在 "三.3" 中我们用make 编译,然后进行手动的拷贝. 实际上在linux.txt中的安装说明提到用make install .
那我们来看看这种方法系统都做了什么吧.
[root@firewall1 dlkfet-4.24]# make install
gcc-wall -dlinux -d__kernel__ -dmodule -dexport_symtab -d__no_version__-o2 -pipe -i/lib/modules/2.4.18-3/build/include -i. -wstrict-prototypes-fomit-frame-pointer -dmodversions -include/lib/modules/2.4.18-3/build/include/linux/modversions.h -dvmns   -c -orhine_main.o rhine_main.c
gcc -wall -dlinux -d__kernel__ -dmodule-dexport_symtab -d__no_version__ -o2 -pipe-i/lib/modules/2.4.18-3/build/include -i. -wstrict-prototypes-fomit-frame-pointer -dmodversions -include/lib/modules/2.4.18-3/build/include/linux/modversions.h -dvmns   -c -orhine_proc.o rhine_proc.c
gcc -wall -dlinux -d__kernel__ -dmodule-dexport_symtab -d__no_version__ -o2 -pipe-i/lib/modules/2.4.18-3/build/include -i. -wstrict-prototypes-fomit-frame-pointer -dmodversions -include/lib/modules/2.4.18-3/build/include/linux/modversions.h -dvmns   -c -orhine_wol.o rhine_wol.c
gcc -wall -dlinux -d__kernel__ -dmodule-dexport_symtab -d__no_version__ -o2 -pipe-i/lib/modules/2.4.18-3/build/include -i. -wstrict-prototypes-fomit-frame-pointer -dmodversions -include/lib/modules/2.4.18-3/build/include/linux/modversions.h -dvmns   -c -orhine_vmns.o rhine_vmns.c


**************************************************
build options:
   version    2.4.18-3
   smp             disabled
   vmns            enabled
***************************************************
mkdir -p /lib/modules/2.4.18-3/kernel/drivers/net
install -m 644 -o root rhinefet.o /lib/modules/2.4.18-3/kernel/drivers/net
*****  move official driver via-rhine.o to via-rhine.o.backup
mv /lib/modules/2.4.18-3/kernel/drivers/net/via-rhine.o /lib/modules/2.4.18-3/kernel/drivers/net/via-rhine.o.backup

/sbin/depmod -a || true

按照上面的结果显示是这样的一个过程:
(1)系统把.c等文件编译成相应的.o文件.
(2)然后显示系统是否支持smp和vmns,然后把相应的.o模块文件拷贝到系统应该的地方.
(3)并且把相同芯片的程序过时的via-rhine.o改为备份文件.让系统用新的rhinefet.o
(4)最后执行/sbin/depmod -a 更新模块库配置. 看来这个也是个智能的安装方法.
六. 用其他方法驱动.
    由于市面上很多的各种各样的板卡,有名牌有杂牌,多不胜数.当我们拿到一块卡,但一下子没找到它本身提供的源程序,不能编译,怎么办呢?
    所以当你有一块网卡不能用,在找linux的driver之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpre

COPYRIGHT(C) 2011 厦门永宏亚得机电科技有限公司版权所有(闽ICP备05025945号) ALL RIGHTS RESERVED?

电话: 0592-5190891 传真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 厦门市海沧区兴港六里17号2607室 邮编:361009 联系人:翟先生