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
RTL8111C/RTL8111CP/RTL8111D(L)
RTL8168C/RTL8111DP/RTL8111E
RTL8168E/RTL8111F/RTL8411
RTL8111G/RTL8111GUS/RTL8411B(N)
RTL8118AS


       8. 下载完成之后,解压文件,按下述指令完成驱动安装,重启服务器:


            make clean modules


            make install 


            depmod -a


       9.ifconfig -a,发现出现eth0,接下来就进行正常的网络配置,最终配置成功~耶

你可能感兴趣的:(服务器)