TSC_DEADLINE disabilitato a causa di Errata


15

Ho inviato il mio computer al produttore per la diagnosi e l'aiuto per un problema di uscita video che stava avendo. Hanno aggiornato il BIOS. Da allora ho avuto

[Firmware Bug]: TSC_DEADLINE disabled due to Errata; please update microcode to version: 0x20 (or later)

Non avevo installato alcun pacchetto microcodice o ucode prima e non avevo usato questo messaggio.

Ho contattato il produttore e mi hanno risposto "non ricordare il numero del tuo biglietto ma dubito che abbiamo aggiornato il BIOS", quindi non sono molto utili.

Si avvia e funziona, ma TSC_DEADLINE è importante o utile?

L'unica cosa che posso trovare al riguardo è questa: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git/commit/?id=73b866d89bf7c9a895d5445faad03fa3d56c8af8

Ma questo sembra applicarsi solo a VirtualBox, e in ogni caso sto già eseguendo il kernel 4.14, quindi penserei che se quel commit risolvesse il mio problema già avrebbe.

ryan@pocketwee:~$ uname -a
Linux pocketwee 4.14.0-1-amd64 #1 SMP Debian 4.14.2-1 (2017-11-30) x86_64 GNU/Linux

La maggior parte delle distribuzioni Linux fornisce un pacchetto linux-firmwareche fornisce gli aggiornamenti del firmware richiesti. In Debian potresti dover abilitare contribe / o non-freeottenerlo. La patch che hai collegato ha lo scopo di risolvere la situazione sciocca quando il kernel si conforma a firmware obsoleto quando si avvia in una macchina virtuale, che ovviamente non ha alcun firmware ...
AlexP

2
@AlexP linux-firmwarenon aggiorna il microcodice, è necessario intel-microcodeo amd64-microcodeper quello (almeno su Debian e derivati).
Stephen Kitt,

Risposte:


17

L'apparizione improvvisa di questo messaggio è piuttosto strana; suggerisce che il firmware aggiornato non stia più aggiornando il microcodice della CPU, mentre il firmware precedente che possedevi lo faceva. Strano ... (Un altro scenario possibile è che la CPU originariamente non supporta termine TSC a tutti , e il firmware è ora di aggiornare il suo microcodice a una versione che dichiara il supporto per scadenza TSC, ma ha errata rendendolo inutilizzabile.)

In ogni caso, il supporto per le scadenze TSC è bello da avere, ma non vitale. Il kernel ha un framework elaborato per il cronometraggio e la gestione degli eventi cronometrati; La scadenza del TSC è una possibile implementazione della gestione degli eventi, ma non l'unica. Sulle CPU che lo supportano, è bello averlo, perché è molto efficiente.

Per aggiornare il tuo microcodice e si spera di riattivare il supporto delle scadenze TSC, puoi installare i pacchetti di aggiornamento del microcodice da Debian contribe dai non-freerepository. Per fare ciò, modifica il tuo /etc/apt/sources.listper assicurarti che le definizioni del tuo repository Debian includano main, contribe non-free; poi corri

sudo apt update

seguito da

sudo apt install intel-microcode

(per CPU Intel) o

sudo apt install amd64-microcode

(per CPU AMD). Una volta fatto, riavvia e il tuo microcodice dovrebbe essere aggiornato. Se il supporto delle scadenze TSC viene riattivato, non verrà visualizzato il messaggio di errore all'avvio e verrà visualizzato tsc_deadline_timernelle flagsrighe di /proc/cpuinfo.

Il wiki di Debian ha maggiori informazioni sugli aggiornamenti del microcodice .


Grazie per la correzione, Stephen. Ho appena aggiornato il mio laptop da debian stretch a buster e ho riscontrato lo stesso messaggio di errore di scadenza TSC all'avvio. La tua correzione funziona come un incantesimo!
Qiang Xu,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.