[OpenBSD]

[索引] [第十一章 - X Window 系统] [第十三章 - 多媒体]

12 - 硬件和特定平台问题


目录


12.1 - 常规硬件说明

12.1.1 - PCI 设备

12.1.2 - ISA 设备

12.1.3 - 一个设备被 "识别"了, 但是dmesg里显示"not configured"

简而言之, 这说明您的内核不支持此设备, 所以您无法使用它。

PCI和很多其它类型的设备可以提供鉴别信息以便操作系统可以识别和支持。识别这个设备很简单, 但是为它提供支持有时很困难。 下面是dmesg里两个"not configured"设备的例子:

...
vendor "Intel",  unknown product 0x5201 (class network subclass ethernet, rev 0x03) at pci2 dev 9 function 1 not configured
...
"Intel EE Pro 100" rev 0x03 at pci2 dev 10 function 0 not configured
...
第一个设备(一块网卡) 有生产厂家标识但没有准确地型号。 第二块网卡是开发人员为其添加了鉴别文件标识。不管哪种情况, 这些网卡都无法工作, 被标记为"not configured", 意思就是这些卡没有驱动程序。

如果我的设备没有驱动怎么办?

12.1.4 - 列表上说"支持"我的卡, 但是它无法使用!

很遗憾, 很多生产厂家为了销售在产品上标称了型号, 但产品实际并没有达到该型号的技术标准。因此, 你可能购买了一款与某平台下设备支持列表中同名或同型号的设备, 但实际上它与支持列表中的设备完全是不同的, 可能无法在OpenBSD下工作。例如, 很多早期的无线网卡基于Prism2芯片组, 使用(wi(4))
驱动程序, 但是, 当后来出现更廉价的芯片组后, 许多生产商在他们的产品上使用了不开放驱动源代码的新的廉价芯片组, 但是并没有改变他们的产品型号。计算机设备里远非仅无线网卡存在这种现象。

12.1.5 - 支持软件调制解调器(WinModems)吗?

WinModem是一种廉价的调制解调器, 它依赖处理器来完成"真正"调制解调器应处理的工作, 因为存在各种各样不兼容或无说明文档的WinModem芯片, 所以OpenBSD目前或今后都不支持WinModems。

12.1.6 - 我的Adaptec RAID支持(aac)出什么问题了?

Adaptec公司已拒绝提供其FSA-based (aac(4)) RAID控制器有效和精确的文档, 因为这些控制器看起来总是出现问题, 所以这个文档对我们提供一个有效的驱动是很关键的。因原驱动很不可靠, 所以已经在标准内核GENERIC中已经删除了。

 

我自己可以编译支持aac(4)的内核, 对吧?

当然, 但是您不明白前面说的"不可靠"的含义吗? 这不是指一次"试验"的特例, 而是说这个驱动程序是一个众所周知有缺陷的驱动。也许它可能在某些硬件上使用, 但是我们不推荐您把自己的数据赌在它身上。

12.1.7 - 我的ami(4)卡只支持一个逻辑磁盘!

这是一个已知的ami(4)的bug, 你如果在某些控制器上使用一个以上的逻辑磁盘可能会造成数据损坏, 当你的计算机里有这些控制器时, OpenBSD将会限制你只能使用一个逻辑磁盘, 所以在你的dmesg里会产生像这样的一条信息:
ami0: FW A.04.03, BIOS vA.04.03, 4MB RAM
ami0: 3 channels, 16 targets, 2 logical drives
ami0: firmware buggy, limiting access to first logical disk
scsibus0 at ami0: 1 targets

12.2 - DEC Alpha

[无]

12.3 - AMD 64

12.3.1 - 我能在我的Intel P4上运行OpenBSD/amd64吗?

对很多最近的处理器来说, 答案是"可以"。遗憾的是, 要搞清哪些类型的Intel处理器支持或不支持amd64指令集是困难的。自己尝试一下可否正常工作是比较简单的办法。

12.3.2 - 我能在OpenBSD/amd64上运行i386的二进制文件吗?

不行。

OpenBSD/amd64 是一个完全与 OpenBSD/i386 分离的平台, 因此, 不提供二进制的兼容性, 开发者对跨平台的二进制兼容也没有多大兴趣。

注意 OpenBSD/amd64 和 OpenBSD/i386 的boot loaders会引导各自的内核, 然而, 当你用"另一种"平台重新安装系统时, 它必须做一个完全的"擦除和重新安装"操作——留下的"前一个"平台安装的二进制文件可能会让你觉得讨厌。

12.3.3 - OpenBSD/amd64可以在支持的处理器上平稳运行吗?

并非总是。

这里有一些用户更愿意选择使用OpenBSD/i386而不是OpenBSD/amd64的原因, 尽管他们的硬件支持amd64的指令:

12.4 - 基于ARM的应用程序

[没有]

12.5 - HP300

[没有]

12.6 - HPPA

[没有]

12.7 - i386

12.7.1 - ISA 网卡

因为OpenBSD在老机器上运行的很好, 所以用户可能会在OpenBSD系统上使用ISA网卡。相比PCI, 使用ISA硬件需要更多的硬件知识和配置。通常你不能就把这块卡插入计算机内就希望它可以神奇的工作了。在很多机器里, 如果你的ISA设备不是工作在即插即用模式, 你必须在BIOS里面为它预留资源。

3Com 3C509B ep(4)

这是一款表现极佳的ISA网卡, 由ep (4)驱动支持。'B' 版本和非 'B' 版本可以从卡的标识上区别也可以从卡上的"主"芯片加以区别 ( 'B' 版本边上的主芯片厚度大约是2.5cm, 而老版本则是2.0cm), 在加载一个或两个网卡的系统上提供了良好的性能。3C509B 芯片配置为PNP模式, 遗憾的是它并不遵守标准, 并且导致了OpenBSD的isapnp(4) 支持上出现问题。 这个适配器先以非PNP设备加载, 然后再使用PNP模式, 这导致在dmesg里面有一个额外的网卡输出信息。这种情况可能可以正常工作, 也可能引起其它的问题。我们在这里强烈推荐不使用PNP模式并且在配置前用3Com 基于DOS的配置工具手动配制成非冲突的设定。

ep(4) 驱动将在任何硬件组合的情况下启动这块卡而不会与系统中的其余设备冲突。

如果你的系统上游多块3C509卡, 推荐您在卡脊上标注上该卡的MAC地址, 然后用dmesg鉴别它们。

注意3C509, 3C905和3C590经常混淆。3C509是一块10Mbps的ISA卡, 3C905和3C590是PCI卡。

NE2000

最初的NE2000网卡是20世纪80年代中期由Novell公司开发出来的。从那以后, 很多生产商生产的网卡取很相似, 一般被称为NE2000兼容卡或克隆卡。这些兼容卡的性能有很大的区别。有些老的NE2000兼容卡性能非常好, 而很多目前的NE2000兼容卡性能却很差。在OpenBSD里通过 ne(4) 支持NE2000兼容卡。

如果打开ISAPNP模式, OpenBSD可以很好的驱动具有ISAPNP功能的NE2000兼容卡, 其它的卡将不得不采用跳线或或基于DOS的配置工具。很遗憾, 因为最初的NE2000网卡没有软件配置或ISAPNP支持, 因为没有标准——你需要使用随卡附带的原始驱动程序, 这往往不好找了。

在哦OpenBSD的标准内核GENERIC里包含了ne(4) 驱动, 它支持三款ISA NE2000网卡的配置:

     ne0:  port 0x240 irq 9
     ne1:  port 0x300 irq 10
     ne2:  port 0x280 irq 9
如果这些设定不能让你的卡工作, 你可以用 用户内核配置(UKC) 或通过 构建定制内核 来调整设定。

注意: ne(4) 驱动 "很笨" -- 只探测 I/O 端口, 如果上述任何I/O地址被探测到, ne(4)将假设该网卡使用上面相应的irq值。 dmesg(8) 并不能反映ISA ne(4)驱动的该网卡的真实IRQ, 如果这并非你网卡的设定的实际IRQ, 你的网卡将不会正常工作。

还有一些非ISA网卡使用 ne(4) 驱动 —— 例如:PCI 和 PCMCIA 的ne(4)卡, 上面的注意事项与这些卡无关, 因为这些设备将会自动配置。

12.7.2 - OpenBSD 在我的80386/80386SX/80486SX系统上无法运行!

80386SX/DX

对 80386DX 和 80386SX 处理器的支持从OpenBSD 4.2开始已经放弃了。另外因限于80386芯片, 这些系统已经太慢并且没有足够的内存和所需的FPU来运行OpenBSD了。

80486SX

80486SX 芯片原来是一个"廉价"版本的80486, 它缺乏OpenBSD所需的硬件浮点支持(就像80386)。幸运的是所有的80486DX芯片全没问题, 并且对大多数老系统来说升级也很简单。

80486DX 和更新一些的芯片组可以很好地运行OpenBSD。

12.7.3 - dmesg显示多个设备共享一个中断(IRQ)!

这完全可以接受, 事实上, 甚至希望PCI设备这样, 这是PCI总线的一个设计特点。有些人可能会说共享中断请求(IRQs)不好, 然而, 他们若非混淆了PCI总线和ISA总线的情况(ISA设备不允许共享IRQ), 就是依据已经过时的使用硬件或软件的错误经验。

ISA 设备不能共享IRQ, 如果你发现你的ISA设备共享了IRQ, 你必须纠正这个错误。

12.7.4 - 我的键盘/鼠标被锁住了(或像疯了似的)!

这种情况经常发生在使用一个 "切换盒" (有时被称为 "KVM 切换器") 将多台计算机连接到一个键盘(K), 一台监视器(V), 和一个鼠标(M)上。 你可以尝试使用不同品牌和设计的KVM切换器, 但是OpenBSD似乎比其他操作系统对鼠标切换更敏感。这个问题通常只是因为切换鼠标造成的, 解决方法也很简单: 不在计算机上连接鼠标。如果您需要使用鼠标, 一个最简单的解决方法是"每台计算机使用一个鼠标", 仅切换键盘和监视器。 你也许发现了使用一个 PS/2 Mouse 连接 USB 端口适配器 (这样OpenBSD会认为是一个USB鼠标) 将会解决这个问题。如果您只是想从控制台访问计算机, 你可能希望考虑使用一个串口控制台替换原方案。

12.7.5 - 我的Soekris性能很差

Soekris计算机如此好——低功耗, 、小巧、物美价廉的PC级系统, 以致许多OpenBSD用户都很喜欢它。但是, 别忘了它的处理器、网卡和系统上的其它设备全是为了考虑低功耗而非性能来选择的。尽管它可以舒服地运行很多的应用程序, 但它并非高性能的计算机。

12.7.6 - 我在使用CF设备时系统显示"missing interrupt"错误

在一些 CF 系统中, 例如早期的Soekris 4801系统和一些 CF 适配器, DMA支持并没有正确地运行, 所以你可能看见如下信息:
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x20  
这时, 你需要在 wd(4) 驱动中禁用DMA以避免此问题。这可以通过使用 ukc 安装, 然后用 config(8) 使其永久生效:
ukc> change wd
 42 wd* at wdc*|pciide* channel -1 flags 0x0
change [n] y
channel [-1] ? 
flags [0] ? 0x0ff0
 42 wd* changed
 42 wd* at wdc*|pciide* channel -1 flags 0xff0
ukc> quit

12.8 - Landisk

[没有]

12.9 - Luna88k

[没有]

12.10 - Mac68k

[没有]

12.11 - MacPPC

12.11.1 - 我的 bm(4) 网络适配器不工作!

一些MacPPC系统(包括早期的iMacs)使用的 BMAC 芯片由 bm 驱动提供支持, 但是在这些系统上会出问题。推荐您的系统这种情况下使用一个 usb 网卡。

12.12 - MVME68k

[没有]

12.13 - MVME88k

[没有]

12.14 - SGI

[没有]

12.15 - SPARC

[没有]

12.16 - UltraSPARC (sparc64)

12.16.1 - 我的UltraSPARC不能从软盘镜像启动

只有 Ultra 1/1e 和 Ultra 2 可以从软盘上启动任何操作系统。请您使用 CD-ROM, Miniroot, 或 network boot 替代软盘安装。

12.16.2 - 我在用disklabel分区时系统显示"partition extends past end of unit"

在 sparc 和 sparc64 系统上, 当单独的disklabel条目大于8G时, BSD的disklabel无法描述一个大于8GB的磁盘几何。

您每次运行 disklabel(8) 时, 它会检查disklabel条目是否与它认为正确的驱动器几何有冲突, 并且因为它看见了截断的几何, 所以它发出警告并阻止您编辑8G空间之外的条目, 这时除非你告诉它使用真正的磁盘几何。你可以使用disklabel(8)命令行编辑器的 'g'命令告诉它——"[d]isk geometry":

# disklabel -E wd0
# Inside MBR partition 3: type A6 start 63 size 17912412
   [...]
Initial label editor (enter '?' for help at any prompt)
> g
[d]isk, [b]ios, or [u]ser geometry: [d] d
> w
> q

你还会看到警告信息, 但你可以按自己的想法配置和使用磁盘。 一个妥善的解决的方案必须兼容目前已经使用的系统, 加上兼容Solaris运行在8G以上的磁盘上, 这个方案还在探讨阶段。

12.17 - DEC VAX

12.17.1 - 我可以使用SIMH VAX模拟器吗?

可以!

SIMH VAX 模拟器可以用来有效地模拟一个真实的VAX。相关资料请参看 OpenBSD/vax on SIMH

12.18 - Sharp Zaurus

12.18.1 - USB设备工作不正常

Zaurus对USB端口的支持非常有限, 所以许多USB设备直接连在它上面将无法工作。 你需要使用一个USB集线器来运行这些设备。

[索引] [第十一章 - X Window 系统] [第十三章 - 多媒体]


[back] www@openbsd.org
$OpenBSD: faq12.html, v 1.96 2009/01/30 22:25:57 sthen Exp $