Should we really support _THAT_ hardware?
Wednesday Apr 13, 2005
You're better off not knowing how laws and sausages are made... and certain P.C. hardware. For a good part of my career, I've used Sun, DEC and SGI hardware at work and Apples/Amigas at home so I avoided some of the hardware mess in the P.C. world. I didn't pay much attention when my brother told me to look for a good audio card. It's a DAC for goodness sake, any grade school kid can put together a reasonably good sounding 8 bit audio frequency DAC. Well, my brother was right, quite a few of the sound cards out there were terrible. I don't know how they made them sound so bad. When Linux moved to the 2.6 kernel, someone noticed that a certain manufacturer's CDROM drives were ceasing to function. It seems that the vendor (name witheld to protect the silly), decided to implement a standard "reset bus" command as "upload firmware." Somehow they hacked/kludged MS Windows to never reset bus when this device was installed because this basic bus command would make the drive permanently non functional. More recently I encountered a vendor who used another vendor's PCI vendor code in one of their popular devices. Most linux kernels kludge around this by saying "if Vendor=X AND Device=Y then run code for vendor Z's (the imposter's) Device." This worked O.K. because the true vendor X never used device code Y. Unfortunately, vendor Q recently decided to use Vendor X's vendor code and exactly the same device code as vendor Z. So the Kernel has no way of knowing which of these devices is plugged into the PCI bus. The vendor supplies a "driver" disk which kludges Windows to do the right thing but if anyone ever plugs one of these devices and it's doppelganger into the PCI bus, there is no way any O.S. can sort out what goes where.
Solaris 10 is making great strides in X86 hardware support and in some cases (SATA) is beyond the most popular enterprise linux distributions. My question is, will Solaris X86 have to support the even the most broken "Wintel" hardware in order to gain market share, or do enterprise customers understand the importance of reliable standards-complient hardware?
Correction: The command which the CD drive manufacturer implemented as "UPLOAD FIRMWARE" was "FLUSH CACHE", not "Reset Bus."











Posted by PatrickG on April 14, 2005 at 03:12 AM GMT+00:00 #
The big goal for Solaris x86 driver support should be to cover:
- the common OEM hardware shipped by the Tier 1 vendors, who hopefully don't cut too many corners because unstable hardware == support calls == no profit. This gets you a base of decent priced machines for office environments.
- hardware that gets built into Tier 2 beige boxes targeted towards enthusiasts and performance freaks, because that way you'll make developers want to use Solaris x86 as a desktop OS. [HINT: Ethernet support for the most common AMD64 chipset would be a good start! And what about supporting 3D acceleration for the Quadro cards that get shipped in Sun's own Opteron boxes?]
You should actively AVOID writing drivers for the kind of hardware that ends up in Tier 2 beige boxes targeted at the "value" end of the market. I won't name vendors because this is a matter of my opinion, but a scan of the Linux config entries for "workaround this vendor's buggy IDE driver" will give some hints. Fortunately some of these companies are defunct now. Writing drivers for crappy hardware is just working against Mr Darwin.
Posted by Jason Ozolins on April 14, 2005 at 03:49 AM GMT+00:00 #
Posted by Ivan Wang on April 14, 2005 at 05:36 AM GMT+00:00 #
Posted by bnitz on April 14, 2005 at 10:51 AM GMT+00:00 #