CentOS6でG3258のIntel HD Graphicsドライバが認識されない問題
録画環境を前回の記事の通りに作った。 次はTSファイルをエンコードする環境を構築する。 画質にそこまでこだわりはないので、QSVを使ってH264に圧縮する。 その過程でグラフィックドライバが認識されないという問題にぶち当たったので解決法を乗せる
環境
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の最新版をソースからビルドすればうまくいった。