1. 程式人生 > >linux下編譯新核心,解決無法找到eth0裝置問題,安裝eth0網絡卡驅動

linux下編譯新核心,解決無法找到eth0裝置問題,安裝eth0網絡卡驅動

由於我的blktrace執行時出現問題,只能對裝置測試一次,第二次的時候就會報如下錯誤:no such file or directory


google瞭解決方案,很多都說是核心版本的問題,簡單的方法解決不了啊,測試不能不做啊,所以今天只能果斷換核心版本了(不過我想說每編一次核心,都會遇到新的問題,整個人心都醉了~這次也不例外啊~編一次核心,呆了一下午機房,雖然解決問題的能力渣渣,不過不得不為自己這種不怕輻射的精神點個贊~\(≧▽≦)/~)


        言歸正傳,開始核心之旅吧~


      (本部落格主要闡述的是解決問題的過程,比較繁雜,要是想直接解決問題,可以跳到第6步,標紅部分,用lspci | grep eth*

檢視網絡卡裝置是否存在,若存在,多半是驅動問題,可直接按照之後的部分解決)


為了跟同組成員的核心版本一致,所以我選擇了linux-3.5.1核心版本。核心編譯步驟簡單列一下:


make mrproper
make menuconfig
make dep
make clean
make bzImage
make modules
make modules_install
make install
update-initramfs -c -k 3.5.1
update-grub2
     完成上述步驟之後,reboot,則會進入核心啟動項,選擇新編譯的核心版本,進入。
     編譯核心的工作已經駕輕就熟,沒有遇到太大的問題。真正的麻煩在reboot之後,發現電腦遠端連不上伺服器,第一反應就是伺服器IP沒有配,所有就到機房去配網路了。
     
    1.由於網路配的很熟了,我直接vi /etc/network

/interface,進行網路配置:
 auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 192.168.1.145(ip地址)
netmask 255.255.255.0(子網掩碼)
gateway 192.168.1.1(閘道器)
     然後/etc/init.d/networking restart,發現報如下錯誤:


SIOCSIFADDR: No such device


eth0: ERROR while getting interface flags: No such device


SIOCSIFNETMASK: No such device


eth0: ERROR while getting interface flags: No such device


Failed to bring up eth0.


        2.google之後的解決方案是:


用service networking restart代替etc/init.d/networking restart就行了。或者ifdown eth0 ; ifup eth0開啟網絡卡
                但還是報同樣錯誤。


        3.然後又搜到是由於網絡卡跟MAC地址無法正確對應,所以要先移除裝置的net rules,然後重啟,使用如下指令:


              rm /etc/udev/rules.d/70-persistent-net.rules


              但是重啟之後,上述問題依然沒有解決


        4.想使用cd /etc/sysconfig/network-scripts/檢視網絡卡,發現根本沒有sysconfig這個目錄


        5.使用ifconfig -a,發現沒有eth0(乙太網介面),只有lo,和pan0,lo是本地的迴環介面,pan0,不知道是什麼介面,就抱著僥倖心理,配置了pan0介面,


        /etc/init.d/networking restart成功了,但是ping不通外網,也ping不通閘道器。默默搜了下,發現pan0指的是藍芽裝置。。。看來還是得搞定eth0


        6.使用lspci | grep eth*檢視搜尋區域網PCI插槽的硬體情況,發現是有ethernet網絡卡裝置的,結果顯示如下,但是ifconfig -a顯示不出eth0,所以就想到了驅動沒裝,可能預感問題就要解決了,突然異常興奮。


        04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)


        7.uname -a檢視自己的linux版本型號,然後到realtek網站上搜索與自己型號對應的網絡卡驅動。我的網絡卡是RTL8111/8168B,對應的下載地址如下所示:


http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false#RTL8111B/RTL8168B/RTL8111/RTL8168<br>RTL8111C/RTL8111CP/RTL8111D(L)<br>RTL8168C/RTL8111DP/RTL8111E<br>RTL8168E/RTL8111F/RTL8411<br>RTL8111G/RTL8111GUS/RTL8411B(N)<br>RTL8118AS


       8. 下載完成之後,解壓檔案,按下述指令完成驅動安裝,重啟伺服器:


            make clean modules


            make install 


            depmod -a


       9.ifconfig -a,發現出現eth0,接下來就進行正常的網路配置,最終配置成功~耶
--------------------- 
作者:qljessica123 
來源:CSDN 
原文:https://blog.csdn.net/qljessica123/article/details/41578353 
版權宣告:本文為博主原創文章,轉載請附上博文連結!