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
- 우분투-그놈-16.04.1-desktop-amd64.iso
Arch의 경우 - USB 스틱에서 부팅할 때만 문제가 간헐적으로 발생합니다. 드라이브의 100GB ext4 파티션에 Arch를 설치했습니다. 설치를 시작하는 동안 간헐적으로(약 90%의 경우) 동일한 문제가 발생합니다. 부팅을 통과하면 처음 몇 개의 터미널 명령을 실행한 후 문제가 무작위로 발생하여 결국 완전한 교착 상태가 발생합니다.
Ubuntu의 경우 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
Linux는 또한 문제를 해결하고 있다고 약속했습니다.
재귀 오류가 수정되었지만 재부팅이 필요합니다!
나는 희망..
인텔 ucode
intel-ucode
또한 Arch 설치에 패키지 설치를 시도했습니다 . dmesg
로그에서 마이크로코드가 업데이트되었음을 확인했지만 안타깝게도 이 방법으로는 문제가 해결되지 않습니다 .
무엇이 문제일까요? 어떻게 고치나요?
편집하다
추가 정보.
일반 보호 오류 메시지와 "잠금 감지" 유형 메시지는 일반적으로 CPU를 참조합니다. 이 메시지에는 CPU0
, CPU1
및 가 표시됩니다 CPU2
. CPU3
CPU가 제대로 작동하지 않는 원인이 있는 것 같습니다. 마치 캐시 등을 지우려고 시도하면서 교착 상태에 빠진 것처럼 보입니다.
편집 2
BIOS에 언급된 오류
일부 오류에서 다음과 같은 정보를 보았습니다.
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
이것이 전문가가 문제를 이해하는 데 도움이 되는지 확실하지 않습니다...
편집 3
최대 CPU 수=1
디버깅 옵션을 찾고 있어요커널 매개변수 문서그리고 발견maxcpus
최대 CPU를 1로 설정하면 문제가 사라집니다. 따라서 문제는 일종의 공유 캐시 메모리 위반인 것 같습니다.
편집 3
maxcpus=1 + Gnome = 다시 깨짐
maxcpus=1
CPU 1개만으로 시스템이 돌아가는 것 같았 으나 gnome을 설치하고 실행해봤습니다.systemctl enable gdm.service
이제 재부팅하면 모든 오류가 다시 발생하지만 이번에는 모두 CPU0에서 발생합니다.
그래서 CPU가 1개라도 메모리 위반을 일으키는 뭔가가 있는 것 같습니다.
편집 4
노라피크
따라서 사용하면 nolapic
모든 것이 "작동"하는 것 같습니다.
하지만 이를 사용함으로써 nolapic
1개의 작업자 CPU뿐만 아니라 다른 CPU의 모든 멀티스레딩을 효과적으로 비활성화했습니다.
OpenMP와 함께 사용하려고 하는데 boot를 사용한 후 nolapic
OpenMP와 Linux 커널은 스레드 1개, CPU 1개만 찾을 수 있습니다. 너무 끔찍해!
나는 또한 intel_idle.max_cstate=0
, 1
등을 시도했습니다 2
. 그러나 이것은 시작 문제를 해결하지 못합니다.
멀티 코어 시스템에서 커널 오류를 일으키는 또 다른 원인은 무엇입니까?
답변1
문제는 다음과 같습니다.i2c_hid
일종의 터치패드 드라이버인 것 같습니다. 어떤 이유에서인지 비활성화해도 터치패드를 계속 사용할 수 있습니다. 노트북의 터치스크린이 이 드라이버를 사용하는 경우도 작동하지 않을 수 있습니다.
어쨌든, 저는 노트북 화면에 지문이 묻어나는 걸 좋아하지 않습니다. 그럼 안녕 i2c_hid
!
커널 매개변수에 다음을 추가하여 문제를 해결했습니다.
modprobe.blacklist=i2c_hid
이 방법도 작동 하지만 nolapic
프로세서의 코어 1개를 제외한 모든 코어가 비활성화됩니다.
나는 다른 사람들이 이러한 이유로 그것을 사용하지 말 것을 강력히 권고합니다 apci=off
.nolapic
이러한 옵션을 사용하는 것은 마치 핵을 제거하는 것과 같아서 기계가 작동할 수 있지만 부수적인 손상으로 인해 많은 성능 및/또는 I/O 장치가 손실됩니다. 이는 부팅을 위한 좋은 출발점이며, 제가 했던 것처럼 Journalctl을 통해 실패한 부팅을 분석할 수 있습니다.
이것을 찾는 사람들에게 행운을 빕니다.
답변2
이러한 오류는 모두 잘못된 커널 모듈에서 나타나는 오류처럼 보입니다.
ubuntuforums의 누군가는 acpi=off
acpi를 비활성화하여(커널 옵션에 추가됨) 710-14ISK에서 우분투를 부팅할 수 있다고 주장했습니다.
https://ubuntuforums.org/showthread.php?t=2329448
Lenovo 포럼의 또 다른 고객은 Fedora 24를 부팅하는 데 문제가 있다고 말했으며 문제를 Broadcom 펌웨어의 일부에서 추적했습니다. https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux/td-p/3361544
Broadcom 및 nouveau 모듈을 블랙리스트에 추가하고(청구되지 않은 상태로 유지) acpi를 끈 상태에서 시작해 보십시오. 이전 acer에 오작동하는 ralink 모듈을 설치했을 때 유사한 로그가 있었습니다. 모듈을 블랙리스트에 추가하면 커널 패닉을 시작하고 중지할 수 있었지만 Wi-Fi를 사용할 수 없게 되었습니다.
추신. 이 모든 것을 댓글에 달고 싶지만 댓글을 달기에는 평판이 충분하지 않습니다(죄송합니다).
답변3
i5-6200U가 포함된 Yoga710에서 최신 커널(4.7.x~4.8.2)을 사용하여 비슷한 문제가 발생했습니다. i2c_h2d를 비활성화하면 나에게 도움이 되었습니다. 또한 linux-lts(현재 4.4.25)가 터치패드와 터치스크린 모두에서 잘 작동하는 것으로 나타났습니다.
편집: 드라이버 코드를 실험해 본 결과 이것이 실제로 hid_sensor_hub
드라이버로 인해 발생한 것임을 알았으므로 블랙리스트에 등록하면 문제가 해결되고 터치스크린이 작동했습니다. 이를 비활성화하면 확실히 센서(가속도계 등)를 인식할 수 없게 됩니다. 드라이버를 수리해 보았지만 아직 파악하지 못했습니다.
답변4
Skylake를 지원하려면 Linux 커널 버전 4.4 이상이 필요합니다. Arch Linux 위키에서 다음 링크를 확인하세요.https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support