[Libva] Use libva as user without X

Gwenole Beauchesne gb.devel at gmail.com
Wed Oct 8 02:57:05 PDT 2014


Hi Thomas,

2014-10-08 11:30 GMT+02:00 Thomas Scheuermann <scheuermann at barco.com>:
> Hi,
>
> how can I use libva as non-root user on a system without X running?

- Check what group /dev/dri/card<n> or /dev/dri/renderD<n|0x80> belongs to
- Add your user to that group

e.g. on a Ubuntu system, /dev/dri/card0 is in the "video" group. If
you want a user X to access to the device, just add user X to the
"video" group too.

Note: starting with Kernel >= 3.15, and with libva from git master,
you can use the device without authentication. This means that you can
have user Y logged in, and who has started a display server, while
still allowing user X to remote connect and use the device.

> If I run vainfo as a non-root user, I get
>
> $ vainfo
> error: XDG_RUNTIME_DIR not set in the environment.
> error: can't connect to X server!
> libva info: VA-API version 0.35.1
> libva info: va_getDriverName() returns 1
> libva error: va_getDriverName() failed with operation
> failed,driver_name=i965
> vaInitialize failed with error code 1 (operation failed),exit
>
> If I do the same as root, I get
>
> # vainfo
> error: XDG_RUNTIME_DIR not set in the environment.
> error: can't connect to X server!
> libva info: VA-API version 0.35.1
> 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_35
> libva info: va_openDriver() returns 0
> vainfo: VA-API version: 0.35 (libva 1.3.1)
> vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile -
> 1.3.2
> vainfo: Supported profile and entrypoints
>       VAProfileMPEG2Simple            :    VAEntrypointVLD
>       VAProfileMPEG2Simple            :    VAEntrypointEncSlice
>       VAProfileMPEG2Main              :    VAEntrypointVLD
>       VAProfileMPEG2Main              :    VAEntrypointEncSlice
>       VAProfileH264ConstrainedBaseline:    VAEntrypointVLD
>       VAProfileH264ConstrainedBaseline:    VAEntrypointEncSlice
>       VAProfileH264Main               :    VAEntrypointVLD
>       VAProfileH264Main               :    VAEntrypointEncSlice
>       VAProfileH264High               :    VAEntrypointVLD
>       VAProfileH264High               :    VAEntrypointEncSlice
>       VAProfileVC1Simple              :    VAEntrypointVLD
>       VAProfileVC1Main                :    VAEntrypointVLD
>       VAProfileVC1Advanced            :    VAEntrypointVLD
>       VAProfileNone                   :    VAEntrypointVideoProc
>       VAProfileJPEGBaseline           :    VAEntrypointVLD
>
> The difference is in the ioctl to /dev/dri/card0. As non-root user I get:
>
> ioctl(3, 0xc0406400, 0x14786c0)         = 0
> ioctl(3, 0xc0406400, 0x14786c0)         = 0
> ioctl(3, 0x80046402, 0x7fffe00d6300)    = 0
> ioctl(3, 0xc0286405, 0x7fffe00d6260)    = 0
> ioctl(3, 0xc0286405, 0x7fffe00d6260)    = -1 EINVAL (Invalid argument)
> futex(0x7f549de7a0ec, FUTEX_WAKE_PRIVATE, 2147483647) = 0
> ioctl(3, 0x40046411, 0x7fffe00d62e0)    = -1 EACCES (Permission denied)
> write(2, "libva info: va_getDriverName() r"..., 41libva info:
> va_getDriverName() returns 1
> ) = 41
> write(2, "libva error: va_getDriverName() "..., 78libva error:
> va_getDriverName() failed with operation failed,driver_name=i965
> ) = 78
>
> but as root I get:
>
> ioctl(3, 0xc0406400, 0x10656c0)         = 0
> ioctl(3, 0xc0406400, 0x10656c0)         = 0
> ioctl(3, 0x80046402, 0x7fff4a5b24b0)    = 0
> ioctl(3, 0xc0286405, 0x7fff4a5b2410)    = 0
> write(2, "libva info: va_getDriverName() r"..., 41libva info:
> va_getDriverName() returns 0
> ) = 41
> geteuid()                               = 0
> getuid()                                = 0
> write(2, "libva info: Trying to open /usr/"..., 75libva info: Trying to
> open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
> ) = 75
>
> Regards,
>
> Thomas
> This message is subject to the following terms and conditions: MAIL
> DISCLAIMER<http://www.barco.com/en/maildisclaimer>
> _______________________________________________
> Libva mailing list
> Libva at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/libva

Regards,
-- 
Gwenole Beauchesne
Intel Corporation SAS / 2 rue de Paris, 92196 Meudon Cedex, France
Registration Number (RCS): Nanterre B 302 456 199


More information about the Libva mailing list