gombeのブログ

マイコンの電子工作系PIC32/KiCad/C/C++/3D/

ゲーミングノートPCでUbuntuの注意点などまとめた 【GCR2070RGF-QC】

ゲーミングノートにGALLERIA GCR2070RGF-QCにUbuntuをインストールしました。インストール自体については他にたくさんの記事があるのでここでは書きませんがUSBから普通にブートしたら起動しましたし、インストール後も問題なくGRUBをロードできました。海外でもMag-15で同様の動作例があります。

Windowsはゲームにはいいのですが、バッテリーの持ちを重視するとパフォーマンスが悪くなります。Linuxのタスクスケジューリング機能はWindowsより優秀で、よりパフォーマンスを出るようにしつつパフォーマンスをいつでも最大に保つようにしてくれます。今回は、Ubuntuをインストールするときの引っかかったところなどを解説します。

 省エネ設定についても書きました。結果としては、バッテリーは7~12.7時間くらい(普通に私がネットとか記事書いたりして使うと8.5時間、アイドルで暗くして12.7時間くらい)、操作に対してレスポンスも良好です。ただ、デフォでは強制的に4時間くらいしか持たない設定なのでバッテリーが持つように統合グラフィックを使う必要があります。学校とか出張とかなら出先でバカでかい電源を持ち運ぶ必要はなさそうで、1日はバッテリー持ちそうです。(メーカー表示のスペックって結構過大だったりするのですが、今回はアイドル状態であればそれを上回るような駆動時間を確保できそう。)

 Linuxカーネルについて

Linuxカーネルにはいくつかのバージョンがあり、Wifiのドライバはそれに組み込まれる形なので、対応するバージョンのLinuxカーネルを搭載したPCを使うのが良いです。

今回の機種ではインテル® Wi-Fi 6 AX200 (160MHz)ですのでLinuxのkernelは5.1以降が必要です。

intelの無線カードは下から対応バージョンが確認できます。

https://www.intel.co.jp/content/www/jp/ja/support/articles/000005511/network-and-i-o/wireless-networking.html

2020/03/14追記、スリープバグについて

スリープしようとするとタスクのフリーズに高確率で失敗してフリーズします。カーネルのバージョンを最新の5.5.9にすると直りました。

カーネルの入れ方は簡単で、debファイルの最初にモジュールをインスコしたらimage本体を入れます。逆の順番だと依存関係があってうまく入りません。カーネルのヘッダは必要に応じて入れてください。

https://kernel.ubuntu.com/~kernel-ppa/mainline/

そういえば、Linuxを入れたいならIntelのCPUがいいと思います。IntelからのLinuxカーネルへのコミットも頻繁にあるし、AMDはセグフォ問題などもあったし。以前よりバグが少ない感じがします。

セキュアブートの弊害

セキュアブートを有効にしたままにすると、ドライバ周りが面倒になります。そのためBIOSで無効にしておくといいと思います。Nvidiaのドライバ周りがつっかかりました。

省エネ設定

GPUの切り替え

省エネ設定として、統合型グラフィクスを使うようにnvidia-settingsから切り替えます。動的に切り替えることができないみたいで、再起動が必要です。on-demandモードでもいいかもしれません。あとで調査してみるとグラボを無効化しているだけのようです。ロード時の消費電力はアイドル時でも4~6Wくらい、on-demandは10Wみたいです。バッテリーで駆動させると、かなりのスピードで電池がなくなります。AC限定ですね。あと、NVIDIAを使うとファンの音がします。しょうがない気もしますが。ちなみに起動しつつ切り替えるソフトをrustで作ってる人いたので試したのですが、うまく動かないどころかウインドウマネージャまで吹っ飛んで、更にIntelのグラフィックなのに何故かNVIDIAのボードがまだ動いて電池を食うということになりました。まぁバージョンも違うし当分は再起動して切り替えようと思います。またはWindowsかな?そういうときは。特にパフォーマンスモードのときはBlenderを起動するだけでグラボレンダリングするとガタガタでBlenderを使うとyoutubeがまったく再生できなくなります。Windowsの場合はレンダリングはグラボ、その他のソフトは統合グラフィックを使えたりするのでかなり快適に動作します。

f:id:electgombe:20200224140737p:plain

Performanceモードは特定のアプリケーションにリソースを全振りするようなもので、一つのアプリケーションに集中するときはパフォーマンスが出ますが、複数のアプリケーションを使う場合は他がガタガタになります。特段理由がなければOn-Demandをおすすめします。

アンダーボルテージ

CPUの電圧オフセットを下げることで熱や消費電力を減らすことができます。CPUによって限界値が違うのでなんとも言えませんが、この機体では90mV程度が限度でした。

レビューによっては120mVや160mVなど出せるものもあるようなので、この機体が特にだめだったのかもしれません。ちなみにデフォルトで50mV下げられています。

GitHub - georgewhewell/undervolt: Undervolt Intel CPUs under Linux

temperature target: -10 (90C)
core: -49.8 mV
gpu: 0.0 mV
cache: -49.8 mV
uncore: 0.0 mV
analogio: 0.0 mV

特に、GPUのアンダーボルテージがまだわからなく、Blenderとか使うときにはまだちょっと足りない気がします。また、KiCadとかでもグラボでレンダリングしたいのでそこらへん今後のタスクですね。

消費電力をpowertopで見ながらチューニングします。powertopはバッテリー駆動時にはバッテリーから流れる電流と現状の電圧から消費電力を算出することができます。Intelのグラフィクスのときアイドル時10wを切る程度でした。CPUの消費電力などはs-tuiで見れます。かなり低消費電力動作していることがわかります。CPUのパッケージ計測で3Wから2.6Wくらいまで省エネ化しました。(誤差の範囲な気が)Windowsはなんて大食いなんだろう。

f:id:electgombe:20200225205808p:plain

s-tuiの様子。文字サイズを小さくしないと電力消費がわからないのは仕様

ちなみにちゃんと設定すればファンはほとんど動かないです。画面の切り替えやロードのときに少し回りますが、嫌ならクロックを下げればほとんど消えると思います。

その他、Video playbackはwindowsとは違い、VA-APIを使うようにアプリケーションに促す必要があることもあります。firefoxではサポートしていませんが、chromiumはベータ版でサポートしているようです。

その他のUbuntuとの違い

Ubuntuには様々な派生があります。ログイン時に切り替えることもできます。14.04は本家を使ってて、16.04でGNOME採用してからそれが嫌いでKubuntuに逃げたのですが、またUbuntuに戻りました。その他ディストリビューションによっては動作が不安定なことがあるので結局本家に戻りましたが、以前のようなGNOME臭さが抜けてて結構使いやすい感じでした。このまましばらく使ってみようと思います。

追記、Windows HelloのLinux版howdyの設定

Windows HelloはIRプロジェクタとカメラを用いてRGBカメラよりセキュアに認証を行えます。そのLinux版がhowdyになります。

Windows同様に設定を行えばsudo やログイン認証などが全てhowdyで行なえます。

GitHub - boltgolt/howdy: 🛡️ Windows Hello™ style facial authentication for Linux