Por que o kernel Linux não pode ser inicializado no meu novo processador Intel i7-6500U?


9

É difícil isolar a CPU, eu sei, mas os erros que estou vendo sugerem que esse é o problema.

Definitivamente, este não é um problema de hardware com defeito / com defeito . Venho executando o Windows 10 o dia todo nos últimos dias e isso é rápido! Sem bater. Mais importante, executei o verificador de memória do Windows. Memória é tudo de bom.

especificações da máquina

A máquina é uma nova marca 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 no kernel do linux (?)

Eu já vi os mesmos problemas em ambos

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

Para Arch - o problema estava aparecendo apenas de forma intermitente na inicialização do pen drive. Eu consegui instalar o Arch em uma partição ext4 de 100 GB na unidade. Essa instalação tem o mesmo problema de forma intermitente (90% do tempo) durante a inicialização. Se eu for aprovado na inicialização, o problema aparecerá aleatoriamente após os primeiros dois comandos de terminal executados, causando um bloqueio completo.

Para o Ubuntu - o pendrive nem é inicializado. Sou interrompido por esses mesmos erros imediatamente. Impasse...

Tantos erros ...

O diário está cheio de erros relacionados à memória sempre que isso acontece, mas os principais erros que estou vendo são:

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

Eu já vi alguns dos mesmos rastreamentos de pilha várias vezes para esses erros:

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

O Linux também continua prometendo que está resolvendo o problema

Correção de falha recursiva, mas é necessário reiniciar!

Eu gostaria..

intel ucode

Eu também tentei instalar o intel-ucodepacote na minha instalação do Arch. Vi nos dmesglogs que os microcódigos foram atualizados, mas que infelizmente não resolveram o meu problema.

Qual poderia ser o problema? Como pode consertar isso?


EDITAR

Nota adicional.

As mensagens de falha de proteção geral e as mensagens do tipo "trava detectada" geralmente fazem referência a uma CPU. Eu vi CPU0, CPU1, CPU2e CPU3nessas mensagens. Parece que algo está fazendo com que as CPUs não se entendam, como se estivessem em um impasse tentando limpar a memória cache ou algo assim.


EDIT2

BIOS mencionado por erro

Vejo esta informação em alguns erros:

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

Não tenho certeza se isso é útil para um profissional na compreensão do problema ...


EDIT3

maxcpus = 1

Eu estava procurando por opções de depuração na documentação dos parâmetros do kernel e encontreimaxcpus

Se eu definir o número máximo de CPUs como 1, o problema desaparecerá. Portanto, parece que o problema é algum tipo de violação da memória cache compartilhada.


EDIT3

maxcpus = 1 + Gnome = quebrado novamente

Embora maxcpus=1parecesse fazer o sistema funcionar com apenas a 1 CPU, instalei o gnome e executeisystemctl enable gdm.service

Agora, quando eu reinicio, recebo todos os meus erros novamente, mas desta vez todos estão acontecendo na CPU0

Parece que algo ainda está causando uma violação de memória, mesmo com a 1 CPU.


EDIT4

nolápico

Então, o uso nolapicparece deixar tudo "funcionando"

MAS, usando nolapic, desabilito efetivamente minha outra CPU e todos os multithreading na 1 CPU em funcionamento.

Estou tentando usar isso no OpenMP e, após inicializar com o nolapicOpenMP, o kernel do Linux pode encontrar apenas 1 thread e 1 CPU. Isso é péssimo!

Eu também tentei intel_idle.max_cstate=0e 1, 2etc. Mas isso não resolve o problema de inicialização.

O que mais poderia fazer com que o kernel não utilizasse minha máquina com vários núcleos?


Você já tentou instalar o driver da nvidia para a sua NVIDIA GeForce 940MX?
Paul Nordin

Não, eu não - posso conseguir inicializar o arch usb stick novamente, mas é meio complicado. Existe alguma maneira de passar uma opção de kernel no script de inicialização para desativar temporariamente o gpu para testar isso? (Eu tentei nomodesete nouveau.mode=0- não sei se isso é similar)
tmsimont

hmm eu olhei nos documentos de parâmetros do kernel do linux e encontrei maxcpus- eu o defini como 1 e o problema desaparece ... Mas agora só posso usar um procesor? :(
tmsimont

Isso é estranho. Eu ainda suspeito que o problema subjacente esteja relacionado ao novo. Experimente os parâmetros nomodeset nouveau.modeset=0juntos e se isso não funcionar, tentenomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
Eu tentaria inicializar o Ubuntu novamente apenas para lançar uma versão diferente do kernel na mistura. Certifique-se de ativar o modo legado no BIOS primeiro ou, pelo menos, desabilite a inicialização segura e a inicialização rápida ou algo assim, se você ainda não o tiver.
Paul Nordin

Respostas:


5

Acontece que o problema foi i2c_hid

Parece ser algum tipo de driver do touchpad. Por algum motivo, quando eu o desabilito, ainda posso usar meu touchpad. Pode ser que a tela sensível ao toque do laptop também esteja usando esse driver, porque isso não funciona.

Eu não gosto de mexer na tela do meu laptop com impressões digitais, enfim ... Então tchau tchau i2c_hid!

Corrigi-o adicionando isso aos parâmetros do kernel: modprobe.blacklist=i2c_hid

Embora nolapictambém tenha funcionado, desativou todos os processadores, com exceção de um núcleo.

Eu recomendo a qualquer pessoa que esteja por aí para não usar apci=offou nolapicpor esse motivo.

O uso dessas opções é uma arma nuclear que pode fazer sua máquina funcionar, mas você perderá muito desempenho e / ou dispositivos de E / S como dano colateral. É um bom ponto de partida para inicializar e, em seguida, você pode ler o journalctl como eu fiz para analisar as botas que falham.

Boa sorte para quem achar isso.


3
Muito obrigado por compartilhar você encontrando! Com base nas suas informações, descobri que a desativação hid_sensor_hubé suficiente e a tela sensível ao toque também é utilizável (veja minha resposta abaixo para mais detalhes).
Jiakai

2

Todos esses erros se parecem com os que eu já vi com módulos ruins do kernel.

Alguém no fórum do ubuntu afirmou que conseguiu instalar o ubuntu no 710-14ISK desativando o acpi (adicione acpi=offàs opções do kernel). https://ubuntuforums.org/showthread.php?t=2329448

Outro cliente nos fóruns da lenovo disse que teve problemas para inicializar o fedora 24 e atribuiu o problema a um firmware broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Tente colocar na lista negra os módulos broadcom e nouveau (deixe-os não reclamados) e inicialize com o acpi desativado. Eu tinha logs semelhantes quando tinha um módulo ralink mal comportado em um antigo Acer: colocar o módulo na lista negra deixou-me inicializar e interrompeu o pânico do kernel, mas me deixou sem wifi.

PS. Eu colocaria tudo isso em um comentário, mas não tenho reputação suficiente para comentar (desculpe).


Eu acho que você está em algo. acpi=offcometeu o erro desaparecer, mas também desativa meu teclado. Parece que há opções mais granulares com ACPI, então eu vou ver se consigo fazer parar erros, mantendo meu teclado :)
tmsimont

1
hmm, talvez apenas desabilitar algumas partes da ACPI seja o caminho a seguir. Existem algumas opções, mas eu tentaria acpi=htprimeiro. help.ubuntu.com/community/BootOptions (veja em Opções comuns do kernel) ou para uma lista mais abrangente: kernel.org/doc/Documentation/kernel-parameters.txt
Schives

nolapicfuncionou para mim e sou capaz de inicializar, mas só posso acessar um dos meus CPUs. Estou tentando usar este laptop para desenvolver programas OpenMP, portanto, ter apenas 1 CPU funcionando não é bom. Parece que há algo terrivelmente errado em como o kernel está tentando usar minhas múltiplas CPUs. O fato de nolapic"corrigir" a inicialização pode ser apenas coincidentemente devido ao fato de limitar o kernel a 1 CPU
tmsimont

uma outra observação - isso funciona bem no Windows 10. Existe algo que eu possa acessar no Windows para saber mais sobre o que o kernel do Windows faz com as CPUs que posso replicar no Linux?
tmsimont

2

Eu experimentei problemas semelhantes com os kernels recentes (4.7.x a 4.8.2) no meu yoga710 com o i5-6200U. Desativar o i2c_h2d funciona para mim. Também descobri que o linux-lts (atualmente 4.4.25) parece funcionar bem, incluindo o touchpad e a tela sensível ao toque.

Editar: ao experimentar o código do driver, descobri que isso é realmente causado pelo hid_sensor_hubdriver, de modo que a lista negra resolve o problema e a tela sensível ao toque também é utilizável. Desativar certamente faz com que os sensores (como o acelerômetro) não sejam reconhecidos. Eu tentei consertar o driver; no entanto, ainda não descobri uma maneira.


0

Você precisa de um kernel Linux da versão 4.4 ou posterior para suporte do Skylake. Confira o seguinte link no wiki do Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support


archlinux-2016/08/01-dual.iso contém 4.6.4, assim que deve funcionar
maxf

Esta é uma pergunta estúpida, mas você executou o memtest no seu computador? memtest.org
Peter Skarpetis

1
@ Peter Não é estúpido, e sim eu fiz. Sem problemas de memória. Também sim maxf está certo, eu tenho 4.6.4
tmsimont
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.