Компанията Canonical оттегли излязлата през месец октомври дистрибуция Ubuntu 17.10 и махна съответния линк от сайта за изтегляне. Причината е критичен бъг, повреждащ BIOS-а в някой модели лаптопи на Lenovo и един модел на Acer. Списъкът с пострадалите устройства се уточнява и допълва.
Дефектът е твърде неприятен и се състои в това, че лаптопът не зарежда, новите настройки повече не могат да се запишат, и след рестартиране, лаптопът използва старите настройки.
И още по-зле, USB устройствата спират да се разпознават и стартирането от USB не е възможно.
Според описанията на бъга, той започва да се проявява след активирането на драйверите intel-spi-* в ядрото. Изглежда че работата върху тези драйвери не е довършена и те още не са готови за потребителските компютри.
За избягване на този проблем се препоръчва деактивирането на драйверите intel-spi-*. В описанието към бъга се казва, че последствията от деактивирането са минимални. „Слабо вероятно е някой наистина да направи нещо, че да се наложи да използва този драйвер„.
Ето към днешен ден списъка с пострадалите лаптопи:
- Lenovo B40-70
- Lenovo B50-70
- Lenovo B50-80
- Lenovo Flex-3
- Lenovo Flex-10
- Lenovo G40-30
- Lenovo G50-70
- Lenovo G50-80
- Lenovo S20-30
- Lenovo U31-70
- Lenovo Y50-70
- Lenovo Y70-70
- Lenovo Yoga Thinkpad (20C0)
- Lenovo Yoga 2 11″ — 20332
- Lenovo Z50-70
- Lenovo Z51-70
- Lenovo Ideapad 100-15IBY
- Acer Aspire E5-771G
Списъкът се допълва, и в коментарите към бъга се споменава и лаптопа Toshiba L50B-23G.
В редица форуми се натрупаха оплаквания от потребителите, понеже в по-новите лаптопи няма CD-ROM и системата не може да зареди.
Особено много са оплакванията във форумите на Lenovo. Това е особено неприятно, понеже именно лаптопите Lenovo ThinkPad се препоръчват за работа с Linux, а в сайта на Canonical той е включен в списъка с официално поддържаното оборудване.
По принцип, възможно е препрограмирането на BIOS и връщането му в предишното състояние с помощта на програматор, но това е нетривиална и рискована процедура. А и далеч не всеки потребител има програматор. Ето защо, може да бъде разбрано силното недоволство на хората, сблъскали се с този проблем. „Това е неприемливо, току що моят Lenovo G50-80 се превърна в тухла“ – написа един от пострадалите в коментарите към бъга в сайта на Canonical.
Току що в коментарите се появи информация, че никаква повреда на BIOS-а няма, а се заключва възможността за запис в SPI Flash чипа. Явно това се случва при намесата на този модул в Linux ядрото. Оказа се, че записът на данни в SPI Flash е хардуерно заключен и никакви настройки в BIOS-а няма как да работят, понеже те се записват именно там. Програматорът също няма да помогне. Налага се физическата замяна на чипа…
Canonical усилено работи с Lenovo за да открие истинската причина на проблема и да представи пач. Подготвят се нови дискови образи на Ubuntu 17.10 с обновено ядро, които не повреждат BIOS-а.
За съжаление, новите дискови образи с нищо няма да помогнат на хората, инсталирали Ubuntu 17.10 и повредили своя BIOS. В краен случай може да се наложи лаптопа да се носи в сервиз за замяна на дънната платка.
Но ако лаптопът все пак зарежда нещо, може да се опита процедурата, описана във форума за техническа поддръжка на Lenovo.
Това е съобщение на потребител, който също изгубил възможността да съхранява новите настройки на BIOS, както и да зарежда от USB.
Първото нещо, което този потребител прави, е да провери последователността на зареждане на EFI. Това се прави с помощта на командата:
efibootmgr -v
В неговия случай последователността на зареждане изглежда по следния начин:
BootCurrent: 0001
Timeout: 0 seconds
BootOrder: 0001,0002,2001,2002,2003
Boot0001* antergos_grub HD(1,GPT,f128f12b-fa3e-45b1-b5c9-f03c328498cb,0x800,0x64000)/File(\EFI\antergos_grub\grubx64.efi)
Boot0002* Windows Boot Manager HD(1,GPT,f128f12b-fa3e-45b1-b5c9-f03c328498cb,0x800,0x64000)/File(\EFI\Microsoft\Boot\bootmgfw.efi)RC
Boot2001* EFI USB Device RC
Boot2002* EFI DVD/CDROM RC
Boot2003* EFI Network RC
Това означава, че първи се зарежда grubx64.efi от папката antergos_grub и от указания в EFI диск.
Логично е да се предположи, че можем да управляваме зареждането, променяйки файловете в папката antergos_grub. Потребителят просто заменил информацията в тази папка с информацията от boot мениджъра rEFInd, като преди това преименувал refind_x64.efi на grubx64.efi. След тази намеса, при стартирането на лаптопа се появява стандартното стартиращо меню на rEFInd.