大地资源网视频在线观看新浪,日本春药精油按摩系列,成人av骚妻潮喷,国产xxxx搡xxxxx搡麻豆

您現在的位置:智能制造網>技術中心>linux網卡驅動程序的編譯與安裝

直播推薦

更多>

企業動態

更多>

推薦展會

更多>

linux網卡驅動程序的編譯與安裝

2009年06月22日 17:02:31人氣:3092來源:浙江啟揚智能科技有限公司

一般來說,目前新版的 linux 預設可以支持的網絡卡芯片組數量已經很完備了,很多網絡卡芯片都已經被支持,
例如rlt 8139 芯片 ( realtek 8139 ) 的網絡卡所以使用者可以很輕易的設定好他們的網絡卡。
不過,如果萬一不幸核心沒有支持該網絡卡的話,那么可以透過重新編譯核心或者編譯網絡卡驅動模塊 ( modules ),
并且加載該模塊,今天就是這么巧,碰到一個d-link 的dfe-530tx,沒法,只有手動安裝網絡卡驅動程序了.
可以用命令# dmesg | grep eth
來查看系統啟動信息,顯示出 eth0 或者 eth1 的信息,如果eth1沒找到正確的信息,那就表示 linux 無法找到該硬件,
eth0是8139的,已經顯示正常,例如:
[root@kindgeorge root]# dmesg | grep eth
eth0: realtek rtl8139 fast ethernet at 0xf0160000, 00:0a:a6:30:0d:0e, irq 11
eth0:  identified 8139 chip type "rtl-8139c"
eth0: setting 10mbps full-duplex based on auto-negotiated partner ability 4061.

一. 查看自己系統的內核版本.
[root@kindgeorge root]# uname -r
2.4.18-3 
我這里是redhat7.3的,內核2.4.18-3
一般來說,這個內核驅動程序的模塊會放在 /lib/modules/2.4.18-3/kernel/drivers/net
二.確定系統是否已經安裝下面包
1.由于編譯需要用到內核的源代碼包和編譯程序gcc.所以如果沒有的話,要先裝.
   查看: 
[root@kindgeorge root]# rpm -qa|grep kernel
kernel-2.4.18-3
kernel-source-2.4.18-3
[root@kindgeorge root]# rpm -qa|grep gcc   (gcc是編譯用)
gcc-2.96-110
gcc-g77-2.96-110
gcc-c++-2.96-110
一般裝了內核源包的話,都會在出現/usr/src/linux-2.4,同路徑下會有linux-2.4.18-3的文件實際目錄.
2.如果沒有的話,就用原來安裝盤上的文件安裝,會去下載個相同內核源包安裝吧
  rpm -ivh kernel-source-2.4.18-3.i386.rpm
  ......
三. 取得驅動程序和編譯
1. 可以重廠家提供的光盤提供,把光盤上的linux目錄下的dlkfet-4.24.tar.gz 拷貝過來用.
2. 從網上下載網絡卡驅動程序,一般廠家的都提供下載程序的.
例如:
  上有下載.
 [root@kindgeorge root]# cp dlkfet-4.24.tar.gz /usr/src
 [root@kindgeorge root]# cd /usr/src/
[root@kindgeorge src]# tar -zxvf dlkfet-4.24.tar.gz
dlkfet-4.24/
dlkfet-4.24/rhine_main.c
dlkfet-4.24/makefile
dlkfet-4.24/vmns_drv.h
dlkfet-4.24/rhine.h
dlkfet-4.24/.depend.mak
dlkfet-4.24/rhine_vmns.c
dlkfet-4.24/rhine_proc.h
dlkfet-4.24/rhine_proc.c
dlkfet-4.24/rhine_vmns.h
dlkfet-4.24/kcompat.h
dlkfet-4.24/rhine_cfg.h
dlkfet-4.24/.depend
dlkfet-4.24/rhine_wol.c
dlkfet-4.24/rhine_wol.h
dlkfet-4.24/linux.txt
3.請留意一開始是沒有.o文件的. 我們編譯前可以看看目錄的linux.txt,是一個包含介紹安裝說明.在進入目錄后,執行make進行編譯.
[root@kindgeorge src]# cd dlkfet-4.24
[root@kindgeorge dlkfet-4.24]# make
[root@kindgeorge dlkfet-4.24]# ll   (編譯后查看一下)
total 320
-rw-r--r--    1 root     root         7473 jan 15  2003 kcompat.h
-rw-r--r--    1 root     root        11491 jan 20  2003 linux.txt
-rw-r--r--    1 root     root         5219 dec 10  2002 makefile
-rw-r--r--    1 root     root         1818 jan 16  2003 rhine_cfg.h
-rw-r--r--    1 root     root        48715 may 24 18:31 rhinefet.o
-rw-r--r--    1 root     root        42044 jan 15  2003 rhine.h
-rw-r--r--    1 root     root        78996 jan 16  2003 rhine_main.c
-rw-r--r--    1 root     root        32760 may 24 18:31 rhine_main.o
-rw-r--r--    1 root     root        14980 jan 15  2003 rhine_proc.c
-rw-r--r--    1 root     root         1672 jan 15  2003 rhine_proc.h
-rw-r--r--    1 root     root        12336 may 24 18:31 rhine_proc.o
-rw-r--r--    1 root     root         9172 jan 15  2003 rhine_vmns.c
-rw-r--r--    1 root     root         1106 jan 15  2003 rhine_vmns.h
-rw-r--r--    1 root     root         3792 may 24 18:31 rhine_vmns.o
-rw-r--r--    1 root     root         7536 jan 15  2003 rhine_wol.c
-rw-r--r--    1 root     root         1529 jan 15  2003 rhine_wol.h
-rw-r--r--    1 root     root         3488 may 24 18:31 rhine_wol.o
-rw-r--r--    1 root     root         6824 jan 15  2003 vmns_drv.h

4.經過編譯后,會編譯出一個rhinefet.o 文件,這個就是驅動模塊,我們把它拷貝到相應地方:
[root@kindgeorge dlkfet-4.24]#cp rhinefet.o  /lib/modules/2.4.18-3/kernel/drivers/net
[root@kindgeorge dlkfet-4.24]# depmod -a
5.測試
(1)可以用命令modprobe rhinefet 或  insmod rhinefet.o  加載.如果沒出錯信息說明ok.
(2) 用命令lsmod 可以看看是否已經加載了.
[root@kindgeorge dlkfet-4.24]# lsmod
module                  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)zui后執行/sbin/depmod -a 更新模塊庫配置. 看來這個也是個智能的安裝方法.
六. 用其他方法驅動.
    由于市面上很多的各種各樣的板卡,有有雜牌,多不勝數.當我們拿到一塊卡,但一下子沒找到它本身提供的源程序,不能編譯,怎么辦呢?
    所以當你有一塊網卡不能用,在找linux的driver之前一定搞清楚這個網卡用的什么芯片,跟誰兼容,比如3c509,ne2000,etherexpress等等.
   這樣的型號一般都在網卡上zui大的一快芯片上印著.如果芯片型號相同,那么它們其中一些是可以通用的.我們可以嘗試一下系統上已經安裝了的驅動是否可行了.進入驅動目錄/lib/modules/(內核版本)/kernel/drivers/net  即可發現已經有很多模塊了, 用命令insmod相應芯片模塊名字 , 如果不成功會報錯,如果正確則不顯示錯誤信息,然后再進行上面的"三.5-9"步驟進行測試.
如果不行,再老老實實的找源程序吧.
全年征稿/資訊合作 聯系郵箱:1271141964@qq.com

免責聲明

  • 凡本網注明"來源:智能制造網"的所有作品,版權均屬于智能制造網,轉載請必須注明智能制造網,http://www.xashilian.com。違反者本網將追究相關法律責任。
  • 企業發布的公司新聞、技術文章、資料下載等內容,如涉及侵權、違規遭投訴的,一律由發布企業自行承擔責任,本網有權刪除內容并追溯責任。
  • 本網轉載并注明自其它來源的作品,目的在于傳遞更多信息,并不代表本網贊同其觀點或證實其內容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網站或個人從本網轉載時,必須保留本網注明的作品來源,并自負版權等法律責任。
  • 如涉及作品內容、版權等問題,請在作品發表之日起一周內與本網聯系,否則視為放棄相關權利。

<
更多 >

工控網機器人儀器儀表物聯網3D打印工業軟件金屬加工機械包裝機械印刷機械農業機械食品加工設備制藥設備倉儲物流環保設備造紙機械工程機械紡織機械化工設備電子加工設備水泥設備海洋水利裝備礦冶設備新能源設備服裝機械印染機械制鞋機械玻璃機械陶瓷設備橡塑設備船舶設備電子元器件電氣設備


我要投稿
  • 投稿請發送郵件至:(郵件標題請備注“投稿”)1271141964.qq.com
  • 聯系電話0571-89719789
工業4.0時代智能制造領域“互聯網+”服務平臺
智能制造網APP

功能豐富 實時交流

智能制造網小程序

訂閱獲取更多服務

微信公眾號

關注我們

抖音

智能制造網

抖音號:gkzhan

打開抖音 搜索頁掃一掃

視頻號

智能制造網

公眾號:智能制造網

打開微信掃碼關注視頻號

快手

智能制造網

快手ID:gkzhan2006

打開快手 掃一掃關注
意見反饋
關閉
企業未開通此功能
詳詢客服 : 0571-87858618
主站蜘蛛池模板: 深州市| 边坝县| 察哈| 仁怀市| 石渠县| 三江| 祁门县| 米易县| 荃湾区| 定兴县| 东辽县| 天长市| 时尚| 二连浩特市| 淮安市| 宜黄县| 垦利县| 登封市| 冀州市| 赫章县| 江油市| 夹江县| 阳西县| 鲁山县| 兴国县| 泰州市| 克什克腾旗| 阳曲县| 孟村| 秭归县| 泰兴市| 永胜县| 十堰市| 琼中| 会泽县| 会同县| 绍兴县| 南岸区| 德化县| 彰化县| 大方县|