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


9

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

私はまた、インストールしようとしたintel-ucode私のアーチでパッケージをインストールします。私が見た中でdmesgマイクロコードが更新されたことをログが、残念ながら私の問題を解決しませんでした。

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


編集

追加のメモ。

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


EDIT2

エラーで言及されたBIOS

一部のエラーでこの情報が表示されます。

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

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


EDIT3

maxcpus = 1

カーネルパラメータのドキュメントでデバッグオプションを探していたところ、maxcpus

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


EDIT3

maxcpus = 1 + Gnome =再び壊れた

が、maxcpus=1ちょうど1つのCPUとシステムを動作させるように見えた、私は、GNOME、その後、RANを設置しました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などを試しましたが、これは起動の問題を解決しません。

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


NVIDIA GeForce 940MXにnvidiaドライバーをインストールしてみましたか?
Paul Nordin

いいえ、まだしていません-アーチのUSBスティックを再度ブートできるかもしれませんが、それはちょっとトリッキーです。これをテストするために一時的にGPUを無効にするために、ブートスクリプトでカーネルオプションを渡す方法はありますか?(試してみましたがnomodesetnouveau.mode=0似ているかどうかは不明です)
tmsimont

ええと、Linuxカーネルパラメータのドキュメントを調べて見つけましたmaxcpus-私はそれを1に設定し、問題は解消されました...しかし、今は1つのプロセッサしか使用できません。:(
tmsimont

変です。私はまだ根本的な問題がヌーボーに関連していると思います。パラメータをnomodeset nouveau.modeset=0一緒に試してみて、それがうまくいかない場合は試してくださいnomodeset i915.modeset=0 nouveau.modeset=0
Paul Nordin

1
異なるカーネルバージョンを混在させるためだけに、もう一度Ubuntuを起動してみます。まずBIOSでレガシーモードを有効にするか、少なくとも、セキュアブートとファストブートなどをまだ有効にしていない場合は無効にしてください。
Paul Nordin

回答:


5

問題が判明した i2c_hid

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

とにかく、ノートパソコンの画面を指紋で拭き取るのは好きではありません...さようならi2c_hid

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

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

私は他の誰にも使用しないように、apci=offまたはnolapicこの理由で強くお勧めします。

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

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


3
あなたが見つけたものを共有してくれてありがとう!あなたの情報に基づいて、無効にすることhid_sensor_hubで十分であり、タッチスクリーンも使用できることがわかりました(詳細については、以下の私の回答を参照してください)。
jiakai 2016年

2

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

acpiを無効にして(acpi=offカーネルオプションに追加して)710-14ISKでubuntuを起動させたと主張しているubuntuforumsの誰かがいます。 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をオフにして起動します。古いエイサーで動作不良のralinkモジュールがあったときにも同様のログがありました。モジュールをブラックリストに登録すると、起動してカーネルパニックが停止しましたが、Wi-Fiを使用できませんでした。

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


あなたは何かに夢中になっていると思います。acpi=offエラーは解消されましたが、キーボードも無効になります。acpiにはさらに細かいオプションがあるようです。キーボードを維持しながらエラーを停止できるかどうかを確認します:)
tmsimont

1
うーん、多分ちょうどacpiの一部を無効にすることは行く方法です。かなりの数のオプションがありますが、acpi=ht最初に試してみます。help.ubuntu.com/community/BootOptions(一般的なカーネルオプションを参照)またはより包括的なリストについては、kernel.org
doc / Documentation / kernel

nolapic私のために働いて、私は起動することができますが、それから私は私のCPUのうちの1つにしかアクセスできません。私はこのラップトップをOpenMPプログラムの開発に使用しようとしているので、CPUが1つしか動作していないことは問題です。カーネルが私の複数のCPUをどのように使用しようとしているのか、ひどく間違っているようです。nolapicブートを「修正する」という事実は、カーネルを1 CPUに制限するという事実のために偶然にしか発生しない可能性があります
tmsimont

もう1つの注意-これはWindows 10で正常に動作します。Windowsでプルアップして、Linuxでレプリケートできる可能性のあるCPUでWindowsカーネルが実行できることについて詳しく知ることはできますか?
tmsimont

2

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

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


0

Skylakeをサポートするには、バージョン4.4以降のLinuxカーネルが必要です。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 16

1
@ピーターバカじゃない、そうだね。メモリの問題はありません。また、そうですmaxfは正しいです、私は4.6.4を持っています
tmsimont
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.