Perché il kernel Linux non può essere avviato sulla mia nuova CPU Intel i7-6500U?


9

E 'difficile isolare la CPU, lo so, ma gli errori che vedo suggeriscono che sia questo il problema.

Questo non è sicuramente un problema hardware difettoso / rotto . Ho eseguito Windows 10 tutto il giorno negli ultimi giorni e questa cosa sta girando velocemente! Nessun crash. Ancora più importante, ho eseguito il controllo della memoria di Windows. La memoria è buona.

specifiche della macchina

La macchina è un nuovissimo Lenovo Yoga 710 15 "

x64
Intel i7-6500 CPU @ 2.50 GHz, 2601 Mhz, 2 Cores, 4 Logical Processors
SMBIOS Version 2.8
BIOS Mode UEFI
16.0 GB DDR4 Ram
256 MB SSD

isolando al kernel linux (?)

Ho visto gli stessi problemi su entrambi

  • archlinux-2016/08/01-dual.iso
  • ubuntu-gnome-16.04.1-desktop-amd64.iso

Per Arch: il problema si presentava in modo intermittente all'avvio dalla chiavetta USB. Sono riuscito a far installare Arch su una partizione ext4 da 100 GB sull'unità. Tale installazione presenta lo stesso problema in modo intermittente (come il 90% delle volte) durante l'avvio. Se vengo superato l'avvio, il problema appare in modo casuale dopo i primi due comandi di terminale che eseguo, causando infine un deadlock completo.

Per Ubuntu - la chiavetta USB non si avvia nemmeno. Vengo immediatamente fermato da questi stessi errori. Deadlock ...

Così tanti errori ...

Il diario è pieno di errori relativi alla memoria ogni volta che ciò accade, ma gli errori chiave che vedo sono:

  • General protection fault 0000[#1] PREEMPT SMP
  • RIP kmem_cache_alloc
  • RIP kmem_cache_alloc_trace

Ho visto alcune delle stesse tracce dello stack più volte per questi errori:

rbt_memtype_copy_nth_element
on_each_cpu
flusH_tbl_kernel_range
__purge_umap_area_lazy
um_unmam_aliases
change_page_attr_set_clr
set_memory_ro
frob_text.isra
module_enable_ro

kobject_create
kobject_create_and_add
load_module
__symbol_put
kernel_read
sys_finit_module
entry_SYSCALL_64_fastpath

kmem_cache_alloc_trace
allocate_cgrp_cset_links
...
sys_write
entry_SYSCALL-64_fastpath

Linux continua anche a promettere che sta risolvendo il problema

Correzione dell'errore ricorsivo ma è necessario riavviare!

Spero che..

Intel ucode

Ho anche provato a installare il intel-ucodepacchetto nella mia installazione di Arch. Nei dmesgregistri ho visto che i microcodici sono stati aggiornati, ma che purtroppo non ha risolto il mio problema.

Quale potrebbe essere il problema? Come posso ripararlo?


MODIFICARE

Nota aggiuntiva

I messaggi di errore di protezione generale e i messaggi di tipo "blocco rilevato" fanno generalmente riferimento a una CPU. Ho visto CPU0, CPU1, CPU2e CPU3in questi messaggi. Sembra che qualcosa stia facendo sì che le CPU non vadano d'accordo, come se fossero tutte in un deadlock nel tentativo di svuotare la memoria cache o qualcosa del genere.


EDIT2

BIOS menzionato per errore

Vedo questo bit di informazioni in alcuni errori:

LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016

Non sono sicuro che sia utile a un professionista nel comprendere il problema ...


Edit3

maxcpus = 1

Stavo cercando le opzioni di debug nella documentazione dei parametri del kernel e ho trovatomaxcpus

Se imposto max cpu su 1, il problema scompare. Quindi sembra che il problema sia una sorta di violazione della memoria cache condivisa.


Edit3

maxcpus = 1 + Gnome = nuovamente rotto

Anche se maxcpus=1sembrava far funzionare il sistema solo con 1 CPU, ho installato gnome e poi ho eseguitosystemctl enable gdm.service

Ora, quando riavvio, ricevo nuovamente tutti i miei errori, ma questa volta si verificano tutti su CPU0

Quindi sembra che qualcosa stia ancora causando una violazione della memoria anche con la 1 CPU.


edit4

nolapic

Quindi l'utilizzo nolapicsembra che tutto funzioni "funzionando"

MA usando nolapic, disabilito effettivamente la mia altra CPU e tutto il multithreading nella 1 CPU funzionante.

Sto provando a usarlo per OpenMP e dopo l'avvio con nolapicOpenMP e il kernel Linux riesco a trovare solo 1 thread, 1 CPU. Che schifo!

Ho anche provato intel_idle.max_cstate=0e 1, 2ecc. Ma questo non risolve il problema di avvio.

Cos'altro potrebbe impedire al kernel di utilizzare la mia macchina multi-core?


Hai provato a installare il driver nvidia per la tua NVIDIA GeForce 940MX?
Paul Nordin,

No non l'ho fatto - potrei riuscire a riavviare la chiavetta USB Arch, ma è un po 'complicata. C'è un modo per passare un'opzione del kernel nello script di avvio per disabilitare temporaneamente la gpu per testarlo? (Ho provato nomodesete nouveau.mode=0- non sono sicuro che sia simile)
tmsimont il

hmm Ho esaminato i documenti dei parametri del kernel linux e maxcpusho trovato - l'ho impostato su 1 e il problema scompare ... Ma ora posso usare solo un procesor? :(
tmsimont,

Questo è strano. Sospetto ancora che il problema di fondo sia legato al nouveau. Prova i parametri nomodeset nouveau.modeset=0insieme e se non funziona, provanomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin,

1
Proverei di nuovo ad avviare Ubuntu solo per aggiungere una diversa versione del kernel nel mix. Assicurati di abilitare la modalità legacy nel BIOS prima o almeno, disabilitare l'avvio sicuro e l'avvio veloce o qualcosa del genere se non l'hai già fatto.
Paul Nordin,

Risposte:


5

Si scopre che il problema era i2c_hid

Questo sembra essere una specie di driver del touchpad. Per qualche motivo, quando lo disabilito, posso ancora utilizzare il mio touchpad. È possibile che anche il touchscreen del laptop stia utilizzando questo driver, perché non funziona.

Non mi piace sporcare lo schermo del mio laptop con le impronte digitali, comunque ... Quindi ciao ciao i2c_hid!

L'ho corretto aggiungendo questo ai parametri del kernel: modprobe.blacklist=i2c_hid

Anche se nolapicfunzionava, disabilitava tutti i processori tranne 1 core.

Consiglio vivamente a chiunque altro là fuori di non usare apci=offo nolapicper questo motivo.

L'uso di queste opzioni è un'arma nucleare che potrebbe far funzionare la tua macchina, ma perderai molte prestazioni e / o dispositivi i / o come danni collaterali. È un buon punto di partenza per l'avvio, quindi è possibile passare attraverso journalctl come ho fatto per analizzare gli stivali che falliscono.

Buona fortuna a chi lo trova.


3
Grazie mille per aver condiviso la tua scoperta! Sulla base delle tue informazioni ho scoperto che la disabilitazione hid_sensor_hubè sufficiente e che anche il touchscreen è utilizzabile (vedi la mia risposta di seguito per maggiori dettagli).
jiakai,

2

Tutti questi errori sembrano quelli che ho visto con moduli del kernel danneggiati.

C'è qualcuno su ubuntuforums che ha affermato di avere Ubuntu per l'avvio su un 710-14ISK disabilitando acpi (aggiungi acpi=offalle opzioni del kernel). https://ubuntuforums.org/showthread.php?t=2329448

Un altro cliente nei forum di Lenovo ha dichiarato di avere problemi con l'avvio di Fedora 24 e ha rintracciato il problema in un firmware Broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Prova a inserire nella blacklist i moduli broadcom e nouveau (lasciali non reclamati) e avvia con acpi disattivato. Avevo registri simili quando avevo un modulo ralink mal funzionante in un vecchio acer: la lista nera del modulo mi ha permesso di avviare e fermare i panici del kernel, ma mi ha lasciato senza wifi.

PS. Metterei tutto questo in un commento, ma non ho abbastanza reputazione per commentare (scusate).


Penso che tu stia per qualcosa. acpi=offfatto scomparire l'errore, ma disabilita anche la mia tastiera. Sembra che ci siano opzioni più granulari con acpi, quindi vedrò se riesco a fermare gli errori, mantenendo la tastiera :)
tmsimont

1
hmm, forse solo disabilitare alcune parti di acpi è la strada da percorrere. Ci sono alcune opzioni, ma acpi=htprima ci proverei . help.ubuntu.com/community/BootOptions (guarda sotto Common Kernel Options) o per un elenco più completo: kernel.org/doc/Documentation/kernel-parameters.txt
Schives

nolapicha funzionato per me e sono in grado di eseguire l'avvio, ma posso quindi accedere solo a una delle mie CPU. Sto cercando di usare questo laptop per sviluppare programmi OpenMP, quindi avere solo 1 CPU funzionante non è OK. Sembra che ci sia qualcosa di terribilmente sbagliato nel modo in cui il kernel sta cercando di usare le mie CPU multiple. Il fatto che nolapic"correggi" l'avvio potrebbe essere solo una coincidenza a causa del fatto che limita il kernel a 1 CPU
tmsimont

un'altra nota: questo funziona bene in Windows 10. C'è qualcosa che posso trovare in Windows per saperne di più su tutto ciò che il kernel di Windows fa con la CPU che potrei essere in grado di replicare in Linux?
tmsimont,

2

Ho riscontrato problemi simili con kernel recenti (da 4.7.x a 4.8.2) sul mio yoga710 con i5-6200U. Disabilitare i2c_h2d funziona per me. Ho anche scoperto che linux-lts (attualmente 4.4.25) sembra funzionare bene, inclusi touchpad e touchscreen.

Modifica: sperimentando il codice del driver, ho scoperto che questo è effettivamente causato dal hid_sensor_hubdriver, quindi la blacklist risolve il problema e il touchscreen è anche utilizzabile. La disabilitazione sicuramente rende i sensori (come l'accelerometro) non riconosciuti. Ho provato a riparare il driver; tuttavia non ho ancora trovato un modo.


0

Per il supporto di Skylake è necessario un kernel Linux della versione 4.4 o successive. Dai un'occhiata al seguente link nella wiki di Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support


archlinux-2016.08.01-dual.iso contiene 4.6.4, quindi dovrebbe funzionare
massimo

Questa è una domanda stupida ma hai eseguito memtest sul tuo computer? memtest.org
Peter Skarpetis,

1
@Peter Non stupido, e sì l'ho fatto. Nessun problema di memoria. Anche sì maxf ha ragione, ho 4.6.4
tmsimont
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.