ブログネタ
Ubuntu に参加中!

前段:

ここでの作業は Linux ディストリビューションのバージョンによってはデフォルトで整ってるから、必要ないかもしれない。
何度も PC 再起動をして試すことになるので、かなり時間がかかる面倒な作業だ。
 
前提として、Ubuntu 22.04 環境 です。

OS: Lubuntu 22.04.5 LTS x86_64 
Host: NUC7PJYH J67992-401 
Kernel: 6.8.0-60-generic 
Uptime: 2 hours, 49 mins 
Packages: 2372 (dpkg), 31 (snap) 
Shell: bash 5.1.16 
Resolution: 1920x1200 
DE: LXQt 
WM: Openbox 
WM Theme: Lubuntu Round 
Theme: Arc-Darker [GTK2/3] 
Icons: Papirus [GTK2/3] 
Terminal: tmux 
CPU: Intel Pentium Silver J5005 (4) @ 2.800GHz 
GPU: Intel GeminiLake [UHD Graphics 605] 
Memory: 3162MiB / 7777MiB 

設定:J5005 内蔵 GPU を叩き起こす!

まずは、ドライバ系
インテルグラフィックスにちゃんと働いてもらうため下記パッケージをインストール
(人によってはインストール済み)
i965-va-driver
intel-media-va-driver
libvdpau1
ilibvdpau-va-gl1


.bashrc に↓を追記
# Intel ハードウェア動画再生支援
#export LIBVA_DRIVER_NAME=iHD
export LIBVA_DRIVER_NAME=i965
export VDPAU_DRIVER=va_gl


export LIBVA_DRIVER_NAME=iHD のほうが J5005 CPU には最適らしいけど、H.265 動画エンコードでエラーになるのでコメントアウト (環境による?) (Failed to initialise VAAPI connection: -1 (unknown libva error).)

一応、PC 再起動

$ vainfo(要インストールかも)コマンドで、エラーが出てなければ OK

vainfo: VA-API version: 1.14 (libva 2.12.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Gemini Lake - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            :	VAEntrypointVLD
      VAProfileMPEG2Main              :	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointVLD
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline:	VAEntrypointEncSliceLP
      VAProfileH264Main               :	VAEntrypointVLD
      VAProfileH264Main               :	VAEntrypointEncSlice
      VAProfileH264Main               :	VAEntrypointEncSliceLP
      VAProfileH264High               :	VAEntrypointVLD
      VAProfileH264High               :	VAEntrypointEncSlice
      VAProfileH264High               :	VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      :	VAEntrypointVLD
      VAProfileH264StereoHigh         :	VAEntrypointVLD
      VAProfileVC1Simple              :	VAEntrypointVLD
      VAProfileVC1Main                :	VAEntrypointVLD
      VAProfileVC1Advanced            :	VAEntrypointVLD
      VAProfileNone                   :	VAEntrypointVideoProc
      VAProfileJPEGBaseline           :	VAEntrypointVLD
      VAProfileJPEGBaseline           :	VAEntrypointEncPicture
      VAProfileVP8Version0_3          :	VAEntrypointVLD
      VAProfileHEVCMain               :	VAEntrypointVLD
      VAProfileHEVCMain10             :	VAEntrypointVLD
      VAProfileVP9Profile0            :	VAEntrypointVLD
      VAProfileVP9Profile2            :	VAEntrypointVLD


ドライバ系の続き
linux-firmware をインストール

/etc/modprobe.d/i915.conf を↓の内容で保存

# my setting

# フレームバッファー圧縮 0:無効 1:有効
# スクリーンのリフレッシュ中の電力消費量とメモリの帯域幅の使用量を削減
# 自動で有効になっていたので、コメントアウト
#options i915 enable_fbc=1

# GuC と HuC を有効に
options i915 enable_guc=3

$ sudo update-initramfs -u コマンドで initramfs を再構築
で、PC 再起動

$ modinfo i915 | grep enable_fbc コマンドで、フレームバッファー圧縮が有効か確認
parm:           enable_fbc:Enable frame buffer compression for power savings (default: -1 (use per-chip default)) (int)


$ cat /var/log/dmesg | grep -i -e 'huc' -e 'guc' コマンドで GuC / HuC が有効か確認
[    3.965935] kernel: Setting dangerous option enable_guc - tainting kernel
[    3.967907] kernel: i915 0000:00:02.0: [drm] GT0: Incompatible option enable_guc=3 - GuC submission is N/A
[    3.993972] kernel: i915 0000:00:02.0: [drm] GT0: GuC firmware i915/glk_guc_70.1.1.bin version 70.1.1
[    3.993992] kernel: i915 0000:00:02.0: [drm] GT0: HuC firmware i915/glk_huc_4.0.0.bin version 4.0.0
[    4.010297] kernel: i915 0000:00:02.0: [drm] GT0: HuC: authenticated for all workloads
[    4.010313] kernel: i915 0000:00:02.0: [drm] GT0: GUC: submission disabled
[    4.010319] kernel: i915 0000:00:02.0: [drm] GT0: GUC: SLPC disabled

んー Incompatible option enable_guc=3 - GuC submission is N/A ってことは GuC が働かないっぽい・・・
options i915 enable_guc=2 (HuC のみ有効) にしてもいいのだけど、実害はないので 3 のままで。
原因追求はやめときました。

HuC 有効だと、H.265 動画エンコードのパフォーマンスが上がる。(スピードより電力的に?)
ffmpeg でハードウェアアクセラレーションを使った H.265 動画エンコーディングの例
ffmpeg -loglevel debug -hwaccel vaapi -hwaccel_output_format vaapi -vaapi_device /dev/dri/renderD128 -i TEST.mp4 -vf "format=nv12|vaapi,hwupload" -c:v hevc_vaapi -c:a copy -async 1 -c:s copy -preset veryfast TEST_h265.mp4


最後に X11 の設定
下記の設定はちゃんと働いているかワカラン・・・古い慣習だから必要ないかも。
/etc/X11/xorg.conf.d/20-intel.conf を作って、下記を追記

Section "Device"
  Identifier  "Intel Graphics"
  #Driver  "intel"
  Driver  "modesetting"
  Option  "TearFree" "true"  # ティアリングの解消
EndSection

Driver "modesetting" がドライバとしては新しい仕組み (KMS っての?) らしく、こちらの方がトレンドとのこと
Driver "intel" は↑の理由でコメントアウト

終わったら PC 再起動

Option "TearFree" "true" は動画再生でティアリング (画面ズレ) を感じることがあったので付けてみた。

↑この動画、ブラウザで再生すると正確さを欠くので、ダウンロードしてから再生を試してほしい。
[VLC メディアプレーヤー] を使って全画面表示で再生すればズレは無い。
ウィンドウ表示だとズレが出てくる。 (白黒境界線がズレる)
これくらいが限界なのかも。

パフォーマンスは?

上記設定してみても、低スペックな PC なのでぶっちゃけ体感は変わらなかった。(ベンチマークなど数字は取ってない)
いろいろ勉強になったから良し!

次は Linux ネットワーク OS らしく、「ファイルサーバー」にする際にしたこと
続き:


関連記事