Slashdot Mirror


Foxconn Releases Test BIOS Fixing Linux Crashes

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."

5 of 196 comments (clear)

  1. Theyre fixing it by symbolset · · Score: 5, Informative

    Quotes from the article:

    I hope you guys can get the good result that you really want. But that is only a debug version BIOS which focus on this issue, later we will release Production BIOS for it ASAP. Not only on this motherboard, but also on all the other motherboards which got the same issue.

    So not just in this one high publicity case, but on all of their motherboards.

    And also as our plan, we will take more time on Linux OS testing. And I am sure Linux is becoming more popular and great OS.

    I would say you got what you want here. Time will tell.

    If possible, you can inform this message to any people as many as you can.

    I'd say they got this one done too. That's pretty public.

    Yes, it's lame that it was broken but now it's fixed. One week is pretty quick for a BIOS revision spin. Maybe it's OK to cut them some slack on this one now.

    --
    Help stamp out iliturcy.
    1. Re:Theyre fixing it by SalesEngineer · · Score: 5, Informative

      ACPI has a method (equivalent to a function in other programming languages) called "_OSI" which allows the ACPI code to know which OS is running. It's a documented ACPI call in the ACPI 2.0 spec. BIOS manufacturers tend not to use the call, because their goal is to support any OS. Sometimes board manufacturers use it to make small tweaks to ACPI handling between different operating systems, since each one acts a little different. If Foxconn made a fix that was only invoked when Windows was running and didn't bother to test the code on a non-Windows OS (Linux, BSD, ...) then there's your bug. A programmer creates a "if" clause based on the _OSI return value, but forgets to make an corresponding "else" clause. One mentality in the Linux kernel developer community is to "pretend to be Windows", trying to guarantee that these workarounds get executed. If the Linux & Windows kernels worked the same way, this would be a wise move ... but we know they don't (otherwise _OSI would not exist). The right thing to do is what happened in this case ... report bugs back to the manufacturer, stop buying their products if they don't fix it.

  2. This is Foxconn's BIOS problems, not generic to AM by SalesEngineer · · Score: 5, Informative

    Ryan1984's post makes it sound like a generic AMI BIOS problem with Linux ... I don't think this is the case. AMIBIOS runs well on Linux generically (it's on Sun Microsystems servers, the Asus EeePC & EeeBox, which all work with Linux) so this is probably Foxconn introducing a problem when they ported the BIOS to their boards. Board manufacturers like Foxconn get a development kit from the BIOS manufacturer then port it to their platform. If Foxconn made a BIOS fix for Windows then didn't test it with Linux, this would cause the issue. A similar situation would be if a company made a variation of a Linux distro for their products but broke somethign that worked generically in the original distro. I think the community response worked great for getting Foxconn to pay attention to Linux. They saw their business & reputation threatened and are trying to fix the problem.

  3. Re:But... by SalesEngineer · · Score: 5, Informative

    No ... it looks like they got a licensed BIOS development kit, added code that broke Linux and didn't test it. Asus uses AMIBIOS and ships a lot of Linux systems (ever heard of the EeePC?) so I think this is a Foxconn "oops".

  4. Re:They're fixing themselves all else is incidenta by sumdumass · · Score: 5, Informative

    They didn't actually do anything dirty, they simply didn't do anything.

    The problem is that the ACPI tables are handled according to the operating system installed and when the BIOS checked that linux was in use, it provided a null table. This is not because they purposely broke something, but because they failed to check the bios and follow through on it.

    Evidently, and this is mostly my opinion, FoxxCon had no idea how much of a market Linux actually has or appears to have and took others at their word that it is too small to worry about. So they took a stock bios, made a few tweaks for the markets they thought would drive their sales and neglected to do anything about Linux. After they saw the response, they quickly and painstakingly got a workaround out and reversed their position because of the potential market size.

    I over simplified the process there, there is a post obove this that goes into a good amount of detail. But it is more that they did nothing then that they did something dirty.