Mengapa kernel linux tidak bisa boot pada CPU Intel i7-6500U saya yang baru?

9

Sulit untuk mengisolasi CPU, saya tahu, tetapi kesalahan yang saya lihat menunjukkan bahwa itulah masalahnya.

Ini jelas bukan masalah perangkat keras yang rusak / rusak . Saya telah menjalankan Windows 10 sepanjang hari selama beberapa hari terakhir dan hal ini cepat sekali! Tidak menabrak Lebih penting lagi, saya menjalankan pemeriksa memori Windows. Ingatan semuanya baik.

spesifikasi mesin

Mesin ini adalah Lenovo Yoga 710 15 "yang baru

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

mengisolasi ke kernel linux (?)

Saya telah melihat masalah yang sama pada keduanya

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

Untuk Arch - masalahnya hanya muncul sebentar-sebentar saat boot dari USB stick. Saya berhasil menginstal Arch pada partisi 100GB ext4 pada drive. Instalasi itu memiliki masalah yang sama secara berkala (seperti 90% dari waktu) selama boot. Jika saya melewati boot, maka masalah muncul secara acak setelah beberapa perintah terminal pertama saya jalankan, akhirnya menyebabkan kebuntuan total.

Untuk Ubuntu - stik USB bahkan tidak bisa boot. Saya segera dihentikan oleh kesalahan yang sama ini. Jalan buntu...

Begitu banyak kesalahan ...

Jurnal ini diisi dengan kesalahan terkait memori setiap kali ini terjadi, tetapi kesalahan utama yang saya lihat adalah:

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

Saya telah melihat beberapa jejak tumpukan yang sama beberapa kali untuk kesalahan ini:

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 juga terus menjanjikan bahwa itu memperbaiki masalah

Memperbaiki kesalahan rekursif tetapi reboot diperlukan!

Saya harap..

ucode intel

Saya juga mencoba menginstal intel-ucodepaket di Arch install saya. Saya melihat dalam dmesglog bahwa mikrokode diperbarui, tetapi sayangnya itu tidak menyelesaikan masalah saya.

Apa yang bisa menjadi masalah? Bagaimana cara memperbaikinya?


EDIT

Catatan tambahan.

Pesan kesalahan perlindungan umum dan pesan "terkunci terdeteksi" biasanya merujuk pada CPU. Saya telah melihat CPU0, CPU1, CPU2dan CPU3dalam pesan tersebut. Sepertinya ada sesuatu yang menyebabkan CPU tidak rukun, seperti mereka semua berada di jalan buntu mencoba membersihkan memori cache atau sesuatu.


EDIT2

BIOS disebutkan dalam kesalahan

Saya melihat sedikit informasi ini dalam beberapa kesalahan:

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

Tidak yakin apakah itu membantu pro dalam memahami masalah ...


EDIT3

maxcpus = 1

Saya mencari opsi debug pada dokumentasi kernel params dan menemukanmaxcpus

Jika saya mengatur max cpu ke 1, maka masalahnya hilang. Jadi sepertinya masalahnya adalah beberapa jenis pelanggaran memori cache bersama.


EDIT3

maxcpus = 1 + Gnome = rusak lagi

Meskipun maxcpus=1sepertinya membuat sistem bekerja hanya dengan 1 CPU, saya menginstal gnome dan kemudian berlarisystemctl enable gdm.service

Sekarang, ketika saya reboot, saya mendapatkan kembali semua kesalahan saya, tapi kali ini semuanya terjadi pada CPU0

Jadi sepertinya ada sesuatu yang masih menyebabkan pelanggaran memori bahkan dengan 1 CPU.


EDIT4

nolapic

Jadi menggunakan nolapictampaknya membuat semuanya "berfungsi"

TETAPI dengan menggunakan nolapic, saya secara efektif menonaktifkan CPU saya yang lain dan semua multithreading dalam 1 CPU yang berfungsi.

Saya mencoba menggunakan ini untuk OpenMP, dan setelah boot dengan nolapic, OpenMP dan kernel linux hanya dapat menemukan 1 utas, 1 CPU. Itu menyebalkan!

Saya juga mencoba intel_idle.max_cstate=0dan 1,, 2dll. Tapi ini tidak memperbaiki masalah boot.

Apa lagi yang bisa menyebabkan kernel gagal memanfaatkan mesin multi-core saya?

tmsimont
sumber
Sudahkah Anda mencoba menginstal driver nvidia untuk NVIDIA GeForce 940MX Anda?
Paul Nordin
Tidak, belum - saya mungkin bisa mem-boot lengkungan usb stick lagi, tapi agak rumit. Apakah ada cara untuk memasukkan opsi kernel di skrip boot untuk menonaktifkan gpu sementara untuk menguji ini? (Saya memang mencoba nomodesetdan nouveau.mode=0- tidak yakin apakah itu mirip)
tmsimont
hmm saya melihat ke parameter kernel linux docs dan menemukan maxcpus- Saya mengaturnya ke 1 dan masalahnya hilang ... Tapi sekarang saya hanya bisa menggunakan satu procesor? :(
tmsimont
Itu aneh. Saya masih curiga masalah mendasar terkait dengan nouveau. Coba parameter nomodeset nouveau.modeset=0bersama-sama dan jika itu tidak berhasil, cobanomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin
1
Saya akan mencoba mem-boot Ubuntu lagi hanya untuk melemparkan versi kernel yang berbeda ke dalam campuran. Pastikan untuk mengaktifkan mode lama di BIOS terlebih dahulu atau setidaknya, nonaktifkan boot aman dan boot cepat atau hal-hal seperti itu jika Anda belum melakukannya.
Paul Nordin

Jawaban:

5

Ternyata masalah itu i2c_hid

Sepertinya ini semacam driver touchpad. Untuk beberapa alasan, ketika saya menonaktifkannya, saya masih bisa menggunakan touchpad saya. Bisa jadi layar sentuh di laptop menggunakan driver ini juga, karena itu tidak berfungsi.

Lagipula, aku tidak suka mengotori layar laptopku dengan sidik jari ... Jadi, sampai jumpa i2c_hid!

Saya memperbaikinya dengan menambahkan ini ke params kernel: modprobe.blacklist=i2c_hid

Meskipun nolapicjuga bekerja, itu menonaktifkan semua prosesor kecuali 1 inti.

Saya akan sangat merekomendasikan kepada orang lain di luar sana untuk tidak menggunakan apci=offatau nolapickarena alasan ini.

Menggunakan opsi ini adalah senjata nuklir yang mungkin membuat mesin Anda bekerja, tetapi Anda akan kehilangan banyak kinerja dan / atau perangkat i / o sebagai kerusakan jaminan. Ini adalah titik awal yang baik untuk boot, dan kemudian Anda dapat menuangkan jurnal seperti yang saya lakukan untuk menganalisis boot yang gagal.

Semoga beruntung bagi mereka yang menemukan ini.

tmsimont
sumber
3
Terima kasih banyak telah berbagi temuan Anda! Berdasarkan informasi Anda, saya menemukan bahwa menonaktifkan hid_sensor_hubcukup dan layar sentuh juga dapat digunakan (lihat jawaban saya di bawah ini untuk lebih jelasnya).
jiakai
2

Semua kesalahan ini terlihat seperti yang pernah saya lihat dengan modul kernel yang buruk.

Ada seseorang di ubuntuforums yang mengklaim mereka mendapatkan ubuntu untuk boot pada 710-14ISK dengan menonaktifkan acpi (tambahkan acpi=offke opsi kernel). https://ubuntuforums.org/showthread.php?t=2329448

Pelanggan lain di forum lenovo mengatakan mereka kesulitan mem-boot fedora 24 dan melacak masalahnya ke sepotong firmware broadcom: https://forums.lenovo.com/t5/Linux-Discussion/Yoga-710-How-to-install-Linux / td-p / 3361544

Coba daftar hitam modul broadcom dan nouveau (biarkan tidak diklaim) dan boot dengan acpi off. Saya memiliki log yang sama ketika saya memiliki modul ralink yang berperilaku buruk di sebuah acer lama: memasukkan modul ini ke dalam daftar, biarkan saya mem-boot dan menghentikan panik kernel, tetapi meninggalkan saya tanpa wifi.

PS. Saya telah memasukkan semua ini dalam komentar, tetapi saya tidak memiliki reputasi yang cukup untuk berkomentar (maaf).

Schives
sumber
Saya pikir Anda sedang melakukan sesuatu. acpi=offmembuat kesalahan hilang, tetapi juga menonaktifkan keyboard saya. Tampaknya ada lebih banyak opsi granular dengan acpi, jadi saya akan melihat apakah saya dapat membuat kesalahan berhenti, sambil menjaga keyboard saya :)
tmsimont
1
hmm, mungkin hanya menonaktifkan beberapa bagian dari acpi adalah cara untuk pergi. Ada beberapa opsi, tetapi saya akan coba acpi=htdulu. help.ubuntu.com/community/BootOptions (lihat di bawah Common Kernel Options) atau untuk daftar yang lebih komprehensif: kernel.org/doc/Documentation/kernel-parameters.txt
Schives
nolapicbekerja untuk saya dan saya bisa boot, tetapi saya kemudian hanya dapat mengakses salah satu CPU saya. Saya mencoba menggunakan laptop ini untuk mengembangkan program OpenMP, jadi hanya memiliki 1 CPU yang bekerja tidak apa-apa. Tampaknya ada sesuatu yang sangat salah dalam cara kernel mencoba menggunakan banyak CPU saya. Fakta bahwa nolapic"perbaikan" boot hanya mungkin secara kebetulan karena fakta bahwa itu membatasi kernel untuk 1 CPU
tmsimont
satu catatan lain - ini bekerja dengan baik di windows 10. Apakah ada sesuatu yang bisa saya tarik di windows untuk mempelajari lebih lanjut tentang apa saja yang kernel windows lakukan dengan CPU yang mungkin bisa saya tiru di linux?
tmsimont
2

Saya mengalami masalah serupa dengan kernel terbaru (4.7.x hingga 4.8.2) pada yoga710 saya dengan i5-6200U. Menonaktifkan i2c_h2d bekerja untuk saya. Saya juga menemukan bahwa linux-lts (saat ini 4.4.25) tampaknya berfungsi dengan baik, termasuk touchpad dan layar sentuh.

Sunting: dengan bereksperimen dengan kode driver, saya menemukan bahwa ini memang disebabkan oleh hid_sensor_hubdriver, jadi daftar hitam itu memecahkan masalah dan layar sentuh juga dapat digunakan. Tentunya menonaktifkan itu membuat sensor (seperti accelerometer) tidak dikenali. Saya mencoba memperbaiki driver; Namun saya belum menemukan cara.

jiakai
sumber
0

Anda memerlukan kernel Linux versi 4.4 atau yang lebih baru untuk dukungan Skylake. Lihatlah tautan berikut di wiki Arch Linux. https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support

Peter Skarpetis
sumber
archlinux-2016.08.01-dual.iso mengandung 4.6.4, jadi itu seharusnya berfungsi
maksimal
Ini pertanyaan bodoh, tetapi sudahkah Anda menjalankan memtest di komputer? memtest.org
Peter Skarpetis
1
@ Peter Tidak bodoh, dan ya saya lakukan. Tidak ada masalah memori. Juga ya maxf benar, saya punya
4,6,4