Table des matières
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
- 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 <<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