Slashdot Mirror


MoBo Manufacturer Foxconn Refuses To Support Linux

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

47 of 696 comments (clear)

  1. An the solution is.... by Zebra_X · · Score: 5, Insightful

    Return it and buy from a manufacturer... no need to disassemble the BIOS, your time is worth more than that.

    1. Re:An the solution is.... by Kamokazi · · Score: 5, Informative

      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.

      --
      As our way of thanking you for your positive contributions to Slashdot, you are eligible to disable Slashdot 2.0.
    2. Re:An the solution is.... by Nazlfrag · · 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.

    3. Re:An the solution is.... by CastrTroy · · Score: 5, Insightful

      People used to say the same thing about firefox. There aren't enough users to make a difference. Look at where we are now. Firefox is probably around 20% market share, and it's too prominent for web site designers to just sit and ignore it. The changes aren't going to happen over night. With all the inroads Linux is making in the UMPC market, and lowend computer market, it's only a matter of time before hardware manufacturers have to wake up and start supporting it.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
    4. Re:An the solution is.... by mitgib · · 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.

      --
      Being a spelling & grammar Nazi is a sign you do not poses the intelligence to contribute to the conversation
    5. Re:An the solution is.... by jweller · · Score: 5, Insightful

      I can't tell you how many machines I've built for myself and others, and the one thing I never cheap out on is the MoBo. You've got to have a solid foundation if you want to build a nice house and this is no different. Foxconn was never a brand I considered to be high quality, but it's even farther down on my list now.

    6. Re:An the solution is.... by archen · · Score: 5, Insightful

      Personally I do not recommend products that do not support Linux/FreeBSD. Because I use those operating systems? That's part of it yes, but mainly because Linux tends to expose crappy products. Look at the board in question here: "Badly written table". I have yet to see a product where they cut corners in ONE place only. Usually if they're sloppy in one respect, there's a whole nest of other problems you're not even aware of. In the windows world manufacturers like to hide behind smoke and mirrors in binary drivers, and people blame windows for instability. Simply put many hardware manufacturers that release drivers/documentation for Linux are not afraid to do so because it's more than likely they're actually releasing quality products or are at least not afraid to admit to errors and will probably be more likely to fix them. Even if you only use Windows that's an important thing to consider.

    7. Re:An the solution is.... by quantumphaze · · Score: 5, Funny

      I wasn't sure either but Wikipedia to the rescue

    8. Re:An the solution is.... by computational+super · · Score: 5, Funny

      I've done some research, and it appears to be a form of watercooling, but for a person rather than a CPU. I've never overclocked myself to the point where I felt that I needed it, though.

      --
      Proud neuron in the Slashdot hivemind since 2002.
    9. Re:An the solution is.... by edmicman · · Score: 5, Insightful

      I've never, in all the years I've used Windows, had to edit the registry to accomplish some "ordinary" task. The only times I've had to edit the registry were "hacks" to accomplish something that I don't think would ever apply to an ordinary user.

      What scenario would Grandma Maybel need to even know about the registry?

    10. Re:An the solution is.... by couchslug · · Score: 5, Insightful

      "Return it and buy from a manufacturer... no need to disassemble the BIOS, your time is worth more than that."

      He was curious, investigated the problem, found the answer, and informed the rest of us.

      He learned something useful, then helped others, and probably had fun/satisfaction doing that.
      That would fit my definition of time well spent.

      --
      "This post is an artistic work of fiction and falsehood. Only a fool would take anything posted here as fact."
    11. Re:An the solution is.... by Kadin2048 · · Score: 5, Interesting

      If Windows had a functional command shell, it would probably get used quite a bit, too -- it's a fast, efficient way of interacting with the computer, and it provides an easy way to tell people exactly what to do (just cut and paste the following commands...).

      But Windows' built-in shell is a piece of shit; it's simply painful to use. (PowerShell is better, but it's not part of most Windows installs.)

      That everything has to be done through the GUI in Windows isn't a feature, it's a flaw.

      --
      "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    12. Re:An the solution is.... by alexborges · · Score: 5, Insightful

      What bad behaviour?

      If you say your shit is ACPI compliant, it better very DAMNED well be. IF not, youre breaking the law and stumping on consumer rights.

      This is criminal behaviour. Its like someone peddling snake oil to cure cancer. Its the exact same crime: they tell you its good for X, but its not true.

      They lie about their product, they should be taken out and shot in the head.

      Fuck them and the horse they rode on.

      --
      NO SIG
    13. Re:An the solution is.... by fwarren · · Score: 5, Interesting

      What scenario would Grandma Maybel need to even know about the registry?

      That one is easy for me. I used to do technical Support for Norton Antivirus.

      Grandma purchased a Dell computer with 128 megs of RAM running Windows XP. She has 10 things running in the tray and the computer is crawling. She knows just enough to know that viruses are bad. Someone at Staples tells her that the $79.00 copy of Norton Antivirus will fix her computer right up.

      Well there are 5 things that will pooch a Norton Install. One of them would be having a nasty virus like Klez on your system. Another is a bad hardware. Another is a corrupted windows installer system. The one that gets granny however is lack of system resources. NAV should only be installed on a system with 70% of system resourcess free, may install on a system with 60% free.

      So now Granny calls for support. She can't uninstall. She is going to have to do a manual uninstall. So we email her a document with a procedure to run the computer in safe mode. Delete a bunch of files and folders AND then run regedit and pound a bunch of entries out of the registry

      Trust me. I took at least 2 or 3 calls like that a day. The only ones better are the 35 year old moms trying to figure out how they got porn popups on their computer. After all the only people to ever use that computer is her and her 15 year old son.

      --
      vi + /etc over regedit any day of the week.
  2. Workaround by eltoyoboyo · · Score: 5, Informative

    It appears that within an hour there was a workaround posted on the same forum.

    --
    Have you Meta Moderated t
    1. Re:Workaround by uberdave · · Score: 5, Insightful

      It appears that within an hour there was a workaround posted on the same forum.

      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.

  3. Don't Buy Foxconn... by Ikonoclasm · · Score: 5, Insightful

    If you're planning on running a Linux OS on your machine, don't use Foxconn. If they don't want customers, that's their business.

    1. Re:Don't Buy Foxconn... by Dorkmaster+Flek · · Score: 5, Insightful

      Why is this modded Troll? That's exactly what you should do. I know when I'm building a machine in the future, I sure as hell won't be buying a Foxconn mobo (not that I was planning to anyway).

      --
      I like to think of online DRM as something akin to a college -- you pay for lessons until you learn something.
    2. Re:Don't Buy Foxconn... by TorKlingberg · · Score: 5, Insightful

      If they are doing tricks like this, their products are probably crappy in general and will not be stable on Windows either. Also, how about later versions of Windows? Or just later service packs? Will it work properly then? Nobody knows.

    3. Re:Don't Buy Foxconn... by Yaddoshi · · Score: 5, Informative

      I'm a computer repair technician - if you're in this business you know that Foxconn is a low-cost sub-quality motherboard manufacturer, and their product is unreliable at best. Regardless of what operating system you prefer to use, don't buy Foxconn, unless you like throwing your hard earned money away on something that will probably fail in roughly two years. Now that I said that I'm sure there is going to be someone who thinks that Foxconn is great because they've never had a problem with their one Foxconn product. That's great if you've had success - but I've seen more systems fail with their products than other brands.

    4. Re:Don't Buy Foxconn... by CheShACat · · Score: 5, Interesting

      I would almost guarantee that somewhere inside the next computer you build will be Foxconn logo. They are a hugely popular supplier of mobo components like usb or network ports. Not buying Foxconn is definitely an active pass time.

    5. Re:Don't Buy Foxconn... by Anonymous Coward · · 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?

    6. Re:Don't Buy Foxconn... by lilomar · · 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?

      No, this is Abuse.

      --
      The creator of this post (Jacob Smith) hereby releases it, and all of his other posts, into the public domain.
  4. 1999 called and wants it's... by A+beautiful+mind · · Score: 5, Insightful

    ...Windows hardware back. Seriously, who is stupid enough today not to support linux?

    --
    It takes a man to suffer ignorance and smile
    Be yourself no matter what they say
    1. Re:1999 called and wants it's... by bamf · · Score: 5, Funny

      Foxconn apparently.

  5. Re:Homework by Anonymous Coward · · 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.

  6. Fine. Won't use them for Windows either. by domatic · · 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.

  7. Re:So what? by Anonymous Coward · · 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.

  8. Re:So what? by miffo.swe · · 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.

    --
    HTTP/1.1 400
  9. Re:Homework by hansraj · · 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".

  10. It's not easy for the BIOS manufacturers by pieleric · · 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 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...

  11. Re:So? by Buzz_Light · · Score: 5, Informative

    The point is that they advertised that they are ACPI compatible when they are not. And no, "it works on Windows" is not enough to claim ACPI compatibility.

  12. Re:So what? by RAMMS+EIN · · 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!"

    --
    Please correct me if I got my facts wrong.
  13. Re:So what? by Anonymous Coward · · 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.

  14. The article reposted - minus some code:- by Anonymous Coward · · 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

    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
    http://www.reddit.com/comments/6tcv8...their_bios_to/
    (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!

  15. Re:Homework by pimpimpim · · Score: 5, Insightful

    Have to agree with you here. This is a case of false advertising if it isn't acpi compliant (there is no 90% compliant, or compliant if you use this-or-that software, all that is just non-compliant). I don't know about the slashdot readers that answer with "so what, just return it", but when I am looking for new hardware, I am very happy if people like him figure out who is trying to screw me with false claims, so I can skip these manufacturers from my list.

    --
    molmod.com - computing tips from a molecular modeling
  16. Re:Homework by Reverend528 · · Score: 5, Funny

    Foxconn also accuses him of making "idle treats".

    I want an idle treat.

  17. Re:Something I'm missing... by pieleric · · 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.

  18. Re:Yay tinfoil hats! by quantum+bit · · 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.

  19. Re:Fine. Won't use them for Windows either. by Machtyn · · Score: 5, Informative

    This is important and I want to expound on it. I work in a Microsoft shop. Really, it's IIS this, MSSQL that, .NET for all dev, and we've all got the latest and greatest Office suite. Strangely, we've heard rumors that our software is going to be tested Vista, but QA hasn't received a Vista machine, yet. With all of that out of the way, I use Linux in various ways on many of our test computers. Mostly, it is just boot CDs, such as Partimage Is Not Ghost and Ultimate Boot CD. So, just because hardware is meant for Windows doesn't mean that it will never see another OS. Hardware interoperability on the software level is necessary.

    On another note, I've encountered Foxconn boards in the past... usually broken and being replaced.

  20. Re:Homework by Unoriginal_Nickname · · Score: 5, Interesting

    This is more a case of *Microsoft* not being ACPI compliant. The different versions of Windows have historically broken ACPI in hilariously random and catastrophic ways. You can decompile any BIOS on the market and find a similar table. If you're willing to rule out malicious sabotage on the part of Foxconn (which would be a pretty ballsy move given that they manufacture Intel's reference motherboards), the fault can probably be traced back to their BIOS vendor - either AMI or Award, if memory serves.

  21. Re:off-brand crap: -1, Duh by Anonymous Coward · · Score: 5, Informative

    Off-brand? They don't sell much under their own branding, but Foxconn is one of the biggest computer components manufacturer in the world. Lots of HP and Dells I've seen have Foxconn boards.

  22. Re:Immature by JamesP · · Score: 5, Insightful

    And how mature and professional is a support drone that says 'don't use linux, use windows vista'??

    --
    how long until /. fixes commenting on Chrome?
  23. Been there, done that by basil2008 · · Score: 5, Insightful

    I don't work for FoxConn, but I do work for a hardware and software vendor. And here's some insight - as I have been in a situation similar to FoxConn - but being both the accuser and the guilty party at the same time ;) WHQL is kind of a big deal for hardware vendors. The main attractive is being able to add the "certified compatible with Windows" to your product box. Honestly speaking - having the logo there gives you *some* cred with users - at least, with Windows users ;) So your competitors are nibbling at you, the product has to ship, and you need to have the logo in the box. What do you do? If you're already late to market, you hack. You install all the different flavors of Windows, check if it works - if it doesn't and crashes, well, some of that can be attributed to Windows itself. As long as you can install the OS and pass the certification, you're good, the product ships, you get your bonus and a pat in the back for delivering on time. So say that during testing you DO install Linux and crashes - time for a reality check. If the product spec said "Windows WHQL is a must", and making Linux happy means not passing WHQL - tough luck. Linux won't run. Or if "fixing the product so it passes WHQL" means "screwing Linux users", well, let me think about that ;) Many engineers working on any given product would like to ship the best possible product - the one that has a 100% compliant ACPI, APM, TPM, you-name-it implementation. But when time is short and the management chain is breathing down your neck . . . you do whatever it has to be done to be able to ship. And hope that once the product is out there, you WILL be able to go back and clean up the mess - and ship a BIOS upgrade. Everyone is happy. Sadly, by the time the product shipped, you've been reassigned to other product - and you will only go back to the first one if the Windows crowd complains. The solution is easy - Linux users to boycott the brand. But then again: if the mobo was designed to be sold to another company to be used as the basis for a product that will only run Windows . . . It isn't like you care a lot about losing the Linux business. This is only the reality - hard as it might seem. And to the guy that originally found the bug: next time, remember that maybe the guy at the other side of the email exchange also thinks the situation sucks, but he's powerless to change it. Because if even if he was provided with a full working patch for the BIOS (that doesn't break Windows compatibility), he might need to reapply for WHQL if he patches the BIOS - which means more $$$ and time spent on a product that is already shipping. So.

  24. Re:Whatever happened to... by B1 · · Score: 5, Insightful

    It has not always been a myth. Sure, there may be no such thing as perfectly interchangeable hardware, but most hardware used to adhere to well-known standard interfaces.

    Modems all supported RS-232 serial ports, and nearly all used the AT command set. Internal modems had no physical RS-232 port, but to rest of the computer, they looked like a serial port and still presented the same AT command interface. There were no "drivers" to speak of.

    Sure, some modems added extensions / features, but as long as you stuck to the core AT commands (e.g. ATH, ATD, ATA, etc), the modem would work the same predictable way regardless of who made it or whether it was internal/external. You were free to choose your terminal software... hardware... operating system... even serial port hardware... the list goes on.

    What was really nice about generic hardware was that it worked in a well-known, predictable way. If you were so inclined, you could write your own terminal software, operating system... even create your own hardware if you wanted. The information you needed to get everything working--UART documentation, AT command set, BIOS calls, X86 instruction set, etc... was widely available. The only limits in your way were the limits of your own ability to figure everything out.

    You mention the C64 and its own proprietary modems. In fact, the user port on the C64 was RS-232 compatible, the main difference being voltage levels. Many companies designed RS-232 interface kits for the C64 allowing you to connect any standard modem you wanted. The specs for the user port were published in the Commodore 64 programmer's reference manual. If you were so inclined, you could actually build your own RS-232 interface from parts available at the electronics store.

    With Windows-specific hardware, we no longer have that freedom. We've lost something -- Now, even if we want to write our own software stack or implement our own hardware, we're stuck -- the information needed to make the hardware work is hidden, locked away in a binary driver that only works on one platform. The only way to make it work elsewhere (e.g. Linux) is to reverse engineer the product -- much more difficult that working against an open spec.

    Why do I have to reverse engineer my own hardware if it supposedly adheres to a published / well known specification?

  25. Re:Yay tinfoil hats! by quantum+bit · · Score: 5, Informative

    No, it allegedly has a bunch of checks for Linux strewn about in random places which then give bad data upon detecting Linux.

    The only person claiming that is the original poster in that thread, whose correspondence with Foxconn and the (!) FTC is instantly accusatory and full of assumption. It's almost as if he started with the premise that Foxconn was actively breaking Linux to be anticompetitive and looked for evidence to support it.

    I'd have to see a full DSDT dump to be sure, but from the excerpts posted it looks like "active checking" is just matching against _OS instead of using _OSI, which is a mistake a naive BIOS writer unfamiliar with the spec could easily make. It doesn't help the issue that Linux lies about its identity in _OSI.

    The "redundant checks" seem to be present for the Windows code path too, and look more to me like bad spaghetti code copied and pasted multiple places.

    I also take issue with

    Find and replace all seven occurences of Acquire (MUTE, 0x03E8) and replace with Acquire (MUTE, 0xFFFF), it appears they're trying to crash the kernel by locking a region of memory that shouldn't be locked, but without access to their source code comments, I can only speculate, this tells it to lock a memory address that is always reserved instead. ;)

    It's obviously not trying to crash the kernel, that's not how Acquire() works. The second parameter is a timeout, not a memory address. 3E8 hex = 1000 decimal. The BIOS writer was trying to acquire a mutex with a 1 second timeout.

    Changing it to 0xFFFF makes it wait forever, which could potentially cause worse problems as execution will get stuck if the mutex is already held. Multithreaded synchronization is a very tricky problem, and I'm not surprised to see they got it wrong. Without examining the code it's impossible to say what effect TheAlmightyCthulu's changes have, if they're correct or if they merely mask the problem.

    Saying they're trying to deliberately crash the kernel is a bit ridiculous.

    But then again I'm a BSD guy, so I don't start out with a chip on my shoulder and assume everyone's out to get me. Have seen a ton of shoddy BIOSes in my time though.

  26. Re:So what? by leoxx · · Score: 5, Informative

    For reference, here is Bill Gates' email asking how they can make ACPI incompatible with Linux.