Slashdot Mirror


Shuttleworth Wants To Get Rid of Proprietary Firmware

jones_supa writes "In a new blog post, the Ubuntu main man Mark Shuttleworth calls for an end to proprietary firmwares such as ACPI. His reasoning is that running any firmware code on your phone, tablet, PC, TV, wifi router, washing machine, server, or the server running the cloud your SAAS app is running on, is a threat vector against you, and NSA's best friend. 'Arguing for ACPI on your next-generation device is arguing for a trojan horse of monumental proportions to be installed in your living room and in your data center. I've been to Troy, there is not much left.' As better solutions, Shuttleworth suggests delivering your innovative code directly to the upstream kernel, or using declarative firmware that describes hardware linkages and dependencies but doesn't include executable code."

32 of 147 comments (clear)

  1. Re:Precisely how... by jones_supa · · Score: 3, Insightful

    Getting rid of ACPI sounds also like a "good luck with that" plan.

  2. Source codes, legos, meccanos by Hognoxious · · Score: 3, Funny

    Mark Shuttleworth calls for an end to proprietary firmwares

    Well I call for an end to spurious pluralization, so there!

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  3. I can't see this happening. by allaunjsilverfox2 · · Score: 3, Funny

    Perfect example would be dell bios. There is no way DELL would allow a USER into bios. Especially one that might cause issues that can't be condensed into auto-replies.

    --
    Restore the madness of youth's lechery
  4. Re:Silly Rabit by X0563511 · · Score: 2

    You don't have to.

    Just don't lock your implementation away and let people actually use it

    --
    For large sets, this will be our guide even unto death, for the LORD will work for each type of data it is applied to...
  5. Re:Precisely how... by TechyImmigrant · · Score: 5, Insightful

    I design hardware. I could wait for someone to accept my changes into the Linux Kernel before I start testing it, or I could write some firmware accessible through ACPI.

    What Shutters wants is irrelevant. What he needs is open interface specifications to the hardware.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  6. What RMS has been saying all along. by Anonymous Coward · · Score: 5, Insightful

    So people are just now figuring out that o'l fatty hippy beard Richard Stallman was right all along?

    Color me fucking surprised! Any code you can't see can and will be used against you.

    RMS says things that are uncomfortable and difficult but painfully true. Don't mistake is disinterest in your feelings (Or business model) as hostility.

  7. Re:Precisely how... by Anonymous Coward · · Score: 5, Informative

    Firmware is just fine, as long as it's non-proprietary--free as in freedom.

  8. Re:Precisely how... by jones_supa · · Score: 2

    ACPI WMI specs from the HW makers would be nice. It's frustrating how many laptops have broken hotkeys under Linux.

  9. Re:Precisely how... by amorsen · · Score: 4, Informative

    Precisely how does he intend that a machine boot to the install media without executable firmware?

    He does not complain about executable, he complains about proprietary.

    Besides, ACPI is complete overkill for booting.

    --
    Finally! A year of moderation! Ready for 2019?
  10. Re:Precisely how... by fuzzyfuzzyfungus · · Score: 2

    ACPI WMI specs from the HW makers would be nice. It's frustrating how many laptops have broken hotkeys under Linux.

    If we are currently at the point where you can't even get the details of what the Windows Management Instrumentation blobs embedded in the motherboard firmware mean, that might be another reason why somebody running a Linux company might dislike ACPI...

    As long as (through some mixture of overt standard-setting to that effect, and basic 'you actually think that we are going to keep testing our BIOS once it boots Windows? That means that it's ready to ship!' OEM engineering) proprietary firmware is basically the lowest level of Windows drivers, writing other OSes on top of it just isn't going to be a pleasant experience.

  11. Possesion by MouseTheLuckyDog · · Score: 2

    So how did RMS posses Shuttleworths body?

    1. Re:Possesion by fahrbot-bot · · Score: 5, Funny

      So how did RMS posses Shuttleworth's body?

      There's an obscure clause deep down in the GPL ...

      --
      It must have been something you assimilated. . . .
    2. Re:Possesion by Kjella · · Score: 3, Insightful

      It's part of the GPLv666 under the "Demonic Possession" section if you use the "or any later version" clause. I hear Stallman wrote the original in blood, he couldn't find any open source ink. And you really don't want to know how the toe jam is involved.

      --
      Live today, because you never know what tomorrow brings
  12. Re:Make Ubuntu work properly first by lgw · · Score: 2

    At Canonical, making Unity worse is job 1! It gets harder every release to make Unity worse than the last one, so it takes all their mental effort. Perhaps with open firmware, Unity could actually electrocute the user, opening a whole new realm of "worse".

    --
    Socialism: a lie told by totalitarians and believed by fools.
  13. Re:Precisely how... by PopeRatzo · · Score: 2

    What he needs is open interface specifications to the hardware.

    That. Absolutely.

    Shuttleworth may be slightly off the mark, but his dislike for proprietary firmware is worth supporting, given what we're learning daily about what people who mean us no good are doing with our consumer electronics.

    --
    You are welcome on my lawn.
  14. Some context from a hardware perspective. by queazocotal · · Score: 5, Informative

    Great - you don't want ACPI.

    I'm looking at my Nokia n900 phone.
    (merely because I happen to have a detailed understanding of the design).

    Inside it, there are the following closed-source blobs running on turing complete processors.

    LED controller firmware.
    SIM java virtual machine
    SIM raw firmware.
    eMMC controller.
    SD controller.
    Hard-real-time modem controller.
    Modem high-level engine.
    Bluetooth CPU.
    Wifi processor.
    Main linux application processor
    GPU.
    I strongly suspect there is also an embedded processor in:
    Power managment controller.
    LCD.
    Battery charge monitor.
    GPS. (It's possible this is just an application running on the closed-source modem high level engine).

    https://srlabs.de/rooting-sim-...
    http://www.youtube.com/watch?v... (rooting SD cards)
    http://www.youtube.com/watch?v... (battery firmware hacking)
    Similar efforts have been done with reverse engineering the firmware of bluetooth devices, wifi.
    The notion that you should only care about the code running on the CPU being open has always seemed really naive to me.

    1. Re:Some context from a hardware perspective. by rahvin112 · · Score: 3, Informative

      There are many cellphones where there is an independent CPU running the cellular radio. This CPU runs a proprietary OS that runs has write access to all memory and can actually override the main CPU. In theory the radio CPU and OS could actually overwrite memory on the fly and redirect the kernel in completely transparent ways.

    2. Re:Some context from a hardware perspective. by AmiMoJo · · Score: 3, Interesting

      Okay, but despite being Turing complete most of those devices could be contained by an open source firmware in a secure way. For example the LED controller is probably what, an I2C device? There is no way it could compromise anything with an even half way competent ACPI implementation. The battery monitor, LCD, GPS and probably a few others probably fall into that category too.

      For everything else you need a secure APCI implementation that is based on not trusting the firmware in those devices. Okay, the wifi firmware could intercept, modify or leak any packets, but at least with an open source ACPI implementation the damage could be limited, contained and perhaps detected. It's not perfect but it's a lot better than what we have now.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  15. This is about ARM 64 bit Servers by Bill,+Shooter+of+Bul · · Score: 3, Informative

    Its already been decided by the industry that its going to be ACPI.

    And Canonical helped desgin it... with ACPI in it

    http://www.businesswire.com/ne...

    So I don't understand why Mark is suddenly against it. Sudden change of heart leading Ubuntu to be non compatible with other linux operating systems? Again? I don't get it.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
    1. Re:This is about ARM 64 bit Servers by Bill,+Shooter+of+Bul · · Score: 2

      Responding to my own post. Mark explained himself on Google plus (can't link to it directly but look for Jon Masters post about annoying a billionaire) :

      "SBSA did not specify ACPI or any other crapware, and we were happy to support a standards-based approach. I think it's a poor effort if we can't achieve the goal of standards in a more modern, secure, open way."

      So it appears that he supported one standardization effort, but it didn't specify ACPI. I don't know what the truth is as the relevant documents aren't public. Mark also claims that he did propose an alternative approach that would still allow a single kernel but not ACPI. Not sure how specific it was, or if it was anything beyond " Lets have the kernel guys do it!".

      --
      Well.. maybe. Or Maybe not. But Definitely not sort of.
  16. Re:Precisely how... by blackiner · · Score: 2

    Isn't device tree pretty much declarative firmware? It has gained quite a bit of ground in the ARM on Linux world recently too. Seems like the solution already exists, it just need a bigger push.

  17. Re:Precisely how... by sjames · · Score: 3, Informative

    He's talking about ACPI. That is, firmware that the kernel is expected to trust and run in it's own context after being loaded. That is quite distinct from bootstrap firmware that is expected to load and jump into the bootloader and then be inactive until the next boot.

    BTW, much of it is actually broken in various ways.

  18. Re:Precisely how... by LoRdTAW · · Score: 2

    I think you mean PLCC. It can be soldered directly to a board or socketed. And in the recent past it was the choice for socketing BIOS chips after DIP32 fell out of favor. QFP is quad flat pack which is always directly soldered to the board and not easily removed. I never seen a QFP socket outside of test fixtures.

    With the high density of todays boards, even PLCC is gigantic in terms of footprint so many have moved to smaller SMT packages. I have seen Intel motherboards using 8 pin SOIC chips, most likely on an I2C or SPI bus. You can buy sockets for them but no mainstream motherboard maker sockets them.

  19. Re:Silly Rabit by ihtoit · · Score: 3, Insightful

    it's called reference frameworks. By the time you get to Userland, a Creative soundcard looks to the software identical to a Turtle Beach. This would be impossible without a reference. One obvious example is DirectX. What you want out of the arse end of the driver layer is a device interface that's compatible with DirectX. What happens between the driver layer and the hardware is entirely up to the manufacturer, but the DirectX compatibility is a certain requirement for even the slightest hope that you'll even get a peep out of it in Windows. And one of the reasons why the Linux driver model, at least from my own personal perspective, is horribly broken. Is there a reference framework for *anything* in Linux?

    --
    Political debates have me rolling my eyes so much I think I got optical whiplash. I should sue. - Foamy The Squirrel
  20. Re:Translated by peppepz · · Score: 2

    Everybody runs into problems with ACPI. I've never seen it work properly, on any OS, on any machine that I've owned.

  21. Re:Precisely how... by TechyImmigrant · · Score: 5, Interesting

    I'm talking about the device not the kernel.

    I can compile up my own kernel and test my device against it. But I can't go and deploy my device on the myriad computer/OS configurations out there if I need stuff compiled into the kernel. ACPI solves a problem. If your solution that replaces ACPI doesn't solve the problem ACPI solves while also solving the trojan-via-firmware problem, then it's useless. ACPI is horrible, and I'm all for replacing it with something better but I'm not seeing a proposal that does both.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  22. Re:Precisely how... by mspohr · · Score: 2

    "What Shutters wants is irrelevant. What he needs is open interface specifications to the hardware."

    I think that's what he wants:

    "Declarative firmware that describes hardware linkages and dependencies but doesn’t include executable code is the best chance we have of real bottom-up security. The Linux device tree is a very good starting point."

    --
    I don't read your sig. Why are you reading mine?
  23. Re:Precisely how... by tlhIngan · · Score: 2

    Besides, ACPI is complete overkill for booting.

    Agree. I've written bootloader code and kernel drivers. All the bootloader really has to do is get the kernel in memory somehow and jump to it. Why can't you boot directly into the kernel you ask ? One reason is size; on many (embedded) systems, there are only a few Kb available for an executable on boot. The other is that the bootloader doesn't not change easily (it needs reflashing or is in some kind of ROM), allowing you to easily change the kernel.

    ACPI is not just used for booting, it's used for controlling the customizations between systems. While the PC architecture has changed little in the way of memory maps since the 1980s, there are still things that various computer manufacturers do that no OS could ever program for.

    For example, PCI interrupt routing was completely up to the manufacturer in routing which IRQ when to which PCI IRQ. They were normally scrambled so you don't have all the cards using one IRQ line, but that information needs to be communicated between the BIOS and the kernel, otherwise the kernel has no way to handle PCI interrupts properly.

    You could define a data structure (which is what ACPI does), or you could program into the kernel every variation around for every motherboard, and hope that every mobo manufacturer out there updates the list and submits the patch.

    The other thing is, well, ACPI handles rebooting, shutdowns and suspend/resume. It tells you how to poke the hardware in various ways to accomplish the goal. It isolates the difference between hardware to the people who know it best - the hardware guys.

    Some of these things may be GPIO pins that change for routing convenience (to enable/disable wireless, for example, or for various status LEDs), power switches that control how the regulators operate, other settings and controls for various voltage rails and such.

    Every PC is not the same, each manufacturer might choose a different power regulator IC that requires different programming to turn it on and off, and ACPI is best to handle it. otherwise the kernel will have to have each and every variation in it programmed in.

  24. Re:Precisely how... by nateman1352 · · Score: 3, Informative

    Honestly Shuttleworth's reasoning "Binary blobs can contain NSA exploits" is completely irrelevant to ACPI since ACPI byte-code can be completely de-compiled back in to the original source language making it very easy for security researchers to detect any funny business.

    Honestly the modern PC has several microcontrollers in it that contain code that the primary CPU never even sees. I personally would consider those a much bigger security threat than ACPI.

    So lets ask ourselves... why does he really want to get rid of ACPI? The answer is pretty simple, it going to take a lot of coding effort to get the Linux ACPI stack ready to fully support ACPI 5.0 and Connected Standby found on a lot of brand new laptops. This is just a feeble attempt to mask the fact that puring all his resources in dumb projects like Mir and Unity doesn't leave much left to keep up to date on new open PC platform standards.

  25. Charles Stross? Is that you? by daboochmeister · · Score: 2

    Your description of the GPLv666 with a "Demonic Possession" section sounds very worthy of a Charles Stross novel, in every respect. Kudos!

    --
    "Ahh! I see you're in that indeterminate Schrodinger state where - oh, uh ... never mind." Dave Bucci
  26. Re:Precisely how... by TechyImmigrant · · Score: 2

    Declarative firmware only gets you so far. You can say 'Register to do X is at this address' but without software than knows what the hell to do with X you don't have a solution. Without an open interface spec, you can't write the software.

    That's why open interface specifications are a prerequisite for a bottom-up auditable code set.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
  27. Re:Silly Rabit by Arker · · Score: 2

    You misunderstand me, I love slack too.

    I was (somewhat tongue-in-cheek) pointing to its role as the standard implementation. Which unfortunately is really just a memory as for over a decade now other distros have insisted tenaciously on ignoring solid standards and everyone just reinvents the wheel, in ever more byzantine fashion each iteration.

    --
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-
    Friends don't let friends enable ecmascript.