Mise en service d’un Raspberry Pi

Mise en service d’un Raspberry Pi

Article créé le 9 juin 2016, mis à jour le 22 avril 2020 suite à la mise en service d’un Raspberry Pi 3 avec Raspbian Buster.

Pour démarrer un Raspberry Pi neuf, il y a plusieurs opérations à réaliser. On trouve énormément de documents sur internet et je ne veux pas en ajouter un énième. Cet article vise simplement à établir une check-list pour me simplifier la vie.

Mettre l’OS Rasbian sur la carte SD

  1. Télécharger Raspbian (sur le site de la fondation Raspberry Pi). Si on n’a pas besoin d’interface graphique, on peut utiliser Buster lite, beaucoup moins volumineux.
  2. Suivre les instructions associées pour copier Raspbian sur une carte SD. Attention “Raspbian Buster with desktop and recommended software” fait 2.5 Go en tant qu’image puis prend 4 Go une fois décompressé. Il faut impérativement prévoir une carte SD d’au moins 8 Go.
  3. Si on veut connecter le Pi de manière “headless” (sans écran, clavier et souris), voir ci-dessous avant de déconnecter la carte SD du PC
  4. Si on veut que le Pi se connecte en wifi,voir ci-dessous avant de déconnecter la carte SD du PC.

Autres paramètres pour la carte SD

Autoriser la liaison SSH (headless)

On doit placer un fichier vide nommé ssh (sans extension) dans le répertoire boot de la carte SD. Pour plus d’explications voir cet article sur le site officiel du Raspberry Pi. On réalise cette opération par l’intermédiaire du lecteur de carte SD. Ensuite, lorsque le Pi démarre, il recherche ce fichier. S’il le trouve, il active le SSH puis détruit le fichier

Régler le wifi

Si on veut que le Pi se connecte en wifi, il faut lui donner les paramètres wifi. Sur cette page on voit comment faire.  En l’occurence j’ai placé le fichier wpa_supplicant.conf  dans le répertoire boot de la carte sd. Ce fichier contient les informations suivantes :

# wpa_supplicant.conf

# see https://github.com/binnes/tobyjnr/wiki/Raspberry-Pi-Initial-setup

# place this file named wpa_supplicant.conf in the /boot directory

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev

update_config=1

country=FR

network={

ssid="mon-reseau1"

psk="password1"

id_str="home 1"

priority=1

}

network={

ssid="mon-reseau2"

psk="password2"

id_str="home 1"

priority=2

}

Encrypter le mot de passe wifi

En principe on ne devrait pas mettre les mots de passe en clair. Une bonne pratique est d’encrypter cette information par un “hash”. J’ai découvert comment faire dans cet article en anglais.

Sur un Pi (on peut le faire plus tard si on n’a pas de deuxième pi), en ligne de commande, on tape wpa_passphrase mon-reseau2 password2 et en retour on obtient l’information cryptée : network={ ssid="mon-reseau2" #psk="password2" psk=261066f1ec70322a9b305031fd2164401fbae41235107dc66eaad93ed991abcf }

Je n’ai plus qu’à placer ce mot de passe cryptée à la place de celui que j’avais initialement mis en clair.

Brancher le Pi

Equipement nécessaire :

  • un chargeur 5V et au moins 1A avec un cable micro-USB ;
  • un cable ethernet.

Et c’est tout ! Il n’y a pas besoin de connecter le Pi à un clavier et un écran car il autorise la connexion SSH si on a placé un fichier ssh comme indiqué ci-dessus.

Premier démarrage

Dans l’écran du routeur, on voit apparaître un nouvel appareil, nommé RASPBERRYPI. Pour moi il a l’adresse IP 192.168.1.14.

Dans l’invite de commande Windows, ping RASPBERRYPI ne fonctionne pas mais ping 192.168.1.14 donne une réponse.

Accès SSH avec Cygwin

J’utilise Cygwin pour l’accès ssh. C’est très bien mais d’autres préfèrent PuTTY, que je n’ai jamais essayé. Pour l’installer, voir cet article : Installer et utiliser Cygwin pour le ssh avec un Pi.

Pour installer Cygwin exécuter setup.exe en tant qu’administrateur (en cliquant à droite sur le programme puis en sélectionnant « exécuter en tant qu’administrateur » et suivre les instructions. Choisir les packages à installer proposés plus : Admin cygrunsrv Admin shutdown Net openSSH

Démarrer la session avec  ssh pi@192.168.1.14 (l’adresse est donnée en allant regarder quelle est l’adresse du dispositif “RASPBERRYPI”, dans le tableau de bord du routeur ou de la box.

Attention, depuis fin novembre 2016, les distributions Rasbian ont le ssh désactivé par défaut (voir cet article sur le site officiel du Raspberry Pi). Il faut avoir suivi les instruction n°3 du chapitre “Avant le démarrage ci-dessus.

Nota : si on s’est déjà connecté en SSH à la même adresse, on peut avoir une erreur “@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!”. Dans ce cas, ssh-keygen -R 192.168.1.14  va générer une nouvelle clé SSH et la commande ssh pi@192.168.1.14  va fonctionner correctement.

Le mot de passe pour l’utilisateur pi est raspberry.

Et voilà !

Premiers paramétrages

sudo raspi-config  nous amène à la configuration du Pi.

Au démarrage on est en anglais, on peut le changer si on préfère. Je ne le change pas.

On navigue avec les flèches de direction, on sélectionne avec la tabulation puis <ENTREE>.

Voici les changements à faire :

expand FileSystem (advanced options)Oui, pour utiliser toute la carte SD
Time zone (internationalisation)Europe / Paris
 Wait for network at boot Par défaut sur “non” dans Jessie ou stretch mais sur “oui” dans Jessie Lite ou stretch. Régler sur “NON”
Hostname (Network options)Mettre un nom unique (AlRadio)
Password:Modifier, ça ne doit plus être ‘raspberry’ pour l’utilisateur pi

Noter qu’en principe on ne modifie pas ces éléments :

configure keyboardInutile si pas de clavier
ssh (dans interfacing options)activer est déjà réalisé
Boot OptionB1 console (on n’accède pas en mode graphique) – on pourra toujours accéder à l’interface graphique avec la commande startx

Ensuite on tape init 6  pour redémarrer le Pi.

On peut vérifier l’espace libre sur la carte SD en tapant

df -h
Si on a utilisé une carte SD de 8 Go, on devrait voir que /dev/root fait environ 7 Go, avec environ 50% used, 50% available (disponible) si Raspbian Buster"normal", 12% si Buster "lite". 

Autres réglages préliminaires

créer un utilisateur

Pour créer un utilisateur ‘al’ :

sudo useradd -m -G adm,dialout,cdrom,audio,plugdev,users al

puis créer son mot de passe

sudo passwd al

Changer le mot de passe root

sudo passwd root

nous demande le nouveau mot de passe. On peut ensuite devenir root en tapant su –  puis le mot de passe correspondant.

Changer le mot de passe pi

Cet article, déjà cité, insiste sur l’importance du changement du mot de passe par défaut de l’utilisateur pi afin contrer les pirates qui utilisent l’internet des objets pour faire tomber des sites.

sudo passwd pi

nous demande le nouveau mot de passe, qui ne doit pas être ‘raspberry’ !

On peut aussi supprimer l’utilisateur pi, comme proposé dans “SECURING YOUR RASPBERRY PI“.

installer l’éditeur mc

Pour installer l’éditeur MidnightCommander, en tant que root (avec su –  , sinon sudo devant la commande) :

apt-get install mc

Ca prend plusieurs minutes.

Ensuite, pour le démarrer

mc

Dans mc, on peut utiliser la souris, cliquer sur options / Configuration  puis entre [ ]  devant “Use Internal Editor”. Comme ça on n’aura jamais besoin d’utiliser l’affreux éditeur nano fourni par défaut.

Si pour une raison ou une autre la souris ne fonctionne pas, on accède au menu avec F9 puis les flèches de direction.

Sortir de mc avec F10.

autoriser la connexion en tant que root (ssh ou ftp)

Editer, avec mc, le fichier /etc/ssh/sshd_config

Trouver la ligne sous # Authentication:  contenant PermitRootLogin without-password .

La changer en PermitRootLogin yes

permettre à windows de trouver le hostname

On a vu précédemment que ping ne fonctionnait pas avec le nom du Pi et c’est toujours le cas. On est obligé d’utiliser l’adresse IP du Pi, ce qui n’est pas pratique.

Pour y parvenir, il faut installer Samba sur le Pi et régler le “workgroup” au même groupe que celui de l’ordinateur windows utilisé.

Installer Samba avec cette commande (qui met longtemps à s’exécuter…) :

apt-get install samba samba-common-bin

Editer, avec mc, le fichier /etc/samba/smb.conf et changer la ligne workgroup = WORKGROUP  pour que WORKGROUP corresponde au bon nom.

Pour trouver le nom du workgroup utilisé par windows 10, aller dans paramètres puis système puis information système. Le nom du workgroup est indiqué en face de “organisation”.

Redémarrer avec init 6  ou reboot .

Changer le fichier .bashrc

C’est le fichier qui contient la configuration du “shell” de l’utilisateur. Il définit en particulier les couleurs employées pour différents éléments.

Le plus simple est de prendre un fichier .bashrc d’un autre Pi, par exemple en FTP. Ensuite, dans le nouveau Pi, renommer le fichier .bashrc en .bashrcOLD et copier le nouveau fichier .bashrc.

A faire pour tous les utilisateurs définis dans le Pi (/home/pi/.bashrc) et pour root aussi (/root/.bashrc).

J’ai en particulier défini la ligne PS1 comme suit :

PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\] \[\033[01;34m\]\w \$\[\033[00m\] '

Redémarrer

init 6  ou reboot .

Notre Raspberry Pi est prêt.

Vérifier le paramétrage

est-ce que le pi est repérable par son nom ?

Depuis mon ordinateur Windows, je “ping” le pi dans l’invite de commande.

un ping du Pi par son “hostname” devrait renvoyer quelque chose

Si le ping ne renvoie rien, c’est probablement que le paramétrage de Samba n’a pas été fait correctement.

Vérifier le nom ‘hostname’ du pi et autres infos

La commande hostnamectl nous indique différentes informations comme le nom de l’appareil, sa version de Raspbian, etc

Faire une copie de la carte sd

A ce stade, si l’on veut éviter de devoir tout refaire pour un autre Pi, on peut faire une copie de la carte SD à l’aide de cet article. Attention si on fait ainsi la copie, on ne pourra restaurer la sauvegarde que sur une carte sd au moins égale à celle d’origine. Si besoin voir cet article en anglais, sur la manière de réduire (shrink) la taille d’une image disque.

Accéder au Pi en ftp

J’utilise Filezilla.

Hôte : hostname du pi

protocole “sftp-ssh file transfer protocol”

Type d’authentification : demander le mot de passe

identifiant pi ou autre utilisateur ou root

mot de passe : selon l’utilisateur désigné

Commandes utiles

Quelques commandes utiles

apt updategénère une liste de ce qui doit être mis à jour
apt full-upgrade -y fait la mise à jour des paquets
rpi-updateUpdate the Pi firmware. Si la réponse est “rpi-update: command not found”, lancer apt-get install rpi-update  avant.
apt-get cleanefface les paquets téléchargés pour la mise à jour

Pour redémarrer : reboot  ou init 6

Pour éteindre le Pi : init 0 ou halt -p . Il est préférable d’éviter de le débrancher sans l’avoir éteint avant.

Si nécessaire (affichage de The following packages were automatically installed and are no longer required), on peut exécuter apt autoremove  pour enlever tous les paquets qui ne sont plus utiles.

Pour mettre à jour le Pi avec des correctifs de sécurité :

sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install -y pprompt

Et maintenant ?

On peut avoir d’autres éléments à installer ou régler :

Et maintenant, notre Pi est prêt pour une belle aventure !

Des « clients » pour serveur Mini DLNA et UPnP

Des « clients » pour serveur Mini DLNA et UPnP

Dans deux articles précédents de cette série , nous avons installé un serveur miniDLNA et un lecteur de musique (GMediaRender) sur un Raspberry Pi 3. Maintenant je veux pouvoir écouter la musique de ce Pi sur un téléphone mobile, une tablette ou un PC.

Clients, renderers, serveurs ????

J’ai installé sur le Pi un serveur DLNA qui permet de lister mes musiques et de les proposer à d’autres appareils. Le serveur ne joue pas la musique. Et le serveur ne peut pas décider quelle musique servir.

Pour écouter la musique de ce Pi où que je sois dans le réseau local, il me faut donc deux choses essentielles :

  • un « client» qui va contrôler le serveur et lui dire quelle musique choisir, composer des listes de lecture et dire où les restituer. Ce client peut être un PC, un appareil mobile (android, iOS,…) ou un appareil électronique compatible (une télévision par exemple) ;
  • un « renderer» qui va jouer la musique définie par un client. Souvent le client est également renderer, mais ce n’est pas toujours le cas.

Mes choix de clients et renderers

J’ai installé des clients qui font également « renderer » sur Android ou Windows 10. Sur le Pi, j’ai installé un « renderer » seulement pour qu’il joue de la musique dans un amplificateur situé à proximité. Sur iOS, je ferai des essais plus tard.

Je ne suis pas certaine d’avoir fait les bons choix. J’avais aussi comme critère que les applications soient compatibles DLNA, UPnP et « Open Home » car je veux installer un serveur UPnP sur le Pi (ce sera l’objet du prochain article de cette série). J’ai fait quelques essais et ce qui m’a semblé bien, c’est le choix suivant :

  • Sur Android : BubbleUPnP. Je l’installe et immédiatement Il voit ‘al music’, le « friendly name » du serveur DLNA

BubbleUPnP, client android DLNA et UPnP

  • Sur Windows 10, Windows Media Player. Je l’ai essayé en dernier et il fonctionne parfaitement. Il repère aussi ‘al music’ sans aucun réglage. J’ai donc rangé mes a priori et décidé de l’utiliser ! Sur Windows, VLC fonctionne avec le serveur miniDLNA mais c’est un peu plus compliqué et surtout ça paraît quasi impossible avec UPnP.
  • Sur Linux (Debian), pour le Pi, j’ai installé gMediaRender, dans une version compatible DLNA, UPnP et « Open Home». J’explique tout dans l’article XXX.
  • Dès que j’aurai la visite d’un appareil iOS, je proposerai d’essayer Linn Kazoo (Windows, Mac, android, iPad) ou LUMIN (iPad)
  • J’ai également très envie d’un appareil Chromecast audio qui deviendrait un renderer (une fois que j’aurai installé un serveur UPnP sur le Pi) pour jouer ma musique numérisée sur ma chaine hifi très ancienne.

Nota : pour une utilisation optimale, il faut acheter la licence de BubbleUPnP UPnP/DLNA (montant 3.99 €). Avant de le faire, je vais essayer d’autres solutions Android pour décider laquelle est la plus conviviale :

Je mettrai à jour cet article lorsque j’aurai tranché.

Et maintenant ?

Il faut que j’installe mon serveur UPnP sur le Pi pour avoir une vision globale. Ce sera l’objet du prochain article de cette série, .

GMediaRender sur Raspberry Pi pour lire de la musique d’un serveur DLNA, UPnP, Open Home

GMediaRender sur Raspberry Pi pour lire de la musique d’un serveur DLNA, UPnP, Open Home

Dans cet article de la série, , j’explique simplement comment installer une version compatible DLNA, UPnP et “Open Home” de GMediaRender, fondée sur gmrender-resurrect. Pour en savoir plus sur le fonctionnement d’un serveur DLNA, d’un serveur UPnP et du protocole “Open Home”, il vous faudra lire les autres articles de cette série 😯 !

Installer gstreamer 1.0 et gmrender-resurrect UPnP renderer

Selon « Playing music on a Raspberry Pi using UPnP and DLNA (v3) » avec des modifications pour tenir compte que j’ai une installation plus récente, avec en particulier Raspbian Stretch et pas Wheezy.

Pour installer gstreamer 1.0, on copie tout ce qui suit (les deux lignes) et on le colle dans le terminal de notre Pi :

wget -O - http://www.chiark.greenend.org.uk/~christi/debian/christi@coraline.org.gpg.key \

| sudo apt-key add -

On doit avoir un message « OK ».

Ensuite on crée un nouveau fichier /etc/apt/sources.list.d/upnprender.list  pour y ajouter l’adresse du dépôt de Christi Scarborough pour gstreamer 1.0 :

cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/upnprender.list

Pour comprendre (un peu) ce qu’est une sources list, voir cet article, en français.

Dans le nouveau fichier on supprime le contenu de raspi.list et on ajoute la ligne suivante. Les instructions originelles disent de terminer par wheezy main. Ce serait juste si on utilisait encore la distribution Wheezy de Raspbian. Mais depuis 2013 elle a été remplacée par Jessie puis Stretch. Comme j’utilise Stretch, je termine par stretch main

deb http://www.chiark.greenend.org.uk/~christi/debian/ stretch main

Puis on met à jour la liste des paquets avant d’installer gmrender-resurrect

apt-get update

Il y a une erreur liée au fait qu’il n’y a pas de version stretch dans le dépôt ‘http://www.chiark.greenend.org.uk/~christi/debian. Mais l’erreur ne paraît pas majeure…

Je poursuis l’installation de gmrender-resurrect en copiant collant l’ensemble des 4 lignes sur une seule ligne du terminal du Pi :

apt-get install libupnp-dev libgstreamer1.0-dev \

gstreamer1.0-plugins-base gstreamer1.0-plugins-good \

gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly \

gstreamer1.0-alsa

Installation de gmediarender

Installer git avec

apt-get install git

On exécute ensuite les commandes suivantes, les unes après les autres :

cd

git clone https://github.com/hzeller/gmrender-resurrect.git

cd gmrender-resurrect

apt-get install autoconf

./autogen.sh

./configure

make install

Ca place gmediarender dans /usr/local/bin  et des icones dans /usr/local/share/gmediarender

Et maintenant on peut ponctuellement lancer le renderer, en lui donnant le nom qu’on veut (l’option –f dit quel nom on veut donner)

./src/gmediarender -f "Pi Bureau"

Ca fonctionne correctement. On fait CTRL C pour en sortir.

Faire fonctionner gmediarender comme un service

Pour que gmediarender démarre comme un service, il faut copier le contenu de  scripts /root/gmrender-resurrect/init.d/gmediarenderer dans /etc/init.d (ou home/votre-nom-d’utilisateur/gmrender-resurrect/init.d/gmediarenderer si vous n’êtes pas connecté en root au Pi)

cp scripts/init.d/gmediarenderer /etc/init.d

On édite /etc/init.d/gmediarender  pour définir le nom du « renderer » et corriger si nécessaire l’utilisateur :

DAEMON_USER="al:audio"

UPNP_DEVICE_NAME="Pi Bureau"

Puis on utilise update-rc.d pour que ces informations soient placées correctement dans le Pi.

update-rc.d gmediarenderer defaults

On redémarre le Pi (reboot  ou shutdown -r now ). gmediarender démarre. On peut le vérifier avec

ps aux|grep gmedia

Cette commande renvoit

552 11.9  6.9 317764 66444 ?        Ssl  10:01   0:02 /usr/local/bin/gmediarender -f Pi Bureau -d -u 7aff11df49801835fb41c5ea6c54bfa0 --gstout-audiosink=alsasink --gstout-audiodevice=sysdefault --gstout-initial-volume-db=-10

root       657  0.0  0.0   4372   560 pts/0    S+   10:02   0:00 grep --color=auto gmedia

Ca fonctionne et le “renderer” s’appelle Pi Bureau.

Sur mon ordinateur Windows, je peux maintenant destiner de la musique à “Pi Bureau” en cliquant à droite sur une liste de lecture ou un morceau dans Windows Media Player.

gMediaRender sur Raspberry Pi

Et maintenant ?

Dans les prochains articles de cette série , j’expliquerai quels “clients” j’ai choisi pour faire fonctionner mon serveur DLNA et jouer de la musique du serveur. J’ajouterai également un serveur BubbleUPnP au Pi afin de disposer d’un partage des listes de lecture et d’un fonctionnement aux normes “Open Home”.

Raspberry Pi : créer un serveur de musique miniDLNA

Raspberry Pi : créer un serveur de musique miniDLNA

Dans le premier article de cette série, , j’ai expliqué comment créer un serveur utilisant MPD. Mais je n’étais pas vraiment satisfaite. Depuis j’ai acheté un Raspberry Pi 3 et je me suis dit qu’il était temps de passer à un niveau supérieur.

Dans cet article, j’explique comment créer un serveur de musique miniDLNA qui va gérer toute ma musique numérique et la rendre accessible via des appareils Android (ou Apple). Dans un prochain article de cette même série, , j’expliquerai comment y ajouter un serveur UPnP.

De quoi j’ai besoin ?

  • Un raspberry Pi 3  ;
  • Un cable ethernet (on peut opter pour le wifi mais ce n’est pas ce que j’ai choisi) ;
  • un disque dur USB ;
  • Une alimentation USB pour le Raspberry Pi et le disque dur.

Préparer le Raspberry Pi (Raspbian Stretch, IP fixe)

J’ai installé Raspbian Stretch Lite (sans la partie graphique) en suivant les instructions de mon article Mise en service d’un Raspberry Pi.

Le “hostname” de mon Pi est : AlMusicServer. C’est le nom que j’utilise pour me connecter.

J’ai réglé ce Pi sur l’adresse IP fixe (connexion ethernet) 198.168.1.102 selon les instructions de mon article Raspberry Pi : connexion internet en wifi et/ou IP fixe.

Régler la sortie audio

Pour le réglage et les tests, je me suis inspirée des articles suivants :

ALSA est le système Linux de gestion du son. Le paquet alsa-utils est pré-installé dans les distributions Raspbian et contient des commandes utiles pour tester et régler le son de notre Raspberry Pi.

J’ai connecté mon Pi via le connecteur Jack 3.5mm. Ce n’est pas la meilleure solution pour une bonne qualité audio. On a intérêt à utiliser au moins une carte son USB, voire un DAC Hifi. Je verrai ça ultérieurement.

Dans le terminal, s’assurer que le mode audio renvoie bien au connecteur jack (et pas HDMI) avec

amixer cset numid=3 1

Pour tester le son

!!! Attention à bien enfoncer le connecteur Jack, sinon il y a du bruit dans les HP et rien ne fonctionne !!!

speaker-test

Ca fait un bruit (léger) dans les haut parleurs. Il faut régler le volume fort pour l’entendre.

aplay /usr/share/sounds/alsa/Noise.wav

Fait aussi du bruit, qu’on entend que si le volume est très fort

Pour voir les périphériques audios et leurs pilotes

aplay –l  liste tous les périphériques audio présents

lsmod  permet de voir quel pilote est associé au(x) périphérique(s) audio.

Pour régler le son

amixer controls  renvoie

numid=3,iface=MIXER,name='PCM Playback Route'

numid=2,iface=MIXER,name='PCM Playback Switch'

numid=1,iface=MIXER,name='PCM Playback Volume'

numid=5,iface=PCM,name='IEC958 Playback Con Mask'

numid=4,iface=PCM,name='IEC958 Playback Default'

Playback switch règle le son sur “ON” ou « OFF ».  Réglé sur On, le son sort des haut parleur au volume défini pat numid=1 (playback volume). Réglé sur Off, les haut pareleurs sont muets quel que soit le réglage de volume.

amixer cget numid=1  doit donc nous indiquer quel est le réglage du volume. Ca me dit :

; type=INTEGER,access=rw---R--,values=1,min=-10239,max=400,step=0

  : values=-2000

  | dBscale-min=-102.39dB,step=0.01dB,mute=1

Pour régler le son au maximum, je tape (noter qu’au lieu de cget j’utilise cset) :

amixer cset numid=1 100%

Maintenant aplay /usr/share/sounds/alsa/Noise.wav  émet maintenant un son que j’entends mieux.

Et pour régler le volume sur 100% et la sortie sur ON et qu’elle soit utilisée à chaque redémarrage du Pi

amixer cset numid=1 100%

amixer cset numid=2 on

alsactl store

Mon son fonctionne.

Si j’utilisais une carte son USB (on en trouve à des prix dérisoires), il faudrait que j’identifie son microprocesseur selon https://learn.adafruit.com/usb-audio-cards-with-a-raspberry-pi/figure-out-your-chipset. Ensuite selon le microprocesseur utilisé, je suivrais les instructions d’Adafruit dans le tutoriel USB Audio Cards with a Raspberry Pi.

Ajouter un disque dur USB

Connecter un disque dur USB puis suivre les instructions de mon article Monter un disque dur externe partagé sur un Raspberry Pi.

Ma musique est dans /media/iomega/MULTIMEDIA/musique.

Installer un serveur miniDLNA

DLNA ?

Cet article, en français, explique plutôt bien ce qu’est le DLNA. Pour résumer, je dirai juste Le DLNA (Digital Living Network Alliance) a été créé par Sony et d’autres entreprises pour définir des pratiques permettant le partage de médias digitaux entre appareils électroniques. En 2015, selon Wikipedia, plus de 200 entreprises participaient à cette alliance.

Installation de mini DLNA sur notre Raspberry Pi 3

J’ai suivi les instructions de Raspberry Pi Media Server – MiniDLNA., avec une correction pour que la base de données se mette à jour correctement lorsque je modifie les fichiers de musique (source : ce sujet sur le forum Raspberrypi.org)

apt-get install minidlna

Copier le fichier de configuration pour le conserver avant modification

cp /etc/minidlna.conf /etc/minidlna.OLD

puis modifier /etc/minidlna.conf

Ma musique est dans /media/iomega/MULTIMEDIA/musique suite à l’installation du disque dur. Il ne faut pas mettre directement ce répertoire dans la configuration de miniDLNA car dans ce cas inotify ne fonctionne pas correctement.

On doit laisser un répertoire local (sur la carte SD) et on crée un lien vers la véritable localisation des fichiers de musique ensuite… Comme ça inotify fonctionne, c’est à dire qu’il surveille en permanence si des fichiers sont modifiés et met alors la base de données à jour (si les modifications sont réalisées pendant que miniDLNA fonctionne).

Je modifie donc les lignes suivantes (pour la ligne inotify=yes, j’ai simplement décommenté la ligne) :

media_dir=A,/var/lib/minidlna/music

db_dir=/media/iomega/MULTIMEDIA/

friendly_name= AL Music

inotify=yes

Dans le terminal du Pi, je définis un lien entre /var/lib/minidlna/music et /media/iomega/MULTIMEDIA/musique :

ln -s /media/iomega/MULTIMEDIA/musique /var/lib/minidlna/music

On peut verifier que ça fonctionne en cliquant sur /var/lib/minidlna/music dans filezilla. On est enmené automatiquement sur /media/iomega/MULTIMEDIA/musique

Je démarre le service avec la commande

service minidlna start

Le disque tourne pendant un bout de temps.

Le log est dans /var/log/minidlna.log . Pour savoir en temps réel ce qui se passe, je peux utiliser

service minidlna status

Dans l’explorateur Windows, un clic sur “Réseau » affiche AL Music. Si je clique dessus, j’accède au lien http://192.168.1.102:8200/.

Si j’ai modifié les fichiers pendant l’arrêt de miniDLNA, je redémarre en forcant la reconstruction de la base de données :

service minidlna force-reload

Gestion des utilisateurs

C’est assez bizarre que je ne doive pas définir d’utilisateur et de groupe pour miniDLNA. Mais comme tout semble fonctionner… Si jamais on a un problème, il faudra peut-être s’inspirer de cet article de la documentation Ubuntu.

Lire des radios internet avec MiniDLNA

Dans ce forum, la solution de phile est de créer une playlist contenant les url des radios souhaitées et le sauvegarder en mode .txt avant de le renommer avec une extension .m3u. L’auteur met même une playlist exemple en téléchargement sur dropbox ici.

Ensuite on place le fichier dans le répertoire musique du Pi, /media/iomega/MULTIMEDIA/musique/.

Avec Windows Media Player, si je clique sur « Playlists » dans la bibliothèque DLNA « AL Music », je vois toutes mes listes, y compris la liste que je viens de placer. Mais je ne peux pas la lire. PAr contre, si je lis une radio internet (CTRL U dans Windows Media Player puis lien vers un flux internet, par exemple http://chai5she.cdn.dvmr.fr/bfmbusiness pour BFM), je peux la mettre dans la play list créée et elle apparaît bien dans le contenu de mon Pi (/media/iomega/MULTIMEDIA/musiqueRadio – 2015 12 04 – HCFR.m3u.

C’est sans doute lié au problème d’utilisateur indiqué plus haut… A suivre !

Et maintenant ?

Dans un prochain article de cette même série, , j’expliquerai quelles applications on peut utiliser pour accéder au serveur à partir d’un PC ou d’un appareil mobile présent sur le réseau local. Un autre article expliquera comment ajouter un serveur UPnP à notre Raspberry Pi pour rendre l’utilisation vraiment confortable, voire même accéder à notre musique via internet.

Raspberry Pi : Utilisation de VNC Viewer pour accès graphique d’un PC

Raspberry Pi : Utilisation de VNC Viewer pour accès graphique d’un PC

Cet article date de début 2018. En avril 2020 j’ai écrit un autre article avec une autre solution qui semble mieux adaptée. je vous invite donc à consulter également mon article “Raspberry Pi : accès graphique à distance (VNC)“.

Je connecte mes Raspberry Pi en mode “headless”, c’est à dire sans écran, clavier et souris dédiés. Je m’y connecte en SSH à partir de mon PC (Windows). VNC (Virtual Network Computing) permet d’accéder facilement à l’interface graphique du Pi, même à distance. Il permet également d’accéder au Pi en mode cloud, à distance et de manière sécurisée.

Pour ce qui suit, je suis partie de l’article, en anglais, “VNC (Virtual Network Computing)” de www.raspberrypi.org.

Avec Raspbian en mode graphique (pas ‘lite’)

Activer VNC sur le Raspberry Pi (Raspbian Stretch)

En SSH (j’utilise Cygwin, comme je l’explique dans l’article “Mise en service d&rsquo;un Raspberry Pi”), activer VNC par la commande  raspi-config  puis dans l’option “5 Interfacing Options”, choisir “VNC” puis “Yes”. VNC est maintenant activé.

Sur l’ordinateur distant (windows 10)

Télécharger RealVNC Viewer, (pour moi version Windows, je choisis MSI Installers).

Extraire le fichier zip puis choisir l’exécutable correspondant à ma version (64 bits pour mon PC)

Attention il faut choisir « entire feature will be installed on local hard drive” :

Installation de VNC Viewer sous Windows

Ensuite, on clique sur “Next” puis “Install”.

On lance ensuite VNC Viewer sur le PC. On entre l’adresse IP du Pi, le nom d’utilisateur et le mot de passe correspondant. Et voilà, je dispose de l’interface graphique du Pi sur mon PC, comme si mes écran, clavier et souris étaient connectés au Pi directement !

Accès distant à l'interface graphique d'un Raspberry Pi "headless" sous NC Viewer

Ca fonctionne parfaitement !

Avec Raspbian en mode ‘lite’

Le mode ‘lite’ de Raspbian ne contient pas l’interface graphique. C’est la distribution que j’installe le plus souvent car elle est moins gourmande en espace disque et me convient parfaitement puisque je n’ai jamais accédé au Pi par l’interface graphique. Ca changera peut-être maintenant que j’ai découvert VNC Viewer.

J’active VNC de la même manière que précédemment sur le Raspberry Pi.

Là si je démarre VNC Viewer, j’ai un écran mais noir et je n’ai pas accès au terminal. C’est donc sans intérêt apparemment (voir si dessous quand même !).

Que puis-je faire d’autre avec VNC Viewer et un Raspberry Pi ?

Dans la documentation de VNC Viewer sur l’utilisation avec un Raspberry Pi, je lis que l’on peut :

  • avoir un accès graphique à distance, même sur un Pi avec Raspbian ‘lite’ en utilisant le “virtual desktop”.
  • Se connecter à distance par une connexion “cloud”. C’est une manière sécurisée et gratuite d’avoir un accès à distance à notre Pi.

Pour l’instant je n’ai pas besoin d’un accès à distance et Cygwin me convient parfaitement pour l’accès SSH au terminal d’un Pi sans interface graphique.

Je verrai ces nouvelles fonctionnalités plus tard.