momh

Raspbian Bullseye Lite sur NAS Argon Eon

On choisit pour notre nouveau NAS Argon Eon « propulsé » par un Raspberry Pi de se passer d’interface graphique et on opte donc pour la distribution Raspbian Bullseye Lite.

Une fois notre carte microSD créée (merci à l’utilitaire rpi-imager) et les premières configurations réalisées grâce à l’outil raspi-config (changement de mot de passe, localisation, clavier...), on peut passer à sa préparation ; au programme : alsa et bluetooth, partage de fichiers, mpd, transmission-daemon, flexget, Spotify Connect...

Maintenance et configuration

On commence par réaliser une mise à jour du système :

sudo apt update && sudo apt upgrade && sudo reboot

Puis on installe l’utilitaire de gestion du NAS Argon Eon, qui gère notamment la vitesse de ventilation :

curl https://download.argon40.com/argoneon.sh | bash

Wi-Fi et IP fixe

Pour se connecter à un réseau Wi-Fi, il suffit d’utiliser l’utilitaire raspi-config et d’initier le premier choix, Wireless Lan, du premier menu, System Options.

Les informations de connexion devrait alors se retrouver dans le fichier /etc/wpa_supplicant/wpa_supplicant.conf :

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=FR

network={
	ssid="SSID"
	psk="PASSWORD"
}

Pour attribuer une IP fixe à votre Raspberry, il convient tout d’abord d’identifier l’interface réseau Wi-Fi, a priori wlan0, grâce à la commande ifconfig. Ensuite, il faut éditer le fichier /etc/dhcpcd.conf et ajouter une nouvelle interface :

interface wlan0
static ip_address=192.168.1.56
static routers=192.168.1.1
static domain_name_servers=80.67.169.12 80.67.169.40 2001:910:800::12 2001:910:800::40

La dernière ligne permet d’utiliser les serveurs DNS de French Data Network et de ne plus subir certaines restrictions, notamment celles limitant l’accès à des sites de torrents (cf. infra).

Alsa et bluetooth : bluealsa

Il semble que le paquet bluealsa ne soit plus disponible dans la branche stable de Debian et ne se trouve que dans unstable...
Plutôt que de le compiler depuis ses sources, j’ai récupéré les paquets nécessaires dans les dépôts Debian et les ai simplement installé avec apt :

wget http://ftp.fr.debian.org/debian/pool/main/b/bluez-alsa/libasound2-plugin-bluez_3.0.0-2_armhf.deb
wget http://ftp.fr.debian.org/debian/pool/main/b/bluez-alsa/bluez-alsa-utils_3.0.0-2_armhf.deb
sudo apt install ./libasound2-plugin-bluez_3.0.0-2_armhf.deb
sudo apt install ./bluez-alsa-utils_3.0.0-2_armhf.deb

On crée ensuite un service systemd pour bluealsa, en reprenant celui proposé par bablokb/pi-btaudio :

sudo nano /etc/systemd/system/bluealsa.service
# --------------------------------------------------------------------------
# Modified version of bluealsa.service unit definition
# (replaced WantedBy=graphical.target with WantedBy=bluetooth.target)
#
# Author: Bernhard Bablok
# License: GPL3
#
# Website: https://github.com/bablokb/pi-btaudio
#
# --------------------------------------------------------------------------

[Unit]
Description=BluezALSA proxy
Requires=bluetooth.service
After=bluetooth.service

[Service]
Type=simple
User=root
ExecStart=/usr/bin/bluealsa

[Install]
WantedBy=bluetooth.target

On lance ensuite le service :

sudo systemctl enable bluealsa.service
sudo service bluealsa start

On édite ensuite le fichier /etc/asound.conf en suivant là encore ce que propose bablokb/pi-btaudio :

pcm.!default "bluealsa"
ctl.!default "bluealsa"
defaults.bluealsa.interface "hci0"
defaults.bluealsa.device "FC:58:FA:14:27:BC"
defaults.bluealsa.profile "a2dp"

Dans notre cas, nous ajoutons une sortie pour notre ampli bluetooth Tangent Ampster :

pcm.tangent {    
    type plug
    slave {
        pcm {
            type bluealsa
            device FC:58:FA:14:27:BC
            profile "a2dp"
        }
  }
  hint {
        show on
        description "Tangent Ampster BT"
    }
}

Partages SAMBA

Une fois installé :

sudo apt install samba

On peut configurer nos partages en éditant le fichier /etc/samba/smb.conf.
Ainsi danse mon cas, j’ajoute cette section à la toute fin du fichier, le répertoire /home/pi/shares/ contenant l’ensemble des points de montage des disques du NAS.

[shares]
    comment = Argon Eon NAS Shares
    path = /home/pi/shares
    read only = no
    browsable = yes
    writable = yes
    valid users = pi

Une fois le fichier enregistré, il convient d’attribuer un mot de passe à votre utilisateur (dans mon cas, pi) :

sudo smbpasswd -a pi

puis de redémarrer le service :

sudo service smbd restart 

Ensuite, sur le client : on commence par créer un fichier contenant les informations de connexion :

touch ~/.nascredentials
chmod 600 ~/.nascredentials
nano ~/.nascredentials
user=pi
password=

Puis on édite le fichier /etc/fstab pour monter au démarrage

//192.168.1.56/shares /home/bbrice/NAS        cifs    defaults,credentials=/home/bbrice/.nascredentials,uid=1000,gid=1000,file_mode=0755,dir_mode=0755  0       0

Librespot : un client Spotify Connect

On commence par installer rust et ses utilitaires nécessaires à la compilation ainsi que les dépendances, avant de cloner le dépôt et de lancer la compilation :

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
sudo apt install build-essential libpulse-dev
git clone https://github.com/librespot-org/librespot.git
cd librespot
cargo build --release --no-default-features --features "alsa-backend"

On crée ensuite un service systemd :

mkdir -p ~/.config/systemd/user/
nano ~/.config/systemd/user/librespot.service
[Unit]
Description=Librespot (an open source Spotify client)
Documentation=https://github.com/librespot-org/librespot
Documentation=https://github.com/librespot-org/librespot/wiki/Options
Wants=network.target sound.target
After=network.target sound.target

[Service]
Restart=always
RestartSec=10
ExecStart=/usr/bin/librespot --name "%u@%H" --device bluealsa

[Install]
WantedBy=default.target

et on le lance :

systemctl --user enable librespot.service
systemctl --user start librespot.service

Téléchargements automatisés : Flexget et transmission-daemon

Pour ce qui est de l’installation et la configuration de Flexget, il suffit de se reporter à cet article : Télécharger ses séries avec Flexget
Il convient de veiller à utiliser un DNS neutre afin de pouvoir accéder au flux d’EZTV... Pour ce faire, comme sous Raspbian Buster, il suffit d’éditer le fichier /etc/dhcpcd.conf.

Pour ce qui est de transmission-daemon, la tâche est un peu plus ardue mais pimylifeup.com nous apporte une solution qui fonctionne parfaitement.

MPD

Pour ce qui est de mpd, rien de bien complexe, il suffit juste de se replonger dans mes anciens articles... le point essentiel étant d’utiliser notre ampli Tangent Ampster connecté en bluetooth comme sortie ; il suffit d’ajouter cette section (en la modifiant en fonction de la configuration vue ci-dessus dans /etc/asound.conf) dans le fichier /etc/mpd.conf :

audio_output {      
	type            "alsa"
    name            "Tangent Ampster BT - ALSA Bluetooth"
    device          "tangent"
    mixer_type  	"software"
    format          "44100:16:2"
}

puis de relancer le service

sudo service mpd restart