Aktualizacja mikrokodu firmy Intel w VMware

Z Thomas-Krenn-Wiki
Przejdź do nawigacji Przejdź do wyszukiwania

VMware zapewnia regularne aktualizacje mikrokodów dla procesorów Intel w ESXi. Po zainstalowaniu tych aktualizacji, nowe wersje mikrokodu firmy Intel są automatycznie instalowane podczas procesu uruchamiania. W tym artykule pokazujemy jak sprawdzić wersję mikrokodu na serwerze z uruchomionym VMware ESXi 6.7 i jak można zainstalować nowszą wersję mikrokodu w razie potrzeby.

Przykładowa konfiguracja

W tym przykładzie wykorzystujemy następującą konfigurację:

  • Server z płytą główna ASUS P10S-M z BIOS-em w wersji 4401 (Uwaga: ten przykładowy system nie znajduje się na HCL (Hardware Compatibility List) firmy VMware)
  • VMware ESXi 6.7 (bezpośrednio po instalacji, bez poprawek)

Ten przykład został wykonany 27.08.2018 r. z najnowszymi wersjami BIOS-u, mikrokodu i oprogramowania dostępnymi w tym czasie. Pokazuje on, w jaki sposób można zainstalować najnowsze aktualizacje bezpieczeństwa w środowiskach o kluczowym znaczeniu dla bezpieczeństwa, zarówno pod względem mikrokodu, jak i aktualizacji oprogramowania.

Wersja BIOS-u

Najpierw sprawdzamy wersję BIOS-u płyty głównej:

[root@localhost:~] esxcfg-info | grep -i bios
      |----BIOS UUID................................................0x50 0xaa 0xab 0xc 0x5d 0x93 0x17 0x2c 0x39 0x7b 0x2c 0x4d 0x54 0x47 0xd 0xc1
      |----BIOS Vendor..............................................American Megatrends Inc.
      |----BIOS Version.............................................4401
      |----BIOS ReleaseDate.........................................2018-03-05T00:00:00
      |----BIOS Asset Tag...........................................To Be Filled By O.E.M.
               |----Name............................................HardwareSMBIOSHeap
                           |----Group Name..........................HardwareSMBIOS
            |----World Command Line.................................grep -i bios
            |----Option Name........................................ignoreHwSMBIOSInfo
[root@localhost:~]

Jeśli jest to system Thomas-Krenn, to najnowszą wersję BIOS-u dla płyty głównej można znaleźć w artykule Aktualizacje bezpieczeństwa BIOS-ów. W tym przykładzie została wykorzystana najnowsza aktualnie dostępna wersja BIOS-u.

Wersja mikrokodu

W Microcode Update Guidance z 08.08.2018 (vide Mikrokod firmy Intel - Wersje mikrokodu) wymienia Intel nową wersję mikrokodu 0x8E dla procesora Xeon E3-1220 v6 użytego w tym przykładzie.

Wersja aktualnie wykorzystywanego mikrokodu możne zostać sprawdzona w shellu SSH poleceniem vsish:

[root@localhost:~] vsish -e cat /hardware/cpu/cpuModelName
Intel(R) Xeon(R) CPU E3-1220 v6 @ 3.00GHz
[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision'
   Family:6
   Model:158
   Stepping:9
   Number of microcode updates:0
   Original Revision:0x00000084
   Current Revision:0x00000084
[root@localhost:~]

W tym przykładzie jest wykorzystywana wersja mikrokodu 0x84.

W dokumencie Microcode Update Guidance udostępnia Intel informacje o dostępnych wersjach mikrokodu (vide Mikrokod firmy Intel - Wersje mikrokodu). W niniejszym dokumencie procesory są wymienione według CPUID (nie na podstawie informacji o rodzinie/modelu/steppingu - Family/Model/Stepping). Po wprowadzeniu polecenia vsish cpuList CPUID jest widoczne w obszarze 1:CPUID leaf obok EAX (w tym przypadku 0x906e9):

[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0
CPU information {
   Family:6
   Model:158
   Type:0
   Stepping:9
[...]
   CPUID:CPUID content {
      0:CPUID leaf {
         EAX:0x00000016
         EBX:0x756e6547
         ECX:0x6c65746e
         EDX:0x49656e69
      }
      1:CPUID leaf {
         EAX:0x000906e9
[...]
   Number of microcode updates:0
   Original Revision:0x00000084
   Current Revision:0x00000084
[...]

Alternatywnie CPUID może zostać określone na podstawie wartości przy Family/Model/Stepping:

  1. Najpierw należy zapisać wartości znajdujące się przy Family/Model/Stepping w systemie heksadecymalny. W pliku /proc/cpuinfo wartości te są podane w formacie dziesiętnym:
    • Family: 6 -> 0x6
    • Model: 158 -> 0x9e
    • Stepping: 9 -> 0x9
  2. CPUID ma strukturę 0FFM0FMS. Określając CPUID z wartości przy Family/Model/Stepping należy rozpocząć od końca, od steppingu:
  3. S (Stepping) = 9
  4. M (ostatnia cyfra modelu) = e9
  5. F (Family) = 6e9
  6. Cyfra 0 = 06e9
  7. M (przedostatnia cyfra modelu) = 906e9

Poszukując 906e9 w Microcode Update Guidance z 08.08.2018 r., znajdujemy w kolumnie New Production MCU Rev wersję mikrokodu 0x8E. W tym przypadku Intel udostępnia nowszą wersję mikrokodu niż ta, która jest obecnie dostępna w systemie.

Instalacja patcha

VMware udostępnia do pobrania aktualizacje mikrokodu razem z innymi aktualizacjami.

Zainstaluj wszystkie dostępne aktualizacje (tak jak jest opisane w artykule Aktualizacje w VMware ESXi. W tym przykladzie jest to update ESXi670-201808402-BG, ktory zawiera nowy mikrokod.[1]

Kontrola mikrokodu

Kontrola wersji mikrokodu, po zainstalowaniu patcha i restarcie hosta, pokazuje nowy mikrokod w wersji 0x8E:

[root@localhost:~] vsish -e cat /hardware/cpu/cpuList/0 | grep -i -E 'family|model|stepping|microcode|revision'
   Family:6
   Model:158
   Stepping:9
   Number of microcode updates:1
   Original Revision:0x00000084
   Current Revision:0x0000008e

Odnośniki

Dodatkowe informacje


Autor: Werner Fischer

Powiązane artykuły

Mikrokod procesorów firmy Intel
Zalecenia dotyczące bezpieczeństwa produktów firmy Intel 2019-12-10
Zalecenia dotyczące bezpieczeństwa produktów firmy Intel 2020-01-27