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
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
版權宣告:本文為博主原創文章,轉載請附上博文連結!