====== 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
* l'orange pi https://fr.aliexpress.com/store/product/New-Orange-Pi-Zero-H2-Quad-Core-Open-source-development-board-beyond-Raspberry-Pi/1553371_32760774493.html?spm=a2g0w.12010612.0.0.734510e7tXbX7a a 9,42 sur le moment
* une micro SD classe 10 c'est mieux .. 8€
* une alimentation qu'on peut récupérer ailleurs , attention elle doit faire plus de 2A !
===== 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:
- mot de passe = 1234
- (current) UNIX password: 1234
- Enter new UNIX password: NouvoPass # par ex
- Retype new UNIX password: NouvoPass
- Please provide a username (eg. your forename): pi # par ex
- 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 < /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/10"
sed -i /etc/icecast2/icecast.xml -e "s/655358191"
sed -i /etc/icecast2/icecast.xml -e "s/access.log-"
sed -i /etc/icecast2/icecast.xml -e "s/error.log-"
sed -i /etc/icecast2/icecast.xml -e "s/30"
sed -i /etc/icecast2/icecast.xml -e "s/nobodypi"
sed -i /etc/icecast2/icecast.xml -e "s/nobodypi"
# todo # il y a encore la mise en commentaire a enlever dans le fichier /etc/icecast2/icecast.xml a la fin ...
cat < /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 < /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 < /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 < /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 {{ :arm:asound.state.tar |}}
Réglage de la fréquence CPU max pour éviter la chauffe sans radiateur :
cat < /etc/default/cpufrequtils
ENABLE=true
MIN_SPEED=240000
MAX_SPEED=816000
GOVERNOR=ondemand
EOF