Slashdot Log In
MoBo Manufacturer Foxconn Refuses To Support Linux
Posted by
kdawson
on Fri Jul 25, 2008 07:19 AM
from the must-be-some-good-explanation dept.
from the must-be-some-good-explanation dept.
Noodlenose notes a thread up on the Ubuntu forums, where a user is questioning the practices of hardware manufacturer Foxconn. The user describes how his new Foxconn motherboard caused his Linux install to freeze and fire off weird kernel errors. He disassembles the BIOS and concludes that a faulty DSDT table is responsible for the errors. Even though the user makes Foxconn aware of the problem, they refuse to correct it, as 'it doesn't support Linux' and is only 'Microsoft certified.' The user speculates darkly on Foxconn's motives. Read the forum, read the code, and come to your own conclusions. "I disassembled my BIOS to have a look around, and while I won't post the results here, I'll tell you what I did find. They have several different tables, a group for Windows XP and Vista, a group for 2000, a group for NT, Me, 95, 98, etc. that just errors out, and one for LINUX. The one for Linux points to a badly written table that does not correspond to the board's ACPI implementation.' The worst part is Foxconn's insistence that the product is ACPI compliant because their tables passed to Windows work, and that Microsoft gave the the magic WHQL certification."
Related Stories
Submission: Is Foxconn deliberatley sabotaging Linux? by Anonymous Coward
[+]
Technology: Foxconn Releases Test BIOS Fixing Linux Crashes 196 comments
Ryan1984 writes "Only a week after the bad press coverage regarding the Linux-related bugs in a number of motherboards released by Foxconn (which turned out to be the AMI BIOS that several board makers use), Foxconn is the first vendor out with a publicly released test patch that fixes the bulk of the problems, allowing kernel 2.6.26 to run well on the afflicted boards. The remaining issues appear to either be kernel bugs in builds earlier than 2.6.26, issues with the Intel chipset itself, or minor annoyances that Foxconn is still working to resolve. Foxconn representative Heart Zhang has posted on the Ubuntu forums (where the situation began), apologizing for the issues, thanking Foxconn customers and the community at-large for their feedback, and promising that Foxconn will take Linux support and testing seriously, going forward."
This discussion has been archived.
No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Full
Abbreviated
Hidden
Loading... please wait.
An the solution is.... (Score:5, Insightful)
Return it and buy from a manufacturer... no need to disassemble the BIOS, your time is worth more than that.
Re:An the solution is.... (Score:5, Informative)
Parent
Re:An the solution is.... (Score:5, Insightful)
Parent
Re:An the solution is.... (Score:5, Insightful)
Exactly. Vote for Linux support with your money. The problem is, there aren't nearly enough Linux users to make a dent they will notice. If it makes you feel any better, I bought a (crappy) Foxconn board once and won't be buying one again.
I beg to differ, desktop linux users != linux users.
I purchase 40-50 systems a year as a one man show hosting company, 100% of those systems MUST be able to run linux, and run it without issue. Only 4 of my computers run a GUI, and only 1 of those runs windows, and only to play games, and that machine can dual boot to linux as well.
So yes, I do vote with every dollar I spend by purchasing only linux compatible hardware, but I also am realistic and research what I buy before I buy it. Maybe that is why I have a mountain of Gigabyte, Tyan, Adaptec, 3ware and SuperMicro hardware.
Parent
Re:An the solution is.... (Score:5, Insightful)
Parent
Re:An the solution is.... (Score:5, Informative)
no need to disassemble the BIOS, your time is worth more than that.
No self-respecting hacker considers reverse engineering BIOSes a waste of time. Try more along the lines of socialising, bathing, that sort of thing.
Parent
Workaround (Score:5, Informative)
Re:Workaround (Score:5, Insightful)
Okay, so ten out of ten for Linux and Open Source, but minus several million for needing to tweak perfectly good code to compensate for deliberate sabotage by a BIOS.
Parent
Re:Workaround (Score:5, Funny)
I didn't know Zaphod Beeblebrox read slashdot.
Parent
Don't Buy Foxconn... (Score:5, Insightful)
Re:Don't Buy Foxconn... (Score:5, Insightful)
Parent
Re:Don't Buy Foxconn... (Score:5, Interesting)
Parent
Re:Don't Buy Foxconn... (Score:5, Funny)
Where do we get a list of Foxconn motherboards?
Um, did you try the internet?
Um, well, isn't this the internet?
Parent
Re:Don't Buy Foxconn... (Score:5, Insightful)
If you do not run Linux, don't buy them as well. Could be that you want to run it in 3 years time and then you are forced to buy new hardware.
Parent
Re:Don't Buy Foxconn... (Score:5, Insightful)
Parent
Re:Don't Buy Foxconn... (Score:5, Insightful)
Sure, caveat emptor. Mark it one star on Newegg. But there are huge problems with that.
Foxconn makes bits for hundreds of rebranders, so it's harder than you think to avoid it. And, whose mobo is in yeah random OEM PC?
Then there is the problem with evangelism. Joe comes to you and says "Vista sucks". You hand him a Hardy Heron disk? Or, do we ask him for a BIOS dump because Linux works with some Windows PCs, but has random reboots with others?
Parent
Re:Don't Buy Foxconn... (Score:5, Informative)
Parent
1999 called and wants it's... (Score:5, Insightful)
Re:1999 called and wants it's... (Score:5, Funny)
Foxconn apparently.
Parent
Well, the GOOD news is that ... (Score:5, Insightful)
Fine. Won't use them for Windows either. (Score:5, Interesting)
In my workplace we run Windows, OS X, and Linux. I have the expectation of being able to use Linux on any x86 kit we buy. Absent an explanation or attitude change from this vendor, I won't recommend their kit here for Windows use either. That seems somewhat important so I'll repeat it:
I will not buy Foxconn kit for Windows use if Linux compatibility is impaired.
Re:Fine. Won't use them for Windows either. (Score:5, Informative)
On another note, I've encountered Foxconn boards in the past... usually broken and being replaced.
Parent
Quick Fix (Score:5, Informative)
Par for the course. (Score:5, Interesting)
It's not easy for the BIOS manufacturers (Score:5, Interesting)
Although this vendor seems definitely not trying to support Linux with it's BIOS, the hard truth is that it's not so easy even for those who try. For more information, there is currently a thread on the LKML disussing this [lkml.org] and how to improve the situation.
In particular, latest kernels claim to be every versions of Windows at the same time, and not Linux! That's not easy to handle for the BIOS writer...
This goes beyond refusing to support (Score:5, Insightful)
This is active sabotage.
They haven't lost a customer, they've gained an enemy. This is an attack. Do not let them get away with it.
The article reposted - minus some code:- (Score:5, Informative)
Here is most of the original article.
The pesky junk filter meant I had to snip some of the code out - sorry.
Posting AC for the usual reason(s).
Foxconn deliberately sabotaging their BIOS to destroy Linux ACPI
Edit: Please tell Foxconn what you think of their behavior:
http://www.foxconnchannel.com/support/online.aspx [foxconnchannel.com]
You need to put in an email, and then it will bring up a form, choose Complain/Suggest.
Edit: Welcome Digg, Reddit, and Slashdot.
http://digg.com/linux_unix/Foxconn_d..._destroy_Linux [digg.com]
http://www.reddit.com/comments/6tcv8...their_bios_to/ [reddit.com]
(Will add Slashdot when I know the final URL)
------------
I disassembled my BIOS to have a look around, and while I won't post the results here,I'll tell you what I did find.
They have several different tables, a group for Windws XP and Vista, a group for 2000, a group for NT, Me, 95, 98, etc. that just errors out, and one for LINUX.
The one for Linux points to a badly written table that does not correspond to the board's ACPI implementation, causing weird kernel errors, strange system freezing, no suspend or hibernate, and other problems, using my modifications below, I've gotten it down to just crashing on the next reboot after having suspended, the horrible thing about disassembling any program is that you have no commenting, so it's hard to tell which does what, but I'll be damned if I'm going to buy a copy of Vista just to get the crashing caused by Foxconn's BIOS to stop, I am not going to be terrorized.
-----
How to fix:
Get Intel's BIOS ACPI source compiler:
sudo apt-get install iasl
Dump your DSDT table:
sudo cat /sys/firmware/acpi/tables/DSDT > dsdt.dat
Disassemble it:
iasl -d dsdt.dat
Open it in Gedit:
gedit dsdt.dsl
Fix Foxconn sabotage:
Find, the section that starts out with
Code:
If (_OSI ("Windows 2000"))
{
Store (0x04, OSVR)
}
Go down til you get to the first
Code:
}
Else
{
Past that you should see Linux alongside Windows NT, which is above another Else that leads to Windows Me.
Should look like:
Code:
If (MCTH (_OS, "Linux"))
{
Store (0x3, OSVR)
}
Change it to:
Code:
If (_OSI ("Linux"))
{
Store (Zero, OSVR)
}
Copy the section, and remove it and the other characters (CAREFULLY PRESERVING SYNTAX!!!!)
Then move the Linux section to right underneath Windows 2006 section.
_Code removed to get past junk filter_
So there you have it!
Whatever happened to... (Score:5, Insightful)
Somewhere along the line, hardware started becoming Windows Only. Modems became Winmodems. Printers became Winprinters. I'm guessing the same thing applies to webcams, and scanners, and other hardware. Now we've got a motherboard with a Windows only BIOS. It sickens me.
This is not an isolated problem... (Score:5, Informative)
See here: http://acpi.sourceforge.net/dsdt/index.php [sourceforge.net]
My wote goes for the guy... (Score:5, Insightful)
I've just opened official ACPI specs and Microsoft's WHQL is NOWHERE EVEN MENTIONED, let alone of being needed and sufficient criteria of ACPI compliance.
IOW, product is ACI compliant when it works in accordance with specs. Once there is violation found, they can no longer claim ACPI compliance.
Been there, done that (Score:5, Insightful)
Re:Homework (Score:5, Insightful)
Yeah, except for the part where the motherboard claims to be ACPI compliant when it really isn't. That's sort of false advertising.
Parent
Re:Homework (Score:5, Funny)
Parent
Re:Homework (Score:5, Insightful)
If you follow the link in the story, you would see that the poster claims the following:
1) Foxconn advertises its motherboard as ACPI compliant thus potentially misleading people into thinking that linux should be able to handle the board. The company does nothing to counter such possible misunderstandings. One could argue that Foxconn is not obliged to do anything of that sort but for customers it is not as simple as "doing homework" as you suggest. Foxconn doesn't say that things break on linux. They only say "works with windows" and "ACPI compliant". The only way to check is to buy and use (at least until this story).
2) The BIOS actively looks for the OS and passes a modified table to linux. It does not even ask the OS to identify itself and go along with that identification. It rather keeps on having random checks to ensure it is running on windows. I can't think of any good reason why they need to do that unless they want to actively break things for linux.
3) The poster smells something fishy in Foxconn's behavior. Right or wrong, I don't know. But if the poster is right in his suspicion (which s/he must believe), it would be a natural, rational and justified behavior to bitch and moan about it rather than just return the board for a refund. Society owes a lot to such "troublemakers".
Parent
Re:Homework (Score:5, Insightful)
Parent
Re:Homework (Score:5, Interesting)
Parent
Re:Homework (Score:5, Interesting)
This is more a case of *Microsoft* not being ACPI compliant.
We really don't know if this applies here. After all, the BIOS is feed wrong information to Linux, on purpose, which is different that what it provides to Win-OSs. For all we know, it may be providing correct capability information to Windows and simply providing bad information to Linux.
Ultimately, one has to wonder about the motives when a market segment is purposely excluded. No company in their right mind wants to exclude a potential sale unless there is money to be made elsewhere from that exclusion. Or perhaps, as you originally stated, they are nowhere near ACPI compliant and realized early on Linux highlights this fact. Even so - why add additional code to further break things if they are already broken without a monetary return elsewhere to justify the extra effort.
Parent
Re:Homework (Score:5, Funny)
Foxconn also accuses him of making "idle treats".
I want an idle treat.
Parent
Re:Homework (Score:5, Interesting)
Is there an industry group that can be contacted in an attempt to force them to remove "ACPI Compliant"? If the original analysis is accurate, clearly they are not ACPI compliant.
Furthermore, since they clearly are breaking ACPI compliance when it detects Linux, and they state ACPI compliance, doesn't this mean they are fraudulently advertising? Seems both the State Attorney General and consumer watchdog groups would like to hear about this.
Parent
Re:So what? (Score:5, Informative)
The trouble here isn't that it doesn't support Linux, it's that the motherboard appears to be actively sabotaging Linux. That's a really weird thing to do and deserves investigation.
Parent
Re:So what? (Score:5, Insightful)
The problem is that Foxconn says its ACPI compliant but its not. It also looks as if they botched Linux by pure purpouse. Why on earth would they have a Linux section in the bios when they dont support it? Something is very smelly here thats for sure. I will keep miles away from Foxconn at my departments no matter if my systems are intended for Windows or Linux.
Parent
Re:So what? (Score:5, Insightful)
No, actually.
File this under having done the world a service by publishing their findings.
Now we know that at least some Foxconn motherboards do not work with Linux, and Foxconn is not interested in doing anything about that. That's useful information.
From other posts, I gather that the motherboard actually has a table specifically targeted at Linux, which supplies broken settings. So it's more than Foxconn simply not supporting Linux; they've actually gone and broken things.
Finally, it seems there is already a workaround available. I guess Linux is willing to support Foxconn, even if Foxconn doesn't want it to. And, really, this is a case of "yay, open source!"
Parent
Re:So what? (Score:5, Interesting)
Foxconn has no obligation to support
They went out of their way and expended extra effort to prevent Linux from working on their system. This moved beyond "not supporting", to "breaking" hardware that should have functioned without any effort at all on foxconns part, using what was probably considerable effort on their part to detect what kernel was booting, then developing a fake ACPI table to show only when it detected linux.
The interesting part is that a year or so back, there was an article here about how Microsoft floated a letter around manufacturers asking how to make ACPI harder for Linux to implement. Everyone asserted that we were just paranoid and the only reason ACPI was hard for Linux was because "Linux developers suck", but now it seems we know.
Parent
Re:So what? (Score:5, Interesting)
They went out of their way and expended extra effort to prevent Linux from working on their system.
Hanlon's Razor: Never attribute to malice that which can be adequately explained by stupidity.
I have my doubts that Foxconn would deliberately sabotage a potential customer set--but I have no doubts whatsoever that they could try to implement Linux support, screw it up, then decide they're not going to finish. After all, their Windows support also sucks.
Parent
Re:So? (Score:5, Informative)
Parent
Re:Yay tinfoil hats! (Score:5, Informative)
> So let me get this straight. Some small motherboard manufacturer has flawed ACPI tables and
> refuses to fix them, therefore they MUST out to sabotage Linux?
Nope. Let's get you straightened out.
The BIOS provides two sets of ACPI tables; one good, working and one which isn't even intended to work. It checks what OS string the kernel hands it when it boots. If Windows, it sends the good tables. If Linux, it sends the deliberately faulty ones.
The more you know!
Parent
Re:Yay tinfoil hats! (Score:5, Insightful)
If Windows, it sends the good tables. If Linux, it sends the deliberately faulty ones.
It's still more likely incompetence than conspiracy. Most motherboard manufacturers don't write their own BIOS - they buy a stock one from AMI/Award and make a few changes for their particular board.
What they most likely did was update the DSDT tables handed out to Windows to reflect their hardware, but didn't bother changing the others. So for Linux (and perhaps Win9x) it just has the generic tables that came with the BIOS, which of course don't work for their particular board.
Of course, a BIOS even having per-OS tables is indicative of poor design, since being OS-independent is kinda the whole point of ACPI. That's more of an issue with whoever wrote the BIOS in the first place, though.
While they're probably not out to actively sabotage Linux, it's still poor customer service to refuse to fix it and claim that everything is working fine. Sadly, getting most board manufacturers to fix their broken DSDT tables (and there are a lot out there) is akin to pulling teeth.
Parent
Re:Something I'm missing... (Score:5, Informative)
Because the OS's have bugs in their ACPI implementations. So the BIOS provides a special version of function with a workaround for the bug in case it detects the specific OS version.
Let's note this is valid only for proprietary OS's (aka Windows). For F/OSS kernels, the BIOS writer can simply report a bug on non-ACPI compliance, and it's fixed soon after directly in the kernel.
Parent
Re:off-brand crap: -1, Duh (Score:5, Informative)
Off-brand? They don't sell much under their own branding, but Foxconn [wikipedia.org] is one of the biggest computer components manufacturer in the world. Lots of HP and Dells I've seen have Foxconn boards.
Parent
Re:Immature (Score:5, Insightful)
And how mature and professional is a support drone that says 'don't use linux, use windows vista'??
Parent