web-dev-qa-db-ja.com

新しいIntel i7-6500U CPUでLinuxカーネルが起動しないのはなぜですか?

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

linuxカーネルへの分離(?)

私は両方で同じ問題を見てきました

  • archlinux-2016.08.01-dual.iso
  • ubuntu-gnome-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

また、Archインストールにintel-ucodeパッケージをインストールしてみました。 dmesgログでマイクロコードが更新されたことを確認しましたが、残念ながら問題は解決しませんでした。

問題は何でしょうか?どうすれば修正できますか?


編集

追加のメモ。

一般保護障害メッセージおよび「ロックアップ検出」タイプのメッセージは、通常、CPUを参照します。これらのメッセージにはCPU0CPU1CPU2CPU3が含まれています。何かが原因で、CPUがうまくいかなくなっているようです。たとえば、すべてがデッドロック状態になっていて、キャッシュメモリなどをクリアしようとしているようです。


EDIT2

エラーで言及されたBIOS

いくつかのエラーでこの情報が表示されます。

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

それが問題を理解する上でプロに役立つかどうかわからない...


EDIT3

maxcpus = 1

kernel params documentation でデバッグオプションを探していたところ、maxcpusが見つかりました

Max cpu'sを1に設定すると、問題はなくなります。したがって、問題はある種の共有キャッシュメモリ違反であると思われます。


EDIT3

maxcpus = 1 + Gnome =再び壊れた

maxcpus=1は1 CPUだけでシステムを機能させるように見えましたが、gnomeをインストールしてから実行しましたsystemctl enable gdm.service

今、再起動すると、すべてのエラーが再び表示されますが、今回はすべてCPU0で発生しています

したがって、1 CPUでも、何かがメモリ違反を引き起こしているようです。


EDIT4

ノラピック

したがって、nolapicを使用すると、すべてが「機能する」ように見えます

しかし、nolapicを使用することで、他のCPUと1つの動作しているCPUのすべてのマルチスレッドを効果的に無効にします。

私はこれをOpenMPに使用しようとしています。nolapicで起動した後、OpenMPとLinuxカーネルは1つのスレッドと1つのCPUしか検出できません。ひどい!

intel_idle.max_cstate=012なども試しましたが、これでは起動の問題は解決しません。

カーネルが私のマルチコアマシンを利用できない原因は他にありますか?

9
tmsimont

問題はi2c_hidでした

これはある種のタッチパッドドライバーのようです。なんらかの理由で無効にしても、引き続きタッチパッドを使用できます。ラップトップのタッチスクリーンもこのドライバーを使用している可能性があります。

とにかく、ノートパソコンの画面を指紋で拭き取りたくない...さようならi2c_hid

これをカーネルパラメータに追加して修正しました:modprobe.blacklist=i2c_hid

nolapicも機能しましたが、プロセッサの1コアを除くすべてを無効にしました。

このため、他の人にはapci=offnolapicを使用しないことを強くお勧めします。

これらのオプションの使用は、マシンを機能させる核兵器ですが、付随的な損傷として、多くのパフォーマンスやI/Oデバイスを失うことになります。これは、起動するための良い出発点です。その後、失敗した起動を分析するために行ったように、journalctlを注ぐことができます。

これを見つけた人に幸運を。

5
tmsimont

I5-6200U搭載のYoga710で最近のカーネル(4.7.x〜4.8.2)で同様の問題が発生しました。私はi2c_h2dを無効にすることでうまくいきます。また、linux-lts(現在は4.4.25)は、タッチパッドやタッチスクリーンを含め、うまく機能しているようです。

編集:ドライバーコードを試してみたところ、これは実際にhid_sensor_hubドライバなので、ブラックリストに登録すると問題が解決し、タッチスクリーンも使用できます。確かに無効にすると、センサー(加速度計など)が認識されなくなります。ドライバーを修正しようとしました。しかし、私はまだ方法を理解していません。

2
jiakai

これらのエラーはすべて、私が悪いカーネルモジュールで見たもののように見えます。

Acpiを無効にすることでubuntuを710-14ISKで起動するように要求したとするubuntuforumsの誰かがいます(カーネルオプションにacpi=offを追加)。 https://ubuntuforums.org/showthread.php?t=2329448

レノボのフォーラムの別の顧客は、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がありませんでした。

PS。私はこれらすべてをコメントに入れますが、コメントするのに十分な評判がありません(申し訳ありません)。

2
Schives

Skylakeをサポートするには、バージョン4.4以降のLinuxカーネルが必要です。 Arch Linux wikiの次のリンクをチェックしてください。 https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support

0
Peter Skarpetis