Login rusak setelah 15.10 -> 16.04 LTS, terkait dengan driver NVIDIA

10

Saya baru saja memperbarui sistem saya dari 15.10 ke 16.04 via sudo do-release-upgrade. Selama proses ini, ia menampilkan layar dengan pesan berikut:

Sistem Anda mengaktifkan UEFI Secure Boot. UEFI Secure Boot tidak kompatibel dengan penggunaan driver pihak ketiga.

(...) Ubuntu masih dapat melakukan boot pada sistem Anda, tetapi driver pihak ketiga ini tidak akan tersedia untuk perangkat keras Anda.

Nonaktifkan UEFI Secure Boot? (ya | tidak)

Karena satu-satunya driver pihak ketiga yang saya gunakan adalah driver grafis NVIDIA, dan karena mereka telah bekerja dengan baik dengan Ubuntu 15.10 dan Secure Boot diaktifkan, saya memilih opsi "tidak" di sini. Saya tidak melihat mengapa saya harus menonaktifkan ini tanpa alasan yang baik, dan saya berasumsi saya bisa menginstal ulang driver pihak ketiga melalui pengaturan sistem GUI setelah pembaruan.

Sayangnya, tidak. Setelah reboot, layar login saya muncul dalam resolusi yang sangat rendah. Ketika mencoba masuk, segera melemparkan saya kembali ke layar masuk.

Saya telah mencoba yang berikut ini untuk memperbaiki situasi:

sudo apt-get purge nvidia*
sudo reboot

Ini mengarah ke layar ungu dan tidak ada reaksi terhadap Ctrl-Alt-F1. Masuk melalui SSH, saya kemudian melakukan:

sudo apt-get install nvidia-current
sudo reboot

yang sekali lagi membawa saya skenario sebelumnya, dengan layar masuk res yang sangat rendah, dan tidak ada cara untuk masuk.

Ini adalah pengalaman peningkatan yang sangat buruk. Apakah ada orang lain yang memiliki ini, dan apa yang dapat saya lakukan untuk memperbaikinya? (sambil tetap mengaktifkan UEFI Secure Boot) Terima kasih.

kmhofmann
sumber
5
Lihat di sini
Videonauth
Wow, ini buruk. Sejauh ini saya harus: menginstal nvidia-364 via PPA, dan menonaktifkan Secure Boot. Sekarang hal-hal tampaknya berfungsi, tetapi driver tidak akan memperbarui otomatis (jika saya tidak salah), saya juga tidak dapat mengaktifkan kembali Boot Aman ...
kmhofmann
Ya sayangnya tidak ada pilihan lain saat ini. Anda tidak keberatan saya menandai pertanyaan ini kemudian sebagai duplikat.
Videonauth
Tidak, saya tidak keberatan.
kmhofmann
Ini bukan duplikat - setidaknya, tidak sepenuhnya. Pertanyaan ini menambahkan putaran baru Boot Aman, yang bukan bagian dari pertanyaan "duplikat" (meskipun disebutkan dalam beberapa komentar dan jawaban), dan itu perlu mendapat perhatian lebih lanjut.
Rod Smith

Jawaban:

8

Melalui Ubuntu 15.10, penanganan Secure Boot oleh Ubuntu berhenti di GRUB - yaitu, Shim versi Ubuntu akan meluncurkan GRUB versi Ubuntu, yang akan meluncurkan kernel Linux apa pun , baik itu ditandatangani atau tidak. Ini adalah bar dukungan yang sangat rendah untuk Boot Aman. Sebagai perbandingan, GRUB Fedora hanya akan meluncurkan kernel Linux yang ditandatangani, dan kernel Fedora, ketika mereka mendeteksi bahwa Secure Boot aktif, akan memuat hanya binari kernel yang ditandatangani. Maksud dari dukungan Boot Aman Fedora yang lebih kuat adalah untuk melindungi sistem terhadap modul kernel "jahat", yang secara teori dapat mengambil alih komputer pada level yang sangat rendah. Ubuntu 15.10 dan sebelumnya tidak memiliki perlindungan seperti itu.

Dimulai dengan 16.04, Ubuntu mengikuti modul Boot Aman yang lebih ketat, lebih seperti apa yang telah dilakukan Fedora cukup lama. Ini memiliki manfaat keamanan, tetapi seperti yang Anda lihat, ini juga memiliki masalah. Jika driver pihak ketiga tidak ditandatangani dengan kunci kriptografi yang diakui versi Ubuntu dari kernel Linux sebagai valid, itu tidak akan dimuat. Ini sebagian besar berdampak pada driver video Nvidia dan AMD / ATI sumber tertutup, tetapi ada driver lain yang dapat terpengaruh juga.

Ada (atau mungkin) beberapa solusi untuk masalah ini:

  • Nonaktifkan Boot Aman - Ini adalah solusi termudah. Anda dapat melakukannya dengan mucking dengan pengaturan firmware Anda atau (saya pikir) dengan menyesuaikan pengaturan Shim. (Aku tidak yakin bagaimana melakukannya dengan mengubah pengaturan Shim, tapi aku cukup yakin itu mungkin.)
  • Jangan menggunakan modul kernel pihak ketiga - Jika Anda membatasi diri Anda untuk driver open source yang termasuk dalam kernel Linux standar Ubuntu, Anda harus baik-baik saja, karena Canonical menandatangani semua driver tersebut (AFAIK). Perhatikan bahwa harus ada dukungan Nvidia yang cukup bagus menggunakan driver tersebut; sistem Anda mungkin jatuh kembali ke driver sub-optimal karena berpikir bahwa driver sumber tertutup tersedia. Saya tidak tahu bagaimana beralih dari satu ke yang lain, tetapi pertanyaan ini adalah tentang melakukannya dengan driver AMD / ATI, jadi ini mungkin merupakan titik awal yang bermanfaat.
  • Menandatangani modul yang relevan - Secara teori, menandatangani modul komersial sendiri harus membuatnya bekerja. Sayangnya, saya tidak memiliki petunjuk untuk petunjuk tentang cara melakukan ini, dan pada kenyataannya saya bahkan tidak sepenuhnya yakin bahwa hal ini mungkin dilakukan dengan kernel Ubuntu stock; kernel seperti itu mungkin hanya menghormati modul yang ditandatangani dengan kunci Canonical, yang tentu saja tidak Anda miliki.
  • Kompilasi kernel Anda sendiri - Jika Anda mengkompilasi kernel Anda sendiri, Anda dapat mengatur opsinya sesuai keinginan Anda, termasuk melonggarkan pembatasan pemuatan modul yang tidak ditandatangani. Anda kemudian harus menandatangani kernel dengan kunci EFI Anda sendiri dan menambahkan versi publik dari kunci itu ke daftar MOK Anda. Inilah pertanyaan dan jawaban tentang kompilasi kernel Anda sendiri.
  • Beralih ke GRUB yang lebih lama - Karena GRUB yang lebih lama akan meluncurkan kernel yang tidak ditandatangani, Anda dapat menginstal GRUB tersebut (dari Ubuntu 15.10 atau sebelumnya) dan meluncurkan kernel yang tidak ditandatangani. Perhatikan bahwa mempertahankan GRUB yang lebih tua akan terasa menyebalkan.
  • Beralih ke boot loader yang tidak menghormati Boot Aman - Jika Anda menandatangani boot loader seperti SYSLINUX atau ELILO dengan kunci Anda sendiri dan menambahkan versi publik dari kunci itu ke daftar MOK Anda, boot loader itu akan mengabaikan Secure Pengaturan boot, sama seperti versi GRUB yang lebih lama. Anda kemudian dapat meluncurkan kernel yang tidak ditandatangani.

Perhatikan bahwa hanya dua dari opsi ini yang saya yakin 100% akan berfungsi adalah untuk menonaktifkan Boot Aman atau untuk menghindari modul kernel pihak ketiga. Saya menghindari modul kernel pihak ketiga seperti wabah, jadi saya tidak punya pengalaman pribadi dalam menggunakannya di lingkungan Boot Aman. Selain menonaktifkan Boot Aman, membangun kernel Anda sendiri mungkin yang paling mungkin bekerja berikutnya, diikuti dengan menggunakan GRUB yang lebih lama atau menggunakan boot loader yang tidak menghormati Boot Aman. Membangun kernel Anda sendiri adalah hal yang biasa, tetapi hanya sedikit orang yang melakukannya lagi, dan dengan kernel modern, investasi waktu untuk mempelajari cara mengkonfigurasi kernel, belum lagi benar-benar melakukannya, dapat menjadi signifikan. Menggunakan GRUB yang lebih lama atau boot loader lain mungkin lebih mudah, tetapi Anda harus cukup tahu untuk dapat mengaturnya.

Rod Smith
sumber
2
* Gunakan Ubuntu 14.04 sampai masalah ini teratasi. Ada banyak alasan mengapa Linux di desktop masih belum terlihat. Hal semacam ini benar-benar hanya membuatnya lebih menyakitkan bagi orang untuk mengadopsi Linux.
Underverse
Masuk modul yang relevan: masuk secara manual /lib/modules/x.y.z/updates/dkms/nvidia*.komenggunakankmodsign (juga setelah setiap pembaruan driver) atau secara otomatis denganapt install shim-signed .
Joel Purra