Outils pour utilisateurs

Outils du site


arm:la_machine_a_flux

La machine à flux

Ou comment se monter pour moins de 20$ un serveur de stream du son ambian ou d'un patch puredata

On part d'une orange Pi de base qu'on flash avec un systeme , stable ou pas .. cf http://armbian

télécharger

une image https://dl.armbian.com/orangepizero/Ubuntu_xenial_default.7z par exemple

décompressez la chose , cela peut se faire dans un terminal par 7z

apt install p7zip-full
7z e Ubuntu_xenial_default.7z

On boot la machine , la connecte à son réseau personnel, elle va prendre une IP ..

IP et accès

Trouver l'IP grace a

#si on a pas nmap
apt install nmap
nmap -sP 192.168.0.0/24 # ou 192.168.1.0/24 si le réseau est plutot de ce coté

on repere la machine “Nmap scan report for orangepizero … (192.168.1.153) pour moi

ssh root@192.168.1.xxx

permet d'y acceder

Le premier accès:

  1. mot de passe = 1234
  2. (current) UNIX password: 1234
  3. Enter new UNIX password: NouvoPass # par ex
  4. Retype new UNIX password: NouvoPass
  5. Please provide a username (eg. your forename): pi # par ex
  6. Validez le reste avec aussi un mot de passe # notez les !

Installation des programmes

Dans le cas ou l'image est avec un linux 4 et pas 3.11

sed -i /boot/armbianEnv.txt -e "s/overlays=usbhost2/overlays=usbhost2 analog-codec/"
# cela ouvre pour un linux 4 la carte son
# le reboot sera necessaire pour la prise en compte

installation des logiciels

sinon avec l'image stable armbian du moment on peut vérifier l'acces à la carte son par

alsamixer

Attention après avoir fait les niveaux, il faut bien avoir un capture active pour micro1 touche ”;“

### puis installations

# partie alsa base
cat <<EOF > /etc/asound.conf
pcm.!default { type hw ; card 0 }
ctl.!default { type hw ; card 0 }
EOF
# flux
apt-get update 
apt install -y darkice icecast2 libnss-mdns  # repondre non pour la config de icecast
systemctl disable icecast2
systemctl stop icecast2
sed -i /etc/icecast2/icecast.xml -e "s/<burst-on-connect>1</<burst-on-connect>0</"
sed -i /etc/icecast2/icecast.xml -e "s/<burst-size>65535</<burst-size>8191</"
sed -i /etc/icecast2/icecast.xml -e "s/<accesslog>access.log</<accesslog>-</"
sed -i /etc/icecast2/icecast.xml -e "s/<errorlog>error.log</<errorlog>-</"
sed -i /etc/icecast2/icecast.xml -e "s/<loglevel>3</<loglevel>0</"
sed -i /etc/icecast2/icecast.xml -e "s/<user>nobody</<user>pi</"
sed -i /etc/icecast2/icecast.xml -e "s/<group>nobody</<group>pi</"

# todo # il y a encore la mise en commentaire a enlever dans le fichier /etc/icecast2/icecast.xml a la fin ...

cat <<EOF > /etc/darkice.cfg
[general]
duration        = 0
bufferSecs      = 1
reconnect       = yes
[input]
device          = hw:0,0 # pour le micro interne
sampleRate      = 44100
bitsPerSample   = 16
channel         = 1
[icecast2-0]
bitrateMode     = abr
format          = vorbis
bitrate         = 64
server          = localhost
port            = 8000
password        = hackme
mountPoint      = flux-orange-1.ogg
name            = flux-orange-1
description     = flux d une OrangePi
url             = http://flux-orange-1:8000/flux-orange-1.ogg # A changer si necessaire selon le DNS
genre           = experimental
public          = yes
EOF

Wifi ou pas

si Wifi, la connexion automatique à votre AP:

cat <<EOF > /etc/rc.local
#!/bin/bash
sleep 5
nmcli dev wifi connect "SSID_de_votre_reseau" password 123... &
sleep 10
su root -c "/usr/local/bin/stream.sh 2>&1 > /dev/null" &
exit 0
EOF

sinon

cat <<EOF > /etc/rc.local
#!/bin/bash
sleep 5
#nmcli dev wifi connect "SSID_de_votre_reseau" password 123... &
#sleep 10
su root -c "/usr/local/bin/stream.sh 2>&1 > /dev/null" &
exit 0
EOF

LE lanceur

cat <<EOF > /usr/local/bin/stream.sh
#!/bin/bash
icecast2 -c /etc/icecast2/icecast.xml 2>&1 > /tmp/icecast.log &
while true
do
sleep 5
darkice 2>&1 >> /tmp/darkice.log 
done
exit 0
EOF
chmod 755 /usr/local/bin/stream.sh

C'est fini

reboot

Et voila le stream est accessible , a vous de faire le routage au niveau de la box si necessaire

mais déjà http://192.168.1.xxx:8000 donne la page de icecast2

pensez à faire les volumes en accédant par le ssh root à alsamixer

options:

sed -i /etc/icecast2/icecast.xml -e "s/hackme/NouveauPass/"  # pensez au pass ; option pour le debut
echo "choisissez un nom de machine"
read HOSTNAME
export HOSTNAME
echo $HOSTNAME > /etc/hostname
sed -i /etc/hosts -e "s/orangepizero/$HOSTNAME/"
sed -i /etc/darkice.cfg -e "s/localhost.localdomain/$HOSTNAME/"

Sur ma orange pi les réglages par alsactl store ⇒ /var/lib/alsa/asound.state asound.state.tar

Réglage de la fréquence CPU max pour éviter la chauffe sans radiateur :

cat <<EOF > /etc/default/cpufrequtils
ENABLE=true
MIN_SPEED=240000
MAX_SPEED=816000
GOVERNOR=ondemand
EOF
arm/la_machine_a_flux.txt · Dernière modification : 2024/02/09 17:10 de 127.0.0.1