새로운 Intel i7-6500U CPU에서 Linux 커널 부팅이되지 않는 이유는 무엇입니까?


9

CPU를 분리하기는 어렵지만, 내가 본 오류는 이것이 문제임을 시사합니다.

이것은 고장 나거나 고장난 하드웨어 문제가 아닙니다 . 지난 며칠 동안 Windows 10을 하루 종일 실행 해 왔으며이 일은 매우 빠릅니다! 충돌하지 않습니다. 더 중요한 것은 Windows 메모리 검사기를 실행했습니다. 기억은 모두 좋다.

기계 사양

이 기계는 새로운 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

리눅스 커널로 분리 (?)

나는 둘 다 같은 문제를 보았다

  • archlinux-2016.08.01-dual.iso
  • 우분투 -gnome-16.04.1-desktop-amd64.iso

Arch의 경우-문제는 USB 스틱에서 부팅 할 때 간헐적으로 만 나타납니다. 드라이브의 100GB ext4 파티션에 Arch를 설치했습니다. 부팅하는 동안 해당 설치에 간헐적으로 동일한 시간이 발생합니다 (예 : 90 %). 부팅을 통과하면 처음 실행 한 두 개의 터미널 명령 후에 문제가 무작위로 표시되어 결국 완전한 교착 상태가 발생합니다.

우분투의 경우 USB 스틱이 부팅되지 않습니다. 나는 같은 오류로 즉시 멈추게됩니다. 이중 자물쇠...

너무 많은 오류 ...

이 일이 발생할 때마다 저널은 메모리 관련 오류로 채워져 있지만 내가보고있는 주요 오류는 다음과 같습니다.

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

이 오류에 대해 동일한 스택 추적을 여러 번 보았습니다.

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

리눅스는 또한 문제를 해결한다고 약속한다

재귀 오류를 해결하지만 재부팅이 필요합니다!

나는 원한다..

인텔 ucode

또한 intel-ucode아치 설치에 패키지를 설치하려고했습니다 . 나는에서 본 dmesg마이크로 코드가 업데이트 된 것을 로그,하지만 불행히도 내 문제가 해결되지 않았다.

무엇이 문제 일 수 있습니까? 어떻게 고칠 수 있습니까?


편집하다

추가 참고 사항.

일반적인 보호 오류 메시지와 "잠금 감지"유형 메시지는 일반적으로 CPU를 참조합니다. 나는 보았다 CPU0, CPU1, CPU2CPU3이러한 메시지입니다. 캐시 메모리 등을 지우려는 교착 상태에 처한 것처럼 CPU가 작동하지 않는 것처럼 보입니다.


편집 2

오류에서 언급 한 BIOS

일부 오류에서이 정보가 표시됩니다.

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

그것이 문제를 이해하는 데 도움이되는지 확실하지 않습니다 ...


편집 3

maxcpus = 1

나는에서 디버깅 옵션을 찾고 있었다 커널은 문서 PARAMS 발견을maxcpus

max cpu를 1로 설정하면 문제가 해결됩니다. 따라서 문제는 일종의 공유 캐시 메모리 위반 인 것 같습니다.


편집 3

maxcpus = 1 + 그놈 = 다시 깨진

maxcpus=11 CPU만으로 시스템을 작동시키는 것처럼 보이지만 그놈을 설치 한 다음 실행했습니다.systemctl enable gdm.service

이제 다시 부팅하면 모든 오류가 다시 발생하지만 이번에는 CPU0에서 모두 발생합니다.

따라서 1 CPU에서도 무언가가 여전히 메모리 위반을 일으키는 것으로 보입니다.


편집 4

놀라움

사용 nolapic하면 모든 것이 "작동" 하는 것처럼 보입니다.

그러나을 사용 nolapic하면 작동하는 1 CPU에서 다른 CPU 및 모든 멀티 스레딩을 효과적으로 비활성화합니다.

OpenMP에 이것을 사용하려고하는데 OpenMP로 부팅 한 후 nolapicLinux 커널은 1 개의 스레드, 1 개의 CPU 만 찾을 수 있습니다. 짜증나!

나는 또한 시도 intel_idle.max_cstate=0하고 1, 2등 그러나 이것은 부팅 문제가 해결되지 않습니다.

커널이 멀티 코어 머신을 활용하지 못하는 다른 요인은 무엇입니까?


NVIDIA GeForce 940MX 용 nvidia 드라이버 설치를 시도 했습니까?
Paul Nordin

아니, 나는-USB USB 스틱을 다시 부팅 할 수는 있지만 까다 롭습니다. 부트 스크립트에서 커널 옵션을 전달하여 gpu를 일시적으로 비활성화하여 이것을 테스트하는 방법이 있습니까? (I 시도했다 nomodesetnouveau.mode=0- 그와 비슷하지 않도록 경우)
tmsimont가

흠, 나는 리눅스 커널 매개 변수 문서를 조사 하고 발견했습니다 maxcpus-나는 그것을 1로 설정하고 문제가 사라졌습니다 ...하지만 이제 단 하나의 프로세서 만 사용할 수 있습니까? :(
tmsimont

이상하다. 나는 여전히 근본적인 문제가 누보와 관련이 있다고 생각합니다. 매개 변수를 nomodeset nouveau.modeset=0함께 사용해보십시오. 그래도 작동하지 않으면 다음을 시도하십시오.nomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
우분투를 다시 부팅하여 다른 커널 버전을 믹스에 넣습니다. 먼저 BIOS에서 레거시 모드를 활성화해야합니다. 보안 부팅 및 빠른 부팅 또는 이와 유사한 기능을 아직 비활성화하지 않은 경우 비활성화하십시오.
Paul Nordin

답변:


5

문제는 밝혀졌다 i2c_hid

이것은 일종의 터치 패드 드라이버 인 것 같습니다. 어떤 이유로 든 비활성화해도 터치 패드를 계속 사용할 수 있습니다. 랩톱의 터치 스크린 이이 드라이버를 사용하고 있었을 수도 있습니다.

어쨌든 지문으로 노트북 화면을 뭉개고 싶지는 않습니다 i2c_hid.

이것을 커널 매개 변수에 추가하여 수정했습니다. modprobe.blacklist=i2c_hid

하지만 nolapic또한 일, 그것은 프로세서의 모든하지만 1 개 코어를 사용할 수 없습니다.

내가보기 엔 다른 사람이 사용하지에게 사람에게 권하고 싶습니다 apci=off또는 nolapic이런 이유로.

이러한 옵션을 사용하면 기계가 작동 할 수있는 핵무기이지만 부수적 인 피해로 많은 성능 및 / 또는 i / o 장치가 손실됩니다. 부팅을 시작하기에 좋은 출발점이며, 실패한 부츠를 분석하는 것처럼 journalctl을 쏟아 부을 수 있습니다.

이것을 찾는 사람들에게 행운을 빕니다.


3
발견 한 것을 공유해 주셔서 감사합니다! 귀하의 정보를 바탕으로 비활성화 hid_sensor_hub가 충분하고 터치 스크린도 사용할 수 있음을 발견했습니다 (자세한 내용은 아래 답변 참조).
jiakai

2

이 모든 오류는 내가 나쁜 커널 모듈에서 보았던 것과 비슷합니다.

우분투 포럼에는 acpi를 비활성화 acpi=off하여 커널 옵션에 추가 하여 우분투를 710-14ISK로 부팅했다고 주장하는 사람이 있습니다. https://ubuntuforums.org/showthread.php?t=2329448

레노버의 포럼에서 다른 고객이 문제가 부팅 페도라 24를했고, 한 조각에 문제를 추적했다 브로드 펌웨어 : https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Broadcom 및 Nouveau 모듈을 블랙리스트에 올려 놓고 (청구하지 않은 채로 두십시오) acpi를 끄고 부팅하십시오. 오래된 에이서에 잘못된 동작의 링크 모듈이 있었을 때 비슷한 로그가있었습니다.

추신. 이 모든 것을 의견에 넣었지만 의견을 말할만큼 평판이 좋지 않습니다 (죄송합니다).


나는 당신이 무언가에 있다고 생각합니다. acpi=off오류가 사라지지만 키보드도 비활성화됩니다. acpi에는 더 세부적인 옵션이있는 것 같습니다. 키보드를 유지하면서 오류를 중지시킬 수 있는지 확인하겠습니다. :)
tmsimont

1
흠, 아마도 acpi의 일부를 비활성화하는 것이 좋습니다. 몇 가지 옵션이 있지만 acpi=ht먼저 시도해보십시오 . help.ubuntu.com/community/BootOptions (공통 커널 옵션 아래 참조) 또는보다 포괄적 인 목록 : kernel.org/doc/Documentation/kernel-parameters.txt
Schives

nolapic나를 위해 일하고 부팅 할 수는 있지만 내 CPU 중 하나에 만 액세스 할 수 있습니다. OpenMP 프로그램을 개발하기 위해이 랩톱을 사용하려고하는데 CPU가 1 개만 있으면 괜찮습니다. 커널이 여러 개의 CPU를 사용하는 방법에는 끔찍한 문제가있는 것 같습니다. nolapic부팅 을 "고정"한다는 사실은 커널이 1 개의 CPU로 제한되기 때문에 우연히 발생할 수 있습니다.
tmsimont

다른 참고 사항-이것은 Windows 10에서 잘 작동합니다. Windows 커널에서 Linux에서 복제 할 수있는 CPU로 Windows 커널이 수행하는 모든 것에 대해 더 배울 수있는 것이 있습니까?
tmsimont

2

i5-6200U를 사용하는 yoga710에서 최근 커널 (4.7.x ~ 4.8.2)과 비슷한 문제가 발생했습니다. i2c_h2d를 비활성화하면 나에게 효과적입니다. 또한 터치 패드와 터치 스크린을 포함하여 linux-lts (현재 4.4.25)가 잘 작동하는 것으로 나타났습니다.

편집 : 드라이버 코드를 실험하여 실제로 hid_sensor_hub드라이버에 의한 것으로 나타 났으므로 블랙리스트에 올리면 문제가 해결되고 터치 스크린도 사용할 수 있습니다. 확실하게 비활성화하면 가속도계와 같은 센서가 인식되지 않습니다. 나는 드라이버를 고치려고 노력했다. 그러나 나는 아직 방법을 찾지 못했습니다.


0

Skylake를 지원하려면 Linux 커널 버전 4.4 이상이 필요합니다. 아치 리눅스 위키에서 다음 링크를 확인하십시오. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support


archlinux-2016.08.01-dual.iso는 4.6.4를 포함하므로 작동합니다
maxf

이것은 어리석은 질문이지만 컴퓨터에서 memtest를 실행 했습니까? memtest.org
Peter Skarpetis

1
@Peter 바보가 아니에요. 메모리 문제가 없습니다. 또한 예 maxf 권리, 나는 4.6.4 가지고있다
tmsimont
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.