<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <title></title>
  </head>
  <body bgcolor="#ffffff" text="#000000">
    On 22/04/11 07:49, Franck BUCHERON wrote:
    <blockquote
      cite="mid:31207350.30025.1303454955750.JavaMail.www@wwinf1f14"
      type="cite">Hi,<br>
      <br>
      I tried some experimentations found on the web, but even if X
      installation is ok, the vt7 can't be opened.<br>
      <br>
      Regards,<br>
      <br>
      F. BUCHERON<br>
      <pre wrap=""><fieldset class="mimeAttachmentHeader"></fieldset>
------------------------------------------------------------------------------
Fulfilling the Lean Software Promise
Lean software platforms are now widely adopted and the benefits have been 
demonstrated beyond question. Learn why your peers are replacing JEE 
containers with lightweight application servers - and what you can gain 
from the move. <a class="moz-txt-link-freetext" href="http://p.sf.net/sfu/vmware-sfemails">http://p.sf.net/sfu/vmware-sfemails</a></pre>
      <pre wrap=""><fieldset class="mimeAttachmentHeader"></fieldset>
_______________________________________________
Lxc-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Lxc-users@lists.sourceforge.net">Lxc-users@lists.sourceforge.net</a>
<a class="moz-txt-link-freetext" href="https://lists.sourceforge.net/lists/listinfo/lxc-users">https://lists.sourceforge.net/lists/listinfo/lxc-users</a>
</pre>
    </blockquote>
    Yes I have done this. Perhaps the following may help: I use Arch
    Linux so my notes relate to that. <br>
    <br>
    This provides a containerised desktop environment that uses the
    host’s hardware. The Desktop runs on one of the host’s virtual
    terminals. You can have multiple isolated environments that can be
    switched between using the hosts’s Alt+Fn virtual terminal switch.<br>
    <br>
    Set up a basic container and then:<br>
    <br>
    <div class="level3">
      <p> Create the device node the virtual terminal to be used for the
        desktop. </p>
      <pre class="code"># mknod -m 666 /srv/lxc/mycontainer/dev/tty9 c 4 9</pre>
      <p> Create the device nodes for the graphics card. </p>
      <pre class="code"># mknod -m 666 /srv/lxc/mycontainer/dev/nvidia0 c 195 0
# mknod -m 666 /srv/lxc/mycontainer/dev/nvidiactl c 195 255</pre>
      <p> Create the device nodes for the input devices </p>
      <pre class="code"># mkdir /srv/mycontainer/dev/input
# mknod -m 666 /srv/lxc/mycontainer/dev/input/mice c 13 63</pre>
      <p> Add a rule to the container’s configuration file <code>/etc/lxc/mycontainer.conf</code>
        to allow access to the host’s virtual terminal, graphics card
        and input devices. </p>
      <pre class="code"># XOrg Desktop
lxc.cgroup.devices.allow = c 4:9 rwm    # /dev/tty9 X Desktop
lxc.cgroup.devices.allow = c 195:* rwm  # /dev/nvidia Graphics card
lxc.cgroup.devices.allow = c 13:* rwm   # /dev/input/* input devices</pre>
      <p> <strong>Ensure that the <code>lxc.tty</code> setting is less
          than the tty number allocated for the desktop (9 in above
          example) otherwise the host’s /dev/tty9 device will not be
          accessible by the container. </strong> </p>
      <p> Update the container </p>
      <pre class="code"># lxc-destroy -n mycontainer
# lxc-create -f /etc/lxc/mycontainer.conf -n mycontainer</pre>
      <p> Start and enter the container. Log in as root. </p>
      <pre class="code"># lxc-start -n mycontainer
# lxc-console -n mycontainer</pre>
    </div>
    <div class="secedit">
      <form class="button" method="post"
action="http://ccgi.jelweb.com/dev/starfry//index.php?option=com_jd-wiki&Itemid=27"></form>
    </div>
    <br>
    <h4>XOrg installation</h4>
    <div class="level4">
      <p> Install XOrg and the graphics driver </p>
      <pre class="code"># pacman -S xorg nvidia</pre>
      <p> Xorg normally uses evdev to locate input devices but it can
        not be used inside a container because it sits on top of udev.
        Therefore, a configuration file is required to disable auto
        device detection and to provide input device configuration.
        Create the file ../etc/X11/xorg.conf.d/10-input.conf..: </p>
      <pre class="code">Section "ServerFlags"
        Option "AutoAddDevices" "False"
EndSection

Section "ServerLayout"
    Identifier     "Desktop"
    InputDevice    "Mouse0" "CorePointer"
    InputDevice    "Keyboard0" "CoreKeyboard"
EndSection

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbLayout" "gb"
EndSection

Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "auto"
    Option "Device" "/dev/input/mice"
    Option "ZAxisMapping" "4 5 6 7"
EndSection
</pre>
      <p> The entry in the file for “XkbLayout” changes the keyboard
        layout from the default US layout and is only required if the
        default US keyboard is not wanted. </p>
      <p> Alternatively, the way to change layouts at run time is to use
        setxpbmap: </p>
      <pre class="code"># setxkbmap gb</pre>
      <p> However note that only lasts for that X session. </p>
      <p> Because Xorg is not using evdev, the mouse and keyboard
        drivers must be loaded: </p>
      <pre class="code"># pacman -S xf86-input-{keyboard,mouse}</pre>
      <p> Start X on virtual terminal 9 </p>
      <pre class="code"># startx -- vt9</pre>
      <p> To test the mouse device just do <code>cat /dev/input/mice</code>
        from a command prompt. Correct operation just gives garbage
        output when the mouse is moved.<br>
      </p>
      <p>use the nvidia-settings tool to create a configuration file.
        Install the nvidia utilities </p>
      <pre class="code">pacman -S nvidia-utils gtk2
</pre>
      <p> gtk2 is a dependency but did not get picked up so has been
        included on the command line explicitly. </p>
      <p> Use the ..nvidia settngs.. utility to properly configure the
        display hardware and save a new configuration file. The default
        location, /etc/xorg.conf is being deprecated by Xorg so save the
        file as /etc/X11/xorg.d/21-nvidia-settings.conf.<br>
      </p>
      <h3>Login Manager</h3>
      <div class="level3">
        <p> The container can start an X login manager when it boots.
          This example uses <a href="http://slim.berlios.de/"
            class="urlextern" title="http://slim.berlios.de/"
            rel="nofollow">Slim</a>, the Simple login manager. </p>
        <p> Install Slim: </p>
        <pre class="code">pacman -S slim
</pre>
        <p> Edit ../etc/inittab.. to start the system in run level 5: </p>
        <pre class="code">## Only one of the following two lines can be uncommented!
# Boot to console
#id:3:initdefault:
# Boot to X11
id:5:initdefault:
</pre>
        <p> and to start slim when in runlevel5: </p>
        <pre class="code">x:5:respawn:/usr/bin/slim >/dev/null 2>&1
</pre>
        <p> Configure ../etc/slim.conf.. so that slim starts on the
          desired vt (line 5 in the file): </p>
        <pre class="code">xserver_arguments   -nolisten tcp vt09
</pre>
        <p> When the container is restarted, the X login panel should
          appear. </p>
      </div>
      <div class="secedit">
        <form class="button" method="post"
action="http://ccgi.jelweb.com/dev/starfry//index.php?option=com_jd-wiki&Itemid=27"></form>
      </div>
      Automatic Login to X
      <p> The container can as a specific user and start their X session
        when it boots. </p>
      <p> Edit ../etc/inittab.. to start the system in run level 5: </p>
      <pre class="code">## Only one of the following two lines can be uncommented!
# Boot to console
#id:3:initdefault:
# Boot to X11
id:5:initdefault:
</pre>
      <p> and to automatically log in a specific user: </p>
      <pre class="code">x:5:once:/bin/su john -l -c "/bin/bash --login -c /usr/bin/startx -- vt10 > /dev/null 2>&1"
</pre>
      <p> When the container is restarted, the user’s X session should
        appear. </p>
    </div>
    <br>
  </body>
</html>