Hi Thomas, 2014-10-08 11:30 GMT+02:00 Thomas Scheuermann <scheuerm...@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@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 _______________________________________________ Libva mailing list Libva@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libva