Généralement lors de l'utilisation X-based applications intérieur d'un conteneur OpenVZ ou Proxmox, le noeud hôte exécuter le serveur X et le conteneur utilise le transfert X via SSH pour exécuter l'application. Un article dans le Wiki VZ Open explique ce plus en détail.
Cependant, Je voulais avoir un serveur X à l'intérieur du conteneur lui-même. De plus, Il devrait également avoir un soutien pour la création sonore (ALSA). La raison derrière cela est d'avoir un conteneur capable de courir FreeSWITCH (une haute performance commutateur VoIP semblable à Asterisk) avec le skypiax tronc (pour skype Connectivité) totalement indépendant.
Il existe différents modes d'exécution du serveur X intérieur d'un conteneur OpenVZ ou Proxmox, surtout si aucune sortie vidéo directe est nécessaire. Cependant, il ya très peu d'informations disponibles sur la façon d'activer le son intérieur d'un conteneur OpenVZ ou Proxmox. Cet article explique comment faire cela.
Préparer le nœud d'accueil
Le noeud d'accueil le demande le son bon modules installés. Par exemple, sur un serveur qui ne requiert pas la production réelle par haut-parleur relié, snd_dummy est suffisante. Entrez la commande suivante pour charger le snd_dummy module:
modprobe snd_dummy
Vous pouvez vérifier si tout allait bien avec:
lsmod | grep snd
Qui permet d'afficher un rendement similaire à:
snd_dummy 23168 0
snd_pcm 97288 1 snd_dummy
snd_timer 35464 1 snd_pcm
snd 79784 3 snd_dummy,snd_pcm,snd_timer
soundcore 18208 1 snd
snd_page_alloc 19984 1 snd_pcm
Si tel est le cas, alors vous voulez vous assurer que la snd_dummy seront chargés au démarrage. Tapez simplement la commande suivante:
echo "snd_dummy" >> /etc/modules
Préparation du conteneur
Configuration des privilèges d'appareil
L'étape suivante est la préparation de la OpenVZ ou conteneur Proxmox. Par défaut, le conteneur n'a pas de privilèges d'accès au périphérique audio, donc ce besoin d'être configuré à partir du nœud d'accueil (en supposant “100 "est le conteneur à ID):
vzctl set 100 --devices c:116:all:rw --devices c:4:all:rw --save
Cloning les périphériques audio
L'étape suivante consiste à recréer la/ dev / snd mise en page à partir du nœud d'accueil dans le conteneur. Voyons d'abord ce que la configuration est similaire sur le noeud d'accueil:
ls -la /dev/snd
Cela donnera une sortie similaire à:
crw-rw---- 1 root audio 116, 6 2009-08-14 20:42 controlC0
crw-rw---- 1 root audio 116, 5 2009-08-14 20:42 pcmC0D0c
crw-rw---- 1 root audio 116, 4 2009-08-14 20:42 pcmC0D0p
crw-rw---- 1 root audio 116, 3 2009-08-14 20:42 seq
crw-rw---- 1 root audio 116, 2 2009-08-14 20:42 timer
Il est important que les identifiants de même appareil sont recréés dans le conteneur. Ie, le dispositif d'identification pour suiv est 116,3 Dans l'exemple ci-dessus.
Entrez le conteneur et de début et de délivrer les commandes suivantes, en fonction de la production donnée sur le nœud d'accueil:
vzctl enter 100
rm -r /dev/snd
mkdir /dev/snd
mknod /dev/snd/controlC0 c 116 6
mknod /dev/snd/pcmC0D0c c 116 5
mknod /dev/snd/pcmC0D0p c 116 4
mknod /dev/snd/seq c 116 3
mknod /dev/snd/timer c 116 2
chmod 660 /dev/snd/*
chown :audio /dev/snd/*
A ce stade, vous avez cloné copie de dispositifs sonores le nœud d'accueil et sont prêtes à être utilisées.
S'il vous plaît noter que l'application qui désire utiliser les périphériques audio nécessitent les privilèges nécessaires. La méthode la plus simple est d'ajouter de l'UID pour les audio groupe. Par exemple, si Skype fonctionne sous uid “skype”, exécutez cette commande:
adduser skype audio
Installer le serveur Xorg
Il existe différentes variantes de serveur X qui peuvent être installés dans le conteneur, surtout si aucune sortie vidéo est requis. Le plus connu est sans aucun doute Xvfb.
J'ai opté pour l'utilisation du serveur Xorg avec une vidéo de mannequin, souris et le clavier à la place conducteur (Comme il s'agissait de serveur dédié, sans aucun de ces appareils). Cette section détaille comment je l'ai installé sur les distributions basées sur Debian.
Avant l'installation
Première étape, intérieur d'un conteneur, est de soft-link Tty1 à Tty0:
rm /dev/tty0
ln -s /dev/tty1 /dev/tty0
Note: cela suppose que vous accédez au conteneur à l'aide vzctl, pas SSH !
Si nscd est installé, supprimer cette première:
aptitude remove nscd
Télécharger et installer des paquets
Ensuite nous installer les paquets nécessaires pour Xorg et certains pilotes de périphériques, y compris pour le support du son ALSA:
aptitude -R install xorg xserver-xorg-video-dummy xserver- \
xorg-input-kbd xserver-xorg-input-mouse alsa-base linux-sound-base \
libaudiofile0 dbus udev-
Modifier la configuration
La dernière étape est la configuration de Xorg, en modifiant le / Etc/X11/xorg.conf fichier comme suit:
Section "InputDevice"
Identifier "Dummy Input"
Driver "void"
EndSection
Section "Device"
Identifier "Dummy Video"
Driver "dummy"
EndSection
Section "Monitor"
Identifier "Configured Monitor"
EndSection
Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
Device "Dummy Video"
EndSection
Section "ServerLayout"
Identifier "Default Layout"
Screen "Default Screen"
InputDevice "Dummy Input"
EndSection
Vous pouvez maintenant démarrer des instances X à l'aide:
/usr/bin/X :<DISPLAY#>
Où <Affiche #> est l'affichage à être utilisé (sans les crochets, ou omettre entièrement pour les paramètres par défaut). X-applications basées va maintenant être capable de fonctionner sur n'importe quel de ces écrans. Par exemple, pour exécuter Skype (pour Skypiax) sur un écran spécifique et sous UID “skype”:
su skype -c "echo secret:password | DISPLAY=:1 /usr/bin/skype --pipelogin 2>>skype_errors.log &"
L'accès à distance en utilisant NoMachine NX
Même si vous utilisez un framebuffer virtuel (comme avec Xvfb) ou un pilote vidéo mannequin, vous serez encore capable de faire des tâches visuelles sur le serveur. Une méthode consiste à utiliser un tunnel de transfert X (ssh-X). Je préfère utiliser NoMachine le serveur NX Au lieu de.
Pour installer le serveur NX NoMachine sur une distribution basée sur Debian, Numéro de commande qui suit:
wget http://64.34.161.181/download/3.3.0/Linux/nxclient_3.3.0-6_i386.deb
wget http://64.34.161.181/download/3.3.0/Linux/nxnode_3.3.0-17_i386.deb
wget http://64.34.161.181/download/3.3.0/Linux/FE/nxserver_3.3.0-22_i386.deb
dpkg -i nxclient_3.3.0-6_i386.deb
dpkg -i nxnode_3.3.0-17_i386.deb
dpkg -i nxserver_3.3.0-22_i386.deb
Ceci suppose que vous exécutez une version 32 bits de Linux et les versions énumérées ci-dessus sont corrects encore. S'il vous plaît procéder à cette vérification NoMachine le site web et le changement comme approprié avant de lancer la commande.
Maintenant vous êtes prêt à vous connecter à votre serveur Xorg en utilisant NoMachine's NX Client et ne Tâches visuelles (ie., naviguer sur Internet si un navigateur est installé).
Related Posts:
