Devenir membre
Devenir Membre

ou
Connexion
Se connecter

ou
Tutoriel

PC ‘fanless’ en synthé autonome contrôlé en wifi

Par Dr.Riton le 04/11/2022 - (Confirmé)

Recyclez un PC ‘fanless’ en synthé autonome contrôlé à distance

Depuis une dizaine d’années, on trouve des PC complètement silencieux, bon marché, bien équipés (son, vidéo, wifi intégrés) et robustes (utilisés dans des applications industrielles notamment). Un tel appareil est parfaitement recyclable en PC-instrument de musique autonome, robuste et peu coûteux : synthé, boîte à rythme, piano virtuel...

  • démarrant en moins d’une minute, sans clavier, écran, ni souris ;

  • pilotable localement par un périphérique MIDI ;

  • contrôlable à distance depuis un autre appareil par wifi sécurisé, même sur scène ;

  • raccordable directement à un ampli par son jack 3.5mm « d’usine ».

Pour cela, il convient d’abord d’y installer une distribution Linux légère mais suffisamment bien équipée, par ex. celles recommandées par LinuxMAO (LibraZik, UbuntuStudio, …). Pour ma part, par souci d’homogénéité de mon parc PC familial, j’utilise un Mint dont j’ai ôté les composants inutiles (LibreOffice, la plupart des applications au démarrage, …). Une fois cette base réalisée, il faut :

A. Sur le PC-instrument, sur un compte disposant des droits administrateur :

A.1. Installer le synthé (boîte à rythme, piano, …) qu’on souhaite utiliser, et le cas échéant s’assurer qu’il fonctionne bien avec le contrôleur MIDI USB qu’on prévoit d’y raccorder.

A.2. Installer le paquet openssh qui contient client et serveur ssh

A.3. Installer le logiciel xpra à partir des dépôts xpra : voir les instructions sur https://github.com/Xpra-org/xpra/wiki/Download#-linux – une installation directement depuis les dépôts des distributions classiques ne fonctionnera pas bien.

Xpra va permettre de contrôler l’image du bureau du PC-instrument depuis un PC de contrôle. Il existe d’autres techniques que xpra, mais xpra gère à la fois la sécurité des flux par un tunnel ssh, et la persistance du serveur X du pc-instrument : xpra peut se brancher sur un écran existant, et le quitter sans le fermer. Ainsi le PC-instrument peut fonctionner indifféremment en mode autonome ou contrôlé. Il n’y a rien de spécifique à configurer sur le PC-instrument (hôte). Xpra devra aussi être installé sur le PC de contrôle (client).

A.4. déclarer un utilisateur normal (ici ‘toto’), avec peu de droits. Il faut s'assurer tout de même qu'il est dans le groupe 'audio' : en ligne de commande, sudo adduser toto audio

A.5. déclarer l'utilisateur toto comme login par défaut, sans mot de passe.

Dans le menu AdministrationEcran de connexionUtilisateursConnexion automatique, renseigner le champ Identifiant de l’Utilisateur. Si votre gestionnaire de connexion est LightDM, cela peut aussi se faire zn ligne de commande en éditant le fichier de configuration : sudo nano /etc/lightdm/lightdm.conf et en s’assurant d’y faire figurer les 2 lignes suivantes :
autologin-user-timeout=0
autologin-user=toto

A.6. configurer le réseau du pc instrument en hotspot source: https://computingforgeeks.com/create-wi-fi-hotspot-on-linux/

Toujours depuis le compte administrateur du pc-instrument :

A.6.a. Retrouver le périphérique réseau

En ligne de commande, taper ip link show et rechercher une ligne avec 'wl' dans la sortie :

$ ip link show

1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: enp0s31f6: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether e8:6a:64:86:44:cc brd ff:ff:ff:ff:ff:ff

3: wlp6s0: mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000 link/ether 20:79:18:5e:4b:60 brd ff:ff:ff:ff:ff:ff

4: virbr0: mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00:8e:f6:e5 brd ff:ff:ff:ff:ff:ff

5: virbr0-nic: mtu 1500 qdisc fq_codel master virbr0 state DOWN mode DEFAULT group default qlen 1000 link/ether 52:54:00...

A.6.b. On va créer le point d'accès (hotspot) en ligne de commande (nmcli = network manager command line interface) :

$ IFNAME="wlp6s0" (où il convient bien sûr de remplacer wlp6s0 par la référence de votre périphérque réseau)

$ CON_NAME="moninstrument" (à votre guise mais lettres et chiffres, pas d’accent ni espace)

$ sudo nmcli con add type wifi ifname $IFNAME con-name $CON_NAME autoconnect yes ssid $CON_NAME

A.6.c. Paramétrage de la méthode de connexion : partagée

$ sudo nmcli con modify $CON_NAME 802-11-wireless.mode ap 802-11-wireless.band bg ipv4.method shared

A.6.d. Protéger le réseau (mettez le mot de passe qui vous sied)

$ sudo nmcli con modify $CON_NAME wifi-sec.key-mgmt wpa-psk nmcli con modify $CON_NAME wifi-sec.psk "MyStrongPassword"

A.6.e. Démarrer le point d'accès

/!\ attention, si vous opérez la commande suivante depuis un autre PC via ssh à travers un routeur wifi, la connexion ssh va être instantanément perdue au moment de l'activation. Il suffit alors de se connecter au nouveau réseau local wifi intitulé 'moninstrument' qui apparaît dans le gestionnaire réseau. Si l'adresse IP par défaut du point de connexion (en principe 10.42.0.1) n'est pas connue sur le nouveau réseau local, il faudra rouvrir une session interactive sur le pc-instrument pour exécuter les instructions du point 6. Autrement, ce n'est pas nécessaire et il suffit de s’y connecter en ssh.

$ sudo nmcli con up $CON_NAME
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)

A.6.f. Récupérer l'adresse IP du point d'accès

$ nmcli connection show

NAME UUID TYPE DEVICE
moninstrument ad31dc08-9175-4fe2-85e3-9f33324e1447 wifi wlp6s0

$ ip ad show wlp6s0
3: wlp6s0: mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 20:79:18:5e:4b:60 brd ff:ff:ff:ff:ff:ff

 inet 10.42.0.1/24 brd 10.42.0.255 scope global noprefixroute wlp6s0 *

valid_lft forever preferred_lft forever

inet6 fe80::a119:b393:761c:d740/64 scope link noprefixroute 

valid_lft forever preferred_lft forever

On en a fini de la configuration depuis le compte administrateur.

B. Se logger sur le compte utilisateur (toto) du pc-instrument

B.1. Définir votre synthé comme application au démarrage (Préférences → Applications au démarrage)

B.2. réduire au minimum la configuration en ôtant les autres applications au démarrage, y compris celles qui sont masquées.

B.3. Redémarrer le PC-instrument pour vérifier qu’il démarre bien le synthé sur le compte de l’utilisateur toto

C. Sur le PC de contrôle :

C.1. Comme pour le PC-instrument, il faudra installer xpra sur le PC-contrôleur à partir des dépôts xpra – voir https://github.com/Xpra-org/xpra/wiki/Download#-linux depuis un compte avec droits adminstrateur.

C.2. Depuis le compte qui sera utilisé pour piloter l’instrument, créer une clé crypto :

voir https://serverfault.com/questions/241588/how-to-automate-ssh-login-with-password

$ ssh-keygen -t rsa -b 2048 
Generating public/private rsa key pair.
Enter file in which to save the key (/home/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/username/.ssh/id_rsa.
Your public key has been saved in /home/username/.ssh/id_rsa.pub.

C.3. Passer le PC-contrôleur sur le réseau wifi ‘moninstrument’ du point d’accès du PC-instrument (à l’aide de l’applet de sélection de réseau, icône de la barre des tâches). Le mot de passe saisi à la place de ‘MyStrongPassword’ ci-dessus sera alors demandé.

C4. Partager la clé avec le compte toto du PC-instrument (évitera par la suite de retaper le mot de passe de toto à chaque login)

$ ssh-copy-id toto@10.42.0.1
toto@10.42.0.1’s password:

Se connecter par ssh au compte toto pour vérifier.

C.5. Pour tester, lancer le serveur xpra à distance pour contrôler l’écran du compte toto :

$ xpra shadow ssh:toto@10.42.0.1

Le contenu de l'écran de l'utilisateur toto s'affiche dans une fenêtre et peut être contrôlé.

C.6. Enfin, pour accéder en 1 clic au PC-instrument, utiliser la ligne ci-dessus dans un lanceur sur le bureau du PC-contrôleur.

Soyez le premier à réagir à ce tutoriel

    Vous souhaitez réagir à cet tutoriel ?

    Se connecter
    Devenir membre
    cookies
    Nous utilisons les cookies !

    Oui, Audiofanzine utilise des cookies. Et comme la dernière chose que nous voudrions serait de perturber votre alimentation avec des choses trop grasses ou trop sucrées, sachez que ces derniers sont fait maison avec des produits frais, bio, équitables et dans des justes proportions nutritives.
    Ce que cela veut dire, c’est que les infos que nous y stockons ne visent qu’à simplifier votre usage du site comme à améliorer votre expérience sur nos pages et vous afficher des publicités personnalisées (en savoir plus).

    Nous tenons à préciser qu’Audiofanzine n’a pas attendu qu’une loi nous y oblige pour respecter la vie privée de nos membres et visiteurs. Les cookies que nous utilisons ont en commun leur unique objectif qui est d’améliorer votre expérience utilisateur.

    Tous nos cookies
    Cookies non soumis à consentement
    Il s'agit de cookies qui garantissent le bon fonctionnement du site Audiofanzine. Le site Web ne peut pas fonctionner correctement sans ces cookies. Exemples : cookies vous permettant de rester connecté de page en page ou de personnaliser votre utilisation du site (mode sombre ou filtres).
    Google Analytics
    Nous utilisons Google Analytics afin de mieux comprendre l’utilisation que nos visiteurs font de notre site pour tenter de l’améliorer.
    Publicités
    Ces informations nous permettent de vous afficher des publicités qui vous concernent grâce auxquelles Audiofanzine est financé. En décochant cette case vous aurez toujours des publicités mais elles risquent d’être moins intéressantes :) Nous utilisons Google Ad Manager pour diffuser une partie des publicités, des mécanismes intégrés à notre CMS pour le reste. Nous sommes susceptibles d’afficher des publicités provenant de notre propre plateforme, de Google Advertising Products ou encore de la régie Adform.

    Nous tenons à préciser qu’Audiofanzine n’a pas attendu qu’une loi nous y oblige pour respecter la vie privée de nos membres et visiteurs. Les cookies que nous utilisons ont en commun leur unique objectif qui est d’améliorer votre expérience utilisateur.

    Tous nos cookies
    Cookies non soumis à consentement

    Il s’agit de cookies qui garantissent le bon fonctionnement du site Audiofanzine. Le site Web ne peut pas fonctionner correctement sans ces cookies. Exemples : cookies vous permettant de rester connecté de page en page ou de personnaliser votre utilisation du site (mode sombre ou filtres).

    Google Analytics

    Nous utilisons Google Analytics afin de mieux comprendre l’utilisation que nos visiteurs font de notre site pour tenter de l’améliorer. Lorsque ce paramètre est activé, aucune information personnelle n’est envoyé à Google et les adresses IP sont anonymisées.

    Publicités

    Ces informations nous permettent de vous afficher des publicités qui vous concernent grâce auxquelles Audiofanzine est financé. En décochant cette case vous aurez toujours des publicités mais elles risquent d’être moins intéressantes :) Nous utilisons Google Ad Manager pour diffuser une partie des publicités, des mécanismes intégrés à notre CMS pour le reste. Nous sommes susceptibles d’afficher des publicités provenant de notre propre plateforme, de Google Advertising Products ou encore de la régie Adform.


    Vous pouvez trouver plus de détails sur la proctection des données dans la politique de confidentialité.
    Vous trouverez également des informations sur la manière dont Google utilise les données à caractère personnel en suivant ce lien.