[lxc-users] not able to run glxdemo from inside lxc container
manik sheeri
sheeri185adidam at gmail.com
Wed Nov 2 17:53:51 UTC 2016
I was able to resolve this issue.
I had to add nvidia device nodes in the lxc container config file.
lxc.cgroup.devices.allow = c 195:* rwm
lxc.mount.entry = /dev/nvidia0 dev/nvidia0 none bind,optional,create=file
lxc.mount.entry = /dev/nvidiactl dev/nvidiactl none bind,optional,create=file
lxc.mount.entry = /dev/nvidia-modeset dev/nvidia-modeset none
bind,optional,create=file
On Wed, Nov 2, 2016 at 5:00 AM, <lxc-users-request at lists.linuxcontainers.org
> wrote:
> Send lxc-users mailing list submissions to
> lxc-users at lists.linuxcontainers.org
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://lists.linuxcontainers.org/listinfo/lxc-users
> or, via email, send a message with subject or body 'help' to
> lxc-users-request at lists.linuxcontainers.org
>
> You can reach the person managing the list at
> lxc-users-owner at lists.linuxcontainers.org
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of lxc-users digest..."
>
> Today's Topics:
>
> 1. not able to run glxdemo from inside lxc container (manik sheeri)
> 2. Error in playing a sound using ALSA inside LXC container
> (manik sheeri)
>
>
> ---------- Forwarded message ----------
> From: manik sheeri <sheeri185adidam at gmail.com>
> To: lxc-users at lists.linuxcontainers.org
> Cc:
> Date: Tue, 1 Nov 2016 14:09:06 -0700
> Subject: [lxc-users] not able to run glxdemo from inside lxc container
>
> I have created lxc container of our custom toolchain that has many
> packages. Related to graphics, I have installed nvidia 367.27 driver
> using the nvidia installer inside this container(called mk7icontainer)
>
> The nvidia driver libraries/binaries are installed at path
> /usr/share/nvidia path inside this container.
>
> I have also installed mesa installed in path /usr inside container.
>
> I compiled the glxdemo source code using the command as:
>
> gcc -g glxdemo.c -Wl,--rpath-link,/usr/share/nvidia/lib -Wl,-rpath,/usr/share/nvidia/lib \
> -Wl,--rpath-link,/usr/share/nvidia/lib/tls -Wl,-rpath,/usr/share/nvidia/lib/tls \
> -Wl,--rpath-link,/usr/share/nvidia/lib/vdpau -Wl,-rpath,/usr/share/nvidia/lib/vdpau \
> -Wl,--rpath-link,/usr/share/nvidia/lib/xorg/modules -Wl,-rpath,/usr/share/nvidia/lib/xorg/modules \
> -Wl,--rpath-link,/usr/share/nvidia/lib/xorg/modules/drivers -Wl,-rpath,/usr/share/nvidia/lib/xorg/modules/drivers \
> -Wl,--rpath-link,/usr/share/nvidia/lib/xorg/modules/extensions -Wl,-rpath,/usr/share/nvidia/lib/xorg/modules/extensions -lX11 -lGL -lGLU -lglut -lm -o glxdemo
>
>
> Inside the container, I have
>
> DISPLAY=":0"
> XAUTHORITY=/root/.Xauthority
>
> I am starting the bash in the container using below command:
>
> sudo lxc-attach -n mk7icontainer --clear-env -- /usr/bin/bash
>
> My host machine is running Ubuntu 16.0.4 and I installed the same nvidia
> 367.27 driver using its installer. It is running fine. I can even run
> glxdemo on host machine without any issues.
>
> However, when I try to run glxdemo inside the container ( compiled using
> above mentioned command), I get the following error:
>
> X Error of failed request: BadValue (integer parameter out of range for operation)
> Major opcode of failed request: 154 (GLX)
> Minor opcode of failed request: 3 (X_GLXCreateContext)
> Value in failed request: 0x0
> Serial number of failed request: 24
> Current serial number in output stream: 25
>
> anyone got any idea what is wrong here?
>
>
>
> Source code for glxdemo is :
>
> #include <GL/gl.h>
> #include <GL/glx.h>
> #include <stdio.h>
> #include <stdlib.h>
> static void redraw( Display *dpy, Window w )
> {
> printf("Redraw event\n");
> glClear( GL_COLOR_BUFFER_BIT );
>
> glColor3f( 1.0, 1.0, 0.0 );
> glRectf( -0.8, -0.8, 0.8, 0.8 );
> glXSwapBuffers( dpy, w );
> }
>
> static void resize( unsigned int width, unsigned int height )
> {
> printf("Resize event\n");
> glViewport( 0, 0, width, height );
> glMatrixMode( GL_PROJECTION );
> glLoadIdentity();
> glOrtho( -1.0, 1.0, -1.0, 1.0, -1.0, 1.0 );
> }
>
> static Window make_rgb_db_window( Display *dpy,
> unsigned int width, unsigned int height )
> {
> int attrib[] = { GLX_RGBA,
> GLX_RED_SIZE, 1,
> GLX_GREEN_SIZE, 1,
> GLX_BLUE_SIZE, 1,
> GLX_DOUBLEBUFFER,
> None };
> int scrnum;
> XSetWindowAttributes attr;
> unsigned long mask;
> Window root;
> Window win;
> GLXContext ctx;
> XVisualInfo *visinfo;
>
> scrnum = DefaultScreen( dpy );
> root = RootWindow( dpy, scrnum );
>
> visinfo = glXChooseVisual( dpy, scrnum, attrib );
> if (!visinfo) {
> printf("Error: couldn't get an RGB, Double-buffered visual\n");
> exit(1);
> }
>
> /* window attributes */
> attr.background_pixel = 0;
> attr.border_pixel = 0;
> attr.colormap = XCreateColormap( dpy, root, visinfo->visual, AllocNone);
> attr.event_mask = StructureNotifyMask | ExposureMask;
> mask = CWBackPixel | CWBorderPixel | CWColormap | CWEventMask;
>
> win = XCreateWindow( dpy, root, 0, 0, width, height,
> 0, visinfo->depth, InputOutput,
> visinfo->visual, mask, &attr );
>
> printf("\n XCreateWindow successfull \n");
> ctx = glXCreateContext( dpy, visinfo, NULL, True );
> if (!ctx) {
> printf("Error: glXCreateContext failed\n");
> exit(1);
> }
>
> printf("\n glXCreateContext successfull \n");
>
> glXMakeCurrent( dpy, win, ctx );
>
> return win;
> }
>
> static void event_loop( Display *dpy )
> {
> XEvent event;
>
> while (1) {
> XNextEvent( dpy, &event );
>
> switch (event.type) {
> case Expose:
> redraw( dpy, event.xany.window );
> break;
> case ConfigureNotify:
> resize( event.xconfigure.width, event.xconfigure.height );
> break;
> }
> }
> }
>
> int main( int argc, char *argv[] )
> {
> Display *dpy;
> Window win;
>
> dpy = XOpenDisplay(NULL);
> if(!dpy)
> {
> printf("\nError in XOpenDisplay\n");
> }
> printf("\nXOpenDisplay successfull\n");
>
> win = make_rgb_db_window( dpy, 300, 300 );
>
> printf("\nmake_rgb_db_window successfull \n");
> glShadeModel( GL_FLAT );
> glClearColor( 0.5, 0.5, 0.5, 1.0 );
>
> XMapWindow( dpy, win );
>
> event_loop( dpy );
> return 0;
> }
>
>
>
> ---------- Forwarded message ----------
> From: manik sheeri <sheeri185adidam at gmail.com>
> To: lxc-users at lists.linuxcontainers.org
> Cc:
> Date: Tue, 1 Nov 2016 17:51:26 -0700
> Subject: [lxc-users] Error in playing a sound using ALSA inside LXC
> container
>
> I am using host Ubuntu 16.0.4 system to run my lxc container. I
> uninstalled pulseaudio as I wanted to use ALSA directly.
>
> After uninstalling pulseaudio from the host machine, I was able to play
> sounds using the command like one below(on host machine):
>
> aplay /usr/share/sounds/alsa/Rear_Right.wav
>
> Inside the lxc container, I have installed alsa libs and alsa utils. When
> I use the same command as above inside the container, I get the following
> errors:
>
> ALSA lib confmisc.c:768:(parse_card) cannot find card '0'
> ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_card_driver returned error: No such file or directory
> ALSA lib confmisc.c:392:(snd_func_concat) error evaluating strings
> ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_concat returned error: No such file or directory
> ALSA lib confmisc.c:1251:(snd_func_refer) error evaluating name
> ALSA lib conf.c:4248:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
> ALSA lib conf.c:4727:(snd_config_expand) Evaluate error: No such file or directory
> ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM default
> aplay: main:654: audio open error: No such file or directory
>
> The sound devices inside container are:
>
> bash-4.2# ls -al /dev/snd/*
> crw-rw---- 1 root 29 116, 5 Nov 1 17:21 /dev/snd/controlC0
> crw-rw---- 1 root 29 116, 2 Nov 1 17:21 /dev/snd/controlC1
> crw-rw---- 1 root 29 116, 10 Nov 1 17:21 /dev/snd/controlC2
> crw-rw---- 1 root 29 116, 9 Nov 1 17:21 /dev/snd/hwC0D0
> crw-rw---- 1 root 29 116, 13 Nov 1 17:21 /dev/snd/hwC2D0
> crw-rw---- 1 root 29 116, 6 Nov 1 17:21 /dev/snd/pcmC0D3p
> crw-rw---- 1 root 29 116, 7 Nov 1 17:21 /dev/snd/pcmC0D7p
> crw-rw---- 1 root 29 116, 8 Nov 1 17:21 /dev/snd/pcmC0D8p
> crw-rw---- 1 root 29 116, 4 Nov 1 17:21 /dev/snd/pcmC1D0c
> crw-rw---- 1 root 29 116, 3 Nov 1 17:27 /dev/snd/pcmC1D0p
> crw-rw---- 1 root 29 116, 11 Nov 1 17:21 /dev/snd/pcmC2D3p
> crw-rw---- 1 root 29 116, 12 Nov 1 17:21 /dev/snd/pcmC2D7p
> crw-rw---- 1 root 29 116, 1 Nov 1 17:21 /dev/snd/seq
> crw-rw---- 1 root 29 116, 33 Nov 1 17:21 /dev/snd/timer
>
> /dev/snd/by-id:
> total 0
> drwxr-xr-x 2 root root 60 Nov 1 17:21 .
> drwxr-xr-x 4 root root 360 Nov 1 17:21 ..
> lrwxrwxrwx 1 root root 12 Nov 1 17:21 usb-126c_4.1_amplifier-00 -> ../controlC1
>
> /dev/snd/by-path:
> total 0
> drwxr-xr-x 2 root root 100 Nov 1 17:21 .
> drwxr-xr-x 4 root root 360 Nov 1 17:21 ..
> lrwxrwxrwx 1 root root 12 Nov 1 17:21 pci-0000:00:03.0 -> ../controlC0
> lrwxrwxrwx 1 root root 12 Nov 1 17:21 pci-0000:00:14.0-usb-0:5:1.0 -> ../controlC1
> lrwxrwxrwx 1 root root 12 Nov 1 17:21 pci-0000:01:00.1 -> ../controlC2
>
>
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20161102/5cbd632a/attachment-0001.html>
More information about the lxc-users
mailing list