Foxconn deliberately sabotaging their BIOS to destroy Linux

Status
Not open for further replies.

abhinandh

Proud to be Linux
A very bright guy named Ryan (aka TheAlmightyCthulhu over at the Ubuntu Forums) has disassembled the BIOS on his Foxconn motherboard and found a very peculiar behaviour. Long story short, he found several tables written for almost all Microsoft OS’es and only one badly written table for Linux. The Linux table does not correspond to the board’s ACPI implementation. Causing weird kernel errors, strange system freezing, no suspend or hibernate, and other problems. What’s interesting is that ACPI is an open industry standard, and has nothing to do with Microsoft or any other proprietary standards. So all these errors and problems should not exist.

Ryan has found a way to salvage this, down to just crashing on the next reboot after suspend. However the only way to fully rectify this is to buy a Vista CD. According to Ryan, it’s very hard to believe that this is just a simple mistake or a bug, it’s way too calculated:

After looking through the disassembled BIOS for the last several hours, rebooting it, and tweaking it more, I’d say this is very intentional, I’ve found redundant checks to make sure it’s really running on Windows, regardless what the OS tells it it is, and then of course fatal errors that will kernel panic FreeBSD or Linux, scattered all over the place, even in the table path for Windows 9x, NT, 2000, XP, and Vista, and had to correct them (Well, at least divert them off into a segment of RAM I hope to god I’m sure about)

No, this looks extremely calculated, it’s like they knew someone would probably go tearing it apart eventually and so tried to scatter landmines out so as to where you’d probably hit one eventually.

So if it is a mistake, or incompetence, then it’s the most meticulous, targeted, and dare I say, anal retentive incompetence I’ve seen.

Emails between ryan and foxconn

Foxconn:

Dear Ryan:

Do you get the same beep codes if you were to remove all RAM out and then turn the system ON again?

Me:

No, because then I wouldn't be able to boot into Linux, suspend to RAM, to get the ACPI failure, have syslogd pollute my /var/log/messages file with it, or read about it in my system log.

In particular, the number of quirks that the kernel has to use, and this invalid checksum are what has me nervous.

If you need me to attach the full contents of /var/log/messages, I can do so.

Foxconn:

Dear Ryan:

This board was never certified for Linux. It is only certified for Vista. See URL below. So please test under Vista. Does this issue also occured under Vista or Winxp?

http://www.foxconnchannel.com/produc...ification.aspx

Me:

Well, this is a replacement for a dead Intel board (a 945g that fully supported ACPI), Vista was never really up for consideration, and I'm not about to go buy a copy to find out.

The ACPI specs are there for a reason, and broken BIOS's like what is in this motherboard are the reason standard ACPI does not work, I've taken the liberty of filing the report in kernel.org, Red Hat, and Canonical's Ubuntu bug tracking systems, and posting the contents of my kernel error log on my blog, which is in the first several results if you Google search "Foxconn G33M" or "Foxconn G33M-s", "Foxconn Linux", etc, as well as prominently in other search formats, so hopefully this will save other people from a bad purchase, and hopefully kernel.org can work around your broken BIOS in 2.6.26, as I understand that kernel is more forgiving of poorly written BIOSes built for Windows.

I've already gotten several dozen hits on those pages, so you guys are only hurting yourselves in the long run, by using bad BIOS ROMs, as people like me are quite vocal when dealing with a bad product.


Foxconn:

Dear Ryan,

Making idle treats is not going to solve anything.

As already stated this model has not been certified under Linux nor supported.

As you are unhappy with the product- using a non-support operating system nor certified, please contact your reseller for a refund.

Me:

Yeah, well, I allege that you guys thoroughly suck.

Learn how to write a BIOS before you go selling hardware with falsified specs.

Me:

I've been debugging your AMI BIOS, and the ACPI support on it is far from within compliance with the standards, I've dumped out the debugging data into Canonical's Launchpad bug tracking system so that we may be able to support some sort of a workaround for the bad ACPI tables in your BIOS, I would hope that you will be part of the solution instead of the problem, alienating customers and telling them to go buy a copy of Windows Vista is not service, your product claims to be ACPI compliant and is not, therefore you are falsely advertising it with features it isn't capable of.

I would ask that you issue an update that doesn't make it dependent upon Windows Hardware Error Architecture, but that decision is up to you.

Please find all relevant data here:

Bug #251338 in Ubuntu: “Bad ACPI support on Foxconn G33M/G33M-S motherboards with AMI BIOS”
https://bugs.launchpad.net/ubuntu/+s...ux/+bug/251338

I appreciate your consideration in this matter.

-Ryan

Foxconn:

Dear Ryan,

You are incorrect in that the motherboard is not ACPI complaint. If it were not, then it would not have received Microsoft Certification for WHQL.

Refer to:
http://winqual.microsoft.com/HCL/Pro...33M-S&oid=3179

As already stated, this model has not been certified under Linux nor supported.

It has been marketed as a Microsoft Certified Motherboard for their operating systems.

Me:

I've found separate DSDT tables that the BIOS hands to Linux specifically, changing it to point to the DSDT tables Vista gets fixes all Linux issues with this board.

So while I accept that you've gotten some kind of Microsoft Certification (doesn't surprise me), that does not make your board ACPI capable, just that Windows is better at coping with glitches custom tailored to it, for this purpose.

Foxconn:

Dear Ryan,

Stop sending us these!!!

Me:

Your BIOS is actually pretty shoddy, I've taken the liberty of posting everything that's wrong with the DSDT lookup tables and how to fix some of it so the community that has already purchased your filth can make do with it, also, it's now pretty much impossible to google Foxconn and Linux in the same sentence without getting hit by the truth, that your boards aren't good enough to handle it.

Have a very nice day.

Foxconn:

Dear Ryan,

Surely this is the way to ask for us to attempt to fix something that is not supported in the first place.

Me:

Would it be so difficult? I mean really? I suppose you've never heard of building a happy customer base vs. just angering everyone that deals with your products to the point they make sure others don't make the mistake of buying them.

You know, I have several computers, and they all support any OS I want to put there, as well they should, if you can't fix the damaged BIOS you put there intentionally, can you at least put a big thing on the site that says no LInux support so people won't make the mistake of buying your stuff?

Your DSDT table looks like it was written by a first year computer science student, it is scary, I will not just shut up and go away until I feel like I've been done right, this can end up on Digg, Slashdot, filed with the FTC that you are passing bad ACPI data on to Linux specifically.

I saw you targeting Linux with an intentionally broken ACPI table, you also have one for NT and ME, a separate one for newer NT variants like 2000, XP, Vista, and 2003/2008 Server, I'm sure that if you actually wrote to Intel ACPI specs instead of whatever quirks you can get away with for 8 versions of Windows and then go to the trouble of giving a botched table to Linux (How much *is* Microsoft paying you?) it would end up working a lot better, but I have this idea you don't want it to.
ubuntu forums thread

source

and now in plain english....

They detect Linux, give it a bad DSDT table, one that looks ok at a glance, but broken in subtle ways so that some of it works, but not correctly.

You call them to ask why their board won't run Linux.

They tell you to buy Vista.
 
M

mastana

Guest
How pathetic ! these anti-Linux ppl are in h/w manufacturers too !:x
 
I was going to post this yesterday... the news is all over phoronix. I think there you will get a good idea what Foxconn is.

Foxconn is an OEM motherboard manufacturer. You might not have heard of them, but the Original Intel Motherboards, the MacMini, the iPhone, and most Dells are supplied motherboards by them. They are the world's largest.

Unlike normal we-are-not-intrested-in-supporting-linux people, these guys went a step too far. They have delibrately tried to sabotage linux, by making sure that if a linux kernel asks to boot, its explictly given wrong drivers, while windows is not.

I think this is SERIOUSLY illegal, and I hope someone registers a case against them in India as well.
 

iMav

The Devil's Advocate
and now in plain english....

You call them to ask why their board won't run Linux.

They tell you to buy Vista.
The specific model is not meant/optimized/made for Linux. That's it. They have said that it does not support Linux, it doesn't. It is their choice to make model A capable of handling both Linux & Windows. It is their choice of making model B not being able to run Linux or Windows.

They are NOT harming Linux. The model states that Vista certified. And that's what it is.
 
OP
abhinandh

abhinandh

Proud to be Linux
The specific model is not meant/optimized/made for Linux. That's it. They have said that it does not support Linux, it doesn't. It is their choice to make model A capable of handling both Linux & Windows. It is their choice of making model B not being able to run Linux or Windows.

They are NOT harming Linux. The model states that Vista certified. And that's what it is.

who asked them to *certify* it for linux.......and which board has a "made for linux" sticker on it for that matter....
linux just expects acpi compilant motherboard......but the bios points linux to a bad DSDT table resulting in kernel panics.......

why should the manufacturer deliberately do that? and to quote you from the ubuntu forums thread...
Linux and FreeBSD do not work with this motherboard due to it's ACPI configuration, using a disassembler program, I have found that it detects Linux specifically and points it to bad DSDT tables, thereby corrupting it's hardware support, changing this and setting the system to override the BIOS ACPI DSDT tables with a customized version that passes the Windows versions to Linux gives Linux ACPI support stated on the box, I am complaining because I feel this violates an anti-trust provision in the Microsoft settlement, I further believe that Microsoft is giving Foxconn incentives to cripple their motherboards if you try to boot to a non-Windows OS.
 

iMav

The Devil's Advocate
Dude! The board is meant for Vista systems. This information is specifically mentioned. If Linux does not have a certificate program, it is the Linux organization's fault. Pointing to bad DSDT tables is what I mentioned - the board is not meant/optimized/made for Linux. It is made for Vista. Just like Apple hardware is specifically Apple, this was made only for Vista. Foxconn has said that the board DOES NOT support linux, so it does not. As simple as that. The model is not made for Linux. Whether it points to wrong tables or does not point to any tables. The fact is that the board is not for Linux, the manufacturers do not provide support for Linux on that particular board.

There is no law that states that Foxconn should make mobos that are supported by Linux. It is the company's wish whether the mobo supports Linux or no, this particular model does not.
 
OP
abhinandh

abhinandh

Proud to be Linux
Dude! The board is meant for Vista systems. This information is specifically mentioned. If Linux does not have a certificate program, it is the Linux organization's fault. Pointing to bad DSDT tables is what I mentioned - the board is not meant/optimized/made for Linux. It is made for Vista. Just like Apple hardware is specifically Apple, this was made only for Vista. Foxconn has said that the board DOES NOT support linux, so it does not. As simple as that. The model is not made for Linux. Whether it points to wrong tables or does not point to any tables. The fact is that the board is not for Linux, the manufacturers do not provide support for Linux on that particular board.

There is no law that states that Foxconn should make mobos that are supported by Linux. It is the company's wish whether the mobo supports Linux or no, this particular model does not.

and its not a question of board support...its acpi support...when they mention it is acpi compilant on the box....shouldnt it be so?
ok...ok....
if it is not made for linux why should it detect it in the first place and why should it point to wrong entry......

and for the heck...its not vista only.....
I saw you targeting Linux with an intentionally broken ACPI table, you also have one for NT and ME, a separate one for newer NT variants like 2000, XP, Vista, and 2003/2008 Server, I'm sure that if you actually wrote to Intel ACPI specs instead of whatever quirks you can get away with for 8 versions of Windows and then go to the trouble of giving a botched table to Linux (How much *is* Microsoft paying you?) it would end up working a lot better, but I have this idea you don't want it to.
 

aditya.shevade

Console Junkie
You are wrong iMav when you compare apple with them. Apple hardware supports all the operating systems.

BTW.... I forgot to mention... Foxconn sucks... they are connig people.
 
Last edited:

iMav

The Devil's Advocate
@Abhi:

When you try to install OS X on a hackint0sh it will detect any motherboard, but whether it installs or not depends on the board you are using. It detects Linux, so :? Linux is an OS and it detects it, detecting, installation and working are different aspects in technology, if 1 happens it is not a thumb rule that the rest will happen too. Almost all Vista hardware works with previous iterations of Windows and therefore we have been constantly saying that as opposed to the FUD that Vista is not compatible etc. it is compatible with older hardware and newer hardware is supported by older iterations too :)

@Aditya:

I don't think Apple supports Linux, they only provide you support for Windows. For Linux you are on your own. Correct me if I am wrong, with some credible proof from Apple.
 

nish_higher

Wise Old Owl
enough!
Windows/Linux installation on such hardware=Legal

HAckintosh=illegal

dont compare the two

As far as this problem is concerned-Foxconn should have mentioned this on their website that this doesnt work with linux.and this thread creator (the original source) should have mentiond the model no.
 

Garbage

God of Mistakes...
@ iMav..

Enough yaar... Ab kitana apana gyan dikhayega...

If they people don't want to give support to Linux, they wish.. they wont.. Thats not problem...
The problem is that, they INTENTIONLY points Linux kernel to wrong tables... Why this ??
No Linux people is asking for support.

Okay.. They want to run windows on their BIOS is okay... But why they want Linux NOT to run on their BIOS ?? :O
 

Laser_dude

Master Chief
Beside the seriousness of the matter i was ROFLing for some time :D after reading RYAN

and FOXCONN's conversation (Why? i don't know)

,besides ,the strategy used by foxconn ,if used intentionally,will surely ruin there

customer base to an extent.
 

iMav

The Devil's Advocate
@ iMav..

Enough yaar... Ab kitana apana gyan dikhayega...

If they people don't want to give support to Linux, they wish.. they wont.. Thats not problem...
The problem is that, they INTENTIONLY points Linux kernel to wrong tables... Why this ??
No Linux people is asking for support.

Okay.. They want to run windows on their BIOS is okay... But why they want Linux NOT to run on their BIOS ?? :O
Arre who says intentionally? They don't support it therefore they never bothered to check where it points. It is the smart guy (who I must is smart) who trying to sensationalize the issue by saying that they are deliberately pointing it to wrong tables.

Why they don't want Linux on their BIOS is their wish. It is NOT mandatory that they should run Linux, they don't want to un Linux it is their wish. Foxconn's owner hates Linux for all I care. It is the company's choice whether they want to support Linux or no. In this case, they don't want to. Un-necessarily sensationalizing the issue is pointless.
 
iMav, you are completely ignorant of the ethics...

They INTENTIONALLY, I repeat, INTENTIONALLY put in some code in their BIOS so that if a kernel identifying itself as "linux" asks for permission to boot, it gets redirected to some faulty modules, while if it identifies itself as "windows" this does not happen. This has been proved by editing the kernel to identify itself as something else.

As for certification, the the ACPI standards are an Open Standard. Any hardware which supports it 100% should run any compliant OS, and linux IS a compliant OS. Its just that Foxconn is intentionally trying to make linux not work. In simple words, its not MS who certifies the board, but the international ACPI standards. And the manufacturers are doing something dirty to go against this, and they are falsely claiming that they are standards compliant.

Why this double standards ? This is plain stupid.
 

amitava82

MMO Addict
No one has proof that its deliberate. Its incomplete which is not an issue for supported OS. BUT if the product is advertised as ACPI compliant then its an issue. In that case I'll go out , buy a Foxcon MB and sue them to make some money >.<
 
No one has proof that its deliberate. Its incomplete which is not an issue for supported OS. BUT if the product is advertised as ACPI compliant then its an issue. In that case I'll go out , buy a Foxcon MB and sue them to make some money >.<
So you agree that its an issue....
 

iMav

The Devil's Advocate
iMav, you are completely ignorant of the ethics...
If they claim something and then it is not as said by amitava, sue them. Let there be an inquiry and court judgment saying that it was deliberate. Until then, it is sensationalism by Ryan.

If it is something illegal, then sue them. Which I am quite amazed and surprised that no one has done yet. But, if your argument is based on the the pretext of being "un-ethical" according to some FOSS supporters & communities, then Foxconn is justified as rubbishing this as a rant.
 
Last edited:
Status
Not open for further replies.
Top Bottom