Skip to main content

Historique: PC dédié en réseau

Aperçu de cette version: 29



Avertissement : Article encore en cours d'écriture

Intro

L'idée est soit de réutiliser un vieux PC qui ne fait plus grand chose, soit de délibérément constituer un second PC pour s'en servir dans son studio. Typiquement les syntés virtuels polyphoniques sont très demandeurs en CPU, et il est bon de les "exporter". Le fait d'avoir une machine dédiée permetra d'avoir une latence très basse, et d'avoir le même comportement qu'un vrai synthé. Pour obtenir les mêmes conditions pratiques qu'un expandeur nous allons voir comment se passer de l'écran et du clavier supplémentaires en le pilotant en réseau.

Par convention dans l'article:PC1 sera l'hôte et PC2 le second PC dédié.


Matos

Je pense qu'il est préférable d'éviter les trop vieilles machines, car les soft-synthés sont gourmands, et compte tenu des efforts demandés il est bon que le retour soit à la hauteur. 😊
  • Un combo CM+CPU, Pour le CPU, 600 à 800 mhz est un minimum à moins d'avoir vraiment une idée d'application peu gourmande. On trouve sans problème en occasion des combos d'Athlon à 1.5 gigaHz avec carte mère pour pas cher du tout 😊 (il y a sinon des cartes meres neuves à 40 euros !!)
  • Pas besoin de bcp de RAM 128 meg peuvent être suffisants.
  • Il faudra également un HD minimum 4 giga (et peut-être moins).
  • une carte pour le réseau. On peut envisager différentes choses, une carte Ethernet 100mbit/s ou mieux 1gigabit/s. Il serait possible également d'utiliser une connection firewire ou USB2 pour le réseau (à confirmer). Pour le débit tout dépend si l'on compte faire véhiculer des données audio sur le réseau. Pour l'affichage qui sera exporté il vaut mieux à priori éviter l'USB1 et l'Ethernet 10 mbit/s.
  • Une carte son, celle-ci peut-être très basique (SBLive)


Netbooting ?

Il y a certes des possibilités pour booter en réseau mais c'est assez complexe. On peut par exemple flasher la mémoire de certaines cartes réseau pour contenir le bootloader ou utiliser le protocole PXE. Pour notre part nous préferons ré-utiliser un petit disque dur qui ne sert plus et booter normallement.


Installer une distrib sur le PC2

Une distribution dédiée comme Demudi, CCRMA (ou APODIO ?) fera parfaitement l'affaire. Il est pratique à ce titre d'utiliser la même que celle que l'on utilise sur le PC principal ce qui rend la gestion des 2 machines plus aisée. On peut même s'éviter l'installation depuis le CD en copiant directement son répertoire racine sur le HD de la future machine. Avant de réinstaller le HD dans le PC2, il faut penser à éditer /etc/fstab pour qu'il reflète sa configuration. Ensuite avec une disquette de boot, une fois le prompt atteint, il faut au besoin éditer le bootloader et résinscrire le MBR. A présent la machine devrait être bootable depuis le disque. (note: tout compte fait il y a sans doute d'autres choses à faire, l'installation depuis le CD est plus facile pour un newbie et à considérer en priorité).


Installer le réseau

Configurer les interfaces

Les adresses IP pour un réseau privé sont de la forme 192.168.x.x Nous choisirons 192.168.1.1 pour le PC1 et 192.168.1.2 pour PC2. La configuration des interfaces Ethernet n'est pas tellement difficile, il faut déja que le bon module soit chargé, ce qui est simplifié si vous avez un service d'autodétection des périphériques au boot. Sinon il faudra sans doute, trouver un moyen d'inscrire le module dans les fichiers de configuration des modules, générallement /etc/modules.conf.
Netmask etc.... a compléter.

Autoriser les services, inetd, xinetd, portmap

Au niveau global, il peut exister ou non un mécanisme de défense.
Sur debian il existe un fichier /etc/host.allow qui permet d'authoriser (le comportement par défaut étant restrictif) une IP:
ex pour une machine distante sans restriction :
Copy to clipboard
ALL=192.168.1.3


Désactiver les services et le serveur X sur PC2

Un bon nombre de services sont complétement inutiles tout comme le serveur X. On le gardera au cas où et aussi pour des questions de dépendances logicielles mais il ne sera pas lancé par défaut au boot. Il faut donc désactiver le display manager (gdm,kdm ou xdm) car c'est lui qui lance le serveur X au démarrage. De ce fait au boot le PC1 s'arrêtera au login en mode console. Cela permet d'économiser des cycles de CPU.



Xserveur

Comme celui ci ne sert plus. Il faut exporter la variable DISPLAY pour que les applications du PC2 aillent s'ouvrir sur le PC principal.
Dans un des fichiers de configuration "bashrc" du système :
export DISPLAY=192.168.1.1:0

Il faut aussi penser à ajouter l'IP du PC2 dans le fichier /etc/X0.hosts du serveurX:
Copy to clipboard
local: inet:192.168.1.2


NFS

Cette étape est facultative car on peut utiliser certaines commandes pour transferer des fichiers d'un PC à l'autre. Néanmoins il est intéressant de rendre accéssible le disque contenant les travaux audio au deuxième PC afin de centraliser les presets par exemple.
Pour cela il faut d'abord installer et configurer un serveur NFS sur le PC principal.

Installer

Il existe probablement un paquet logiciel NFS sur votre distribution qui correspond au serveur, installez-le

Configurer le serveur

Il faut juste éditer /etc/export
Copy to clipboard
/ 192.168.1.2(rw,no_root_squash,nohide,sync)

rw:donne l'accès en lecture et en écrite
no_root_squash:
nohide:
sync: sync et préférable à async si on ne recherche pas les performances mais plutôt la fiabilité. 'sync' s'assure que les opérations sur le système de fichiers exporté sont toujours confirmées.

Lancer le service

Il y a plusieurs façons suivant les distributions
/etc/init.d/nfs-kernel-server start

Sous débian rcconf permet d'éditer le lancement des services au boot (ou utiliser update-rc.d en console).
Sous les autres systèmes, il existe surement une interface graphique.

Monter le système depuis le client.

Le PC2 doit pouvoir maintenant monter le système du serveur. On peut donc l'ajouter définitivement dans son fichier /etc/fstab

Copy to clipboard
192.168.1.1:/Musique /Musique nfs rw,soft 0 0

Le répertoire /Musique de l'hôte contenant par exemple les projets audio est monté sur le client.


rcp et scp

Ce sont des commandes permettant de copier directement un fichier d'un PC à l'autre. rcp est l'ancienne version, scp son remplacement sécurisé quand on utilise SSH.


Telnet, rlogin, rsh ou SSH

Ce sont 2 méthodes parmis d'autres pour se connecter à distance sur un sytème UNIX. Telnet, rlogin et rsh sont passés en désuétude et sont considérés moins sûrs. Cela ne nous poserait pas de réel problème vu l'utilisation de la machine en réseau local. Mais ssh est préférable pour d'autres raisons, comme le fait de se passer de login grâce au système de clés d'authentification. Ainsi il sera facile de lancer une application à distance sur le PC2. La configuration de SSH est par contre un peu complexe et ennuyeuse au début. Une étape obligée 😊

Cf l'article sur Léa pour le moment sur SSH
http://lea-linux.org/cached/index/Reseau-secu-ssh.html#

Installer

Il doit exister des paquets sshd (serveur) et ssh (clients) à installer, ensuite il faut lancer le service sshd :
#etc/init.d/ssh start

Pour que le service soit permanant utiliser rcconf (debian) ou un autre moyen suivant la distribution.

Il existe un fichier /etc/ssh/sshd_config qui permet d'ajouter des restrictions mais ce qui nous intéresse est de mettre un système de clés pour rendre le login automatique sans mots de passe et en toute sécurité.

...


Créer une passerelle avec Iptables

Encore une étape facultative mais qui est bien pratique pour mettre à jour le 2ème PC ou le faire bénéficier d'un accès au net pour certains usages.

Installer

A priori les noyaux sont générallement déja compilés avec les bons modules, mais si vous compilez vous même le votre n'oubliez pas d'ajouter le support pour iptables. Sur le PC1 il faut en plus installer un paquet logiciel "Iptables" qui contient la commande du même nom.

configurer iptables sur l'hôte

Il suffit de placer ceci dans un script au démarrage:
Copy to clipboard
echo 1 > /proc/sys/net/ipv4/ip_forward iptables -F FORWARD iptables -A FORWARD -j ACCEPT iptables -A POSTROUTING -t nat -o ppp0 -j MASQUERADE^


ajouter la gateway sur le 2èmePC

Plusieurs façons:
-manuellement : route add default gw 192.168.1.1
-en éditant le fichier /etc/network/interfaces
Copy to clipboard
auto lo eth0 iface lo inet loopback iface eth0 inet static address 192.168.1.2 netmask 255.255.255.0 broadcast 192.168.1.255 gateway 192.168.1.1


DNS et /etc/resolv.conf

Ce fichier sur le PC2 doit contenir les adresses DNS de votre prestataire internet.
Note: il y a un problème lorsque le PC1 n'est pas sur le net, il devient long de se connecter avec ssh.. Les DNS inaccessibles en sont-ils la cause ? Le fait de retirer le gateway résoud le problème.



Créer un service au démarrage

Il est parfois utile que des commandes soient executées au démarrage. Cela varie un peu en fonction des distributions mais l'idée est la même il faut ajouter un script dans /etc/init.d (ne pas oublier de le rendre executable avec chmod+x) contenant les commandes en question. Puis (ex sous Debian):
update-rc.d Mon_Script defaults 99

Le "99" assure que le script sera executé en dernier. Disclaimer: le sujet est plutôt complexe si on veut bien faire. On peut par exemple faire en sorte que le script réagisse à des commandes START et STOP, et aussi choisir le niveau d'init. Se reporter à Lea qui contient un article beaucoup plus complet.


ALSA connection midi réseau avec aseqnet

Alsa propose des commandes pour envoyer des données midi via un résau et donc cela nous évite de devoir utiliser un cable 😊
aseqnet

OSC

OSC est un protocole non lié à une interface particulière pour autant qu'il s'agisse d'une connection réseau. Il y a peu de logiciels Linux qui utilisent OSC mais c'est néanmoins utilisable. Par exemple PureData peut tout à fait envoyer des données de cette façon à un autre programme OSC.


Communication audio entre PC

PureData

Nas (?)

netjack



Historique

Information Version
Wed 27 Feb 2013 22:10 utilisateur_anonyme2 44
Afficher
Mon 09 Apr 2012 16:38 pianolivier +BOX 43
Afficher
Wed 21 Mar 2012 19:40 pianolivier fil d'ariane 42
Afficher
Tue 20 Mar 2012 22:08 pianolivier suppression BOX (début de réorga du dossier) 41
Afficher
Sun 11 Mar 2012 14:31 pianolivier mise en page 40
Afficher
Wed 17 Nov 2010 02:22 reboutte 39
Afficher
Mon 14 Jul 2008 15:31 Norrin_Radd Précisions sur "aseqnet" et les objets de communication audio/messages de Puredata 38
Afficher
Mon 14 Jul 2008 13:09 Norrin_Radd +Précisions sur la commande scp, +Précisions sur les scripts de démarrage sous Gentoo 37
Afficher
Wed 26 Mar 2008 01:54 Norrin_Radd 36
Afficher
Sun 02 Sep 2007 17:28 Norrin_Radd Correcteur orthographique 35
Afficher
Fri 03 Nov 2006 21:00 Norrin_Radd 34
Afficher
Fri 03 Nov 2006 19:49 Norrin_Radd 33
Afficher
Wed 06 Sep 2006 16:03 Norrin_Radd 32
Afficher
Sun 27 Aug 2006 16:38 Norrin_Radd Enfin la partie ssh complétée :) 31
Afficher
Sun 27 Aug 2006 16:11 Norrin_Radd 30
Afficher
Sun 27 Aug 2006 03:47 Norrin_Radd 29
Afficher
Sun 27 Aug 2006 03:24 Norrin_Radd 28
Afficher