[OpenBSD]

[FAQ Index] [To Section 11 - The X Window System] [To Section 13 - Multimedia]

12 - Hardware and Platform-Specific Questions


Table of Contents


12.1 - General hardware notes

12.1.1 - PCI devices

12.1.2 - ISA devices

12.1.3 - My device is "recognized" but says "not configured" in dmesg

In short, it means your device is not supported by the kernel you are using, so you will not be able to use it.

PCI and many other types of devices offer identifying information so that the OS can properly recognize and support devices. Adding recognition is easy, adding support is often not. Here is part of a dmesg with two examples of "not configured" devices:

...
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
...
The first one (a network adapter) had its vendor code identified and the general type of card was determined, but not the precise model of the card. The second example was another network adapter, this one a developer had seen and had entered into the identification file that is used to identify the card. In both cases, however, the cards will be non-functional, as both are shown as "not configured", meaning no driver has attached to the card.

What can I do about a not configured device?

12.1.4 - I have a card listed as "supported", but it doesn't work!

Unfortunately, many manufacturers use product model numbers to indicate marketplace position, rather than the technical nature of a product. For this reason, you may buy a product with the same name or model number as a product listed in the platform pages, but end up with a totally different product that may not work with OpenBSD. For example, many early wireless network adapters were based on the Prism2 chip set, using the (wi(4)) driver, but later, when lower-cost chips became available, many manufacturers changed their product to use chips for which no open source drivers exist, but never changed their model numbers. Wireless network adapters, unfortunately, are far from the only example of this.

12.1.5 - Are WinModems supported?

WinModems are low-cost modems which rely on the processor to do much of the signal processing normally done in hardware in a "real" modem. Due to the variety of incompatible and typically undocumented WinModem chips, there is no support for WinModems in OpenBSD, and this is not likely to change.

12.1.6 - What happened to the Adaptec RAID support (aac)?

Adaptec has refused to provide useful and accurate documentation about their FSA-based (aac(4)) RAID controllers. As these RAID controllers seem to be very buggy, this documentation is critical for a useful driver. Since this driver was so unreliable, it was removed from the GENERIC kernel.

I can compile my own kernel with aac(4) support, right?

Sure. But what part of "unreliable" did you fail to understand? This isn't an "experimental" feature, this is a known-flawed driver. Maybe it works with some variations of hardware sufficiently well to be usable, but we don't recommend betting your data on it.

12.1.7 - My ami(4) card will only support one logical disk!

There is a known bug with ami(4) which will cause data corruption if you use more than one volume on some controllers. On controllers with this issue, OpenBSD will limit you to one logical disk, resulting in a message in your dmesg that looks like:
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.1.8 - How do I activate my crypto accelerator card?

Supported crypto accelerator hardware, such as the hifn(4) based cards will "just work" when installed in an OpenBSD system. No activation or other configuration is needed.

The overhead of talking to one of these devices will sometimes negate much or all of the benefit of offloading the processor of the crypto tasks. Your results may vary widely depending on the task you have to accomplish.

12.2 - DEC Alpha

[nothing yet]

12.3 - AMD 64

12.3.1 - Can I run OpenBSD/amd64 on my Intel P4 or AMD Sempron?

In the case of many recent processors, the answer is "yes". Unfortunately, trying to find out which processor variations do and which do not properly support the amd64 instruction set is difficult. It is usually easier to just try it and see if it works.

Processors that do not support the amd64 instruction set will fail very early when booting the kernel; there will be no question about "does it work?" in your mind.

12.3.2 - Can I run my i386 binary on OpenBSD/amd64?

No.

OpenBSD/amd64 is a totally separate platform from OpenBSD/i386, and at this point, no binary compatibility is provided. As OpenBSD encourages open source applications, there is not much interest in binary compatibility across platforms with developers.

Note that the OpenBSD/amd64 and OpenBSD/i386 boot loaders will load each other's kernels, making it easier to reinstall a system with the "other" platform. However, it has to be a complete "wipe and reinstall" operation -- left-over binaries from the "previous" installation will most likely make your life unpleasant.

12.3.3 - Is it always better to run OpenBSD/amd64 on processors that support it?

Not always.

There are a number of reasons one may desire to use OpenBSD/i386 over OpenBSD/amd64, even on hardware that supports amd64 code:

12.4 - ARM-based appliances

[nothing yet]

12.5 - ARMv7-based systems (BeagleBoard, PandaBoard, SABRE Lite, Nitrogen6x)

Building from source: At this moment, the kernel has to be in the FAT boot partition, not the root of the file system like other OpenBSD platforms, and this kernel must be in a format required by the U-Boot boot loader. So, after building your kernel, you must go through some special steps:

config GENERIC-OMAP # for Beagle; others may use GENERIC-IMX
cd ../compile/GENERIC-OMAP
make clean; make
make bsd.umg            # Extra steps start here!
mount /dev/sd0i /mnt    # assuming your FAT partition is 'i'
cp bsd.umg /mnt

No real time clock: Many of the armv7 devices do not have a battery backed real time clock. For this reason, using the "-s" option of OpenNTPD may be desirable.

Distribution kernels must be converted before use: The distribution kernels are standard kernels, which can be used for the -N option of ps(1), vmstat(8), dmesg(8), iostat(8) and similar applications, but can not be booted directly by the U-Boot bootloader used on this platform. This can be done using mkuboot(8)

Typical operation is something along these lines for OMAP/beagle:

mkuboot -a arm -o linux -e 0x80300000 -l 0x80300000 bsd bsd.umg
for i.MX6:
mkuboot -a arm -o linux -e 0x10800000 -l 0x10800000 bsd bsd.umg
where bsd is the name of the kernel you are converting.

U-Boot tricks:

12.7 - HPPA

[nothing yet]

12.8 - i386

12.8.1 - ISA NICs

As OpenBSD runs well on older hardware, users often will end up using ISA NICs on OpenBSD systems. ISA hardware requires much more configuration and understanding than does PCI hardware. In general, you can't just stuff the card in the computer and expect it to magically work. In many machines, if your ISA device is not in a "Plug 'n' Play" (PNP) mode, you must reserve the resources the card uses in the system's BIOS.

3Com 3C509B ep(4)

This is an excellent performing (relatively speaking) ISA NIC, supported by the ep(4) driver. The 'B' version can be distinguished from the non-B version by labeling on the card and by the larger "main" chip on the board (approximately 2.5cm on a side for the 'B' version, vs. 2cm on a side on the older version), and will provide better performance on a loaded or dual network card system. The 3C509B ships configured in a PNP mode, which unfortunately does not comply with standards, and causes problems in OpenBSD's isapnp(4) support. The adapter is picked up first as a non-PNP device, then again after the PNP support comes on-line, resulting in an extra NIC showing in the dmesg. This may work fine, or it may cause other problems. It is highly recommended that the 3C509B cards have PNP mode disabled and manually configured to non-conflicting settings using the 3Com DOS-based configuration utilities before configuration.

The ep(4) driver will pick the cards up at any hardware combination that does not conflict with other devices in the system.

If you have multiple 3C509 cards in your system, it is recommended that you label the cards' spine with the MAC address, and use the dmesg to identify which is which.

Note that the 3C509, the 3C905 and the 3C590 are often confused. The 3C509 is a 10Mbps ISA card, the 3C905 and 3C590 are PCI cards.

NE2000

The original NE2000 NIC was developed in the mid-1980s by Novell. Since then, many manufacturers have produced cards that are very similar, which are generally called NE2000-compatibles, or clones. Performance of these clone cards varies greatly. While some older NE2000-compatible cards performed very well, many of the later ones perform poorly. NE2000-compatibles are supported by the ne(4) driver in OpenBSD.

OpenBSD will handle some ISAPNP-capable NE2000-compatible cards well if the ISAPNP mode is turned on. Other cards will have to be set using either jumpers or a DOS-based configuration utility. Unfortunately, as the original NE2000 cards did not have software configuration or ISAPNP support, there are no standards for this -- you need the utility that will have been originally supplied with your specific card. This can often be difficult to obtain.

The ne(4) driver supports three configurations of the ISA NE2000 card in the GENERIC OpenBSD kernel:

     ne0:  port 0x240 irq 9
     ne1:  port 0x300 irq 10
     ne2:  port 0x280 irq 9
If these settings are not acceptable, you can adjust them using User Kernel Configuration (UKC).

Note that the ne(4) driver is fairly "dumb" -- only the I/O port is probed, if any of the above I/O addresses is detected, the corresponding IRQ is assumed. dmesg(8) will not reflect the actual IRQ of the adapter in the case of ISA ne(4) drivers. If this is not the actual IRQ your card is set to, it will not work.

Note that there are non-ISA cards that use the ne(4) driver -- PCI and PCMCIA ne(4) cards exist. These notes do not apply to them, these devices are auto-configuring.

12.8.2 - OpenBSD won't work on my 80386/80386SX/80486SX system!

80386SX/DX

Support for the 80386DX and 80386SX processors was dropped beginning with OpenBSD 4.2. In addition to limitations of the 80386 chip, the systems are just too slow and rarely had enough RAM and the required FPU to run OpenBSD.

80486SX

The 80486SX chip was a "low-cost" version of the 80486, which, like the 80386, lacked the hardware floating point support OpenBSD requires. Fortunately, full 80486DX chips are fairly available, and is an easy upgrade in most systems.

The 80486DX and newer chips run OpenBSD fine.

12.8.3 - My dmesg shows multiple devices sharing the same Interrupt (IRQ)!

This is entirely acceptable, and in fact, even desirable for PCI devices. This is a design feature of the PCI bus. Some people will say that sharing interrupt requests (IRQs) is bad, however they are either confusing the situation with the ISA bus (where IRQ sharing is not permitted), or past experience with broken hardware or software.

ISA devices can not share IRQs. If you find ISA devices sharing IRQs, you must correct this problem.

12.8.4 - My keyboard/mouse keeps locking up (or goes crazy)!

This is most often seen when using a "switch box" (sometimes called a "KVM switch") to attach multiple computers to one keyboard, monitor and mouse. You can experiment with different brand and design switch boxes, but OpenBSD seems to be more sensitive to switching the mouse than some other operating systems. The problem is usually just the switching of the mouse. If you are not using the mouse, the solution is simple: don't attach the mouse cable to the computer. If you are using the mouse, an easy solution is "one mouse per computer", and switch just the keyboard and monitor. You may find using a PS/2 Mouse -> USB port adapter (so OpenBSD sees a USB mouse) will work around this problem. If you just want console access to the machine, you may wish to consider using a serial console instead.

12.8.5 - My Soekris/Alix/Lanner performs poorly

These machines are quiet, low-power, small and modest cost PC class systems, and many OpenBSD users are quite pleased with them. However, it must be remembered the processors, NICs, and other devices on the system are all chosen for low power consumption, not performance. While they are suitable for many applications, they are not high performance machines compared to contemporary full-feature machines.

12.8.6 - I get "missing interrupt" errors on my CF device

With some CF systems, such as early Soekris 4801 systems and some CF adapters, the DMA support is not properly wired up, so you might see messages such as:
pciide0:0:0: bus-master DMA error: missing interrupt, status=0x20
In these cases, you will need to disable DMA in the wd(4) driver to avoid this problem. This can be done using ukc to install, then config(8) to change it permanently:
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.7 - Is this really new CPU supported?

The issue of support is rarely the CPU itself, it is almost always the surrounding and supporting hardware.

Most likely, yes, the latest CPU is supported just fine. The surrounding support hardware may not work if it is significantly different than earlier versions. If you have problems with new hardware, make sure you try a snapshot before making a bug report.

12.9 - Landisk

[nothing yet]

12.10 - Luna88k

[nothing yet]

12.11 - MacPPC

12.11.1 - My bm(4) network adapter doesn't work!

The bm driver, supporting the BMAC chip used on some MacPPC systems (including early iMacs) has issues. A usb NIC is recommended for these systems at this time.

12.14 - SGI

[nothing yet]

12.15 - SPARC

[nothing yet]

12.16 - UltraSPARC (sparc64)

12.16.1 - My UltraSPARC won't boot from the floppy image

Only the Ultra 1/1e and Ultra 2 can boot any OS from floppy disk. Use CD-ROM, Miniroot, or network boot to do your installation instead.

12.16.2 - I'm getting "partition extends past end of unit" messages in disklabel

On sparc and sparc64 systems, the BSD disklabel cannot describe a disk geometry larger than 8GB, while individual disklabel entries can be larger.

Every time you run disklabel(8), it performs some sanity checks of the disklabel entries against what it thinks is the correct drive geometry, and since it sees a truncated geometry, it warns and will not let you edit entries outside this 8GB area unless you tell it to use the real drive geometry. Do this using the 'g' command of the command-driven editor of disklabel(8) and tell it to use the "[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 
You will still get the warning messages, but you can configure and use your disk as desired. A proper solution would have to be compatible with existing systems already in use, plus be compatible with Solaris running on disks larger than 8GB, but this has not been worked out yet.

12.17 - DEC VAX

12.17.1 - Can I use the SIMH VAX simulator?

Yes!

The SIMH VAX simulator can be used to effectively emulate a real VAX. Instructions can be found in the OpenBSD/vax on SIMH page.

12.18 - Sharp Zaurus

12.18.1 - USB devices aren't working properly

The Zaurus has very little current available on its USB port, so many USB devices will not work if they are directly attached to it. You will need to use a powered USB hub to run these devices.


[FAQ Index] [To Section 11 - The X Window System] [To Section 13 - Multimedia]