Pourquoi le noyau Linux ne peut-il pas démarrer sur mon nouveau processeur Intel i7-6500U?

9

Il est difficile d'isoler le CPU, je sais, mais les erreurs que je vois suggèrent que c'est le problème.

Ce n'est certainement pas un problème matériel défectueux / cassé . J'ai utilisé Windows 10 toute la journée au cours des derniers jours et cette chose est rapide! Pas de plantage. Plus important encore, j'ai exécuté le vérificateur de mémoire Windows. La mémoire est bonne.

spécifications de la machine

La machine est un tout nouveau 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

isolement vers le noyau linux (?)

J'ai vu les mêmes problèmes sur les deux

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

Pour Arch - le problème n'apparaissait que de manière intermittente au démarrage à partir de la clé USB. J'ai réussi à installer Arch sur une partition ext4 de 100 Go sur le disque. Cette installation a le même problème par intermittence (comme 90% du temps) lors du démarrage. Si je réussis le démarrage, le problème apparaît au hasard après les deux premières commandes de terminal que j'exécute, provoquant finalement un blocage complet.

Pour Ubuntu - la clé USB ne démarre même pas. Je suis immédiatement arrêté par ces mêmes erreurs. Impasse...

Tant d'erreurs ...

Le journal est rempli d'erreurs liées à la mémoire chaque fois que cela se produit, mais les erreurs clés que je vois sont les suivantes:

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

J'ai vu plusieurs fois la même trace de pile pour ces erreurs:

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 continue également de promettre qu'il résout le problème

Correction d'une erreur récursive mais un redémarrage est nécessaire!

Je souhaite que..

intel ucode

J'ai également essayé d'installer le intel-ucodepackage dans mon installation Arch. J'ai vu dans les dmesgjournaux que les microcodes ont été mis à jour, mais cela n'a malheureusement pas résolu mon problème.

Quel pourrait être le problème? Comment y remédier?


ÉDITER

Remarque additionnelle.

Les messages de défaut de protection générale et les messages de type «verrouillé détecté» font généralement référence à une CPU. Je l' ai vu CPU0, CPU1, CPU2et CPU3dans ces messages. Il semble que quelque chose empêche les CPU de s'entendre, comme s'ils étaient tous dans une impasse essayant d'effacer la mémoire cache ou quelque chose.


EDIT2

BIOS mentionné par erreur

Je vois cette information dans certaines erreurs:

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

Je ne sais pas si cela est utile à un pro pour comprendre le problème ...


EDIT3

maxcpus = 1

Je cherchais des options de débogage dans la documentation des paramètres du noyau et j'ai trouvémaxcpus

Si je mets max cpu à 1, le problème disparaît. Il semblerait donc que le problème soit une sorte de violation de la mémoire cache partagée.


EDIT3

maxcpus = 1 + Gnome = à nouveau cassé

Bien que cela maxcpus=1semble faire fonctionner le système avec seulement 1 CPU, j'ai installé gnome puis j'ai exécutésystemctl enable gdm.service

Maintenant, quand je redémarre, je récupère toutes mes erreurs, mais cette fois elles se produisent toutes sur CPU0

Il semble donc que quelque chose provoque toujours une violation de mémoire, même avec le 1 processeur.


EDIT4

nolapic

Donc, l'utilisation nolapicsemble tout faire "fonctionner"

MAIS en utilisant nolapic, je désactive efficacement mon autre CPU et tout le multithreading dans le 1 CPU fonctionnel.

J'essaie de l'utiliser pour OpenMP, et après avoir démarré avec nolapic, OpenMP et le noyau linux ne peuvent trouver qu'un seul thread, 1 CPU. Ça craint!

J'ai aussi essayé intel_idle.max_cstate=0et 1, 2etc. Mais cela ne résout pas le problème de démarrage.

Quoi d'autre pourrait empêcher le noyau d'utiliser ma machine multicœur?

tmsimont
la source
Avez-vous essayé d'installer le pilote nvidia pour votre NVIDIA GeForce 940MX?
Paul Nordin
Non, je ne l'ai pas fait - je pourrais peut-être redémarrer la clé USB, mais c'est un peu délicat. Existe-t-il un moyen de passer une option de noyau dans le script de démarrage pour désactiver temporairement le GPU pour tester cela? (J'ai essayé nomodesetet nouveau.mode=0- je ne sais pas si c'est similaire)
tmsimont
hmm J'ai regardé dans la documentation des paramètres du noyau linux et maxcpusj'ai trouvé - je l'ai mis à 1 et le problème disparaît ... Mais maintenant je ne peux utiliser qu'un seul processeur? :(
tmsimont
C'est étrange. Je soupçonne toujours que le problème sous-jacent est lié au nouveau. Essayez les paramètres nomodeset nouveau.modeset=0ensemble et si cela ne fonctionne pas, essayeznomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin
1
J'essaierais de redémarrer Ubuntu juste pour jeter une version différente du noyau dans le mix. Assurez-vous d'activer le mode hérité dans le BIOS en premier ou au moins, désactivez le démarrage sécurisé et le démarrage rapide ou quelque chose comme ça si vous ne l'avez pas déjà fait.
Paul Nordin

Réponses:

5

Il s'avère que le problème était i2c_hid

Cela semble être une sorte de pilote du pavé tactile. Pour une raison quelconque, lorsque je le désactive, je peux toujours utiliser mon pavé tactile. Il se peut que l'écran tactile de l'ordinateur portable utilise également ce pilote, car cela ne fonctionne pas.

Je n'aime pas monter mon écran d'ordinateur portable avec des empreintes digitales, de toute façon ... Alors au revoir i2c_hid!

Je l'ai corrigé en ajoutant ceci aux paramètres du noyau: modprobe.blacklist=i2c_hid

Bien qu'il ait nolapicégalement fonctionné, il a désactivé tous les cœurs sauf un dans les processeurs.

Je recommande fortement à quiconque de ne pas l'utiliser apci=offou nolapicpour cette raison.

L'utilisation de ces options est une arme nucléaire qui pourrait faire fonctionner votre machine, mais vous perdrez beaucoup de performances et / ou de périphériques d'E / S en tant que dommages collatéraux. C'est un bon point de départ pour démarrer, puis vous pouvez parcourir journaltl comme je l'ai fait pour analyser les bottes qui échouent.

Bonne chance à ceux qui trouvent ça.

tmsimont
la source
3
Merci beaucoup de partager votre découverte! Sur la base de vos informations, j'ai trouvé que la désactivation hid_sensor_hubest suffisante et l'écran tactile est également utilisable (voir ma réponse ci-dessous pour plus de détails).
jiakai
2

Toutes ces erreurs ressemblent à celles que j'ai vues avec de mauvais modules du noyau.

Il y a quelqu'un sur ubuntuforums qui a prétendu avoir ubuntu pour démarrer sur un 710-14ISK en désactivant acpi (ajouter acpi=offaux options du noyau). https://ubuntuforums.org/showthread.php?t=2329448

Un autre client sur les forums de lenovo a déclaré qu'il avait eu du mal à démarrer Fedora 24 et avait retracé le problème à un morceau de firmware Broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Essayez de mettre sur liste noire les modules Broadcom et Nouveau (laissez-les non réclamés) et démarrez avec acpi désactivé. J'avais des journaux similaires quand j'avais un module ralink mal comporté dans un vieil acer: la liste noire du module m'a permis de démarrer et a arrêté les paniques du noyau, mais m'a laissé sans wifi.

PS. Je mettrais tout cela dans un commentaire, mais je n'ai pas assez de réputation pour commenter (désolé).

Schives
la source
Je pense que vous êtes sur quelque chose. acpi=offfait disparaître l'erreur, mais cela désactive également mon clavier. Il semble qu'il y ait plus d'options granulaires avec acpi, donc je vais voir si je peux arrêter les erreurs, tout en gardant mon clavier :)
tmsimont
1
hmm, peut-être que la désactivation de certaines parties d’acpi est la solution. Il y a pas mal d'options, mais j'essaierais d' acpi=htabord. help.ubuntu.com/community/BootOptions (regardez sous Common Kernel Options) ou pour une liste plus complète: kernel.org/doc/Documentation/kernel-parameters.txt
Schives
nolapictravaillé pour moi et je suis capable de démarrer, mais je ne peux alors accéder qu'à l'un de mes CPU. J'essaie d'utiliser cet ordinateur portable pour développer des programmes OpenMP, donc avoir un seul processeur ne fonctionne pas. Il semble qu'il y ait juste quelque chose de terriblement mauvais dans la façon dont le noyau essaie d'utiliser mes multiples processeurs. Le fait que le nolapic"correctif" ne démarre que par coïncidence du fait qu'il limite le noyau à 1 CPU
tmsimont
une autre note - cela fonctionne très bien dans Windows 10. Y a-t-il quelque chose que je peux tirer dans Windows pour en savoir plus sur tout ce que le noyau Windows fait avec le CPU que je pourrais être en mesure de répliquer sous Linux?
tmsimont
2

J'ai rencontré des problèmes similaires avec les noyaux récents (4.7.x à 4.8.2) sur mon yoga710 avec i5-6200U. La désactivation d'i2c_h2d fonctionne pour moi. J'ai également constaté que linux-lts (actuellement 4.4.25) semble bien fonctionner, y compris le pavé tactile et l'écran tactile.

Edit: en expérimentant le code du pilote, j'ai trouvé que cela était en effet causé par le hid_sensor_hubpilote, donc la liste noire résout le problème et l'écran tactile est également utilisable. La désactiver à coup sûr rend les capteurs (tels que l'accéléromètre) non reconnus. J'ai essayé de réparer le pilote; mais je n'ai pas encore trouvé de moyen.

jiakai
la source
0

Vous avez besoin d'un noyau Linux de la version 4.4 ou ultérieure pour le support de Skylake. Consultez le lien suivant sur le wiki Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support

Peter Skarpetis
la source
archlinux-2016.08.01-dual.iso contient 4.6.4, donc cela devrait fonctionner
maxf
C'est une question stupide, mais avez-vous exécuté memtest sur votre ordinateur? memtest.org
Peter Skarpetis
1
@Peter Pas stupide, et oui je l'ai fait. Aucun problème de mémoire. Aussi oui maxf a raison, j'ai 4.6.4
tmsimont