サイトアイコン すけログ

中華X79マザーボードでDual-CPUのPCを自作する

某通販サイトを覗いているとDual-CPU対応中華X79マザーボードを見つけました。メモリが安く手に入るためメモリ盛り盛り256GByte構成で1台組んでみましたのでレポートします。中古のECC付きDDR3はとても安価に手に入るので地図作成やらシミュレーションやらで大量のメモリが必要な方は如何でしょうか。

何故に今更古いX79でPCを組むのか

今回組んだPC構成は何年も前に発売されたもので(CPUは2012年発売)、手元にパーツが余っているならともかくとして普通は新しく組むPCに相応しいとは言えません。なぜそんなもので新しくPCを組もうとしたかというと、

という理由からです。

正直なところ古いCPUを使うことになるのでシングルスレッドなプログラムの速度は期待出来ません。CPUコア数が合計で16になるので並列処理で稼ぐ感じになります。

私の場合は趣味でGarminや地図アプリ向けの等高線地図データを作って公開しているのですが、その作業でPCに目一杯のメモリ(32GByte)を積んでも足りずにスワップアウトしたことがありました。そんなわけで処理速度も欲しいけどまずはメモリ容量が第一、でも予算無い・・・という私のニーズと一致しました。

PC構成

PCケース、ATX電源は以前からあるものを流用しました。マザーボードのサイズはE-ATX規格(305x330mm)のものでサイズが大きいですが、でかいクーラーがついたグラフィックボードが問題なく入るケースであれば恐らく大丈夫だと思います。

古いパーツとはいえPCを組むのは久々です。PCケースは以前から使っているものを流用して作ることにしました。

購入したパーツ

マザーボード:Jingsha X79 Dual CPU Motherboard

今回購入した目玉の中華マザーボードです。デュアルCPU構成のマザーボードとしては1万円ちょっとの安価なボードです。デュアルCPUですがCPU1側だけでも動作する模様。

購入したX79マザーボードの箱。めちゃシンプルです。
X79 マザーボード本体。E-ATXというだけあってでかいです。
説明書などという気の利いたものは無く、ドキュメントと言えるのはこのレイアウト図1枚だけでした。

このマザーボードのスペックは以下のとおりです。

X79 Motherboardの背面コネクタ。オンボードGPUは無しです。
フロントパネル用のUSB3.0/2.0やAudio端子が準備されています。

ご覧のように内蔵GPUが無いのでグラフィックボードは必須です。サーバ用途であれば適当に余っているグラフィックボードを挿しておけばよさそうです。今回は以前のPCで使っていたものを流用することにしました。SATAは2ポートだけSATA3.0対応で残りはSATA2.0です。HDDを繋ぐならSATA2.0でもなんら問題ないので個人的にはあまり気になりません。PCIe接続のNVMeも1ポートあります。

注意点として、

また、CMOSバックアップ用のコイン電池(CR2032)は付属していないので別途用意しておく必要があります。

マザーボードに電池は付属しません。ボタン電池(CR2032)を自前で準備する必要があります。

CPU:Xeon E5-2689(v1)

マザーボードのCPUソケットがLGA2011ということで、CPUはXeon E5-2689(v1)の中古品を2個購入しました。8コアのCPUですがかなりお安いです。TDPが少し高くなりますがE5-2690でもいいかもしれません。

マザーボードとしてはXeon E5-2690(v2)でも使えるらしいです。今回、私はCPUをAliexpressで購入しましたが、ヤフオクで探してみるともっと安価な中古品があるかもしれません。興味のあるかたはE5-2689やE5-2690で検索してみてください(v2はちょっと高くなるようです)。

Xeon E5-2689(v1)を2個購入しました。諸事情で別のお店から購入したのでパッケージが違いしますが中身は同じです。
CPUグリスはMX-4を購入しました。

CPUクーラー

サイドフローのCPUクーラーを2個購入しました。ファンの数は1〜3個まで選べますが、今回のマザーボードだとファンを2個以上つけると干渉して装着出来ません。家にCPUクーラーが余っている人はそれでいいかも(Athlonのとかが使えるらしい)。

購入したCPUクーラー。ファンx1のものを2個購入しました。
CPUクーラーと台座。マザーボードにも台座は付属していましたがどちらでも使えます。

メモリ:ECC Registered DDR3(256GByte)

今回の目玉であるメモリです。張り込んで32GByte x 8 = 256GByteを購入しました。

32GByteのメモリモジュールを8枚購入しました。聞いたことのないブランド名ですが、どうやらSamsung製メモリの中古品の模様。メモリだけで送料含めて4万円ちょいと個人的には結構な出費となりましたが、これで256GByteと考えると安いなぁ。

無印E5-2689のサポートメモリはDDR3です。普通のPCで使用するnon-ECCなメモリだと1枚あたり8GByteまでしかありませんが、ECC付きだと32GByteまであります。ECC付きメモリはサーバ向けCPUしか対応していない(=使えない)ため、型落ちのDDR3だと中古がかなり安いようです。購入したメモリのラベルにはオリジナルブランドっぽいシールが貼ってありますが、基板の隅っこやSPDを見るとメーカは”Samsung”になっていました。。。まぁ、中古メモリですしね。

ちなみに、本当に動作するかちょっと不安だったのでまず32GByte2枚購入して問題ないことを確認してから追加で6枚購入して256GByte構成としました。

SSD:ADATA SX6000LNP(512GByte)

せっかくマザーボードにNVMeスロットがあるのでADATAの512GByteのやつを購入してみました。ちょっとトラブルはありましたが最終的には問題なくブートしてくれています。また、個人的な意見ですが、HDDやSSDなどのストレージに関してはAliexpressより価格.comでいい感じのを探したほうがいいかと思います。

初めてのNVMeです。せっかくマザーボードにスロットがあるので試してみたくて購入しました。
専用のヒートシンクが付属します。

PC組み立て

パーツの取り付け

ケースは以前のものを流用するつもりで購入しませんでしたが、購入したマザーボードはE-ATXだったので本当に入るのかちょっと不安でした。いざいれてみると問題なく入りましたが、基板サイズが大きいのでコネクタ類が挿入しづらい箇所があります。特にSATAコネクタがPCIeスロットと干渉するのを防ぐためかLアングルになっていてケーブルがかなり挿しづらかったです。また、電源ケーブル類が以前は余裕を持ってMB裏側を通して接続出来たのですが、今回はコネクタまでの距離が伸びたので表を這わさざるをえない箇所がありました。

CPU&CPUクーラーの取り付けは問題ありませんでしたが、メモリとのクリアランスがぎりぎりでした。固定金具がメモリに当たるようであればCPUクーラーの位置を微調整すればいけると思います。あるいはヤスってクーラーの固定金具を少し削るか。

CPUクーラーの固定金具とメモリとのクリアランスはぎりぎりです。接触しないよう微調整しました。

NVMeスロットはPCIeスロットの丁度間にあるので、グラフィックボードを上のPCIeスロットに挿すとNVMe被さって触れなくなります。

NVMeスロットは丁度グラフィックボードで使うPCIeコネクタの間にあります。グラフィックボードを挿すと見えなくなる位置です。

EPS12V変換コネクタを作る

前項でも書きましたが、Dual-CPUなのでEPS12Vコネクタも2個必要になります。一般的なATX電源にはEPS12Vコネクタは1個だけしか無いので変換コネクタが必要になります。おとなしくATX4pin to EPS12V変換ケーブルを買うのが手っ取り早いでしょう。

私の場合、グラボ用のPCIE電源ケーブルが2本余っていてこれを活用したかったのでPCIE電源->EPS12V変換ケーブルをつくりました。が、これが後々のトラブルの原因になりました。いらんことはするなということでしょうか。どうもPCIEtoEPS12V電源コネクタというのは需要が無いようで(グラボ二枚挿しはあってもCPUx2はあまりない)、安い延長ケーブルを真ん中から切断して繋いでつくったのですが。。。

最終的には動作するようになりましたが、言えることは既成品を使うにしても自作するにしても十分な太さのあるケーブルを使用するべし、ということです。

デュアルCPUなのでEPS12Vコネクタが2個あります。
最終的にはネットで購入したPCIe電源延長ケーブルと家に転がっていたATX12Vコネクタ(古いATX電源を分解したときのジャンク)をくっつけて作りました。

電源投入する

いつもこの瞬間が緊張します。きちんと組んだつもりですが動いてくれよー

PCを組み上げたらいざ電源です。

最初にメモリテストをしているのか、画面が表示されるまで時間がかかります。特にメモリモジュールを8枚全て挿した状態だと20秒ちょっと要しました。こんなに表示されるまで時間がかかるのは初めてだったので、最初は、え、何かミスった?と嫌な汗がでました。

電源ONしてから画面が表示されるまでかなり待たされます。落ち着いて待ちましょう。

BIOS設定

無事にモニタに出力されたらBIOS設定画面から必要な設定を行います。といっても、基本的には何も変更しなくても動作しました。個人的に気になったECCのエラー訂正に関する箇所だけ変更しています。

OSのインストール

OSはUbuntu19.10をインストールしました。LTS版の20.xが出たら再インストールかな。インストールイメージはあらかじめUSBメモリに書き込んでおいたのでそこからBootしました。こちらは問題なく動作さてくれました。

USBメモリにイメージを書き込んでUbuntuをセットアップしました。

memtest86でメモリーテストを行う

念の為、メモリーテストも行いました。使用したのはお馴染みのmemtest86です(ちなみによく似た名前の”memtest86+”はUEFI未対応なため使えませんでした)。このツールをUSBに書き込んでbootしました。実は最初はメモリエラーが出てあせったのですが、最終的にはHammerTest以外なら問題なくPassしてくれるようになりました。

メモリーテスト中。問題はなさそうです。

発生したトラブルについて

実はこのPCを組むに当たって色々と問題が発生していました。私のポカミスも含めて記載しておきます。

SSD(NVMe)が認識しない

せっかく購入したSSD(NVMe)ですが、なんと認識されないことがありました。当然ながらOSは立ち上がりません。電源On/Offを繰り返すと認識するのですが最初は原因が分からず四苦八苦しました。現象としては、

結論からいうと、前者はCPU2側のEPS12Vコネクタに自作変換ケーブルを使っていたのが原因でした。使用していたケーブルの銅線が細すぎたのがまずかったらしく電源投入時の動作が不安定になっていたのかな。後者は解決しなかったので、BIOSで設定変更したあとは一旦電源Off->Onするようにしました。

電源周りのトラブル(恐らく)でSSDが認識しないことがありました。

自作EPS12Vケーブルが燃えた

実は最初に作ったPCIe電源->EPS12V変換コネクタですが、高負荷の処理を長時間させた際に発熱して焦げてしまいました。部屋中に焦げ臭い香りがしてヤバイと思ってPCをシャットダウンし中身を確認してみるとケーブルの皮膜が溶けて銅線がむき出しになっています。コネクタも溶けて一部が溶着してしまいました。

問題の自作ケーブル
高負荷運転後、ご覧のように皮膜が溶け落ちてしまいました。コネクタ部も溶けてしまい一部がマザーボード側のコネクタに残ってしまいました。

原因は自作するのに安いEPS12V延長ケーブルを購入したのですが、これの銅線がむちゃくちゃ細かったのです。そのときは取り敢えず動作確認が出来ればいいやと思ってそのまま使ってしまい負荷がかかっていないときは問題なかったので放ったらかしにしたのが大失敗でした。下手をすると火災の原因になってしまいます。

他のATX電源で使われているケーブルと購入した激安延長ケーブルを比べてみたところ。ぱっと見ると同じ太さなのですが、皮膜を剥いてみると銅線の太さが全然違うのがわかると思います。

結局、初代変換ケーブルはおじゃんになってしまったので家のジャンク箱にあったATX12Vコネクタを使ってケーブルを作り直しました。ピン数は半分になってしまいますが、どのみちコネクタが溶着した際にピンの1本が塞がってしまいEPS12Vコネクタだと挿すことが出来ません。1回失敗しているだけに電流容量が心配でしたが高負荷をかけても熱々にはならず問題なく動作してくれました。前項のSSDが認識しない問題もケーブル交換後に改善しました。これならはじめからATX電源のEPS12Vコネクタを半分づつCPU1/CPU2に接続すれば良かったかもしれません。

PS/2キーボードが認識しない

SSDに続いてPS/2キーボードが認識しないことがあります。こちらは原因不明ですが一旦リセットすれば復活してくれるのでまぁいいかなと放置しています。起動時にキーボードのNumLockが点灯しない場合は認識していません。リセットすれば認識してくれる模様。

メモリエラーが発生する

組んだ直後にmemtest86でメモリーテストを行った際に"ECC Corectable Error"が発生しました。Test13:HammerTestは大容量DDR3メモリだとエラーが発生しうるらしいのですが(金融や長時間可動させる科学技術計算用途などでは問題ですが個人用途ならあまり気にしなくていいらしい)、その他のTest9とかでもエラーが発生していました。エラー訂正可能な1bitエラーとはいえこれは問題です。

げげっ、メモリエラー!? 原因は中古メモリか怪しげな中華マザーか・・・どうやらDDR3メモリ電源IC(多分)の発熱っぽい。

メモリの速度を落としたり色々と試しましたが、どうやらCPU2側にあるメモリの電源ICが指で触れないくらい高温になってくるとメモリエラーが発生するようです。余っているファンでCPU2側メモリの電源周辺に風を送ってやるとメモリエラーが発生しなくなりました。

ファンでCPU2側のメモリと電源ICを冷却しています。固定もせずCPUクーラーの上に直置きという適当具合ですがメモリエラーは出なくなりました。

MEI関連でエラーが出る

OS起動時にMEI関連でエラーが発生することがありました。

[ 4.783637] mei_me 0000:00:16.0: wait hw ready failed
[ 4.783684] mei_me 0000:00:16.0: hw_start failed ret = -62
[ 4.783704] mei_me 0000:00:16.0: H_RST is set = 0x80000015
...
[ 6.799648] mei_me 0000:00:16.0: wait hw ready failed
[ 6.799657] mei_me 0000:00:16.0: hw_start failed ret = -62
[ 6.799667] mei_me 0000:00:16.0: H_RST is set = 0x80000015
[ 8.815616] mei_me 0000:00:16.0: wait hw ready failed
[ 8.815620] mei_me 0000:00:16.0: hw_start failed ret = -62
[ 8.815624] mei_me 0000:00:16.0: reset: reached maximal consecutive resets: disabling the device
[ 8.815625] mei_me 0000:00:16.0: reset failed ret = -19
[ 8.815626] mei_me 0000:00:16.0: link layer initialization failed.
[ 8.815627] mei_me 0000:00:16.0: init hw failure.
[ 8.815666] mei_me 0000:00:16.0: initialization failed.

調べてみると、MEIとはどうも遠隔マネージメント用のモジュールのようです。さすがサーバ用マザーボード、こんなものもあるんですね。

MEIを使うと遠隔PowerOn/Offやモニタリングが出来るらしいのですが、目下のところは使用しないのでMEIを無効にすることで対処することにします。具体的には以下のようにmei_meモジュールをロードしないように指定しました。


$ sudo sh -c "echo 'blacklist mei_me' >> /etc/modprobe.d/blacklist-mei.conf"

組んでから思ったこと

その時の勢いで組んでしまいましたが、後になってこうしとけば、とかこれに対応していれば・・・と思ったことがあります。

メモリがクアッドチャンネルに非対応

検討時点で良く調べておらずDual構成のXeonだから当然クアッドチャンネルに対応してるだろうと決めつけて購入してしまい、結果としてデュアルチャンネルまでの対応でした。DDR3はDDR4に比べて遅いけどクアッドチャンネルだからある程度補えるだとうと考えていただけに結構がっくりしました。EATXサイズのマザーボードでクアッドチャンネル対応のものはCPUの両サイドにメモリスロットがあるはずです。もしクアッドチャンネル対応のが欲しい場合は、少し値段が上がりますが別なマザーボードがEATXサイズであったのに・・・orz

Sleep(S3)に未対応

普段の使い方の問題なのですが、私はデスクトップでもSleepを多用していました。食事に席を立ったりするのに電源をいれっぱなしはちょっと電気代がもったいなく感じますが、わざわざシャットダウンするのも面倒(ブラウザで開いている内容とかそのままにしておきたい)というとき重宝していました。が、残念ながら今回組んだマザーボードだとSleep出来ません。BIOSの設定画面を見てもどうやら未対応のようです。まぁ、確かにサーバでSleepなんて使わないでしょう。

HDDにメモリ内容を退避させるハイバネーションは可能ですが、メモリ256GByteも積んじゃったしなぁ。

CPU2の温度がCPU1より高くなる/電源ICが熱々になる

当たり前といえば当たり前なのですがデュアルCPU構成でサイドフローのCPUクーラーを使った場合、向きによっては一方のクーラーで温まった空気がもう一方を直撃します。そうならないようにCPUクーラーを90度ねじって設置出来ればいいのですが、今回のマザーボードだと金具が当たってしまい無理でした。

また、CPU周辺にある電源ICはかなり発熱します。特にCPU2のメモリ上側にある電源ICは熱の逃げ場が少ないせいかかなり熱くなるようでメモリテスト時のエラーの原因になっていました。それを考えるとサイドフローよりもトップフローのCPUクーラーのほうが良かったかもしれません。

ご覧のようにCPU1で温まった空気がそのままCPU2に入ってしまいますが、金具が当たるのでこの配置しか無理でした。温度としてはCPU1よりCPU2のほうが10度くらい高くなるようです。

所感

取り敢えず、大容量メモリのPC環境を手に入れることが出来ました。試しにそのへんのプログラムをmakeしてみると今までと比べてかなり早くなりました。古いとはいえ16コアあると違いますね。地図の作成にも期待が持てます。その反面、シングルスレッド性能はあまりよろしくないようでXでGUIアプリを立ち上げがもっさりとしています。

ただ、安いとは言っても自作PC1台分くらいのお金はかかっていますので、安さを求めるならヤフオクでHPやDELLの1U/2Uの中古サーバを狙ったほうがよさそうです。そちらなら電源やストレージも全部ついて5万円もしないで購入出来そうでした(ただ、ファンの音が煩そうなので寝室には置けないかも)。

参考

この記事は以下のサイトの内容を参考にさせていただきました。

モバイルバージョンを終了