Warum kann der Linux-Kernel auf meiner neuen Intel i7-6500U-CPU nicht booten?

9

Ich weiß, es ist schwer, die CPU zu isolieren, aber die Fehler, die ich sehe, deuten darauf hin, dass dies das Problem ist.

Dies ist definitiv kein fehlerhaftes / defektes Hardwareproblem . Ich habe in den letzten Tagen den ganzen Tag Windows 10 ausgeführt und dieses Ding flippt schnell! Kein Absturz. Noch wichtiger ist, dass ich die Windows-Speicherprüfung ausgeführt habe. Das Gedächtnis ist alles gut.

Maschinenspezifikationen

Die Maschine ist eine brandneue 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

Isolieren zum Linux-Kernel (?)

Ich habe bei beiden die gleichen Probleme gesehen

  • archlinux-2016.08.01-dual.iso
  • ubuntu-gnome-16.04.1-desktop-amd64.iso

Für Arch - das Problem trat nur zeitweise beim Booten vom USB-Stick auf. Ich habe es geschafft, Arch auf einer 100 GB ext4-Partition auf dem Laufwerk zu installieren. Diese Installation hat das gleiche Problem zeitweise (wie in 90% der Fälle) während des Startvorgangs. Wenn ich den Start bestanden habe, wird das Problem nach den ersten von mir ausgeführten Terminalbefehlen zufällig angezeigt, was schließlich zu einem vollständigen Deadlock führt.

Für Ubuntu - der USB-Stick bootet nicht einmal. Ich werde sofort von denselben Fehlern gestoppt. Sackgasse...

So viele Fehler ...

Das Tagebuch ist in diesem Fall mit speicherbezogenen Fehlern gefüllt, aber die wichtigsten Fehler, die ich sehe, sind:

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

Ich habe einige der gleichen Stapelspuren mehrmals für diese Fehler gesehen:

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 verspricht auch weiterhin, das Problem zu beheben

Behebung eines rekursiven Fehlers, aber ein Neustart ist erforderlich!

Ich wünsche..

Intel UCode

Ich habe auch versucht, das intel-ucodePaket in meiner Arch-Installation zu installieren. Ich habe in den dmesgProtokollen gesehen, dass die Mikrocodes aktualisiert wurden, aber das hat mein Problem leider nicht gelöst.

Was könnte das Problem sein? Wie kann es behoben werden?


BEARBEITEN

Zusätzliche Anmerkung.

Die allgemeinen Schutzfehlermeldungen und Meldungen vom Typ "Sperrung erkannt" verweisen normalerweise auf eine CPU. Ich habe gesehen CPU0, CPU1, CPU2und CPU3in diesen Nachrichten. Es scheint, als ob etwas dazu führt, dass die CPUs nicht miteinander auskommen, als ob sie alle in einem Deadlock sind und versuchen, den Cache-Speicher oder etwas anderes zu löschen.


EDIT2

BIOS irrtümlich erwähnt

Ich sehe diese Information in einigen Fehlern:

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

Ich bin mir nicht sicher, ob dies für einen Profi hilfreich ist, um das Problem zu verstehen ...


EDIT3

maxcpus = 1

Ich habe nach Debugging-Optionen in der Kernel-Parameter-Dokumentation gesucht und gefundenmaxcpus

Wenn ich die maximale CPU auf 1 setze, verschwindet das Problem. Es scheint also, dass das Problem eine Art Verletzung des gemeinsam genutzten Cache-Speichers ist.


EDIT3

maxcpus = 1 + Gnome = wieder kaputt

Obwohl maxcpus=1das System nur mit 1 CPU zu funktionieren schien, installierte ich gnome und lief dannsystemctl enable gdm.service

Wenn ich jetzt neu starte, werden alle meine Fehler wieder angezeigt, aber diesmal treten sie alle auf CPU0 auf

Es scheint also, dass selbst bei 1 CPU immer noch etwas eine Speicherverletzung verursacht.


EDIT4

nolapic

Die Verwendung nolapicscheint also alles "zum Laufen zu bringen"

ABER durch die Verwendung nolapicdeaktiviere ich effektiv meine andere CPU und alle Multithreading in der 1 funktionierenden CPU.

Ich versuche dies für OpenMP zu verwenden und nach dem Booten mit nolapickönnen OpenMP und der Linux-Kernel nur 1 Thread, 1 CPU finden. Das ist Scheiße!

Ich habe auch versucht, intel_idle.max_cstate=0und 1, 2etc. Aber das behebt das Boot-Problem nicht.

Was könnte dazu führen, dass der Kernel meinen Multi-Core-Computer nicht nutzt?

tmsimont
quelle
Haben Sie versucht, den NVIDIA-Treiber für Ihre NVIDIA GeForce 940MX zu installieren?
Paul Nordin
Nein, habe ich nicht - ich könnte den Arch-USB-Stick vielleicht wieder booten lassen, aber es ist etwas schwierig. Gibt es eine Möglichkeit, eine Kernel-Option im Boot-Skript zu übergeben, um die GPU vorübergehend zu deaktivieren und dies zu testen? (Ich habe versucht nomodesetund nouveau.mode=0- nicht sicher, ob das ähnlich ist)
tmsimont
hmm Ich habe in den Dokumenten zu den Linux-Kernel-Parametern nachgesehen und festgestellt maxcpus- ich habe es auf 1 gesetzt und das Problem verschwindet ... Aber jetzt kann ich nur einen Prozessor verwenden? :(
tmsimont
Das ist komisch. Ich vermute immer noch, dass das zugrunde liegende Problem mit dem Jugendstil zusammenhängt. Probieren Sie die Parameter nomodeset nouveau.modeset=0zusammen aus und wenn das nicht funktioniert, versuchen Sie esnomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin
1
Ich würde versuchen, Ubuntu erneut zu booten, nur um eine andere Kernel-Version in den Mix zu werfen. Stellen Sie sicher, dass Sie zuerst den Legacy-Modus im BIOS aktivieren, oder deaktivieren Sie zumindest den sicheren Start und den Schnellstart oder ähnliches, falls Sie dies noch nicht getan haben.
Paul Nordin

Antworten:

5

Es stellte sich heraus, dass das Problem war i2c_hid

Dies scheint eine Art Touchpad-Treiber zu sein. Aus irgendeinem Grund kann ich mein Touchpad weiterhin verwenden, wenn ich es deaktiviere. Es kann sein, dass der Touchscreen des Laptops auch diesen Treiber verwendet, da dies nicht funktioniert.

Ich mag es sowieso nicht, meinen Laptop-Bildschirm mit Fingerabdrücken zu beschmutzen ... Also tschüss i2c_hid!

Ich habe es behoben, indem ich dies zu den Kernel-Parametern hinzugefügt habe: modprobe.blacklist=i2c_hid

Obwohl es nolapicauch funktioniert hat, hat es alle bis auf einen Kern in Prozessoren deaktiviert.

Ich würde jedem empfehlen, es nicht zu benutzen apci=offoder nolapicaus diesem Grund.

Die Verwendung dieser Optionen ist eine Atomwaffe, mit der Ihre Maschine möglicherweise funktioniert. Sie verlieren jedoch viel Leistung und / oder E / A-Geräte als Kollateralschaden. Es ist ein guter Ausgangspunkt, um gebootet zu werden, und dann können Sie wie ich durch das Journal gießen, um die fehlgeschlagenen Stiefel zu analysieren.

Viel Glück für diejenigen, die dies finden.

tmsimont
quelle
3
Vielen Dank, dass Sie uns Ihre Erkenntnisse mitgeteilt haben! Aufgrund Ihrer Informationen stellte ich fest, dass die Deaktivierung hid_sensor_hubausreichend ist und der Touchscreen auch verwendet werden kann (siehe meine Antwort unten für weitere Details).
Jiakai
2

Alle diese Fehler sehen aus wie die, die ich bei fehlerhaften Kernelmodulen gesehen habe.

Es gibt jemanden auf Ubuntuforums, der behauptet, er habe Ubuntu dazu gebracht, auf einem 710-14ISK zu booten, indem er acpi deaktiviert ( acpi=offzu den Kernel-Optionen hinzufügen ). https://ubuntuforums.org/showthread.php?t=2329448

Ein anderer Kunde in den Lenovo-Foren gab an, Probleme beim Booten von Fedora 24 zu haben, und führte das Problem auf eine Broadcom-Firmware zurück: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Versuchen Sie, die Broadcom- und Nouveau-Module auf die schwarze Liste zu setzen (lassen Sie sie nicht beansprucht), und starten Sie mit ausgeschaltetem acpi. Ich hatte ähnliche Protokolle, als ich ein schlecht benommenes Ralink-Modul in einem alten Acer hatte: Wenn ich das Modul auf die schwarze Liste setzte, konnte ich booten und die Kernel-Panik stoppen, ließ mich aber ohne WLAN.

PS. Ich würde das alles in einen Kommentar einfügen, aber ich habe nicht genug Ruf, um einen Kommentar abzugeben (sorry).

Schives
quelle
Ich denke du bist auf etwas. acpi=offhat den Fehler behoben, aber es deaktiviert auch meine Tastatur. Es sieht so aus, als gäbe es mit acpi detailliertere Optionen, also werde ich sehen, ob ich die Fehler stoppen kann, während ich meine Tastatur
behalte
1
hmm, vielleicht ist es der richtige Weg, nur einige Teile von acpi zu deaktivieren. Es gibt einige Optionen, aber ich würde es acpi=htzuerst versuchen . help.ubuntu.com/community/BootOptions (siehe Common Kernel Options) oder eine umfassendere Liste: kernel.org/doc/Documentation/kernel-parameters.txt
Schives
nolapichat für mich gearbeitet und ich kann booten, aber ich kann dann nur auf eine meiner CPUs zugreifen. Ich versuche, diesen Laptop für die Entwicklung von OpenMP-Programmen zu verwenden, daher ist es nicht in Ordnung, nur 1 CPU zu haben. Es scheint, dass etwas furchtbar falsch daran ist, wie der Kernel versucht, meine mehreren CPUs zu verwenden. Die Tatsache, dass nolapic"Fixes" booten, kann nur zufällig sein, weil es den Kernel auf 1 CPU begrenzt
tmsimont
Ein weiterer Hinweis: Dies funktioniert in Windows 10 einwandfrei. Gibt es irgendetwas, das ich in Windows aufrufen kann, um mehr über alles zu erfahren, was der Windows-Kernel mit den CPUs macht, die ich möglicherweise unter Linux replizieren kann?
Tmsimont
2

Ich hatte ähnliche Probleme mit den neuesten Kerneln (4.7.x bis 4.8.2) auf meinem Yoga710 mit i5-6200U. Das Deaktivieren von i2c_h2d funktioniert bei mir. Ich fand auch, dass Linux-lts (derzeit 4.4.25) gut zu funktionieren scheint, einschließlich des Touchpads und des Touchscreens.

Bearbeiten: Beim Experimentieren mit dem Treibercode habe ich festgestellt, dass dies tatsächlich vom hid_sensor_hubTreiber verursacht wird. Wenn Sie ihn also auf die schwarze Liste setzen, wird das Problem behoben, und der Touchscreen kann ebenfalls verwendet werden. Wenn Sie es deaktivieren, werden die Sensoren (z. B. der Beschleunigungsmesser) nicht erkannt. Ich habe versucht, den Treiber zu reparieren. Ich habe jedoch noch keinen Weg gefunden.

jiakai
quelle
0

Für die Skylake-Unterstützung benötigen Sie einen Linux-Kernel der Version 4.4 oder höher. Schauen Sie sich den folgenden Link im Arch Linux-Wiki an. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support

Peter Skarpetis
quelle
archlinux-2016.08.01-dual.iso enthält 4.6.4, so dass funktionieren sollte
maxf
Dies ist eine dumme Frage, aber haben Sie memtest auf Ihrem Computer ausgeführt? memtest.org
Peter Skarpetis
1
@ Peter Nicht dumm, und ja, ich habe. Keine Speicherprobleme. Auch ja maxf ist richtig, ich habe 4.6.4
tmsimont