Hardware compatibility wiki

What I am proposing is that a wiki could be created to hold hardware compatibility information with haiku. It could be something similar to this,

  • http://wiki.archlinux.org/index.php/Category:Laptops_(English)
Or even better, a page which displays information similar to this,
  • http://appdb.winehq.org/objectManager.php?sClass=application&iId=5934
would also be really cool. For our specific purposes, the information we would want might be: can it boot at all, does it boot from usb, if wifi is supported, if there is ethernet card support, and what version of haiku it was tested with.

I think if we started creating a database of information like this, we could determine which devices work best with haiku in its existing form. That way, should somebody like to purchase hardware to use solely with haiku, it wouldn’t be so much of a mystery as to what they should get.

Thanks Karl. You’re a superstar! Not hard to find supported devices because almost all drivers are specific to certain hardware. Thanks for taking time to do the work. Make sure driver is present in Haiku image too because some are not.

FreeBSD network drivers should list supported hardware too. One way to double check what is supported with BSD network drivers is to compare to hardware list from FreeBSD. Find driver & check what it supports here (this is for version 7.3 drivers):

http://www.freebsd.org/releases/7.3R/hardware.html#ETHERNET

You have to check which FreeBSD version of the driver is being used in Haiku because could support more or less hardware.

Also, the driver may state what it supports. I will show using rtl81xx

Supported hardware on Line 37 (very important to note this down & verify)
http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c#L35

Actual hardware list (notice some were commented out to not conflict with other Haiku drivers - grayed out)
http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_re.c#L165

The device IDs are kept in the header files and use the device name (listed in above link) to reference them:
http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/kernel/drivers/network/rtl81xx/pci/if_rlreg.h#L903

http://www.haikuware.com/hardware/

yep, it’s all about people actually using it and submitting data though. the database there is ~3 years old and has only 190 items in it.

Yes, very nice Karl. The pictures are a nice touch but would prefer listdev info for hardware devices instead (more useful overall). With listdev info can verify if a driver is supposed to support certain hardware. Also, Haiku revision should always be listed because new drivers get added to the OS over time.

Someone (maybe me?) should take some time and quickly go through the drivers in Haiku and state what hardware is supported. This should give a general idea of what should work (has drivers). I may do this later on or maybe someone else wants to do it.

ya tonestone, would be really nice if you could go through and add supported devices there.

users are free to add as much information as they want. there is a field for the haiku version, although, I am often guilty of just putting preR1. I do put a tip to add the contents of listdev; whether people add it though, is up to them. there’s also a file attachment facility for things like the syslog, or driver hacks.

i also wanted to put cool supported/unsupported graphic logos there, but am not great with php and css styling (as you can see), if anyone wants to help make it more pretty, give me a ring.

I can look through the driver code and state what hardware (lan, audio & video) has drivers for it. I will look to start in next few days. Next week will be busy for me.

Only issue is that some of these drivers list lots and lots of device ids. Not sure if I should list device ids or just general supported hardware (ie: nvidia driver: tnt1 to Geforce 7950). Showing device ids are very helpful but the list will go very long vertically. Reason why I have not done this type of list sooner. I expect, without device ids about 1/2 page long and with, about 3 pages (or more) long.

example of nvidia device ids (to show how long):
http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/kernel/drivers/graphics/nvidia/driver.c#L92

it would be a major pain to individually add each of those items; then again, that’s what people look for. a single listing per piece of hardware, as to whether their hardware is supported or not, with the IDs.

The work would be about the same for me either way. I will do a General listing, just with the supported hardware models (by name) & manufacturer(s). Just because I can do it more condensed, close to 1/2 page, and should be enough to let people know what drivers are available to them in Haiku.

The ID listing is nice to have too but you see how long it gets. Just for the nvidia driver it looks like maybe a page long. Some other drivers will have the same (ie: Radeon). It could turn into many, many pages if I include IDs.

Video drivers do not matter much because people can always use VESA mode. Network & Audio are the more important ones but I can do them all just to be complete.

Yes I guess the IDs aren’t too important to the average user. I assume most users will search their hardware model name, check if supported, and be done.

I have finished with the graphics drivers. The audio should be kinda quick to do too. The network has 35 drivers and will take some time to go through.

These are the graphics drivers available in Haiku r36031 image.

NOTE: Just because a driver is supposed to support certain hardware (listed below) does not always mean it will. Example, some of the listed Radeon X models do not work with radeon driver. Some listed Intel chipsets do not work with intel_extreme driver.

GRAPHICS

ati: (all models of) 3D RAGE, 3D RAGE2, RAGE128, RAGE128 PRO

intel_extreme: i830GM, i845G, i865G, i855G, i910, i915, i915G, i915GM, i945G, i945GM, i945GME, i965G, i965GM, G33G, Q35G, Q33G, GM45

matrox: G450AGP (G550AGP), G400AGP, G200PCI, G200AGP, G100PCI, G100AGP, MGA 2164 PCI Millennium 2, MGA 2164 AGP Millennium 2, MGA 2064 PCI Millennium 1

neomagic: MagicGraph 128, MagicGraph 128V, MagicGraph 128ZV, MagicGraph 128ZV+, MagicGraph 128XD, MagicMedia 256AV, MagicMedia 256AV+, MagicMedia 256ZX, MagicMedia 256XL+

nvidia: TNT1 to Geforce 7950

radeon: Radeon Original (r100) to Radeon X850 (r481)

s3: (all models of) Trio64, Virge, Trio 3D, Savage3D, ProSavage, Savage, SuperSavage, Twister, ProSavage, Savage2000

vesa: 99% of all video cards out there will work; DEFAULT for video cards without graphics driver

Nice :slight_smile:

So what should be done?

e.g: radeon: Radeon Original (r100) to Radeon X850 (r481)

Add each individual card into its own listing? Or, make a listing like ‘Radeon Family’, and all the cards in the family that are supported under one listing?

P.S, with the one listing/family, it may make the database look sparse, that Haiku doesn’t support much :wink:

We need some Haiku monkeys to input data.

Off your hardware page, http://haikuware.com/hardware , you may want to create a link to a general driver page OR have 3 separate links to driver pages (graphics drivers, audio drivers, network drivers).

Using link(s) to driver page(s) will:

  1. Make the work much easier for you (simple & fast)
  2. You can just copy what I have and format it to your liking. Sorta like a supported driver matrix page.
  3. Just because a driver is supposed to support certain hardware it may not (if outdated or buggy). This leaves the hardware matrix where people can report their actual experience with certain hardware.

People can then click driver link(s) off hardware page to get to the driver page(s) to see if their hardware will be supported and by what driver.

I took shortcut for Radeon, Geforce, etc., because too many models to list in-between. Would have made the list very long. People should know where their model fits in hopefully.

For network, I am looking at taking a shortcut and not list supported hardware. Instead, I may list driver, say WIFI or Wired, BSD or Native. 35 network drivers is lots to look through and not sure if I want to scan through all that code. At least not presently but maybe later on. I will do audio over next few days.

Hmm easier isn’t always better.

I think that each piece of hardware should have its own entry. If Haiku lists in it’s source that model ‘x’ is supported; then it should be supported. If not, it’s a bug. If there’s an individual listing for that piece of hardware, users can leave comments and it can be changed to not supported…

It’s a lot of work, but once it’s done, it’s done.

I could set something up, like what you mention in the meantime.

I have suggested something similar for ReactOS without success…

BTW, I believe that the correct way to implement it is to submit the whole machine config to the HW database INSIDE Haiku directly.

Of course we do need a SIS (System Information Software) first.

Hope that inspires.

I quickly looked at DVB & found:
http://dev.haiku-os.org/browser/haiku/trunk/src/add-ons/kernel/drivers/dvb/cx23882/driver.c#L57

{ 0x14f1, 0x8802, 0x0070, 0x9002, "Hauppauge WinTV-NOVA-T model 928" },

I have not looked if dvb driver is included in Haiku image.

AUDIO

auich: AC97 - Auich Driver for Intel (0x8086) Southbridge audio, with some SIS, Nvidia & AMD support too

INTEL VENDOR (0x8086)
82443MX (0x7195), 82801AA (0x2415), 82801AB (0x2425), 82801BA (0x2445), 82801CA (0x2485), 82801DB (0x24c5), 82801EB (0x24d5), 82801FB (0x266e), 82801GB (0x27de), 6300ESB (0x25a6)

SIS VENDOR (0x1039)
SI7012 (0x7012)

NVIDIA VENDOR (0x10de)
nForce (0x01b1), nForce2 (0x006a), nForce2_400 (0x008a), nForce3 (0x00da), nForce3_250 (0x00ea), CK804 (0x0059), MCP51 (0x026b), MCP04 (0x003a)

AMD VENDOR (0x1022)
AMD8111 (0x764d), AMD768 (0x7445)

auvia: AC97 - Auvia Driver for VIA (0x1106) VT82xx Southbridge audio

82C686 (0x3058) /* Via Technologies VT82C686 AC97 /
8233_AC97 (0x3059) /
Via Technologies VT8233 AC97 */

8233 REVISIONS SUPPORTED:
8233_AC97_REV_8233_10 0x10 /* rev 10 */
8233_AC97_REV_8233C 0x20
8233_AC97_REV_8233 0x30
8233_AC97_REV_8233A 0x40
8233_AC97_REV_8235 0x50
8233_AC97_REV_8237 0x60 //this is the 5.1 Card in the new Athlon64 boards

echo3g: Gina3G, Layla3G

emuxki: Creative Labs (0x1102) SoundBlaster, Audigy 1 & 2 driver

SBLIVE (0x0002) /* Creative Labs SoundBlaster Live /
AUDIGY (0x0004) /
Creative Labs Audigy and Audigy 2 /
AUDIGY2 (0x0008) /
Creative Labs Audigy 2 Value */

hda: High Definition Audio Driver - Supports ATI (0x1002), Intel (0x8086) & Nvidia (0x10de)

Codecs Supported:
ANALOG DEVICES (0x11d4), CIRRUS LOGIC (0x1013), CONEXANT (0x14f1), REALTEK (0x10ec), SIGMATEL (0x8384)

Audio section finished. I included vendor & device IDs this time. I might do the same for video too, except for Geforce & ATI which list too many cards.

For hda, I could not see any VIA or AMD support - vendor IDs not listed anywhere & not defined (maybe not needed? because other 3 were used for snooping(?)). Can anyone with VIA or AMD chipset hda confirm if working and post listdev for audio?

I may not get to networking for 2 or 3 months but I may do something simple to give general idea sooner than that.

Those that do not have audio device listed in Media preferences should install and try with Open Sound System (OSS) for Haiku.

EDITED VERSION 1

@ forart.it
Yes, I believe it is good to have a driver matrix to let users know what hardware should work with an OS. Not sure why OSes do not do this. Otherwise users have to guess what hardware is properly supported by the OS (or scan the code or ask).

Submitting hardware information to Haiku would be easy to do and can be handled with a script.
Install Haiku, start (or have user run) script, run listdev (output to text file, zipped or unzipped), wait till connected to internet to send back, delete script (to avoid multiple submissions).

Listdev would give all the hardware info for a computer. Then it could be organized, sorted and reviewed but lots of work to look through hardware info for everyone. Better to just support popular (widely available) hardware which is what developers will do with new OSes (or select specific hardware and support that).

[quote=tonestone57]Audio section finished. I included vendor & device IDs this time. I might do the same for video too, except for Geforce & ATI which list too many cards
[/quote]

So, some years ago now, Haiku was supposed to get this “new device manager-based driver model” which was kinda like a primitive version of the way Windows 95 device management works. In that type of system the claims by a driver to support particular hardware are made explicit, rather than being implied by some nasty “probe” function deep in the driver source code.

This would have made your project a lot easier, but in reality the “new device manager-based driver model” has not replaced the BeOS-like behaviour even in many drivers that are part of the Haiku project itself. So, you’re left rummaging through the source code trying to figure out whether this or that hard-coded numeric constant is a PCI vendor ID or whatever.