微代码。尤其是在 SMP 系统上,CPU 可能需要升级。自从奔腾部门灾难以来,英特尔的 CPU 已经可以现场升级了!CPU 可以通过 BIOS 的特殊指令提升几个版本。这些升级通常随您的 BIOS 一起提供,因此请确保您运行的是最新的 BIOS,尤其是在您拥有 SMP 系统的情况下。-- Jeffrey Friedl (电子邮件已隐藏)。
问题
RAM 时序问题?我一个多月前摆弄过 bios 设置。在那段时间里,我已经编译了无数个内核,没有任何问题。不可能是 RAM 时序,对吧?答案
错了。您是否认为 RAM 制造商有一台制造 60ns RAM 的机器和另一台制造 70ns RAM 的机器?当然不是!他们制造一批,然后测试它们。有些符合 60 ns 的规格,有些则不符合。如果制造商必须给出一个数字,那些可能是 61 ns。在这种情况下,当例如温度低于 40 摄氏度时(芯片在温度升高时会变慢。这就是为什么一些超级计算机需要如此多的冷却),它很可能在您的计算机中工作。然而,“夏季的到来” 或长时间的编译作业可能会将计算机内部的温度推高到 “极限” 以上。-- Philippe Troin (ptroin@compass-da.com)
问题
我被忽悠了,没有购买 ECC 内存,因为它稍微便宜一些。我觉得自己像个傻瓜。我应该购买更昂贵的 ECC 内存。对吗?答案
购买更昂贵的 ECC 内存和主板可以保护您免受某种类型的错误的影响:那些由通过阿尔法粒子随机发生的错误。
因为大多数人可以在半小时内使用 “gcc” 重现 “signal 11” 问题,但不能通过连续数小时的内存测试来重现它们,这向我证明它不仅仅是随机的阿尔法粒子翻转一位。内存测试也会注意到这一点。这意味着还有其他原因。我的印象是,大多数 sig11 问题是由 CPU <-> 缓存 <-> 内存路径上的时序错误引起的。在这种情况下,主内存上的 ECC 对您没有帮助。您应该何时购买 ECC? a) 当您觉得您需要它时。 b) 当您有大量 RAM 时。(为什么没有截止数字?因为截止数字随时间变化,就像 “大量” 一样。)有些人强烈认为每个人都应该使用 ECC 内存。我将他们指向理由 “a)”。
问题
内存问题?我的 BIOS 测试我的内存并告诉我它没问题。我有一个花哨的 DOS 程序告诉我我的内存没问题。不可能是内存问题,对吧?答案
错了。BIOS 中的内存测试完全没用。它甚至可能偶尔确认比实际可用的内存更多的内存是 “OK” 的,更不用说测试它是否良好了。
我的一个朋友曾经有一台 640k PC(是的,那是很久以前的事了),它在第二个 256k 库中有一个 64kbit 芯片而不是 256kbit 芯片。这意味着他实际上有 320k 工作内存。有时 BIOS 会将 384k 测试为 “OK”。无论如何,只有某些应用程序会失败。很难诊断出实际问题......
大多数内存问题仅在特殊情况下发生。这些情况几乎不为人知。gcc 似乎会触发它们。一些内存测试,尤其是 BIOS 内存测试,则不会。我不再致力于创建一张软盘,其中包含 Linux 内核和一个好的内存测试程序。别再烦我了......
原因是内存测试会导致 CPU 只执行一些指令,并且内存访问模式往往非常规则。在这些情况下,只有非常小一部分内存会崩溃。如果您正在学习电气工程并且对内存测试感兴趣,硕士论文可能是弄清楚发生了什么。有些计算机制造商希望赞助这样一个项目,并提供一些客户声称不可靠,但未通过生产测试的硬件......
问题
它只会在我编译内核时发生吗?答案
不是。您的硬件不可能知道您正在编译内核。只是内核编译对您的硬件要求非常高,因此当您编译内核时,这种情况发生得很多。编译其他大型软件包(如 gcc 或 glibc)也经常会触发 sig11。
- 例如,人们在使用 slackware 安装脚本进行安装时,看到了 “随机” 崩溃...... -- dhn@pluto.njcc.com
- 其他人从内核获得 “general protection errors”(一般保护错误)(带有崩溃转储)。这些通常在 /var/adm/messages 中。-- fox@graphics.cs.nyu.edu
- 有些人看到 bzip2 崩溃,并显示 “signal 11” 或 “internal assertion failure (#1007)”。Bzip2 经过了相当好的测试,因此如果它崩溃,则很可能不是 bzip2 中的错误。-- Julian Seward (jseward@acm.org)
问题
NT、Windows 95、OS/2 或 DOS 上没有任何崩溃。一定是 Linux 特有的问题。答案
首先,Linux 比上述所有系统都更强调您的硬件。某些操作系统(如上面命名的 Microsoft 操作系统)无论如何都会以不可预测的方式崩溃。没有人会打电话给微软说 “嘿,我的 Windows 电脑今天崩溃了”。如果您真的这样做了,他们会告诉您,是您(用户)犯了一个错误(请参阅 德国杂志对 Bill Gates 的采访....),并且由于它现在可以工作了,您应该闭嘴。
这些操作系统也比 Linux 在某种程度上更 “可预测”。这意味着 Excel 可能始终加载在完全相同的内存区域中。因此,当位错误发生时,总是 Excel 会受到影响。Excel 将崩溃。或者 Excel 将使另一个应用程序崩溃。无论如何,它似乎是一个应用程序失败,并且与内存无关。
我可以肯定的是,干净安装的 Linux 系统应该能够编译内核而没有任何错误。当然没有 sig-11 错误。(** 例外:带有 Cyrix 处理器的 Red Hat 5.0。请参阅其他地方。**)
实际上,Linux 和 gcc 比其他操作系统更强调您的硬件。如果您需要一个非 Linux 的东西来强调您的硬件到崩溃的地步,您可以尝试 winstone。-- Jonathan Bright (bright@informix.com)
问题
总是 signal 11 吗?答案
不是。其他信号(如 4、6 和 7)也偶尔会发生。但是,Signal 11 最常见。只要内存被破坏,任何事情都可能发生。我本以为坏的二进制文件会比实际发生的频率高得多。无论如何,似乎赔率严重偏向于 gcc 获得 signal 11。也见过
- free_one_pmd: bad directory entry 00000008
- EXT2-fs warning (device 08:14): ext_2_free_blocks bit already cleared for block 127916
- Internal error: bad swap device
- Trying to free nonexistent swap-page
- kfree of non-kmalloced memory ...
- scsi0: REQ before WAIT DISCONNECT IID
- Unable to handle kernel NULL pointer dereference at virtual address c0000004
- put_page: page already exists 00000046
invalid operand: 0000 - Whee.. inode changed from under us. Tell Linus
- crc error -- System halted (在解压缩 Linux 内核期间)
- Segmentation fault
- “unable to resolve symbol”
- make [1]: *** [sub_dirs] Error 139
make: *** [linuxsubdirs] Error 1
- X Window 系统可能会以 “caught signal xx” 终止
前几个是内核 “怀疑” 内核编程错误的情况,而实际上是由坏内存引起的。后几个指向最终遇到麻烦的应用程序。-- S.G.de Marinis (trance@interseg.it)
-- Dirk Nachtmann (nachtman@kogs.informatik.uni-hamburg.de)
问题
我该怎么办?答案
以下是一些在您想找出问题所在时可以尝试的事项... 注意:其中一些会显着降低您的计算机速度。这些事情旨在使您的计算机正常运行,并使您能够缩小问题范围。有了这些信息,例如,您可以尝试让您的供应商更换有故障的组件。最困难的部分是,大多数人将能够完成上述所有操作,除了从其他人那里借用内存,但这并没有什么区别。这使得它很可能是 RAM。目前,RAM 是 PC 中最昂贵的部分,因此您宁愿不做出这个结论,但很抱歉,我收到了很多最终证明是 RAM 的反应。但是,不要立即绝望:您的 RAM 可能并非完全浪费:您可以随时尝试将其换成不同的或更多的 RAM。
问题
我已经让 RAM 测试设备测试了我的 RAM,它们是 OK 的。不可能是 RAM,对吧?答案
错了。似乎当前 RAM 中发生的错误无法被 RAM 测试仪检测到。可能是您的主板正在以可疑的方式访问 RAM,或者以其他方式在您的计算机中弄乱 RAM。好处是您可以将 RAM 卖给仍然对他的 RAM 测试仪有信心的人......
问题
还有哪些其他硬件可能是问题所在?答案
嗯,您计算机内部的任何硬件问题。但是,应该首先检查容易检查的东西。因此,例如,您的所有卡都应正确插入主板。
问题
为什么 Red Hat 安装在我的机器上崩溃?答案
Red Hat 5.x、6.x 和 7.x 安装在某些机器上存在问题。尝试仅使用 32M 运行安装。通常可以使用 mem=32m 作为引导参数来完成此操作。
可能是 CD 上存在读取错误。安装程序对此处理得不太完美...... 确保您的 CD 完美无瑕!似乎安装程序会在质量不佳的 CD 上崩溃!
人们报告说,并且我亲眼所见,Red Hat 安装可能会在完全正常的机器上出错(崩溃并显示 signal 7 或 signal 11)。我的机器过去并且现在仍然 100% 可靠(实际上,我测试它的机器现在已经可靠地坏了)。人们通过擦除旧的 “工作正常” 的发行版而陷入困境,然后想要安装更新的 Red Hat 发行版。然后返回不再是一种选择,因为返回到 5.x 也会导致相同的 “安装时崩溃”。
Patrick Haley (haleyp@austin.rr.com) 报告说,他尝试了高达 96Mb (32 & 64) 的所有内存配置,并且发现只有当他安装了 96Mb 时,安装才会工作。这也与我自己的经验(Red Hat 安装失败)一致:我在一台 32M 机器上尝试了安装。
新消息:似乎这可能是由于内核问题造成的。内核可能(暂时)内存不足并杀死当前进程。Hubert Mantel (mantel@suse.de) 的修复程序位于: http://juanjox.linuxhq.com/patch/20-p0459.html。
如果实际情况如此,请尝试切换到第二个虚拟控制台 (ctrl-alt-F2) 并在那里每隔几秒钟键入 “sync”。这减少了硬盘缓冲区占用的内存量... 如果您看到 Red Hat 安装连续崩溃两次或更多次,然后能够使用此技巧完成安装,我将非常感谢您的反馈!!!
您如何解决这个问题?...
- 使用 SuSE。它更好:它在安装过程中不会崩溃。(而且,它实际上确实更好。;-)
- 也许您遇到了 CD 上的坏块。这可能是驱动器相关的。如果是这种情况,请尝试在另一个驱动器中复制 CD。尝试借用别人的 Red Hat 副本。
- 尝试配置千兆字节的交换空间。我有两个独立的报告说,他们通过千兆字节的交换空间完成了安装。如果它有帮助,请向我报告!
- 修改硬盘的 “设置”。在 BIOS 中将设置从 “LBA” 更改为 “NORMAL” 对至少一个人有所帮助。如果您尝试这样做,如果您 发送电子邮件给我,我将非常感谢:我想听听它是否有帮助(以及您确切更改了什么使其工作)。
- 我的机器通过安装最小的基本系统,然后将软件包添加到已安装的系统来完成安装。
- 有人建议,当这种情况发生时,机器可能内存不足。尝试准备一个交换分区。此外,安装程序可能 “准备” 好处理低内存情况,但误判了情况。例如,它可能会加载 RAMDISK,仅留下 1M 的可用 RAM,然后尝试加载 2M 的应用程序。因此,如果您有 16M 的 RAM,使用 mem=14M 引导实际上可能会有所帮助,因为 “加载 RAMDISK” 阶段会失败,然后安装程序就会知道从 CD 而不是从 RAMDISK 运行。(安装程序过去适用于 >8M 机器。现在仍然如此吗?)
- 尝试在一个会话中清除磁盘上所有将要被 Linux 使用的分区。重启。然后尝试安装。可以通过手动分区,也可以让安装程序来确定。(我认为 Red Hat 也具有这种可能性,SuSE 也有...)如果这对您有效,如果您告诉我,我将不胜感激。
- 损坏的下载也可能导致这种情况。哎。
- 有人报告说,在 8Mb 机器上的安装不再有效,并且安装程序会不优雅地退出,并显示 sig7。-- Chris Rocco (crocco@earthlink.net)
- 有人报告说,禁用“BIOS 阴影”(系统 & 视频)对他有帮助。由于 Linux 不使用 BIOS,因此对其进行阴影处理没有帮助。如果禁用阴影,某些计算机甚至可能会为您提供 384k 的额外 RAM。只需禁用它,看看会发生什么。-- Philippe d'Offay (pdoffay@pmdsoft.com)。
问题
还有哪些其他可能性?答案
其他人注意到以下可能性
- Red Hat 5.0 中包含的编译器和 libc 与 Cyrix 处理器存在奇怪的交互。它会使编译器崩溃。这非常奇怪。我认为唯一可能的情况是 Cyrix 存在一个一直未被发现的错误,并且在 THAT gcc 编译 Linux 内核时可靠地触发了该错误。无论如何,如果您只想编译内核,您应该从 Red Hat 网站获取新的编译器和/或 libc。(从主页开始,然后单击勘误表)。
- 使用 2.8.x gcc 或任何 egcs 编译 2.0.x 内核不起作用。内核中存在一些错误,这些错误没有显示出来,因为 gcc 2.7.x 在优化方面做得不好。gcc 2.8.x 和 egcs 只是转储了一些代码,因为我们没有告诉它不要这样做。无论如何,您通常会得到一个看起来可以工作但有奇怪错误的内核。例如,X 可能会因信号 11 而崩溃。哦,在您问之前,不,它不会被修复。不要为此打扰 Alan 或 Linus,好吗?-- Hans Peter Verne (h.p.verne@kjemi.uio.no)
- pentium-optimizing-gcc(版本号以“p”结尾的那个)在某些源文件(如内核中的 floppy.c)上使用默认选项会失败。“触发器”在内核、libc 和 gcc 本身中。这很容易被诊断为“不是硬件问题”,因为它总是发生在相同的位置。您可以禁用某些优化(首先尝试 -fno-unroll-loops)或使用另一个 gcc。-- Evan Cheng (evan@top.cis.syr.edu)(换句话说:gcc 2.7.2p 在 floppy.c 上因 sig11 崩溃。解决方法 1:使用普通 gcc。解决方法 2:手动使用“-O”而不是“-O2”编译 floppy.c。)
- 磁盘与系统之间的连接不良。例如,IDE 电缆的长度只能为 40 厘米(16 英寸)。许多系统都配备了更长的电缆。此外,可移动的 IDE 机架可能会增加足够的麻烦,导致系统崩溃。
- gcc 配置错误 - 某些部分来自一个版本,某些部分来自另一个版本。几周后,我最终从头开始重新安装以使一切正常。-- Richard H. Derr III (rhd@Mars.mcs.com)。
- 当程序链接到 SCO 库(iBCS 附带的库)时,Gcc 或生成的应用程序可能会因 sig11 终止。这发生在某些 LDFLAGS 中带有 -L/lib 的应用程序上......
- 当使用 ELF 编译器编译内核,但配置为 a.out 时(或者反过来,我忘记了),您将在第一次调用“ld”时收到信号 11。这很容易被识别为软件问题,因为它总是发生在构建期间第一次调用“ld”时。-- REW
- 以太网卡以及配置错误的 PCI BIOS。如果您的 (ISA) 以太网卡在 ISA 总线上有一个孔径,您可能需要在 BIOS 设置屏幕中的某个位置配置它。否则,硬件将在 PCI 总线上查找共享内存区域。由于 ISA 卡无法响应 PCI 总线上的请求,因此您正在读取空的“空气”。这可能导致段错误和内核崩溃。-- REW
- 交换分区损坏。Tony Nugent (T.Nugent@sct.gu.edu.au) 报告说他过去遇到过这个问题,并通过在他的交换分区上执行 mkswap 解决了这个问题。(在执行 mkswap 后,别忘了先键入“sync”再执行任何其他操作。-- Louis J. LaBash Jr. (lou@minuet.siue.edu))
- NE2000 卡。一些廉价的 Ne2000 卡可能会搞乱系统。-- Danny ter Haar (dth@cistron.nl) 我个人可能也遇到过类似的问题,因为我的邮件服务器时不时地(每天一次)硬崩溃。现在看来 1.2.13 和许多 1.3.x 内核都有这个错误。我在 1.3.48 中没有看到它。可能在一段时间内修复了...... -- REW
- 电源?不,我不这么认为。现代重型系统配备两个或三个硬盘,SCSI 和 IDE 都不会超过 120 瓦左右。如果您有很多旧硬盘和旧扩展卡,功耗会更高,但仍然很难达到电源的极限。当然,有些人设法找到大量旧的全尺寸硬盘并将它们安装到他们的大型塔式机箱中。您确实可以通过这种方式使电源过载。-- Greg Nicholson (greg@job.cba.ua.edu) 故障电源当然可以提供边际功率,这会导致您在本文件中读到的所有故障...... -- Thorsten Kuehnemann (thorsten@actis.de)
- 不一致的 ext2fs。某些情况可能会导致 ext2 文件系统的内核代码导致 Gcc 的信号 11。-- Morten Welinder (terra@diku.dk)
- CMOS 电池。即使您按照您想要的方式设置了 BIOS,如果 CMOS 电池坏了,它也可能会在您眼皮底下改回“错误”设置。-- Heonmin Lim (coco@me.umn.edu)
- 没有或太少的交换空间。Gcc 无法优雅地处理“内存不足”的情况。-- Paul Brannan (brannanp@musc.edu)
- 不兼容的库。当您从“libc.so.5”到“libc.so.6”有一个符号链接时,某些应用程序会因 sig11 而崩溃。-- Piete Brooks (piete.brooks@cl.cam.ac.uk)。
- 坏鼠标。不知何故,鼠标似乎会以某种方式损坏,导致某些(鼠标相关的)程序因 Sig11 而崩溃。我见过这种情况发生在 X 服务器上,如果您快速移动鼠标,X 服务器就会崩溃。Matthew 甚至可能没有移动他的鼠标。-- REW & Matthew Duggan (stauff@guarana.org)。
问题
我发现运行 ..... 检测错误的速度比仅仅编译内核快得多。请在您的网站上提及这一点。答案
许多人给我发电子邮件,内容类似这样。但是,许多人没有意识到的是,他们遇到了一个有问题的硬件案例。推荐“unzip -t”的人碰巧有一个特定的损坏的 DRAM 内存条。而 unzip 碰巧比内核编译“发现”得更快。但是,我确信对于许多其他问题,内核编译会发现它,而其他测试则不会。我认为内核编译很好,因为它强调了计算机的许多不同部分。许多其他测试只练习一个区域。如果该区域在您的情况下恰好损坏,它会比“内核编译”更快地显示问题。但是,如果您的计算机在该区域正常,而在另一个区域损坏,“更快”的测试可能只会告诉您您的计算机正常,而内核编译测试会告诉您有问题。
在任何情况下,我最好还是列出人们认为好的测试,它们确实很好,但不如“尝试编译内核”测试那么通用......
- 在编译内核时运行 unzip。使用与 RAM 大小相当的 zip 文件。
- 使用“memetest86”。
- 在编译内核时执行 dd if=/dev/hda of=/dev/null。
- 对大型树运行 md5sum。
请注意,无论您找到什么快速方法来告诉您您的计算机已损坏,如果这样的测试突然不再失败,它都不能保证您的计算机是好的。我始终建议,在摆弄东西使其工作后,您应该运行 24 小时的内核编译测试。
问题
我不相信这个。这发生在谁身上?答案
嗯,首先它发生在我个人身上。但你不必相信我。它也发生在
- Johnny Stephens (icjps@asuvm.inre.asu.edu)
- Dejan Ilic (d92dejil@und.ida.liu.se)
- Rick Tessner (rick@myra.com)
- David Fox (fox@graphics.cs.nyu.edu)
- Darren White (dwhite@baker.cnw.com) (L2 缓存)
- Patrick J. Volkerding (volkerdi@mhd1.moorhead.msus.edu)
- Jeff Coy Jr. (jcoy@gray.cscwc.pima.edu) (温度问题)
- Michael Blandford (mikey@azalea.lanl.gov) (温度问题:CPU 风扇故障)
- Alex Butcher (Alex.Butcher@bristol.ac.uk) (内存等待状态)
- Richard Postgate (postgate@cafe.net) (VLB 负载)
- Bert Meijs (L.Meijs@et.tudelft.nl) (坏 SIMM)
- J. Van Stonecypher (scypher@cs.fsu.edu)
- Mark Kettner (kettner@cat.et.tudelft.nl) (坏 SIMM)
- Naresh Sharma (n.sharma@is.twi.tudelft.nl) (30->72 转换器)
- Rick Lim (ricklim@freenet.vancouver.bc.ca) (坏缓存)
- Scott Brumbaugh (scottb@borris.beachnet.com)
- Paul Gortmaker (paul.gortmaker@anu.edu.au)
- Mike Tayter (tayter@ncats.newaygo.mi.us) (与缓存有关的东西)
- Benni ??? (benni@informatik.uni-frankfurt.de) (VLB 过载)
- Oliver Schoett (os@sdm.de) (缓存跳线)
- Morten Welinder (terra@diku.dk)
- Warwick Harvey (warwick@cs.mu.oz.au) (缓存中的位错误)
- Hank Barta (hank@pswin.chi.il.us)
- Jeffrey J. Radice (jjr@zilker.net) (内存电压)
- Samuel Ramac (sramac@vnet.ibm.com) (CPU 达到最高温度)
- Andrew Eskilsson (mpt95aes@pt.hk-r.se) (DRAM 速度)
- W. Paul Mills (wpmills@midusa.net) (CPU 风扇与 CPU 断开连接)
- Joseph Barone (barone@mntr02.psf.ge.com) (坏缓存)
- Philippe Troin (ptroin@compass-da.com) (延迟 RAM 时序问题)
- Koen D'Hondt (koen@dutlhs1.lr.tudelft.nl) (更多内核错误消息)
- Bill Faust (faust@pobox.com) (缓存问题)
- Tim Middlekoop (mtim@lab.housing.fsu.edu) (CPU 温度:风扇已安装)
- Andrew R. Cook (andy@anchtk.chm.anl.gov) (坏缓存)
- Allan Wind (wind@imada.ou.dk) (P66 过热)
- Michael Tuschik (mt2@irz.inf.tu-dresden.de) (gcc2.7.2p 受害者)
- R.C.H. Li (chli@en.polyu.edu.hk) (超频:几个月没问题...)
- Florin (florin@monet.telebyte.nl) (供应商超频 CPU)
- Dale J March (dmarch@pcocd2.intel.com) (笔记本电脑上的 CPU 过热)
- Markus Schulte (markus@dom.de) (坏 RAM)
- Mark Davis (mark_d_davis@usa.pipeline.com) (坏 P120?)
- Josep Lladonosa i Capell (jllado@arrakis.es) (PCI 选项过度优化)
- Emilio Federici (mc9995@mclink.it) (P120 过热)
- Conor McCarthy (conormc@cclana.ucd.ie) (坏 SIMM)
- Matthias Petofalvi (mpetofal@ulb.ac.be) ("Simmverter" 问题)
- Jonathan Christopher Mckinney (jono@tamu.edu) (gcc2.7.2p 受害者)
- Greg Nicholson (greg@job.cba.ua.edu) (许多旧磁盘)
- Ismo Peltonen (iap@bigbang.hut.fi) (irq_unmasking)
- Daniel Pancamo (pancamo@infocom.net) (70ns 而不是 60 ns RAM)
- David Halls (david.halls@cl.cam.ac.uk)
- Mark Zusman (marklz@pointer.israel.net) (坏主板)
- Elizabeth Ayer (eca23@cam.ac.uk) (电源管理功能)
- Thorsten Kuehnemann (thorsten@actis.de)
-
- (通过电子邮件向我讲述您的故事,您可能会被提及在这里... :-) ---- 更新:我想听听您发生了什么。这将使我能够猜测最常发生的情况,并使该文件尽可能准确。但是我现在有大约 500 个遇到过 sig-11 问题的人的电子邮件地址。我不认为继续在此列表中添加“随机”人员的姓名是有用的。您怎么看?
我对新的故事很感兴趣。如果您遇到问题并且不确定问题是什么,通过 发送电子邮件至 R.E.Wolff@BitWizard.nl 联系我可能会有所帮助。我的好奇心通常会驱使我回答您的问题,直到您找到问题所在.....(另一方面,当您的问题在上面清楚地描述时,我会很生气 :-))
此页面由 www.BitWizard.nl 托管