[Comm] Обновление микрокода CPU в P8
Andrey Liakhovets
a.o.liakh на gmail.com
Вс Янв 14 13:47:11 MSK 2018
10.01.2018 18:57, Sergey пишет:
> On Wednesday 10 January 2018, you wrote:
>
>> $ dmesg |grep microcode
>> [ 0.609516] microcode: sig=0x306a9, pf=0x10, revision=0x1c
>> [ 0.609641] microcode: Microcode Update Driver: v2.01 <tigran на aivazian.fsnet.co.uk>, Peter Oruba
>
> О! А что это оно в messages не попало у меня параллельно ?.. Странно. Тем не менее,
> ответ на мой вопрос "где смотреть". :-)
>
>> оно загрузилось?
>
> Наверное нет, так как у меня, где микрокод в initrd добавился, написано
>
> [ 0.000000] microcode: microcode updated early to revision 0x2e, date = 2004-08-11
> [ 0.916378] microcode: sig=0xf29, pf=0x4, revision=0x2e
> [ 0.916806] microcode: Microcode Update Driver: v2.01 <tigran на aivazian.fsnet.co.uk>, Peter Oruba
>
> Есть ещё один вариант, как раз из двух строк:
>
> [ 0.355801] microcode: sig=0xf41, pf=0x10, revision=0x17
> [ 0.356085] microcode: Microcode Update Driver: v2.01 <tigran на aivazian.fsnet.co.uk>, Peter Oruba
>
> И вот тут микрокод и в initrd не попал, то есть, в моём случае, не загрузился точно.
У меня ни на одном из компьютеров с P8 микрокод не грузится (early).
Руками -- нормально (echo 1 > /sys/devices/system/cpu/microcode/reload,
я из intel-microcode.bin всё извлёк с помощью iucode_tool, всё равно мне
для P7 они были нужны).
Выяснилось, что при создании initrd сначала cpio с микрокодом
пристыковывается спереди к cpio с initrd, а только потом всё это
сжимается (gzip). Результат -- нет загрузки микрокода.
Если сперва cpio с initrd сжать, а потом к сжатому спереди приделать
cpio с микрокодом, то всё начинает работать.
Проверил на одном из компов, "разобрав" готовый initrd и сделав из него
описанный выше.
В результате в dmesg самой первой строкой появляется:
[ 0.000000] microcode: microcode updated early to revision 0x21, date
= 2017-11-20
Глянул в make-inird (в P8).
Похоже, надо сделать зависимость ucode: compress.
...
Действительно, с таким изменением работает:
--- /usr/share/make-initrd/features/ucode/rules.mk.orig 2017-12-04
11:56:16.000000000 +0300
+++ /usr/share/make-initrd/features/ucode/rules.mk 2018-01-14
13:30:29.495788524 +0300
@@ -1,4 +1,4 @@
-ucode:
+ucode: compress
@echo "Adding CPU microcode ..."
@$(ADD_UCODE)
@if [ -s "$(WORKDIR)/ucode.cpio" ]; then \
(Но вдруг кому-нибудь понадобится несжатый initrd с early микрокодом...)
Андрей Ляховец
Подробная информация о списке рассылки community