¿Por qué no puedo iniciar el kernel de Linux en mi nueva CPU Intel i7-6500U?


9

Es difícil aislar la CPU, lo sé, pero los errores que veo sugieren que ese es el problema.

Esto definitivamente no es un problema de hardware defectuoso o roto . He estado usando Windows 10 todo el día durante los últimos días y ¡esto está volteando rápido! No estrellarse. Más importante aún, ejecuté el comprobador de memoria de Windows. La memoria es buena.

especificaciones de la máquina

La máquina es un nuevo 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

aislando al kernel de Linux (?)

He visto los mismos problemas en ambos

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

Para Arch, el problema solo aparecía de forma intermitente al arrancar desde la memoria USB. Logré instalar Arch en una partición ext4 de 100 GB en la unidad. Esa instalación tiene el mismo problema de forma intermitente (como el 90% del tiempo) durante el arranque. Si me pasa el arranque, entonces el problema aparece al azar después de los primeros comandos de terminal que ejecuto, lo que finalmente causa un punto muerto completo.

Para Ubuntu, la memoria USB ni siquiera arranca. Estos mismos errores me detienen de inmediato. Punto muerto...

Tantos errores ...

El diario está lleno de errores relacionados con la memoria cada vez que esto sucede, pero los errores clave que estoy viendo son:

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

He visto algunas de las mismas trazas de pila varias veces para estos errores:

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 también promete que está solucionando el problema

¡Se corrige la falla recursiva pero se necesita reiniciar!

Yo deseo..

Intel ucode

También intenté instalar el intel-ucodepaquete en mi instalación de Arch. Vi en los dmesgregistros que los microcódigos se actualizaron, pero desafortunadamente eso no resolvió mi problema.

¿Cual podría ser el problema? ¿Cómo puedo arreglarlo?


EDITAR

Nota adicional.

Los mensajes de falla de protección general y los mensajes de tipo "bloqueo detectado" generalmente hacen referencia a una CPU. Yo he visto CPU0, CPU1, CPU2y CPU3en estos mensajes. Parece que algo está causando que la CPU no se lleve bien, como si todos estuvieran en un punto muerto tratando de limpiar la memoria caché o algo así.


EDIT2

BIOS mencionado en error

Veo esta información en algunos errores:

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

No estoy seguro si eso es útil para un profesional para comprender el problema ...


EDITAR3

maxcpus = 1

Estaba buscando opciones de depuración en la documentación de parámetros del kernel y encontrémaxcpus

Si configuro max cpu's en 1, entonces el problema desaparece. Por lo tanto, parece que el problema es algún tipo de violación de memoria caché compartida.


EDITAR3

maxcpus = 1 + Gnomo = roto nuevamente

Aunque maxcpus=1parecía hacer que el sistema funcionara solo con la 1 CPU, instalé gnome y luego ejecutésystemctl enable gdm.service

Ahora, cuando reinicio, recupero todos mis errores nuevamente, pero esta vez todos están ocurriendo en CPU0

Entonces parece que algo todavía está causando una violación de memoria incluso con la 1 CPU.


EDITAR4

nolapic

Así que el uso nolapicparece hacer que todo "funcione"

PERO al usar nolapic, efectivamente deshabilito mi otra CPU y todos los subprocesos múltiples en la 1 CPU en funcionamiento.

Estoy tratando de usar esto para OpenMP, y después de iniciar nolapic, OpenMP y el kernel de Linux solo pueden encontrar 1 hilo, 1 CPU. Eso apesta!

También probé intel_idle.max_cstate=0y 1, 2etc. Pero esto no soluciona el problema de arranque.

¿Qué más podría hacer que el kernel no pueda utilizar mi máquina multi-core?


¿Has intentado instalar el controlador nvidia para tu NVIDIA GeForce 940MX?
Paul Nordin

No, no lo he hecho, es posible que pueda volver a arrancar la memoria USB del arco, pero es un poco complicado. ¿Hay alguna forma de pasar una opción de kernel en la secuencia de comandos de arranque para deshabilitar temporalmente el gpu para probar esto? ( nomodesetnouveau.mode=0
Intenté

hmm, busqué en los documentos de parámetros del kernel de Linux y encontré maxcpus: lo configuré en 1 y el problema desaparece ... ¿Pero ahora solo puedo usar un procesador? :(
tmsimont

Eso es extraño. Todavía sospecho que el problema subyacente está relacionado con nouveau. Pruebe los parámetros nomodeset nouveau.modeset=0juntos y si eso no funciona, intentenomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
Intentaría arrancar Ubuntu nuevamente para lanzar una versión diferente del kernel a la mezcla. Asegúrese de habilitar el modo heredado en el BIOS primero o al menos, deshabilite el arranque seguro y el arranque rápido o algo así si aún no lo ha hecho.
Paul Nordin

Respuestas:


5

Resulta que el problema era i2c_hid

Esto parece ser algún tipo de controlador de panel táctil. Por alguna razón, cuando lo desactivo, aún puedo usar mi panel táctil. Podría ser que la pantalla táctil de la computadora portátil también usara este controlador, porque eso no funciona.

No me gusta juntar la pantalla de mi laptop con huellas digitales, de todos modos ... ¡Adiós i2c_hid!

Lo arreglé agregando esto a los parámetros del kernel: modprobe.blacklist=i2c_hid

Aunque nolapictambién funcionó, deshabilitó todos los procesadores excepto 1 núcleo.

Recomiendo encarecidamente a cualquier otra persona que no use apci=offo nolapicpor esta razón.

El uso de estas opciones es un arma nuclear que puede hacer que su máquina funcione, pero perderá mucho rendimiento y / o dispositivos de E / S como daño colateral. Es un buen punto de partida para arrancar, y luego puede pasar por el diario como lo hice para analizar las botas que fallan.

Buena suerte a quienes encuentren esto.


3
¡Muchas gracias por compartir lo que encontraste! Según su información, descubrí que deshabilitar hid_sensor_hubes suficiente y que la pantalla táctil también es utilizable (consulte mi respuesta a continuación para obtener más detalles).
jiakai

2

Todos estos errores se parecen a los que he visto con módulos de kernel defectuosos.

Hay alguien en los foros de ubuntu que afirmó que consiguió que Ubuntu se iniciara en un 710-14ISK al deshabilitar acpi (agregar acpi=offa las opciones del kernel). https://ubuntuforums.org/showthread.php?t=2329448

Otro cliente en los foros de lenovo dijo que tenían problemas para arrancar fedora 24 y rastreó el problema hasta una pieza de firmware de broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Intente poner en la lista negra los módulos broadcom y nouveau (no los reclame) y arranque con acpi desactivado. Tuve registros similares cuando tuve un módulo de enlace mal comportamiento en un viejo acer: poner en la lista negra el módulo me permitió arrancar y detuvo el pánico del kernel, pero me dejó sin wifi.

PD. Pondría todo esto en un comentario, pero no tengo suficiente reputación para comentar (lo siento).


Creo que estás haciendo algo. acpi=offhizo que el error desapareciera, pero también deshabilita mi teclado. Parece que hay más opciones granulares con acpi, así que veré si puedo hacer que los errores se detengan, mientras
mantengo

1
hmm, tal vez solo deshabilitar algunas partes de acpi es el camino a seguir. Hay bastantes opciones, pero acpi=htprimero lo intentaría . help.ubuntu.com/community/BootOptions (busque en Opciones comunes del kernel) o para obtener una lista más completa: kernel.org/doc/Documentation/kernel-parameters.txt
Schives

nolapicfuncionó para mí y puedo arrancar, pero solo puedo acceder a una de mis CPU. Estoy tratando de usar esta computadora portátil para desarrollar programas OpenMP, por lo que tener solo 1 CPU funcionando no está bien. Parece que hay algo terriblemente mal en cómo el núcleo está tratando de usar mis múltiples CPU. El hecho de que el nolapic"arregle" el arranque solo puede ser una coincidencia debido al hecho de que limita el núcleo a 1 CPU
tmsimont

otra nota: esto funciona bien en Windows 10. ¿Hay algo que pueda abrir en Windows para obtener más información sobre todo lo que hace el kernel de Windows con las CPU que podría replicar en Linux?
tmsimont

2

Experimenté problemas similares con los núcleos recientes (4.7.x a 4.8.2) en mi yoga710 con i5-6200U. Deshabilitar i2c_h2d funciona para mí. También descubrí que linux-lts (actualmente 4.4.25) parece funcionar bien, incluido el panel táctil y la pantalla táctil.

Editar: al experimentar con el código del controlador, descubrí que esto realmente es causado por el hid_sensor_hubcontrolador, por lo que ponerlo en la lista negra resuelve el problema y la pantalla táctil también es utilizable. Seguramente deshabilitarlo hace que los sensores (como el acelerómetro) no sean reconocidos. Traté de arreglar el controlador; Sin embargo, todavía no he descubierto una manera.


0

Necesita un kernel de Linux de la versión 4.4 o posterior para el soporte de Skylake. Consulte el siguiente enlace en la wiki de Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support


archlinux-2016.08.01-dual.iso contiene 4.6.4, por lo que debería funcionar
maxf

Esta es una pregunta estúpida, pero ¿has ejecutado memtest en tu computadora? memtest.org
Peter Skarpetis

1
@ Peter No es estúpido, y sí lo hice. No hay problemas de memoria. También sí, maxf es correcto, tengo 4.6.4
tmsimont
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.