akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
Ковыряясь с построением загрузочных iso, я наткнулся на непонятную (для меня) штуку. По порядку.
И что за дикое сочетание - на DVD/USB в безусловно пытаться грузить эти файлы, а в установленной системе - безусловно обходиться без них? Так нужны они или нет? Похоже,что всё это - шедевр костылестроения. Чей и какой баг всё это призвано обходить, и в наличии ли этот баг сейчас? (Часто бывает, что бага давно нет, а костыли обросли мясом и остались навечно). |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
Эти файлы если прописаны в загрузке обновляют микрокод процессора. Если не прописать то просто старый используется. А название все равно какое стандарта жесткого по видимому нет |
vs220 |
|
Темы:
22
Сообщения:
8070
Участник с: 16 августа 2009
|
https://wiki.archlinux.org/index.php/Microcode |
nafanja |
|
Темы:
94
Сообщения:
9252
Участник с: 02 июня 2012
заблокирован
|
по поводу минуса вместо подчеркивания, а ты много видел подчеркиваний в именах файлов в Арче? это я к тому что скорей всего для однородности где это возможно...
Псевдографический инсталлятор Arch Linux ver. 3.8.2
Благодарности принимаются на ЯД 410012815723874 |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
akoropОпишу, как это понимаю я ... разумеется на точность не претендую - могу в чем то и ошибаться. При загрузке с Live CD в /boot ничего и не будет. Микрокод имеет три способа загрузки - непосредсвенно из BIOS - отдельный патч микрокода отсутствует (точнее патч имеется, но прописан в BIOS). - загрузчиком, на стадии загрузки системы - имеется отдельный патч, не прописанный в BIOS, но загружаемый в соответствии со способом, регламентируемым данной системой, так называемое раннее обновление микрокода - Микрокод загружается при каждой загрузке, при этом создается файл устройство /dev/cpu/microcode, но эта инфа не доступна. Информация об обновлении микрокода лежит в /sys/devices/system/cpu/cpu*/microcode. Как узнать/считать текущую версию патча микрокода? - привожу свои значения микрокода, расположенного в BIOS (без использования intel-ucode): 1. прочитать из регистра sudo rdmsr 0x8B -f 63:32 14 2. cat /proc/cpuinfo | grep -m 1 microcode microcode : 0x14 3. cat /proc/cpuinfo | grep microcode microcode : 0x14 4. cat /sys/devices/system/cpu/cpu*/microcode/version 0x14 5. dmesg | grep microcode А сейчас в ручную загрузил обновление микрокода и смотрим те же значения, приведенные выше 1. прочитать из регистра sudo rdmsr 0x8B -f 63:32 2f cat /proc/cpuinfo | grep -m 1 microcode microcode : 0x2f 3. cat /proc/cpuinfo | grep microcode microcode : 0x2f 4. cat /sys/devices/system/cpu/cpu*/microcode/version 0x2f Основное отличие загрузки микрокода intel от amd - микрокод amd включен в linux-firmware, а значит директория /usr/lib/firmware/amd-ucode в Arch всегда имеется, чего нет для Intel, для которого intel-ucode нужно загружать отдельно. ..., и если эта директория и нужные патчи в ней имеются, то загрузка микрокода идет по дефолту. PS - в части - и _ - посмотри вывод любого модуля, имеющего эти знаки - modinfo mmc_core и modinfo mmc-core - безразницы ... EDIT 1 - у меня вообще в /boot нет intel-ucode.img, но обновление идет - я размещаю нужные патчи в /usr/lib/firmware/intel-ucode/ и обновление идет автоматом при каждой загрузке. первоначально загрузилась из BIOS revision=0x14, а затем обновилось из /usr/lib/firmware/intel-ucode/ до revision 0x2fEDIT 2 - Для Intel, на мой взгляд, проще не создавать ни какого intel-ucode.img, не прописывать в загрузчик, а просто положить в /usr/lib/firmware/intel-ucode бинарный патч для своего cpu (как для amd), например, в моем случае Family 6, Model 42, Stepping 7 это будет ls /usr/lib/firmware/intel-ucode 06-2a-07 При следующей загрузке обновление будет проходит уже автоматом, из этой директории. Можно обновить и без перегрузки в действующей загрузке echo 1 > /sys/devices/system/cpu/microcode/reload но со следующей загрузки это уже будет идти автоматом - цитата из DOC Повторюсь, для amd этого ничего делать не нужно, уже все имеется - берется из linux-firmwarels /usr/lib/firmware/amd-ucode microcode_amd.bin microcode_amd_fam15h.bin microcode_amd_fam16h.bin microcode_amd_fam17h.bin
Ошибки не исчезают с опытом - они просто умнеют
|
beisic |
|
Темы:
5
Сообщения:
184
Участник с: 22 августа 2018
|
vasekДля использующих загрузчик system-boot intel-ucode.img проще пописать в файле /boot/loader/entries/arch.conf :
|
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
Я практически microcode не использую, ну очень редко, а поэтому, если возникла такая необходимость, мне проще скопировать один файлик в нужное место и загрузить. Обновляется microcode Intel редко (сейчас действует microcode-20180425.tgz), нужную версию обновления скачиваю с их сайта. intel-ucode.img по существу создан на основе этого же интеловского файла microcode-20180425.tgz EDIT 1 - конечно, нужно помнить, что иногда, как пишут (хотя такие факты мне не известны), обновление микрокода уже нужно на стадии ранней загрузки и в этом случае необходимо использовать intel-ucode.img, загружаемый загрузчиком. Если это не суть важно, то проще использовать позднюю загрузку - разместил всего один файлик в нужном месте ... и все.
Ошибки не исчезают с опытом - они просто умнеют
|
RusWolf |
|
Темы:
11
Сообщения:
2394
Участник с: 16 июля 2016
|
vasek Почему тогда дата посвежее в репе?
|
beisic |
|
Темы:
5
Сообщения:
184
Участник с: 22 августа 2018
|
vasekВ ArchWiki пишут как про конфигурацию загрузчиков grub, systemd-boot, EFISTAB , rEFInd, Syslinux для ранней загрузки микрокода, так и для поздней. |
vasek |
|
Темы:
48
Сообщения:
11320
Участник с: 17 февраля 2013
|
RusWolfПериодически выходит пакет обновлений микрокода, в котором приведены все cpu, но это не значит, что обновления коснулись всех cpu - но в пакете должны быть приведены все cpu, иначе быть не может. Смотрим конкретно мой cpu, анализируя заголовок микрокода 1. Смотрим дату (занимает 4 байта, смещение 8 байт) hexdump -C -s 8 -n 4 /usr/lib/firmware/intel-ucode/06-2a-07 00000008 19 20 17 02 02/17/2019 - 17 февраля 2019г., то есть обновление у Intel было 17 февраля, .... а в наш пакет вошло намного позже. 2. Смотрим ревизию (занимает 4 байта, смещение 4 байт) hexdump -C -s 4 -n 4 /usr/lib/firmware/intel-ucode/06-2a-07 00000004 2f 00 00 00 2f - и видим, что ревизия для моего cpu не изменилась, так и осталась 2f, то есть обновления то микокода были … но они мой cpu не затронули. EDIT 1 - молодежь тоже не поверила моим выкладкам - пришлось скачать и потрошить пакет intel-ucode-20191115-3-any.pkg.tar.xz - извлек от туда intel-ucode.img, из которго извлек GenuineIntel.bin, который содержит бинарники для все cpu, и из которого извлек название бинарника для своего cpu: sig=206a7, pf_mask=0x12, rev= 0x2f и видим ту же дату 2019-02-17, которую приводил выше, вытащенную непосредственно из микрокода, и тот же номер ревизии 2f … то есть как такового обновления для моего cpu не было.
Ошибки не исчезают с опытом - они просто умнеют
|