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
私は両方で同じ問題を見てきました
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はまた、問題を修正していることを約束し続けます
再帰的な障害を修正していますが、再起動が必要です!
私は望む..
また、Archインストールにintel-ucode
パッケージをインストールしてみました。 dmesg
ログでマイクロコードが更新されたことを確認しましたが、残念ながら問題は解決しませんでした。
問題は何でしょうか?どうすれば修正できますか?
一般保護障害メッセージおよび「ロックアップ検出」タイプのメッセージは、通常、CPUを参照します。これらのメッセージにはCPU0
、CPU1
、CPU2
、CPU3
が含まれています。何かが原因で、CPUがうまくいかなくなっているようです。たとえば、すべてがデッドロック状態になっていて、キャッシュメモリなどをクリアしようとしているようです。
いくつかのエラーでこの情報が表示されます。
LENOVO 80U01LENOVO YOGA710-1 BIOS OGCN20WW(v1.04) 6/30/2016
それが問題を理解する上でプロに役立つかどうかわからない...
kernel params documentation でデバッグオプションを探していたところ、maxcpus
が見つかりました
Max cpu'sを1に設定すると、問題はなくなります。したがって、問題はある種の共有キャッシュメモリ違反であると思われます。
maxcpus=1
は1 CPUだけでシステムを機能させるように見えましたが、gnomeをインストールしてから実行しましたsystemctl enable gdm.service
今、再起動すると、すべてのエラーが再び表示されますが、今回はすべてCPU0で発生しています
したがって、1 CPUでも、何かがメモリ違反を引き起こしているようです。
したがって、nolapic
を使用すると、すべてが「機能する」ように見えます
しかし、nolapic
を使用することで、他のCPUと1つの動作しているCPUのすべてのマルチスレッドを効果的に無効にします。
私はこれをOpenMPに使用しようとしています。nolapic
で起動した後、OpenMPとLinuxカーネルは1つのスレッドと1つのCPUしか検出できません。ひどい!
intel_idle.max_cstate=0
や1
、2
なども試しましたが、これでは起動の問題は解決しません。
カーネルが私のマルチコアマシンを利用できない原因は他にありますか?
問題はi2c_hid
でした
これはある種のタッチパッドドライバーのようです。なんらかの理由で無効にしても、引き続きタッチパッドを使用できます。ラップトップのタッチスクリーンもこのドライバーを使用している可能性があります。
とにかく、ノートパソコンの画面を指紋で拭き取りたくない...さようならi2c_hid
!
これをカーネルパラメータに追加して修正しました:modprobe.blacklist=i2c_hid
nolapic
も機能しましたが、プロセッサの1コアを除くすべてを無効にしました。
このため、他の人にはapci=off
やnolapic
を使用しないことを強くお勧めします。
これらのオプションの使用は、マシンを機能させる核兵器ですが、付随的な損傷として、多くのパフォーマンスやI/Oデバイスを失うことになります。これは、起動するための良い出発点です。その後、失敗した起動を分析するために行ったように、journalctlを注ぐことができます。
これを見つけた人に幸運を。
I5-6200U搭載のYoga710で最近のカーネル(4.7.x〜4.8.2)で同様の問題が発生しました。私はi2c_h2dを無効にすることでうまくいきます。また、linux-lts(現在は4.4.25)は、タッチパッドやタッチスクリーンを含め、うまく機能しているようです。
編集:ドライバーコードを試してみたところ、これは実際にhid_sensor_hub
ドライバなので、ブラックリストに登録すると問題が解決し、タッチスクリーンも使用できます。確かに無効にすると、センサー(加速度計など)が認識されなくなります。ドライバーを修正しようとしました。しかし、私はまだ方法を理解していません。
これらのエラーはすべて、私が悪いカーネルモジュールで見たもののように見えます。
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。私はこれらすべてをコメントに入れますが、コメントするのに十分な評判がありません(申し訳ありません)。
Skylakeをサポートするには、バージョン4.4以降のLinuxカーネルが必要です。 Arch Linux wikiの次のリンクをチェックしてください。 https://wiki.archlinux.org/index.php/intel_graphics#Skylake_support