ทำไม linux kernel boot ไม่สามารถใช้กับ Intel i7-6500U CPU ใหม่ของฉันได้


9

มันยากที่จะแยก CPU ฉันรู้ แต่ข้อผิดพลาดที่ฉันเห็นแนะนำว่าเป็นปัญหา

นี้แน่นอนไม่ได้เป็นปัญหาฮาร์ดแวร์ชำรุด / เสีย ฉันใช้ Windows 10 มาตลอดทั้งวันในช่วงหลายวันที่ผ่านมาและสิ่งนี้เร็วมาก ๆ ! ไม่มีการกระแทก ที่สำคัญกว่านั้นฉันรันตัวตรวจสอบหน่วยความจำ Windows หน่วยความจำดีทั้งหมด

รายละเอียดเครื่อง

เครื่องเป็นแบรนด์ใหม่ของเลอโนโวโยคะ 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

แยกเป็นเคอร์เนล linux (?)

ฉันเห็นปัญหาแบบเดียวกันทั้งสองอย่าง

  • ArchLinux-2016/08/01-dual.iso
  • อูบุนตู-gnome-16.04.1-สก์ท็อป amd64.iso

สำหรับ Arch - ปัญหาปรากฏขึ้นเป็นระยะ ๆ เมื่อบู๊ตจากอุปกรณ์ USB ฉันจัดการเพื่อติดตั้ง Arch บนพาร์ติชั่น ext4 100GB บนไดรฟ์ การติดตั้งนั้นมีปัญหาเดียวกันเป็นระยะ ๆ (เช่น 90% ของเวลา) ระหว่างการบู๊ต หากฉันผ่านการบู๊ตแล้วปัญหาจะปรากฏขึ้นแบบสุ่มหลังจากคู่แรกของคำสั่งเทอร์มินัลที่ฉันดำเนินการจนทำให้เกิดการหยุดชะงักโดยสมบูรณ์

สำหรับ Ubuntu - USB stick ไม่สามารถบู๊ตได้ ฉันหยุดโดยข้อผิดพลาดเดียวกันเหล่านี้ทันที หยุดชะงัก ...

ข้อผิดพลาดมากมาย ...

สมุดรายวันถูกอัดแน่นไปด้วยข้อผิดพลาดที่เกี่ยวข้องกับหน่วยความจำทุกครั้งที่เกิดเหตุการณ์นี้ แต่ข้อผิดพลาดที่สำคัญที่ฉันเห็นคือ

  • 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

ลินุกซ์ยังคงสัญญาว่าจะแก้ไขปัญหา

แก้ไขข้อผิดพลาดแบบเรียกซ้ำ แต่จำเป็นต้องรีบูต!

ฉันหวังว่า..

intel ucode

ฉันยังลองติดตั้งintel-ucodeแพ็คเกจในการติดตั้ง Arch ของฉันด้วย ฉันเห็นในdmesgบันทึกว่ามีการอัปเดตไมโครโค้ด แต่น่าเสียดายที่ไม่ได้แก้ปัญหาของฉัน

มีปัญหาอะไรบ้าง? จะแก้ไขได้อย่างไร?


แก้ไข

หมายเหตุเพิ่มเติม

ข้อความความผิดพลาดในการป้องกันทั่วไปและข้อความ "ล็อกอัพที่ตรวจพบ" โดยทั่วไปแล้วจะอ้างอิง CPU ผมเคยเห็นCPU0, CPU1, CPU2และCPU3ในข้อความเหล่านี้ ดูเหมือนว่ามีอะไรบางอย่างที่ทำให้ซีพียูไม่สามารถเข้ากันได้เหมือนกับว่าทุกคนอยู่ในการหยุดชะงักเพื่อพยายามล้างหน่วยความจำแคชหรือบางอย่าง


EDIT2

BIOS ที่กล่าวถึงในข้อผิดพลาด

ฉันเห็นข้อมูลนี้ในข้อผิดพลาด:

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

ไม่แน่ใจว่าเป็นประโยชน์หรือไม่สำหรับมืออาชีพในการทำความเข้าใจปัญหา ...


edit3

maxcpus = 1

ฉันกำลังมองหาตัวเลือกการแก้ไขข้อบกพร่องในเอกสารประกอบเคอร์เนลและพบว่าmaxcpus

ถ้าฉันตั้งค่า cpu สูงสุดเป็น 1 ดังนั้นปัญหาจะหายไป ดังนั้นดูเหมือนว่าปัญหาคือการละเมิดหน่วยความจำแคชที่ใช้ร่วมกันบางประเภท


edit3

maxcpus = 1 + Gnome = แตกอีกครั้ง

แม้ว่าmaxcpus=1ดูเหมือนว่าจะทำให้ระบบใช้งานได้กับ CPU เพียง 1 ตัว แต่ฉันติดตั้ง gnome แล้ววิ่งsystemctl enable gdm.service

ตอนนี้เมื่อฉันรีบูตฉันได้รับข้อผิดพลาดทั้งหมดกลับมาอีกครั้ง แต่คราวนี้พวกเขาทั้งหมดเกิดขึ้นใน CPU0

ดังนั้นดูเหมือนว่าบางสิ่งยังคงก่อให้เกิดการละเมิดหน่วยความจำแม้กระทั่งกับ 1 CPU


EDIT4

nolapic

ดังนั้นการใช้nolapicดูเหมือนจะทำให้ทุกอย่าง "ทำงาน"

แต่โดยใช้nolapicฉันปิดการใช้งาน CPU อื่นของฉันและมัลติเธรดทั้งหมดในซีพียูทำงาน 1 ตัว

ฉันพยายามใช้สิ่งนี้กับ OpenMP และหลังจากบูทด้วยnolapicOpenMP และเคอร์เนล linux จะสามารถค้นหาได้เพียง 1 เธรดและ 1 CPU นั่นห่วย!

ฉันยังพยายามintel_idle.max_cstate=0และ1, 2ฯลฯ แต่นี้ไม่สามารถแก้ไขปัญหาการบูต

มีอะไรอีกที่ทำให้เคอร์เนลไม่สามารถใช้เครื่องมัลติคอร์ของฉันได้?


คุณลองติดตั้งไดรเวอร์ nvidia สำหรับ NVIDIA GeForce 940MX ของคุณหรือยัง?
พอล Nordin

ไม่ฉันยังไม่ได้ - ฉันอาจจะสามารถติดตั้ง usb โค้งสำหรับบู๊ตได้อีกครั้ง แต่มันค่อนข้างยุ่งยาก มีวิธีการส่งผ่านตัวเลือกเคอร์เนลในสคริปต์การบูตเพื่อปิดการใช้งาน GPU ชั่วคราวเพื่อทดสอบสิ่งนี้หรือไม่ (ฉันลองnomodesetแล้วnouveau.mode=0- ไม่แน่ใจว่ามันคล้ายกัน)
tmsimont

อืมฉันได้ดูเอกสารของเคอร์เนล linuxและพบว่าmaxcpus- ฉันตั้งค่าเป็น 1 และปัญหาหายไป ... แต่ตอนนี้ฉันสามารถใช้ procesor เดียวได้หรือไม่ :(
tmsimont

นั่นเป็นเรื่องแปลก ฉันยังคงสงสัยว่าปัญหาพื้นฐานเกี่ยวข้องกับนูโว ลองใช้พารามิเตอร์nomodeset nouveau.modeset=0ร่วมกันและหากวิธีนี้ใช้ไม่ได้ให้ลองnomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
ฉันจะลองบูตอูบุนตูอีกครั้งเพื่อโยนเคอร์เนลเวอร์ชันต่าง ๆ ลงในส่วนผสม ตรวจสอบให้แน่ใจว่าได้เปิดใช้งานโหมดดั้งเดิมใน BIOS ก่อนหรืออย่างน้อยปิดการใช้งานการบูตที่ปลอดภัยและการบูตเร็วหรืออะไรอย่างนั้นถ้าคุณยังไม่ได้ทำ
พอล Nordin

คำตอบ:


5

ปรากฎว่าปัญหาคือ i2c_hid

ดูเหมือนว่าจะเป็นไดรเวอร์ทัชแพดบางชนิด ด้วยเหตุผลบางอย่างเมื่อฉันปิดการใช้งานฉันยังคงสามารถใช้ทัชแพดได้ อาจเป็นได้ว่าหน้าจอสัมผัสบนแล็ปท็อปกำลังใช้ไดรเวอร์นี้เช่นกันเพราะมันไม่ทำงาน

ฉันไม่ชอบที่จะเขียวขึ้นหน้าจอแล็ปท็อปของฉันกับลายนิ้วมือแล้ว ... ดังนั้นลาก่อนi2c_hid!

ฉันแก้ไขได้โดยการเพิ่มสิ่งนี้ลงใน kernel params: modprobe.blacklist=i2c_hid

แม้ว่าnolapicจะใช้งานได้ แต่ก็ปิดการใช้งานทั้งหมดยกเว้น 1 คอร์ในโปรเซสเซอร์

ฉันขอแนะนำให้คนอื่นที่นั่นไม่ใช้apci=offหรือnolapicด้วยเหตุผลนี้

การใช้ตัวเลือกเหล่านี้เป็นอาวุธนิวเคลียร์ที่อาจทำให้เครื่องจักรของคุณทำงานได้ แต่คุณจะสูญเสียประสิทธิภาพและ / หรืออุปกรณ์ i / o จำนวนมากเพื่อเป็นหลักประกันความเสียหาย เป็นจุดเริ่มต้นที่ดีในการเริ่มระบบจากนั้นคุณสามารถอ่านรายละเอียดได้อย่างที่ฉันทำเพื่อวิเคราะห์รองเท้าที่ล้มเหลว

ขอให้โชคดีสำหรับผู้ที่พบสิ่งนี้


3
ขอบคุณมากสำหรับการแบ่งปันที่คุณพบ! จากข้อมูลของคุณฉันพบว่าการปิดใช้งานhid_sensor_hubนั้นเพียงพอและหน้าจอสัมผัสยังสามารถใช้งานได้ (ดูคำตอบของฉันด้านล่างสำหรับรายละเอียดเพิ่มเติม)
jiakai

2

ข้อผิดพลาดทั้งหมดเหล่านี้มีลักษณะเหมือนที่ฉันเห็นด้วยโมดูลเคอร์เนลที่ไม่ดี

มีใครบางคนในอูบุนตูฟอรัมที่อ้างว่าพวกเขาได้รับอูบุนตูเพื่อบูตบน 710-14ISK โดยการปิดการใช้งาน acpi (เพิ่มacpi=offไปที่ตัวเลือกเคอร์เนล) 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 off ฉันมีบันทึกที่คล้ายกันเมื่อฉันมีโมดูล ralink ที่ไม่ดีใน acer เก่า: ขึ้นบัญชีดำให้ฉันบูตโมดูลและหยุดเคอร์เนลตกใจ แต่ทิ้งฉันไว้โดยไม่มี wifi

PS ฉันใส่ความคิดเห็นทั้งหมด แต่ฉันไม่มีชื่อเสียงพอที่จะแสดงความคิดเห็น (ขออภัย)


ฉันคิดว่าคุณกำลังจะทำอะไรบางอย่าง 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 ตัวจึงใช้งานไม่ได้ ดูเหมือนว่ามีบางสิ่งผิดปกติอย่างมากในการที่เคอร์เนลพยายามใช้ซีพียูหลายตัวของฉัน ความจริงที่ว่าการnolapicบูต "แก้ไข" อาจเกิดขึ้นโดยบังเอิญเท่านั้นเนื่องจากความจริงที่ว่ามัน จำกัด เคอร์เนลไว้ที่ 1 CPU
tmsimont

อีกหมายเหตุหนึ่ง - มันทำงานได้ดีใน windows 10 มีอะไรที่ฉันสามารถดึงขึ้นมาใน windows เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับสิ่งที่เคอร์เนล windows ทำกับ CPU ของที่ฉันอาจจะสามารถทำซ้ำใน linux?
tmsimont

2

ฉันพบปัญหาที่คล้ายกันกับเมล็ดล่าสุด (4.7.x ถึง 4.8.2) ใน yoga710 ของฉันกับ i5-6200U การปิดใช้งาน i2c_h2d ทำงานได้สำหรับฉัน ฉันยังพบว่า linux-lts (ปัจจุบัน 4.4.25) ดูเหมือนว่าจะทำงานได้ดีรวมถึงทัชแพดและหน้าจอสัมผัส

แก้ไข: โดยการทดลองกับรหัสไดรเวอร์ฉันพบว่าสิ่งนี้เกิดขึ้นจากhid_sensor_hubไดรเวอร์ดังนั้นการขึ้นบัญชีดำจะช่วยแก้ปัญหาและหน้าจอสัมผัสก็สามารถใช้งานได้ การปิดใช้งานอย่างแน่นอนทำให้เซ็นเซอร์ (เช่น accelerometer) ไม่รู้จัก ฉันพยายามแก้ไขไดรเวอร์ อย่างไรก็ตามฉันยังไม่ได้คิดวิธี


0

คุณต้องการเคอร์เนล Linux ของเวอร์ชัน 4.4 หรือใหม่กว่าสำหรับการรองรับ Skylake ลองดูลิงค์ต่อไปนี้ที่ Arch Linux wiki 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.