![在 Ubuntu 10.4 上使用 Firefox 3.6 访问特定 URL 会导致操作系统崩溃,我该如何调试这个问题?](https://linux22.com/image/956239/%E5%9C%A8%20Ubuntu%2010.4%20%E4%B8%8A%E4%BD%BF%E7%94%A8%20Firefox%203.6%20%E8%AE%BF%E9%97%AE%E7%89%B9%E5%AE%9A%20URL%20%E4%BC%9A%E5%AF%BC%E8%87%B4%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E5%B4%A9%E6%BA%83%EF%BC%8C%E6%88%91%E8%AF%A5%E5%A6%82%E4%BD%95%E8%B0%83%E8%AF%95%E8%BF%99%E4%B8%AA%E9%97%AE%E9%A2%98%EF%BC%9F.png)
系统是一台备用的戴尔 2400,我把它清理干净了,安装了 Ubuntu 10.4。更新管理器里有所有最新的内容,我不需要费心处理驱动程序或复杂的系统设置。事实上,这是一个安装和使用起来都很稳定、友好的系统。
想象一下当我浏览http://element-14.com/(一个对电子工程人员有用的社区网站)经过一两次重定向,然后黑屏,然后是“我正在启动”的提示,伴随着粉红色的烟雾,然后什么都没做。键盘严重崩溃,Alt-SysRq键组合没有任何作用。
崩溃的不仅仅是 Firefox 和 X 服务器。我在打开 SSH 会话的情况下再次遇到了崩溃,不仅连接被切断,而且它不再响应获取新连接的尝试。
我尝试启用 Apport,希望它能够注意到一些事情并帮助找出罪魁祸首,但它似乎对崩溃毫无察觉。
每次,我都必须依靠电源按钮来重新启动。
谷歌搜索暗示主板上提供 VGA 的特定英特尔芯片组存在问题。
我正在寻找有关如何继续调试此类崩溃的建议。有什么想法吗?
更新:我尝试按照建议设置netconsole
内核模块和匹配的 netcat 实例以接收日志。我在 XP 机器上设置了 netcat,使用Alt- SysRq-S验证它是否可以接收内核消息,然后浏览到该站点。仅printk()
记录了两个消息:
[251728.009794] i915:未知参数‘modset’ [251728.051420] i915:未知参数“modset”
dmesg
嗯。也许我的视频驱动程序配置错误了?特别是因为我在启动后的输出中看到了同样的消息。
至少这次我明确同步了我的磁盘前故意使系统崩溃。
为了记录,lspci -nn | grep VGA
他说:
00:02.0 VGA 兼容控制器 [0300]: Intel Corporation 82845G/GL[Brookdale-G]/GE 芯片组集成图形设备 [8086:2562] (rev 01)
更新:已解决!!!
提示netconsole
让我顿悟。在谷歌上搜索“i915 未知参数 modset”这个词组时,我突然发现了根本原因。
i915 驱动程序选项的名称是模式设置不是模组集。
我把 /etc/modprobe.d/i915.conf 改成了正确的拼写,然后重新启动,现在我可以访问 element-14(大概还可以访问其他站点,这些站点所做的一切都是 element-14 所做的事情,从而触发了视频驱动程序中的错误),而不需要进行令人不快的强制重启。
这留下了一个(显然众所周知的)问题,即 i915 驱动程序质量不佳,尤其是在较旧的芯片组上。显然,内核模式设置功能尤其有缺陷。如果选项拼写不正确,它会默认启用 KMS,并且也会崩溃。如果拼写正确,KMS 将被禁用,并且驱动程序不会受到触发崩溃的任何内容的影响。
此外,launchpad 和其他社区网站上的许多错误页面的选项名称拼写错误。我强烈怀疑我的拼写错误就是从那里来的。
编辑:我把相关的解决方案复制到实际答案中,并在这里改进了对它的描述。
答案1
假设是内核崩溃,您需要捕获内核转储信息,您可以尝试使用内核网络控制台:https://wiki.ubuntu.com/Kernel/Netconsole
答案2
几乎可以肯定是显卡驱动程序或芯片错误,因为根据我的经验,很少有其他东西能像这种东西一样毁掉系统。如果您真的想摆弄那些不太受关注的内部驱动程序,那就尽情享受吧。
有应用说明、设备文档和代码英特尔就我个人而言,我会花 30-40 美元买一块最好的 PCI 显卡(是的,你确实要为旧硬件支付额外费用),然后就完事了。问问周围人,你可能会发现有人有一台类似的老式机器,上面有一张免费的显卡。上周我刚刚为一个朋友回收了一台这样的机器。
答案3
关于 netconsole 的提示来自若昂·平托这让我顿悟了。在谷歌上搜索“i915 未知参数 modset”这个词组时,我突然发现了根本原因。
i915 驱动程序选项的名称拼写为“modeset”,而不是“modset”。
我将 /etc/modprobe.d/i915.conf 改为正确的拼写,重新启动,现在我无需重新启动即可访问 element-14。