Tại sao kernel linux không thể khởi động trên CPU Intel i7-6500U mới của tôi?


9

Thật khó để cô lập CPU, tôi biết, nhưng những lỗi tôi thấy cho thấy đó là vấn đề.

Đây chắc chắn không phải là một vấn đề phần cứng bị hỏng / hỏng . Tôi đã chạy Windows 10 cả ngày trong nhiều ngày qua và điều này rất nhanh! Không bị rơi. Quan trọng hơn, tôi đã chạy bộ kiểm tra bộ nhớ Windows. Trí nhớ là tất cả tốt.

thông số kỹ thuật máy

Máy là một chiếc Lenovo Yoga 710 15 "hoàn toàn mới

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

cô lập với kernel linux (?)

Tôi đã thấy những vấn đề tương tự trên cả hai

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

Đối với Arch - vấn đề chỉ xuất hiện không liên tục khi khởi động từ thanh USB. Tôi đã quản lý để cài đặt Arch trên phân vùng ext4 100GB trên ổ đĩa. Quá trình cài đặt đó có cùng một vấn đề không liên tục (như 90% thời gian) trong khi khởi động. Nếu tôi được thông qua khởi động, thì vấn đề sẽ xuất hiện ngẫu nhiên sau vài lệnh đầu cuối đầu tiên tôi thực thi, cuối cùng gây ra bế tắc hoàn toàn.

Đối với Ubuntu - thanh USB thậm chí không khởi động. Tôi bị chặn bởi những lỗi tương tự ngay lập tức. Bế tắc ...

Quá nhiều lỗi ...

Tạp chí được nhồi nhét các lỗi liên quan đến bộ nhớ mỗi khi điều này xảy ra, nhưng các lỗi chính tôi gặp là:

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

Tôi đã thấy một số dấu vết ngăn xếp tương tự nhiều lần cho các lỗi này:

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 cũng hứa rằng nó sẽ khắc phục vấn đề

Sửa lỗi đệ quy nhưng cần khởi động lại!

Tôi ước..

ucode intel

Tôi cũng đã thử cài đặt intel-ucodegói trong cài đặt Arch của tôi. Tôi đã thấy trong dmesgnhật ký rằng các vi mã đã được cập nhật, nhưng điều đó không may không giải quyết được vấn đề của tôi.

Điều gì có thể là vấn đề? Làm thế nào có thể sửa chữa nó?


BIÊN TẬP

Ghi chú bổ sung.

Các thông báo lỗi bảo vệ chung và thông báo "khóa được phát hiện" thường tham chiếu CPU. Tôi đã nhìn thấy CPU0, CPU1, CPU2CPU3trong các thư này. Có vẻ như một cái gì đó đang khiến CPU không thể hòa hợp, giống như tất cả chúng đang rơi vào bế tắc khi cố gắng xóa bộ nhớ cache hoặc một cái gì đó.


EDIT2

BIOS đề cập đến lỗi

Tôi thấy một chút thông tin trong một số lỗi:

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

Không chắc chắn nếu điều đó hữu ích cho một chuyên gia trong việc tìm hiểu vấn đề ...


EDIT3

maxcpus = 1

Tôi đã tìm kiếm các tùy chọn gỡ lỗi trong tài liệu params kernel và tìm thấymaxcpus

Nếu tôi đặt max cpu thành 1, thì vấn đề sẽ biến mất. Vì vậy, có vẻ như vấn đề là một số loại vi phạm bộ nhớ cache được chia sẻ.


EDIT3

maxcpus = 1 + Gnome = lại bị hỏng

Mặc dù maxcpus=1dường như làm cho hệ thống hoạt động chỉ với 1 CPU, tôi đã cài đặt gnome và sau đó chạysystemctl enable gdm.service

Bây giờ, khi tôi khởi động lại, tôi lại nhận được tất cả các lỗi của mình, nhưng lần này tất cả đều xảy ra trên CPU0

Vì vậy, có vẻ như một cái gì đó vẫn gây ra vi phạm bộ nhớ ngay cả với CPU 1.


EDIT4

nolapic

Vì vậy, sử dụng nolapicdường như để có được mọi thứ "làm việc"

NHƯNG bằng cách sử dụng nolapic, tôi vô hiệu hóa hiệu quả CPU khác của tôi và tất cả đa luồng trong 1 CPU hoạt động.

Tôi đang cố gắng sử dụng cái này cho OpenMP và sau khi khởi động bằng nolapic, OpenMP và kernel linux chỉ có thể tìm thấy 1 luồng, 1 CPU. Thật tệ!

Tôi cũng đã thử intel_idle.max_cstate=01, 2v.v. Nhưng điều này không khắc phục được vấn đề khởi động.

Điều gì khác có thể khiến kernel không sử dụng máy đa lõi của tôi?


Bạn đã thử cài đặt trình điều khiển nvidia cho NVIDIA GeForce 940MX chưa?
Paul Nordin

Không, tôi không có - tôi có thể khởi động lại thanh USB dạng vòm, nhưng nó rất khó. Có cách nào để vượt qua trong một tùy chọn kernel trong tập lệnh khởi động để tạm thời vô hiệu hóa gpu để kiểm tra điều này không? (Tôi đã thử nomodesetnouveau.mode=0- không chắc điều đó có tương tự không)
tmsimont

hmm Tôi đã xem xét các tài liệu tham số kernel linux và tìm thấy maxcpus- Tôi đặt nó thành 1 và vấn đề sẽ biến mất ... Nhưng bây giờ tôi chỉ có thể sử dụng một procesor? :(
tmsimont

Điều đó lạ thật. Tôi vẫn nghi ngờ vấn đề cơ bản có liên quan đến nouveau. Hãy thử các tham số nomodeset nouveau.modeset=0cùng nhau và nếu điều đó không hiệu quả, hãy thửnomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
Tôi sẽ thử khởi động lại Ubuntu chỉ để ném một phiên bản kernel khác vào hỗn hợp. Hãy đảm bảo bật chế độ cũ trong BIOS trước hoặc ít nhất, vô hiệu hóa khởi động an toàn và khởi động nhanh hoặc bất cứ thứ gì tương tự nếu bạn chưa có.
Paul Nordin

Câu trả lời:


5

Hóa ra vấn đề là i2c_hid

Đây có vẻ là một số loại trình điều khiển touchpad. Vì một số lý do, khi tôi tắt nó, tôi vẫn có thể sử dụng bàn di chuột của mình. Cũng có thể là màn hình cảm ứng trên máy tính xách tay cũng đang sử dụng trình điều khiển này, vì điều đó không hoạt động.

Dù sao thì tôi cũng không muốn dùng màn hình laptop của mình bằng dấu vân tay ... Tạm biệt i2c_hid!

Tôi đã sửa nó bằng cách thêm nó vào kernel params: modprobe.blacklist=i2c_hid

Mặc dù nolapiccũng hoạt động, nó vô hiệu hóa tất cả trừ 1 lõi trong bộ xử lý.

Tôi rất muốn giới thiệu cho bất cứ ai khác ngoài đó không sử dụng apci=offhoặc nolapicvì lý do này.

Sử dụng các tùy chọn này là vũ khí hạt nhân có thể khiến máy của bạn hoạt động, nhưng bạn sẽ mất rất nhiều hiệu suất và / hoặc thiết bị i / o làm hư hỏng tài sản thế chấp. Đó là một điểm khởi đầu tốt để khởi động, và sau đó bạn có thể đổ qua tạp chí như tôi đã làm để phân tích những đôi giày thất bại.

Chúc may mắn cho những người tìm thấy điều này.


3
Cảm ơn rất nhiều vì đã chia sẻ bạn tìm thấy! Dựa trên thông tin của bạn, tôi thấy rằng vô hiệu hóa hid_sensor_hublà đủ và màn hình cảm ứng cũng có thể sử dụng được (xem câu trả lời của tôi dưới đây để biết thêm chi tiết).
jiakai

2

Tất cả các lỗi này trông giống như các lỗi tôi đã thấy với các mô-đun hạt nhân xấu.

Có ai đó trên ubuntuforums đã tuyên bố rằng họ có ubfox để khởi động trên máy chủ 710-14ISK bằng cách vô hiệu hóa acpi (thêm acpi=offvào các tùy chọn kernel). https://ubuntuforums.org/showthread.php?t=2329448

Một khách hàng khác trên các diễn đàn của lenovo cho biết họ gặp sự cố khi khởi động fedora 24 và truy tìm vấn đề với một phần sụn rộng rãi: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Hãy thử đưa vào danh sách đen các mô-đun broadcom và nouveau (không để chúng không được yêu cầu) và khởi động với acpi tắt. Tôi đã có nhật ký tương tự khi tôi có một mô-đun ralink không hoạt động trong một acer cũ: danh sách đen mô-đun cho phép tôi khởi động và ngăn chặn sự hoảng loạn hạt nhân, nhưng để tôi không có wifi.

Tái bút Tôi sẽ đưa tất cả những điều này vào một bình luận, nhưng tôi không đủ danh tiếng để bình luận (xin lỗi).


Tôi nghĩ rằng bạn đang ở một cái gì đó. acpi=offlàm cho lỗi biến mất, nhưng nó cũng vô hiệu hóa bàn phím của tôi. Có vẻ như có nhiều tùy chọn chi tiết hơn với acpi, vì vậy tôi sẽ xem liệu tôi có thể khiến lỗi dừng lại hay không, trong khi vẫn giữ bàn phím của mình :)
tmsimont

1
hmm, có lẽ chỉ cần vô hiệu hóa một số phần của acpi là cách để đi. Có khá nhiều lựa chọn, nhưng tôi sẽ thử acpi=httrước. help.ubuntu.com/community/BootOptions (nhìn dưới Common Tùy chọn kernel) hoặc cho một danh sách toàn diện hơn: kernel.org/doc/Documentation/kernel-parameters.txt
Schives

nolapiclàm việc cho tôi và tôi có thể khởi động, nhưng sau đó tôi chỉ có thể truy cập vào một trong các CPU của mình. Tôi đang cố gắng sử dụng máy tính xách tay này để phát triển các chương trình OpenMP, vì vậy chỉ có 1 CPU hoạt động là không ổn. Có vẻ như có điều gì đó cực kỳ sai lầm trong cách nhân cố gắng sử dụng nhiều CPU của tôi. Việc nolapickhởi động "sửa lỗi" có thể chỉ là trùng hợp ngẫu nhiên do thực tế là nó giới hạn kernel chỉ còn 1 CPU
tmsimont

một lưu ý khác - điều này hoạt động tốt trong windows 10. Có bất cứ điều gì tôi có thể kéo lên trong windows để tìm hiểu thêm về bất cứ điều gì mà kernel windows làm với CPU mà tôi có thể sao chép trong linux không?
tmsimont

2

Tôi đã gặp vấn đề tương tự với các hạt nhân gần đây (4.7.x đến 4.8.2) trên yoga710 của tôi với i5-6200U. Vô hiệu hóa i2c_h2d hoạt động với tôi. Tôi cũng thấy rằng linux-lts (hiện tại là 4.4.25) dường như hoạt động tốt, bao gồm cả bàn di chuột và màn hình cảm ứng.

Chỉnh sửa: bằng cách thử nghiệm mã trình điều khiển, tôi thấy rằng điều này thực sự là do hid_sensor_hubtrình điều khiển gây ra , vì vậy danh sách đen nó giải quyết vấn đề và màn hình cảm ứng cũng có thể sử dụng được. Chắc chắn vô hiệu hóa nó làm cho các cảm biến (như gia tốc kế) không được nhận dạng. Tôi đã cố gắng sửa chữa trình điều khiển; tuy nhiên tôi chưa tìm ra cách nào.


0

Bạn cần một nhân Linux phiên bản 4.4 trở lên để được hỗ trợ Skylake. Kiểm tra liên kết sau tại wiki Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support


archlinux-2016.08.01-dual.iso chứa 4.6.4, do đó sẽ hoạt động
maxf

Đây là một câu hỏi ngu ngốc nhưng bạn đã chạy memtest trên máy tính của mình chưa? memtest.org
Peter Skarpetis

1
@Peter Không ngu, và vâng tôi đã làm. Không có vấn đề bộ nhớ. Ngoài ra có maxf là đúng, tôi đã có 4.6.4
tmsimont
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.