在 Ubuntu 10.4 上使用 Firefox 3.6 访问特定 URL 会导致操作系统崩溃,我该如何调试这个问题?

在 Ubuntu 10.4 上使用 Firefox 3.6 访问特定 URL 会导致操作系统崩溃,我该如何调试这个问题?

系统是一台备用的戴尔 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。

相关内容