web-dev-qa-db-fra.com

Erreur nvidia de lxc: xf86EnableIOPorts: échec de la définition de IOPL pour les E / S (opération non autorisée)

En essayant de partager nvidia avec le conteneur lxc (hôte 16.04, lxc 14.04), je rencontre cette erreur lors du démarrage de X dans le conteneur:

startx - vt8

Je reçois l'erreur suivante:

xf86EnableIOPorts: failed to set IOPL for I/O (Operation not permitted)

j'obtiens aussi l'avertissement suivant dans /var/log/Xorg.0.log:

(WW) NVIDIA(0): Unable to get display device for DPI computation.

Toute aide serait appréciée. Jusqu'à présent, je n'ai pas pu utiliser les graphiques LXC et NVIDIA avec 16.04 Host. avec le conteneur 14.04, je ne parviens pas à faire démarrer les graphiques avec le conteneur 16.04, je ne parviens pas à faire fonctionner le clavier/la souris.

5
user63726

J'ai eu le même problème, alors voici la solution. La raison pour laquelle le clavier/la souris ne fonctionne pas dans le conteneur ubuntu 16.04 LXC est que le paquetage xserver-xorg-input-kbd a été supprimé. Par conséquent, si vous utilisez quelque chose comme:

...
Driver "kbd"
...
Driver "mouse"
...

dans la configuration xorg de votre conteneur - cela ne fonctionnerait pas avec Ubuntu 16.04.

Au lieu de cela, vous devriez configurer les entrées xorg avec evdev. Étant donné que le nombre exact d'entrées event* dans le fichier de configuration (par exemple, /usr/share/X11/xorg.conf.d/10-lxc-input.conf) dépend de ce qui se trouve dans /dev/input/ de votre conteneur, vous pouvez utiliser un script pour en générer un:

#!/bin/bash
cat >/usr/share/X11/xorg.conf.d/10-lxc-input.conf << _EOF_
Section "ServerFlags"
     Option "AutoAddDevices" "False"
EndSection
_EOF_

cd /dev/input
for input in event*
do
cat >> /usr/share/X11/xorg.conf.d/10-lxc-input.conf <<_EOF_
Section "InputDevice"
    Identifier "$input"
    Option "Device" "/dev/input/$input"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
_EOF_
done

Ce qui donne quelque chose comme: cat /usr/share/X11/xorg.conf.d/10-lxc-input.conf

Section "ServerFlags"
     Option "AutoAddDevices" "False"
EndSection
Section "InputDevice"
    Identifier "event0"
    Option "Device" "/dev/input/event0"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event1"
    Option "Device" "/dev/input/event1"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event10"
    Option "Device" "/dev/input/event10"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event11"
    Option "Device" "/dev/input/event11"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event12"
    Option "Device" "/dev/input/event12"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event13"
    Option "Device" "/dev/input/event13"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event14"
    Option "Device" "/dev/input/event14"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event2"
    Option "Device" "/dev/input/event2"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event3"
    Option "Device" "/dev/input/event3"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event4"
    Option "Device" "/dev/input/event4"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event5"
    Option "Device" "/dev/input/event5"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event6"
    Option "Device" "/dev/input/event6"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event7"
    Option "Device" "/dev/input/event7"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event8"
    Option "Device" "/dev/input/event8"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
Section "InputDevice"
    Identifier "event9"
    Option "Device" "/dev/input/event9"
    Option "AutoServerLayout" "true"
    Driver "evdev"
EndSection
1
Mykola Dimura