Dlaczego jądro Linuksa nie uruchamia się na moim nowym procesorze Intel i7-6500U?

9

Wiem, że trudno jest odizolować procesor, ale błędy, które widzę, sugerują, że to jest problem.

To zdecydowanie nie jest wadliwy / uszkodzony problem sprzętowy . Przez ostatnie kilka dni korzystałem z systemu Windows 10 i to szybko się zmienia! Bez awarii. Co ważniejsze, uruchomiłem sprawdzanie pamięci systemu Windows. Pamięć jest dobra.

dane techniczne maszyny

Maszyna jest zupełnie nowym 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

izolowanie do jądra Linuxa (?)

Widziałem te same problemy na obu

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

W przypadku Arch - problem pojawiał się sporadycznie podczas rozruchu z pamięci USB. Udało mi się zainstalować Archa na 100 GB partycji ext4 na dysku. Podczas instalacji ten sam problem występuje sporadycznie (np. 90% czasu). Jeśli mi się uda, problem pojawia się losowo po wykonaniu pierwszych kilku poleceń terminalu, co ostatecznie powoduje całkowity impas.

W przypadku Ubuntu - pamięć USB nawet się nie uruchamia. Natychmiast zatrzymują mnie te same błędy. Impas...

Tyle błędów ...

Czasami dziennik jest zapełniany błędami związanymi z pamięcią, ale najważniejsze błędy, które widzę, to:

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

Kilka razy widziałem te same ślady stosu dla tych błędów:

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 również obiecuje, że naprawi problem

Naprawianie błędu rekurencyjnego, ale konieczne jest ponowne uruchomienie!

Chciałbym..

kod intelektualny

Próbowałem także zainstalować intel-ucodepakiet w mojej instalacji Arch. W dmesgdziennikach widziałem, że mikrokody zostały zaktualizowane, ale niestety nie rozwiązało to mojego problemu.

Co może być problemem? Jak to naprawić?


EDYTOWAĆ

Uwaga dodatkowa

Ogólne komunikaty o błędach ochrony i komunikaty typu „wykryto zablokowanie” zwykle odnoszą się do procesora. Widziałem CPU0, CPU1, CPU2i CPU3w tych wiadomościach. Wygląda na to, że coś powoduje, że procesory się nie dogadują, jakby wszyscy znajdowali się w impasie, próbując wyczyścić pamięć podręczną lub coś w tym rodzaju.


EDYCJA 2

BIOS wymieniony w błędzie

Widzę ten fragment informacji w niektórych błędach:

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

Nie jestem pewien, czy jest to pomocne dla profesjonalisty w zrozumieniu problemu ...


EDYCJA 3

maxcpus = 1

Szukałem opcji debugowania w dokumentacji parametrów jądra i znalazłemmaxcpus

Jeśli ustawię maksymalną liczbę procesorów na 1, problem zniknie. Wygląda na to, że problemem jest naruszenie zasad pamięci współużytkowanej.


EDYCJA 3

maxcpus = 1 + Gnome = ponownie zepsuty

Chociaż maxcpus=1wydawało się, że system działa tylko z 1 procesorem, zainstalowałem gnome, a następnie uruchomiłemsystemctl enable gdm.service

Teraz, gdy uruchamiam ponownie, ponownie otrzymuję wszystkie moje błędy, ale tym razem wszystkie one występują na CPU0

Wygląda więc na to, że coś wciąż powoduje naruszenie pamięci nawet przy 1 procesorze.


EDYCJA 4

nolapic

nolapicWydaje się, że używanie sprawia, że ​​wszystko „działa”

ALE za pomocą nolapic, skutecznie wyłączam mój inny procesor i wszystkie wielowątkowość w 1 działającym procesorze.

Próbuję użyć tego do OpenMP, a po uruchomieniu nolapicOpenMP i jądro Linuxa mogą znaleźć tylko 1 wątek, 1 procesor. To jest do bani!

Próbowałem też intel_idle.max_cstate=0i 1, 2itp Ale to nie rozwiąże problemu z rozruchem.

Co jeszcze może spowodować, że jądro nie wykorzysta mojej wielordzeniowej maszyny?

tmsimont
źródło
Czy próbowałeś zainstalować sterownik NVIDIA dla swojego NVIDIA GeForce 940MX?
Paul Nordin,
Nie, nie zrobiłem - może uda mi się ponownie uruchomić pamięć USB, ale jest to dość trudne. Czy jest jakiś sposób na przekazanie opcji jądra w skrypcie rozruchowym, aby tymczasowo wyłączyć GPU, aby to przetestować? (Próbowałem nomodeseti nouveau.mode=0- nie jestem pewien, czy to podobne)
tmsimont
hmm zajrzałem do dokumentacji parametrów jądra linuxa i znalazłem maxcpus- ustawiłem na 1 i problem zniknął ... Ale teraz mogę używać tylko jednego procesora? :(
tmsimont
To jest dziwne. Nadal podejrzewam, że podstawowa kwestia dotyczy secesji. Wypróbuj parametry nomodeset nouveau.modeset=0razem, a jeśli to nie zadziała, spróbujnomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin
1
Spróbowałbym ponownie uruchomić Ubuntu, aby wrzucić do miksu inną wersję jądra. Pamiętaj, aby włączyć tryb starszy w BIOSie, a przynajmniej wyłączyć bezpieczny rozruch i szybki rozruch lub cokolwiek podobnego, jeśli jeszcze tego nie zrobiłeś.
Paul Nordin,

Odpowiedzi:

5

Okazuje się, że problem był i2c_hid

To wydaje się być jakimś sterownikiem touchpada. Z jakiegoś powodu po jego wyłączeniu nadal mogę korzystać z touchpada. Możliwe, że ekran dotykowy na laptopie również korzystał z tego sterownika, ponieważ to nie działa.

W każdym razie nie lubię wycierać ekranu laptopa odciskami palców ... Więc cześć i2c_hid!

Naprawiłem to, dodając to do parametrów jądra: modprobe.blacklist=i2c_hid

Chociaż nolapicrównież działał, wyłączył wszystkie procesory z wyjątkiem 1 rdzenia.

Gorąco polecam każdemu innemu, aby nie używał apci=offlub nolapicz tego powodu.

Korzystanie z tych opcji jest bronią nuklearną, która może sprawić, że twoja maszyna będzie działać, ale stracisz dużo wydajności i / lub urządzeń we / wy jako dodatkowe uszkodzenie. To dobry punkt wyjścia do uruchomienia, a następnie możesz przejrzeć dziennik tak jak ja, aby przeanalizować buty, które zawiodły.

Powodzenia dla tych, którzy to znajdą.

tmsimont
źródło
3
Dziękujemy bardzo za podzielenie się znalezieniem! Na podstawie twoich informacji odkryłem, że wyłączenie hid_sensor_hubjest wystarczające, a ekran dotykowy jest również użyteczny (więcej szczegółów znajdziesz w mojej odpowiedzi poniżej).
jiakai
2

Wszystkie te błędy wyglądają jak te, które widziałem przy złych modułach jądra.

Jest ktoś na Ubuntuforums, który twierdził, że dostał Ubuntu do rozruchu na 710-14ISK przez wyłączenie acpi (dodaj acpi=offdo opcji jądra). https://ubuntuforums.org/showthread.php?t=2329448

Inny klient na forach Lenovo powiedział, że miał problem z uruchomieniem Fedory 24 i prześledził problem do oprogramowania wewnętrznego Broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Spróbuj umieścić na czarnej liście moduły broadcom i nouveau (pozostaw je nieodebrane) i uruchom przy wyłączonym acpi. Miałem podobne dzienniki, gdy miałem źle zachowujący się moduł Ralink w starym acerze: umieszczenie go na czarnej liście pozwoliło mi się uruchomić i zatrzymać panikę jądra, ale zostawiłem mnie bez wifi.

PS. Umieściłbym to wszystko w komentarzu, ale nie mam wystarczającej reputacji, aby komentować (przepraszam).

Schives
źródło
Myślę, że coś masz na myśli. acpi=offbłąd zniknął, ale wyłącza także klawiaturę. Wygląda na to, że z acpi są bardziej szczegółowe opcje, więc zobaczę, czy uda mi się zatrzymać błędy przy jednoczesnym zachowaniu klawiatury :)
tmsimont
1
hmm, być może wystarczy wyłączenie niektórych części acpi. Jest sporo opcji, ale acpi=htnajpierw spróbuję . help.ubuntu.com/community/BootOptions (patrz Wspólne opcje jądra) lub bardziej wyczerpująca lista: kernel.org/doc/Documentation/kernel-parameters.txt
Schives
nolapicpracował dla mnie i jestem w stanie uruchomić, ale wtedy mogę uzyskać dostęp tylko do jednego z moich procesorów. Próbuję używać tego laptopa do opracowywania programów OpenMP, więc działanie tylko 1 procesora nie jest w porządku. Wygląda na to, że jest coś strasznie złego w tym, jak jądro próbuje używać moich wielu procesorów. Fakt, że nolapic„naprawia” boot, może być przypadkowy tylko dlatego, że ogranicza jądro do 1 procesora
tmsimont
jeszcze jedna uwaga - działa to dobrze w systemie Windows 10. Czy jest coś, co mogę wyciągnąć w systemie Windows, aby dowiedzieć się więcej o wszystkim, co jądro systemu Windows robi z procesorami, które mógłbym być w stanie replikować w systemie Linux?
tmsimont
2

Podobne problemy występowały w przypadku ostatnich jąder (4.7.x do 4.8.2) na moim Yoga710 z i5-6200U. Wyłączenie i2c_h2d działa dla mnie. Odkryłem również, że linux-lts (obecnie 4.4.25) wydaje się działać dobrze, w tym touchpad i ekran dotykowy.

Edycja: eksperymentując z kodem sterownika, odkryłem, że jest to rzeczywiście spowodowane przez hid_sensor_hubsterownik, więc umieszczenie go na czarnej liście rozwiązuje problem, a ekran dotykowy jest również użyteczny. Z pewnością wyłączenie powoduje, że czujniki (takie jak akcelerometr) nie są rozpoznawane. Próbowałem naprawić sterownik; jednak nie znalazłem jeszcze rozwiązania.

jiakai
źródło
0

Do obsługi Skylake potrzebujesz jądra Linux w wersji 4.4 lub nowszej. Sprawdź poniższy link na wiki Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support

Peter Skarpetis
źródło
archlinux-2016.08.01-dual.iso zawiera 4.6.4, więc to powinno działać
maxf 25.08.16
To głupie pytanie, ale czy uruchomiłeś memtest na swoim komputerze? memtest.org
Peter Skarpetis,
1
@Peter Nie głupie i tak zrobiłem. Brak problemów z pamięcią. Także tak, maxf ma rację, mam 4.6.4
tmsimont