CentOS6でG3258のIntel HD Graphicsドライバが認識されない問題

録画環境を前回の記事の通りに作った。 次はTSファイルをエンコードする環境を構築する。 画質にそこまでこだわりはないので、QSVを使ってH264に圧縮する。 その過程でグラフィックドライバが認識されないという問題にぶち当たったので解決法を乗せる

riosu.hateblo.jp

環境

M/B: H97-PLUS
CPU: Pentium Dual-Core G3258 BOX
OS: CentOS release 6.9

*注 もちろんCPUがQSV対応でないとそもそも駄目である

ドライバ導入

yum install xorg-x11-drv-intel.x86_64 xorg-x11-drv-intel.x86_64-devel
reboot

認識されない

lshwを使って確認してみたところドライバが認識されていない (lshwはyumで導入した yum install lshw

% sudo lshw -c video
  *-display UNCLAIMED
       description: VGA compatible controller
       product: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list
       configuration: latency=0
       resources: memory:f7800000-f7bfffff memory:e0000000-efffffff(prefetchable) ioport:f000(size=64)

UNLCAIMEDになっている。ドライバが認識されていない場合上記の表示になるらしい。 この状態ではVAAPIが利用できない。

解決方法

grubで起動するときに渡されているオプション nomodeset が悪さをしているらしい。 /boot/grub/menu.lst を編集して nomodeset を削除する。

vim /boot/grub/menu.lst
[before]
kernel /vmlinuz-2.6.32-696.1.1.el6.x86_64 ro root=/dev/mapper/vg_hoge-lv_root nomodeset rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_hoge/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_hoge/lv_swap rd_NO_DM rhgb quiet

[after]
kernel /vmlinuz-2.6.32-696.1.1.el6.x86_64 ro root=/dev/mapper/vg_hoge-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_LVM_LV=vg_hoge/lv_root rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_hoge/lv_swap rd_NO_DM rhgb quiet

この後リブートしたらちゃんと認識される。

% sudo lshw -c video                                                                                            [main]
  *-display
       description: VGA compatible controller
       product: Xeon E3-1200 v3/4th Gen Core Processor Integrated Graphics Controller
       vendor: Intel Corporation
       physical id: 2
       bus info: pci@0000:00:02.0
       version: 06
       width: 64 bits
       clock: 33MHz
       capabilities: msi pm vga_controller bus_master cap_list rom
       configuration: driver=i915 latency=0
       resources: irq:27 memory:f7800000-f7bfffff memory:e0000000-efffffff(prefetchable) ioport:f000(size=64)

悪戦苦闘しつつドライバ導入まで成功したが、VAAPIは簡単には動かなかった。その記事はまた別途書く予定。 ざっくりいうと、libva/intel-vaapi-driver/libva-utilsの最新版をソースからビルドすればうまくいった。