Il kernel di Linux si blocca su "Passare a clocksource tsc" su Pentium 4


11

Hardware: Dell Dimension 4500S : i845G, Pentium 4, stock + 2GB RAM e ultimo aggiornamento BIOS (circa 2002).

Sto costruendo un sistema Linux dal sorgente, finora è LFS 7.0 dal libro. Il primo kernel che ho creato funziona benissimo, ma ha molti fluff e bloat, quindi ora sto ottimizzando il kernel per il mio hardware di destinazione (vedi sopra).

Il mio ultimo tentativo di configurazione e diverse varianti di tentativi ed errori sono stati continuamente sospesi sull'istruzione printk "Passare a clocksource tsc". Il mio kernel "buono" non ha mai avuto problemi ... questa è la versione 3.1.0 a proposito. Entrambi sono in costruzione dallo stesso albero fonte, nessuna patch, make mrproper, make menuconfig, ecc, quindi ovviamente mi manca solo qualche chiave CONFIG_XXXbandiera.

Sto fissando questo problema da oltre un giorno e ho creato il kernel chissà quante volte, ma senza risultati.

Una cosa che trovo interessante è con il buon kernel che ottengo:

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc

inoltre, potrebbe essere utile sapere ....

# cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc acpi_pm

Ho tentato la configurazione della build con varie opzioni, ma a questo punto non ricordo alcun dettaglio, quindi per favore non chiedere. Dalla mia ricerca ho trovato e testato diversi parametri del kernel, come clocksource=pite notsc, ma anche tutti questi falliscono. Ancora una volta, vorrei aver scritto ogni cosa che ho provato finora, col senno di poi ...

La maggior parte degli esempi di forum sono per kernel 2.x e sono stati risolti con alcune varianti delle opzioni di avvio, ma il mio buon kernel usa solo root=/dev/sdaX ro. Quindi so di essere d'oro con questa combinazione hardware e kernel 3.1.0 se riesco a trovare la giusta configurazione di build.

Inoltre, la maggior parte delle persone là fuori che hanno pubblicato un problema simile affermano che dopo alcuni minuti il ​​sistema continuerà a caricarsi e tutto sarà perfetto. L'ho lasciato inattivo abbastanza a lungo per cucinare la cena e non ha ancora ripreso il caricamento.

Spero che uno di voi guru legga questo e dica "ehi sì, ho appena impostato CONFIG_XXX = y sul mio dinosauro P4 e ha funzionato alla grande". :)

Fammi sapere cosa ti serve per provare o controllare, sarò felice di pubblicare i risultati.


@tripleee Dove posso visualizzare tali informazioni ... il motivo di un voto ravvicinato?
rfmodulator,

Forse non puoi, la tua reputazione potrebbe non essere sufficiente. Comunque, poiché questo non è legato alla programmazione, ha senso spostarsi, ma tutto ciò che serve sono pochi voti più stretti. Aggiungerò anche il mio.
triplo il

Sto affrontando problemi simili con il nuovo kernel con Pentium 4. Tutto funziona se disabilito l'hyperthreading. Ho passato due notti a eseguire il debug, non sono ancora sicuro dei dettagli.
Choroba,

@choroba nohtnon lo fa per me. Fammi sapere se hai altre idee.
rfmodulator,

In effetti, ho dovuto spegnere ht a livello di BIOS, o specificare acpi=off.
Choroba,

Risposte:


8

Da una rapida ricerca, questo problema sembra avere molte possibili ragioni e sembra indicare che l'impostazione predefinita del tuo nuovo kernel per clock-source è errata per la tua scheda madre.

Un consiglio che ha funzionato per alcuni era usare clocksource=hpeto clocksource=acpi_pm.

In un altro thread , qualcuno ha risolto questo problema clocksource=jiffies, un altro ha consigliato di provare noapico nolapic, un altro di disattivare acpi nel BIOS, e ancora un altro ha incolpato il touchpad Synaptics e risolto il problema eliminando Xorg.conf.

Un kernel builder ha risolto il suo problema ricompilando initrd senza fbcondecor.

Spero che questo aiuti, in quanto sembra che questo problema possa avere molte cause.


Grazie per la tua risposta, tuttavia sto cercando opzioni di configurazione della build del kernel che causeranno (o impediranno) il blocco all'avvio che sto osservando, non un problema. Ho provato tutti i parametri di avvio (relavent clocksource=, no*, ecc) notati in vari fili forum, senza alcun effetto. Ho fatto questi esperimenti nel tentativo di restringere il mio vero problema. Ho già un kernel che si avvia perfettamente senza parametri speciali (a parte root=e ro) costruito dallo stesso albero dei sorgenti, ma questo kernel contiene più cose di cui non ho bisogno, di quelle che faccio ...
rfmodulator

... tranne quella CONFIG_bandiera chiave che risolverà il mio problema.
rfmodulator,

È possibile che il tuo problema sia che hai disattivato troppe opzioni del kernel?
harrymc,

Precisamente. :) Questa è la risposta che sto cercando, cosa ho disabilitato che è effettivamente necessario. L'ho fatto diverse volte senza cambiare il risultato.
rfmodulator,

Non posso aiutarti con una sola parola magica. Sembra che la tua sorgente di clock corrente sia acpi_pm, ma dovrai approfondire i sorgenti del kernel per scoprire con la configurazione del kernel che hai usato. L'altra opzione è tornare alla configurazione che ha funzionato e disattivare le opzioni in incrementi in modo da individuare il problema. Per "rallegrarti" posso anche dire che questa potrebbe non essere un'opzione ma diverse, il che significa un conflitto o una combinazione di configurazione non praticabile o una dipendenza non documentata.
harrymc,

0

Ho avuto lo stesso identico problema qui e ho letto MOLTO. @harrymc ha fatto un riassunto abbastanza buono.

Aggiungerò solo 2 cose che ho imparato dalla mia ricerca:

  • Il problema deriva dal tuo kernel Linux che non sa come gestire il tuo processore perché non riesce a capire quale sia il tuo clock di elaborazione. Puoi osservarlo verificando il registro di avvio del kernel. Sembra che il kernel stia provando a misurare il tuo clock di elaborazione (per me era come "2997.1333" ma ogni avvio cambia in "2997.1445", "2997.1379", ...).

  • Dopo aver provato molte cose, sono finalmente arrivato e ho scoperto il BIOS. Il mio è GYGABITE UEFI. Ho impostato i parametri su "Impostazioni predefinite ottimizzate" e ho impostato "Tecnologia di virtualizzazione Intel" su "abilitato".

Ora, tutto è tornato alla normalità per me! Spero che questo aiuti.


0

A pochi centesimi da me, non sono sicuro che sia una cosa comune o no, ma sono stato in grado di far funzionare Ubuntu disabilitando il "timer ad alta precisione" nel BIOS. Il mio mb è gigabyte z77x-d3h


Il sistema dell'OP non supporta il timer eventi ad alta precisione. È stato introdotto nel 2005 e il sistema del poster originale lo precede di diversi anni.
ChrisInEdmonton,

-2

Ho risolto il problema aggiungendo il seguente kernelparameter:

noapic

5
Benvenuto in Super User. Puoi espandere la tua risposta spiegando cosa fa / come risolve il problema del PO?
Dico Reinstate Monica il

niente sry, ho appena giocato con i parametri del kernel.
Kiroe,
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.