Ubuntu Weekly Recipe

第308回Intel Core i7 4770SでパワフルコンパクトなPC生活

今回は新しくPCを組み、HDDを移行した話です。またLibreOfficeのビルド時間が、旧PCで4時間半かかっていたものが、新PCでは95分で完了するようになりました。

新PC

ご存じない方も多いと思うのですが、実は筆者はLibreOfficeの翻訳をやっています。1年に2回メジャーバージョンアップされるので、ここ数年年末年始はだいたいこの作業を行っています。

LibreOfficeはgettextに対応した通常のアプリケーションと異なり、即座に翻訳したものをバイナリに反映することができません。そこで実際に確認するためには自分でバイナリをビルドしないといけないのですが、LibreOfficeは超重量級アプリでビルドにすごい時間がかかります。

Gitから取得したソースからビルドするのとUbuntu用のパッケージになっているソースからビルドするのではかかる時間にだいぶ違いがありますが[1]⁠、後者の4.2.0 RC1をビルドするとA8-3820搭載PCで4時間半ほどの時間がかかりました[2]⁠。パッケージだと翻訳だけを配布することができるので[3]そうしたかったのですが、4時間半はいくら何でもかかりすぎです。

とはいえお金にならないLibreOfficeのためにPCを買い換えるわけにもいかないので頭を抱えていたのですが、寄付を募ってみたところ、ことのほか多くの方にいただくことができ、PCを買い換えることができました。おかげで同じソースをビルドしても95分で完了するようになり、翻訳だけを配布することができるようになりました。RC2はWindowsのバイナリをビルドしました。残念ながらこちらは仮想マシンの中ではビルドできませんでしたが、窓の杜に取り上げられたこともあってか翻訳作業自体はスムーズに行うことができました。

余談が長くなりましたが、パーツ選定のポイントはメモリーを32Gバイト積めることです。16Gバイトでは足りなくていつも困っていました。ということはMini-ITXマザーボードではなくMicroATXマザーボードになりそうですが、それだとちょっと大きすぎるのでメモリースロットが4本あるベアボーンにしました。

ちなみに購入予定自体はずいぶん前からあったので、32Gバイト分のメモリーは先行して入手しています[4]⁠。

CPUは最初は4コア4スレッドのものにしようかと考えましたが、VirtualBoxの仮想マシンを同時に何台も動作させるのであれば4コア8スレッドのほうが良く、かつTDPの低いCore i7 4770Sにしました。

HDDは載せ替えたばかりで継続使用でもよかったのですが、前のはバッドセクタが増えていて危険だったので載せ替えましたし、その前のは本当に故障してしまったもののなんとかデータを抜き出すことはできたという災難続きだったので、壊れにくいことが期待できるサポート期間の長いHDDにしたかったのです。mSATAのスロットがマザーボードにあるため、ここにSSDを増設してそこにビルド用のVirtualBoxイメージを置こうかと思いましたが、なかなか良いのがなかったので結局2.5インチSSDにしました。

機器構成と使用OS

というわけで、機器構成はこのようになりました。

パーツ型番
CPUIntel Core i7 4770S
メモリーCFD W3U1600F-8GE×2
ベアボーンShuttle SH87R
HDDWDC WD4003FZEX
SSDCFD CSSD-S6T512NHG5Q
光学ドライブ(手持ちのものを搭載予定)

あとは外付けHDDとRAID BoxとUSB NICも接続しています[5]⁠。

使用しているUbuntuのバージョンは12.04であり、これを13.10にアップグレードしても良かったのですが、前述のとおりLibreOfficeの翻訳に可能な限り時間を割きたかったので、これはしません。

とは言えPCは新しくなったのでカーネルやXも新しくしたいです。そこで思い出すのはHWEです。HWEについては第278回に解説があるのでご覧ください。ここではカーネルにしか触れていませんが、12.04では新しいXも提供しており、これをインストールするとカーネルも新しくなります。今回のような用途を意図してHWEを提供しているのかどうかはわかりませんが、ぴったり当てはまりましたし、Ubuntuを使っていて良かったと思います。

移行の際の作業

HDDの移行

これまで使用していたHDDから新しいHDDに移行するのに、定番のddコマンドを使用しました。3Tバイトから4Tバイトへの移行ですが、ddだけだと3Tバイト分しか使用できないので、GPartedでパーティションを拡大する必要もあります。

新しいUbuntu[6]のインストールイメージをUSBメモリーにコピーし、古いほうのPC(ここがポイントです)にHDDを2台接続し、USBメモリーから起動します。あとはおもむろに端末を起動して、次のコマンドを実行します。

$ sudo dd if=/dev/sda of=/dev/sdb bs=4096 conv=noerror

だいたい5~6時間程度かかるうえに作業中は何もできないので、寝る前にしかけるのが良いでしょう。

問題なく終了したら、一旦電源を切って古いHDDを外します。そしてUSBメモリーから起動してGPartedを起動し、まずはスワップ領域を右端に移動し、そのあとにsda2の領域を拡大します。すべてGUIで行えるので詳細な解説は省略しますが、Ubuntuのバージョンが古いと失敗します。それで新しいUbuntuのUSBメモリーを用意したのです。

しばらく待つと終了するので、電源を切ってUSBメモリーを外し、HDDから起動します。新しいPCから起動したい気持ちもわかりますが、まだ古いPCを使用し続けてください。起動時にはfsckが実行されて多少待ち時間があります。普通に起動してログインすると、端末を起動して次のコマンドを実行してください。

$ sudo apt-get install xserver-xorg-lts-raring

今だとインストールするのは⁠xserver-xorg-lts-saucy⁠のほうが良いでしょう。これでXとカーネル一式が新しくなります。念のため一度再起動して、ちゃんとカーネルとXが起動するか確認してみると良いでしょう。問題なければ、いよいよ新しいPCに接続して起動します。

USB NIC

使用しているUSB NICはLAN-GTJU3H3ですが、残念ながら新しいカーネルにもカーネルモジュールがなく、認識しません。よってPPAからパッケージを取得して使用しています[7]⁠。

温度取得

TDPが低いということは実行時の温度も低いことが期待できますが、安定動作のためには確認しておきたいです。というわけで第183回を参考にしてlm-sensorsの設定を行ってください。とはいえ端末から実行しているのにgksuduを使用していたり(普通にsudoで良いです⁠⁠、コマンドの後ろに謎のセミコロン(;)が入っていたりしますが(もちろん不要です⁠⁠。

ただ、この時期だとどうしても温度が低くなりますので、やはり夏に実行して安定動作が可能かどうか見極める必要があります。

ターボ・ブーストの効果を確かめる

Core i7 4770Sの定格クロック周波数は3.1GHzですが、ターボ・ブースト使用時には3.9GHzまで上がるとスペック表に書いてあります。本当にそこまで上がるのかは/proc/cpuinfoを見てもよくわからないため、専用のツールをインストールして確認する必要があります。端末で次のコマンドをを実行してください。

$ sudo apt-get install linux-tools-common linux-tools-lts-raring
$ sudo modprobe msr
$ sudo turbostat

この状態で負荷をかけて確認すると、図1のように3.88GHzまで上がっていることが確認できます。どうやらスペックどおりの性能が出ているであろうことと、全部のコアにまんべんなく負荷がかかっている状態ではなく、ひとつのスレッドに負荷がかかっているときにクロックが上がりやすいということがわかります。

図1 負荷をかけた状態でのturbostatの実行結果
図1 負荷をかけた状態でのturbostatの実行結果

動画再生支援機能

Core i7 4770SはHaswellというマイクロアーキテクチャのCPUですが、これは内蔵GPUの性能が大幅に向上しているも特徴の1つです。

というわけで動画再生支援機能を使用することにしました。以前使用していた2世代前のSandyBridgeではほぼ使い物にならなかったのですが、今回はどうでしょうか。Ubuntu 13.10だと特に問題ないと思いますが、今回は12.04なのでPPAを追加し、新しいパッケージをインストールします。

$ sudo add-apt-repository ppa:ikuya-fruitsbasket/vaapi
$ sudo apt-get update
$ sudo apt-get install i965-va-driver vainfo

インストール後、vainfoコマンドを実行して、以下などのように表示されれば正く認識しています。

libva info: VA-API version 0.34.0 
libva info: va_getDriverName() returns 0 
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so 
libva info: Found init function __vaDriverInit_0_34 
libva info: va_openDriver() returns 0 
vainfo: VA-API version: 0.34 (libva 1.2.1) 
vainfo: Driver version: Intel i965 driver - 1.2.2 
vainfo: Supported profile and entrypoints 
      VAProfileNone                   : VAEntrypointVideoProc 
      VAProfileMPEG2Simple            : VAEntrypointVLD 
      VAProfileMPEG2Simple            : VAEntrypointEncSlice 
      VAProfileMPEG2Main              : VAEntrypointVLD 
      VAProfileMPEG2Main              : VAEntrypointEncSlice 
      VAProfileH264Main               : VAEntrypointVLD 
      VAProfileH264Main               : VAEntrypointEncSlice 
      VAProfileH264High               : VAEntrypointVLD 
      VAProfileH264High               : VAEntrypointEncSlice 
      VAProfileVC1Simple              : VAEntrypointVLD 
      VAProfileVC1Main                : VAEntrypointVLD 
      VAProfileVC1Advanced            : VAEntrypointVLD 
      VAProfileJPEGBaseline           : VAEntrypointVLD 
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD 
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice

あとはVLCを起動して(インストールしていなければその後に)⁠ツール][設定][入力とコーデック][GPUアクセラレーションを使用]にチェックを入れると、動画再生支援機能を使用することができます。

軽く試した限りだと、充分実用に耐えうるものでした。もっとも、CPUが強力なので動画再生支援機能は特に必要ないのですが、例えばビルド中など極力CPUをほかのことに使いたい場合には有効でしょう。

おすすめ記事

記事・ニュース一覧