Debian10をRyzen 3800X環境で動かそうとしてハマった内容(グラボ必須、BIOS設定、Kernel設定)

前書き

増税前(2019年9月)に、自作PCパーツをドサッと買いました。

構成は、下表の通りです。評判の良い第三世代Ryzen CPUを中心に据えつつ、メモリ量を現状の32GBから64GBに増やし、ストレージも複数OSをインストール可能な環境を目指しました。

項目 単価 個数 金額(円) 製品名
マザーボード ¥17,707 1 ¥17,707 ASUS AMD AM4 搭載 マザーボード PRIME X570-P/CSM
CPU ¥51,251 1 ¥51,251 AMD Ryzen 7 3800X with Wraith Prism cooler 3.9GHz 8コア/16スレッド
Memory(RAM) ¥19,800 2 ¥39,600 Team DDR4 3200Mhz(PC4-25600) 16GBx2枚(32GBkit)
SSD ¥24,900 1 ¥24,900 WD 内蔵SSD M.2-2280 2TB WDS200T2B0B-EC
HDD ¥8,590 2 ¥17,180 WD HDD 3.5インチ 4TB WD40EZRZ/AFP2
グラボ ¥18,560 1 ¥18,560 MSI GeForce GTX 1650 AERO ITX 4G OC
ケース ¥8,152 1 ¥8,152 ATX P110 silent
電源 ¥13,980 1 ¥13,980 SilverStone Strider Platinumシリーズ 550W 80PLUS
合計金額 ¥191,330  

CPUはRyzen 3900X(12コア/24スレッド)以上が魅力的でしたが、

  • 3900Xが世界的な品切れ
  • 3950X(16コア)やThreadripperは11月以降に発売延期
  • ゲームしないため、そこまでコア数が不要

という状態だったので、3800Xを選択しました(実際は、同じ8コアの3700Xで十分だった)。

本記事では、上表のRyzen 3800X環境でDebian10を立ち上げるまでに、自作PC素人(2回目)の私がハマった内容とその解決策を示します。

Ryzen 3800X環境で、Debian10を立ち上げるまでにハマった内容
  • 電源が入らない
  • BIOS画面が表示されない
  • kvm: disabled by biosエラーで停止
  • sev command 0x4 timed out, disabling PSPエラーで停止
  • ログイン画面(GUI)が出てこない

 

                

既知の不具合:systemdのエラーで、ブート失敗

2019年7月に、HW乱数を返す命令RDRANDが常に(-1)を返す不具合があり、RDRANDを使用しているsystemdがエラーとなって、ブート失敗する事が判明しました(参考記事)。

Debian10は、この問題が見つかった時点で、運良く修正パッチが適用されています。しかし、systemdを使用する他のディストリビューションでは修正が反映されていない可能性もあるため、このバグに注意してください。

                 

電源が入らない問題

説明書を読みながら各種パーツを取り付けた後、LEDは光るがCPUファンが回らない問題に遭遇しました。当然、画面には何も表示されませんでした。

この問題の原因は、配線ミスです。今回使用したマザーボードには、CPUへの電力供給を安定化させるため、電源コネクタを複数ヶ所に差し込めます。

  • ATXメインコネクタ(マザーボード用)
  • ATX12V(CPU用その1)
  • EPS12V(CPU用その2)

ATXメインコネクタ用のケーブルは「メインコネクタ + ATX12V」の二箇所に挿せるようになっていたため、私はその両方に一本のケーブルで電源供給していました。しかし、正しくはメインコネクタだけに刺さなければいけませんでした。この挿し間違いにより、CPUへの電源供給が足りなかったようです。

この事に気づくまでの原因切り分け方法は、「ケーブル・パーツを一つ抜いてから、電源ONを繰り返す事」です。地味な方法ですが、一気に全パーツを外すよりも原因特定がしやすいです。ただし、マザーボード上のLEDがどこも点灯していない場合は、電源が駄目な場合もあるので、一気にパーツを外して良いです。

              

BIOS画面が表示されない問題

電源が入り、ファンが回り始めて喜んだのもつかの間、モニターに何も表示されません。この際の原因切り分け方法は、マザーボードのビープ音です。マザーボードはエラー種類によって、異なるビープ音を鳴らしてくれます。エラー種類(ビープ方式)は、メーカによって差異があると思われるので、メーカHPで確認してください。

私の場合は、「グラフィックボードの未検出」が原因でした。Ryzenでは、CPU番号の末尾に”G”がついていない製品はグラフィック機能が無いです。私はその事実を知らなかったため、夜中にヨドバシカメラで以下のグラボを買ってきました。グラボを挿したらBIOS画面が出てきたので、恥ずかしい失敗でした。

              

kvm: disabled by biosエラーで停止

Debian10をUSBインストールした後、ブートシーケンス中に”kvm: diasbled by bios”エラーが出ました。KVMはKernel-based Virtual Machineの略で、仮想化技術の一つです。エラーメッセージ通り、BIOSの設定が必要でした。

BIOSの起動方法は、私の使用したマザーボードは”F2″か”Del”です。メーカによって、BIOS起動方法が異なるため、適宜調べてください。KVM有効化の設定手順は、以下の通りです。

  1. BIOS起動:電源ON後にF2を連打
  2. BIOS画面のAdvanced Mode(F7) > Tool > EZ Flash 3 Utilityを選択
  3.  BIOS更新方法をInternet経由とし、各質問はYesでEnter
    • BIOS更新中は電源が落ちないように注意してください
  4. BIOS更新後、American Megatrends画面が表示された後、F1を押下
  5. BIOS画面で、Advanced > CPU Configuration > SVM = Enabledに変更
  6. F10(Save & Exit)を押下

                                              

sev command 0x4 timed out, disabling PSPエラーで停止

KVMエラー解消後、次に出たエラーはPSP無効化についてでした。PSPは、(AMD) Platform Security Processorの略で、セキュリティ関係のHW機能です。BIOSでは設定変更できないため、Kernelの再ビルドが必要でした。具体的には、kernelコンフィグ(.config)のCRYPTO_DEV_SP_PSPオプションを無効化します。

以下に、Kernelの再ビルド・インストール手順を示します。なお、”Alt + Ctrl + F2″でtty2にログインできたため、Ryzen環境(root権限)で実施しています。

まずは、Linux Kernelをビルドできるように、パッケージを導入します。

次に、Linux Kernelソースコードを取得します。

今回の目的である「PSP無効化設定」および「Debian環境向けLinux Kernel(deb)」を作成するための設定をします。

最後に、Linux Kernelビルド(debパッケージの生成)およびインストールします。dbg情報が付いているdebパッケージは削除し、残りのdebパッケージは全てインストールします。

                          

ログイン画面(GUI)が出てこない問題

Linux Kernelを入れ替えた後、ブートシーケンスは進むものの、ログもない黒い画面で最終的に停止する問題が発生しました。現象は、

  • 画面が一度クリアされ、ログなしの黒い画面で停止
  • tty2からdmesgでブートログを確認した結果、エラーなし
  • Cinnamon/GNOME3デスクトップ環境を試し、変化なし

でした。

この問題を解決したのは、偶然です。調査中に、私はDebianがnon-free(企業が提供するプロプラエタなfirmware)がデフォルトで導入されない事を思い出し、結果的にログイン画面が出てこない原因がグラボのfirmwareと気づけました。

以下に、non-freeなfirmwareをインストールする手順を示します。使用するグラボ(AMD, NVIDIA)によって、使用するfirmwareが異なりますので、注意してください。本記事はNVIDIA向けの手順であり、AMD向けは別サイトの記事を参考情報として置いておきます。

まずは、/etc/apt/sources.listを更新し、aptコマンドでnon-freeなバイナリを取得できるようにします。具体的には、debもしくはdeb-srcから始まる文の末尾に”non-free”を追加します。

最後に、NVIDIAのグラボ向けのfirmwareを取得します。NVIDIAのfirmwareは複数種類ありますが、今回はその中から必要なfirmwareを探してくれる”nvidia-detect”コマンドを使用しました。

                     

最後に

以上の手順で、Ryzen 3800X環境でDebian10が動作しました!

新規Hardware(今回はRyzen 3800X)をDebianで試すのは、難易度が高いと感じました。今回のPC組み立てで発生した問題もあまり情報が出てこず、組み立て完了までにトータルで12時間程度かかりました。

Linuxに詳しくない人はユーザ絶対数の多いUbuntuで試すか、まずはWindows10を導入してみた方が作業が楽に進む筈です。Debianはマイナー。

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です