Slashdot Mirror


Ubuntu 17.10 Temporarily Pulled Due To A BIOS Corrupting Problem (phoronix.com)

An anonymous reader writes: Canonical has temporarily pulled the download links for Ubuntu 17.10 "Artful Aardvark" from the Ubuntu website due to ongoing reports of some laptops finding their BIOS corrupted after installing this latest Ubuntu release. The issue is appearing most frequently with Lenovo laptops but there are also reports of issues with other laptop vendors as well. This issue appears to stem from the Intel SPI driver in the 17.10's Linux 4.13 kernel corrupting the BIOS for a select number of laptop motherboards. Canonical is aware of this issue and is planning to disable the Intel SPI drivers in their kernel builds. Canonical's hardware enablement team has already verified this works around the problem, but doesn't provide any benefit if your BIOS is already corrupted.

12 of 167 comments (clear)

  1. That ain't right! by Anonymous Coward · · Score: 4, Insightful

    How the hell have we let what's supposed to be ROM get so fucked up by a simple software upgrade? That, Ain't, Right!

    1. Re:That ain't right! by Anonymous Coward · · Score: 2, Insightful

      You don't need to overwrite the EEPROM to cause problems. In this case, since it's caused by the SPI driver, it looks like corrupt data is being written to the volatile memory used by the BIOS to save settings. This is battery backed memory that can be reset, but it's a bit trickier in laptops.

    2. Re:That ain't right! by omnichad · · Score: 2

      In this case, at least one person involved was unable to resolve it by replacing the CMOS battery:
      https://bugs.launchpad.net/ubu...

  2. Interestingly enough Win10 1709 did this by oobayly · · Score: 4, Interesting

    I have a Lenovo Yoga which I dual boot with Linux Mint Sarah and just after I installed 1709 Fall Creators Update the fingerprint reader stopped working. I gave up trying to remedy it and reset Windows, but that didn't fix it.

    I then realised that it wasn't shutting down properly either. ACPI shutdown in both OSs would leave it halted but powered on, so the only way to restart was to hold the power button to kill it, and then switch on.

    I finally checked the warranty and saw it was 14 months old so took it apart, removed the battery and motherboard battery, left it for an hour, powered it on, flattened the partition table an reinstalled. Works perfectly again, but after a huge amount of time wasted.

    So, it's either a coincidence, or there's something modern OSs are trying to do which screw up BIOSs.

  3. Re:which is to blame Linux or Lenovo? by omnichad · · Score: 5, Informative

    From the Canonical bug report:
    At least on Lenovo Thinkpad Yoga, the BIOS seems to monitor the SPI-NOR
    write protection bit and if it is flipped to read/write it assumes the
    BIOS configuration was changed on next reboot. It then, for unknown
    reasons, resets the BIOS settings back to default.

  4. OS-level Updates by nuckfuts · · Score: 2

    These days, "BIOS-level" upgrades ARE "OS-level" upgrades. UEFI even has its own shell.

    Case in point:

    I recently purchased a Dell PowerEdge server to run VMware's ESXi hypervisor. Before installing ESXi, I wanted to update the BIOS to the most current version. On Dell's site, I could not a "BIOS-level" update package, only "OS-level" ones. I talked to Dell, and to my surprise, the answer was to run their Windows executable from the BIOS shell.

    1. Re:OS-level Updates by Hal_Porter · · Score: 2

      Oops. the link to how PE files contain a Dos exe stub didn't work

      https://upload.wikimedia.org/w...

      Originally this just printed "This program requires Microsoft Windows". Of course if you have a Dos version of something you can make that the stub.

      The problem is that there's no documented way to combine two PE files for different APIs - Win32 and UEFI. It's also not really clear to me what the UEFI app should be built for - you can have native x86, native x64 or EBC - a byte code format.

      Even though most Windows installations are 64 bit they can still run x86 code, so that seems safe. With UEFI you have to either match the native architecture or use EBC. And it's not clear how many UEFI bioses are x86, x64 or EBC capable. Then again I suppose Dell would know what would work. Still combining Win32 and UEFI code into one PE file seems like it would need a trick I don't know.

      --
      echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  5. Re:which is to blame Linux or Lenovo? by Hal_Porter · · Score: 5, Interesting

    Lenovo need to stop people writing the Bios because otherwise they'd able to remove the crapware Lenovo put in the Bios to stop people removing the crapware they put in the Windows by installing a fresh Windows image.

    With an unmodified Lenovo Bios the crapware will be re-installed via Windows Platform Binary Table

    https://www.howtogeek.com/2263...

    Beginning with Windows 8, a PC manufacturer can embed a program - a Windows .exe file, essentially - in the PC's UEFI firmware. This is stored in the "Windows Platform Binary Table" (WPBT) section of the UEFI firmware. Whenever Windows boots, it looks at the UEFI firmware for this program, copies it from the firmware to the operating system drive, and runs it. Windows itself provides no way to stop this from happening. If the manufacturer's UEFI firmware offers it up, Windows will run it without question.

    Were it not for this Bios resetting feature - a ludicrously determined user could do the following

    1) Remove Windows
    2) Use some other OS to dump the Bios out
    3) Hack said dump to mess up the Windows Platform Binary Table and reflash it
    4) Reinstall Windows from an image

    And then they'd have a copy of Windows with no Lenovo Service Engine installed! The horror! Instead it seems like Lenovo have had the Bios reset itself to stop step 3), so the determined user would still have LSE installed.

    --
    echo -e 'global _start\n _start:\n mov eax, 2\n int 80h\n jmp _start' > a.asm; nasm a.asm -f elf; ld a.o -o a;
  6. Isn't wonderful by DarkOx · · Score: 4, Insightful

    That we have moved from simple reliable BIOS systems that provided a little boot code to get the system going on a ROM, to an advanced re-programable system so that software BUGs can now brick your PC!

    Progress!

    --
    Repeal the 17th Amendment TODAY! Also Please Read http://www.gnu.org/philosophy/right-to-read.html
  7. Re:which is to blame Linux or Lenovo? by Dorianny · · Score: 3, Interesting

    Fanciful theory however Occam's razor principle strongly suggests this being a simple bug in the Bios implementation rather then malicious intent. Lenovo is on the hook for the motherboard replacement required to fix the locked Bios for any device that is still under warranty. Seems like an incredibly stupid thing to do just to stop people from being able to remove the Lenovo Server Engine

  8. That's not the same problem by drinkypoo · · Score: 3, Informative

    I finally checked the warranty and saw it was 14 months old so took it apart, removed the battery and motherboard battery, left it for an hour, powered it on, flattened the partition table an reinstalled. Works perfectly again, but after a huge amount of time wasted.

    If removing the batteries solved the problem, then your problem wasn't BIOS. It was CMOS. The "CMOS RAM" is the volatile memory which stores settings used by the BIOS. The BIOS itself is stored in non-volatile memory. This was originally a PROM in the IBM PC, but today is pretty much always Flash ROM. Sometimes it's a flat quad package, sometimes it's a serial 8-pin DIP and it has to be shadowed into RAM just to function, but it's pretty much always flash. (Those ones are cool because they're usually socketed, and SPI-interfaced, which means they're useful for other projects...)

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  9. DUAL BIOS Motherboards by Darkk · · Score: 2

    Good thing I have a motherboard with dual BIOS so if one gets screwed up due to a bad flash I can flip the switch to the back up BIOS and then copy itself over to the corrupted BIOS.