情况如下:我在Debian盒上安装了一个工作网络,ifconfig - eth0和eth1报告了两个以太网接口。eth0是一个车载Realtek,而eth1是一个.然而,声音在这个系统上并没有发挥作用。
按照关于此页的建议,我访问了Realtek网站并下载了“LinuxDriverforKernel3.x和2.6.x和2.4.x”。我解压缩了它,在安装了必要的build和Linux包之后,我将r8168-8.037.00/autorun.sh作为root运行。回顾一下,我犯了一个很大的错误。我点击了"Realtek PCIe GBE家庭控制器系列驱动程序“而不是”驱动程序“,所以我安装了他们的网络驱动程序,而不是他们的音频驱动程序。糟了。无论如何,我现在正在寻找一种方法来消除这个混乱。
似乎没有输出错误信息,但是声音仍然不能工作,所以我重新启动了机器。当它再次出现时,ifconfig -a现在只向我展示eth0接口,而不是eth1。而且,find /sys/devices/ -type d | grep eth只返回eth0设备,而不返回eth1设备。dmesg | grep eth1也不提供任何输出。不知何故,新的Realtek驱动程序阻止了eth1被检测到!顺便说一句,声音仍然不起作用。
这是怎么发生的,我该怎么解决呢?我想我将不得不在没有声音的情况下生活,但我想恢复我的工作eth0和eth1配置。如何让Linux再次检测eth1?
看起来它可能已经在/lib/modules/3.2.0-4-amd64/kernel/drivers/net/ethernet/realtek中安装了一些东西,如果这有帮助的话。例如,r8168.ko文件既位于我解压缩的驱动程序的src目录中,也位于/lib...目录中。
发布于 2013-10-27 16:42:06
好的,我设法修复了它,但它是一个真正的皮塔(Linux迫切需要一个更成熟的驱动程序安装系统,内置的回滚IMHO)。下面是操作步骤:
cd /lib/modules/3.2.0-4-amd64/kernel/drivers/net/ethernet/realtek/这个目录有r8169.bak和r8168.ko。如果Realtek的安装程序只是删除了r8169而不是备份它,我就完蛋了。
/sbin/rmmod r8168
ifconfig -aeth0和eth1现在都消失了。
mv r8168.ko r8168.bak
mv r8169.bak r8169.ko
/sbin/depmod `uname -r`
/sbin/modprobe r8169
ifconfig -aeth0和eth1回来了,正在工作。
总之,Linux中的驱动程序安装和升级很糟糕。最好是希望您的安装程序足够好地备份以前的驱动程序,因为Linux基本上是这样说的:“想安装新的驱动程序,做什么就做什么”。应该会调用一些服务来安装驱动程序,这样Linux就可以跟踪以前的版本,以便回滚它们。
发布于 2013-10-27 12:38:42
不知何故,新的Realtek驱动程序阻止了eth1被检测到!
有点遗憾,因为很明显,树中的内核驱动程序一开始就在工作。你为什么要安装新的?
如果接口出现在ifconfig中,那么内核将为nic加载一个驱动程序。这并不一定意味着驱动程序将完美地工作,无论您打算用它做什么,但在99%+的情况下,它会。Realtek以太网芯片很常见,内核对它们有大量的支持。
看起来最好的驱动程序应该是制造商的驱动程序,但我认为这实际上并不是真的。问题是,制造商对linux驱动程序的投入很少或根本没有--无论是在对它们有多重要(因为linux市场份额很小)方面,还是在这方面,他们将投入多少资源。此外:
简而言之,没有对产品的监督,也没有提供产品的人的承诺。linux对此非常明确:最好的驱动程序是官方的树内驱动程序,而不是专有的驱动程序。只有当内核本身的驱动程序不能工作时,您才应该开始寻找其他地方。
https://unix.stackexchange.com/questions/97793
复制相似问题