pembaruan mikrokode persisten di Linux

1

Saya hanya mencoba memperbarui mikrokode untuk prosesor Intel Core i3-3217U saya mengikuti instruksi dari Intel . Saya menggunakan Linux Mint Debian edisi 2 (3.16.0-5-amd64 kernel).

Apa yang saya lakukan:

  • Ada sebuah /sys/devices/system/cpu/microcode/reload
  • Tidak ada /lib/firmware/intel-ucode, hanya a /lib/firmware/intel. Saya tetap menambahkan folder itu dari paket yang diunduh.
  • Sesuai instruksi, seperti SU saya dieksekusi

    echo 1 > /sys/devices/system/cpu/microcode/reload
    

cat /proc/cpuinfo | grep microcode memberi saya 0x1f, yang merupakan versi terbaru - tetapi hanya selama sistem berjalan. Setelah reboot saya kembali ke 0x12.

Bagaimana saya bisa membuat pembaruan menjadi permanen?

ccprog
sumber

Jawaban:

2

Anda tidak dapat membuat pembaruan mikrokode Intel menjadi permanen, ia harus dimuat setelah setiap boot. Microcode disimpan dalam RAM yang mudah menguap di CPU.

Johan Myréen
sumber
2

Sebagai solusi perantara sementara pembaruan mikrokode tidak porting ke Debian, Anda dapat menambahkan "echo 1 & gt; / sys / devices / system / cpu / microcode / reload" ke /etc/rc.local setelah Anda menginstal pembaruan mikrokode sesuai instruksi Intel . Ini adalah penambalan yang agak terlambat, tapi mungkin OK jika Anda mempercayai lingkungan boot Anda :)

port443
sumber
1

Saya menemukan bahwa saya dapat memuat mikrokode ke ramdisk awal memanfaatkan kode dari paket debian intel-mikrokode . Ini saat ini pada versi mikrokode yang lebih lama, tetapi mereka dapat diganti.

Setelah menginstal paket, saya menghapus semua file secara manual /lib/firmware/intel-ucode dan menggantinya dengan versi baru dari unduhan Intel. Setelah itu saya bisa memperbarui initrd.img-<kernel version> dengan

update-initramfs -u

grub-mkconfig juga akan menjalankan ini.

Seperti yang saya pahami, itu intel-ucode.img disebutkan dalam jawaban lain akan disebut "arsip initramf awal". Tampaknya skrip kait initramfs-tools yang disertakan dalam paket memilih sendiri apakah ia menempatkan modul pembaruan dalam .img terpisah atau ke initrd.img utama.

Edit: Sepertinya versi mikrokode baru telah mendarat di Internet paket tidak stabil . Dependensi tidak berubah, sehingga mereka dapat bekerja pada regangan Debian (atau jessie, yang masih saya pakai). Saya menduga itu hanya beberapa hari sampai versi paket baru akan di-backport. Kemudian, menginstal akan cukup.

ccprog
sumber
0

Pembaruan mikrokode diterapkan selama boot, dan karenanya harus ditambahkan ke bootloader, mis. GRUB2 atau systemd-boot. Lebih spesifik, /boot/intel-ucode.img (atau di mana pun file ini berada di sistem Anda) harus ditambahkan sebagai gambar initrd pertama dari proses boot Anda (tetapi harus tidak ganti gambar initrd normal Anda). Setelah paket pembaruan mikrokode diinstal, skrip grub-mkconfig biasanya menangani ini sendiri, tetapi Anda dapat memeriksa apakah file /boot/grub/grub.grf.cfg memiliki baris yang sama:

initrd  /intel-ucode.img /initramfs-linux.img

Jika tidak, Anda dapat menginstal ulang paket mikrokode, atau menjalankan skrip grub-mkconfig secara manual.

kori
sumber
Pengunduhan Intel tidak termasuk file .img, tetapi hanya kode sumber mentah Itu harus dibangun menjadi modul secara lokal, lihat jawaban saya.
ccprog
Konvensi Debian tampaknya membangun mikrokode sebagai modul ke dalam citra kernel yang ada, tetapi saran saya untuk menginstal ulang paket mikrokode masih berlaku. Dari file README dari paket intel-mikrokode di Debian Stretch: Pada sistem Debian default (yang menggunakan kernel Debian, grub bootloader, dan initramfs-tools untuk membuat initramfs untuk kernel), instal "intel-microcode" paket dan dependensinya, dan reboot.
kori
Seperti yang saya katakan, satu-satunya peringatan untuk ini adalah bahwa saat ini versi mikrokode yang termasuk dalam paket lebih tua daripada yang diterbitkan oleh Intel. Ada kait pasca pemasangan untuk memperbarui initrd.img tepat setelah instalasi paket. Untuk mendapatkan versi baru, Anda harus membangun kembali secara manual setelah bertukar file mikrokode.
ccprog
1
Ya ampun, saya benar-benar merindukan bagian yang Anda unduh langsung dari Intel! Saya minta maaf untuk ini. Anda bisa mencoba stretch-backports untuk versi yang lebih baru, tetapi sepertinya masih ketinggalan zaman (3.20171117). Jika Anda merasa beruntung, Anda mungkin dapat menginstal paket dari Sid (tidak stabil), yang memiliki versi saat ini 3.20180312.1 - melihat dependensi dan versinya, itu seharusnya bekerja dengan baik
kori
Terima kasih untuk tautannya, saya melewatkan yang itu. Deps tidak berubah, jadi semoga ini segera kembali ke backport.
ccprog