V-2

From ∏ node
Jump to: navigation, search

ABOUT

V-2 = Dernière version stable de la ∏-BOX / Last stable version of the ∏-BOX

FEATURES

  • Administration locale via un point d'accès wifi ou LAN / local admin panel through wifi access point or LAN
  • Version stabilisée utilisant PiFmRds / stabilized version using PiFmRds
  • Fonctionne sur raspberry pi 2B, 3B, 3B+ / works on raspberry 2B, 3B, 3B+, shall work on version 1 (untested)
  • Auto online & offline mode
  • Inputs : stream, line input, local files
  • Ouputs : line out, FM, upstream on Icecast server
  • Change RDS message at runtime

IMPORTANT ! A CHEAP USB SOUNDCARD IS HIGHLY RECOMMENDED ! It is needed if you want to use the mini jack audio output AND fm broadcasting. Otherwise, without USB soundcard, you have to choose only one of these two options as output (the builtin jack analog sound output of the Raspberry Pi OR fm broadcasting (with eventually network audio stream)).

HARDWARE PREREQUISITES

SOURCES

DOWNLOAD PIBOX IMAGE

la V-2 est basée sur raspbian 8.0 jessie / the V-2 is based on raspbian 8.0 jessie

MD5 = ed9d32b326a1f0782521f3295c3fc52

START YOUR PIBOX

  • Mot de passe par défaut de la pibox : pipinode / default password for the pibox : pipinode
  $ ssh pi@<IP_of_the_pibox>
  $ cd pibox_V2
  $ sudo python3 go.py

UPDATE YOUR PIBOX

  • Mot de passe par défaut de la pibox : pipinode / default password for the pibox : pipinode
  $ ssh pi@<IP_of_the_pibox>
  $ cd pibox_V2
  $ git pull

Vous avec maintenant la version mise à jour de la pibox / now you have the last update for your pibox

OPTIONALLY, CHANGE THE SSID

Si vous voulez changer lE SSID de votre connexion wifi (qui par défaut est : pibox) / If you want to change the SSID of your wifi connection (by default it is : pibox)

  $ sudo nano /etc/hostapd/hostapd.conf

et modifiez la valeur du ssid / and modify the value for ssid puis sauvegarder / then save

OPTIONALLY, CHANGE THE RDS MESSAGES OF FM BROADCASTING

You can control PS (Program Name Service, or radio station name), RT (RadioText) and TA (Traffic Announcement flag) at run-time. Then you can send “commands” to change PS, RT and TA:

   cat > /tmp/rds_ctl
   PS MyText
   RT A text to be sent as radiotext
   TA ON
   PS OtherTxt
   TA OFF
   ...

INSTALLATIONS

L'installation se fait soit en téléchargeant l'image Rasbian Jessie ici puis en l'installant sur une carte SD, soit étape par étape en suivant les instructions ci après / you can either install the pbox V-2 step by step, via git clone (see below) or just download the full Raspbian Jessie image here and then install it on a SD card

STEP BY STEP INSTALL

  • une fois Raspbian Lite (Jessie or Stretch) installé / once Raspbian Lite (Jessie or Stretch) is installed
  $ sudo apt-get update
  $ sudo apt-get upgrade
  • commencer par changer user + password + ssh password avec raspi-config / start by changing your ssh password & username + password in raspi-config
  $ sudo raspi-config
  • télécharger git sox et libav-tools oggfwd / download git
  $ sudo apt-get install git sox libav-tools oggfwd python3-pip
  • installer avec pip3 beautifullsoup 4 / install bs4 with pip3
  $ sudo pip3 install bs4
  • télécharger les sources avec git / download sources with git
  $ cd
  $ git clone http://git.rybn.org/rybn/pibox_V2.git

OPTIONALLY : CREATE THE WIFI PIBOX ACCESS POINT

  • Si vous souhaitez administrer la PiBox via le wifi (nécessite une carte wifi sur la PiBox), il faut installer les librairies suivantes / extra libraries to install to control the pibox through wifi : hostapd & dnsmasq
  $ sudo apt-get install hostapd dnsmasq
  • arrêter les services hostapd et dnsmasq / stop services hostapd and dnsmasq
  $ sudo systemctl stop dnsmasq
  $ sudo systemctl stop hostapd
  • créer le fichier / then create the file /etc/hostapd/hostapd.conf
  $ sudo nano /etc/hostapd/hostapd.conf

et ajouter (personnalisez la valeur du ssid avec votre propre nom) / and add the following (customized ssid with youn own value)

  interface=wlan0
  driver=nl80211
  ssid=Pibox
  hw_mode=g
  channel=7
  wmm_enabled=0
  macaddr_acl=0
  auth_algs=1
  ignore_broadcast_ssid=0
  • configurer le fichier / configure the file /etc/default/hostapd
  $ sudo nano /etc/default/hostapd

et modifier la ligne suivante / "then modify the following line" :

  #DAEMON_CONF=""

pour / for

  DAEMON_CONF="/etc/hostapd/hostapd.conf"
  • configurer le fichier / then, configure the file /etc/dnsmasq.conf
  $ sudo nano /etc/dnsmasq.conf

en mettant / then put

  interface=wlan0      # Use the require wireless interface - usually wlan0
  dhcp-range=192.168.100.2,192.168.100.10,255.255.255.0,24h
  • changer les paramètres de wlan0 dans / then change wlan0 parameters in : /etc/dhcpcd.conf
 $ sudo nano /etc/dhcpcd.conf

et ajouter à la fin / then add to the end

  interface wlan0
  static ip_address=192.168.100.1/24
  nohook wpa_supplicant
  • continuez avec / continue with :
  $ sudo systemctl restart dhcpcd
  $ sudo systemctl start hostapd
  $ sudo systemctl start dnsmasq
  • remplacer le rc.local / replace the rc.local :
  $ sudo nano /etc/rc.local

avec / with

  #!/bin/sh -e
  #
  # rc.local 
  #
  # This script is executed at the end of each multiuser runlevel.
  # Make sure that the script will "exit 0" on success or any other
  # value on error.
  #
  # In order to enable or disable this script just change the execution
  # bits.
  #
  # By default this script does nothing.
  
  # Print the IP address 
  _IP=$(hostname -I) || true
  if [ "$_IP" ]; then
    printf "My IP address is %s\n" "$_IP"
  fi
  
  /usr/bin/python3 /home/pi/pibox_V2/go.py 2> /home/pi/pibox_V2/error_log.txt >/dev/null &
  
  exit 0

  • puis éteindre et redémarrer / then shutdown et restart
  $ sudo shutdown -r now

OPTIONALLY : ADD A USB WIFI KEY TO GET INTERNET ACCESS (WITH OR WITHOUT WIRED ACCESS)

Vous pouvez ajouter une seconde clé wifi à la Pibox pour que celle-ci se connecte à internet via un réseau wifi (si vous n'avez pas de connexion filaire à disposition). Il vous faudra renseigner les champs ad hoc sur la page de configuration de la Pibox. En général il n'y a rien d'autre à faire.

ATTENTION, avec certains modèles de clés wifi (par exemple : TP-LINK TL-WN725N) qui utilisent le driver "r8188eu", cela ne fonctionne pas tout de suite (vous pourrez le constater car vous n'arriverez plus à vous connecter au wifi "pibox"), il faut alors faire la manipulation suivante :

1) se connecter en ssh à la Pibox (en filaire) 2) puis :

  $ sudo nano /etc/udev/rules.d/70-persistent-net.rules

et entrer :

  ACTION=="add", SUBSYSTEM=="net", DRIVERS=="r8188eu", NAME="wlan1"

3) sauvegarder le fichier et redémarrer la Pibox :

  $ sudo shutdown -r now

ADMINISTATION

La configuration de la Pibox se fait par l'intermédiaire d'un navigateur en entrant l'adresse IP de votre Pibox. Si vous avez créé un point d'accès wifi sur votre Pibox comme décrit ci-dessus, en sélectionnant le SSID de votre Pibox dans la liste des wifi disponibles (qui est par défaut "Pibox"), il vous suffit de saisir 192.168.100.1 dans un navigateur pour vous connecter à la page de configuration de votre Pibox. La requête de cette page html nécessite un login et un mot de passe : "pibox" (configurable) et "pnodeaccesspass" (configurable).

the PiBox V-2 administration is done through a browser by entering the IP address of your Pibox. If you have created a wifi access point as described above, by selecting the SSID (by default "Pibox") in the list of available wifi, you just have to enter 192.168.100.1 in your browser to connect to the configuration page of your Pibox. The page will ask for a login and password : "pibox" and "pnodeaccesspass" (can be edited)

Sur la page html de configuration, il y a trois parties / the administration html interface has 3 main panels

  • "Send a sound file to RPi"
  • "With Internet Access"
  • "Without Internet Access".

InterfaceV-2-cropped.jpg

UPLOAD A SOUNDFILE

La partie "Send a sound file to RPi" permet d'envoyer un fichier à la RPi / the panel "Send a sound file to RPi" allows the user to upload a file to the V-2

ONLINE MODE

La partie 'With Internet Access' permet de choisir une source en entrée / the "Without Internet Access" panel allows the user to select the input (one only)

  • fichiers (fichiers sonores) / files
  • entrée ligne (entrée carte son) / line in (sound card)
  • stream (flux sonore entrant en streaming). Nécessite d'entrer une adresse de stream. / stream : a stream adress is needed

et de choisir de une à trois sorties simultanées / choose between one and three simultaneous outputs

  • sortie ligne / line out
  • envoi d'un flux sonore en streaming. Nécessite d'entrer une adresse, un port, un point de montage, un mot de passe et un bitrate. / streaming : needs a icecast server, mountpoint, port, password
  • radiodiffusion FM. Nécessite d'entrer une fréquence (88 _> 108) / FM : choose the frequencuy of FM broadcast

OFFLINE MODE

La partie "Without Internet Access" permet de choisir une seule source en entrée parmi : / the part "Without Internet Access" own to choose one input option

  • fichiers (fichiers sonores) / soundfiles
  • entrée ligne (microphone) / line in (microphone)

et de choisir de une à deux sorties simultanées : /and choose several output modes

  • sortie ligne / line out
  • radiodiffusion FM. Nécessite d'entrer une fréquence / Broadcasting, need to enter the FM frequency

Un changement de configuration ou un changement d'état de la connexion à internet entraîne une reconfiguration à chaud du routage du son seulement si cela est nécessaire => plus de redémarrage nécessaire // V-1 / by saving parameters, a reconfiguration isautomated, you dont need to restart; idem if internet connexion changes. Not like V-1

TODO

TESTS & DEBUG

  • test de la stabilité, report des plantages, utilisation sur longue durée, etc ... / need reports on stability test, report bugs and some report on long term usage

DISTANT CONTROL

  • implémentation de la connexion à l'admin serveur p-node (en plus de l'admin locale) / implementation of the pnode admin server panel

PLAYLIST MANAGEMENT

  • créer une page admin de la playlist / create an admin page of the playlist
  • accès à la page html en premier, sans mot de passe (sans revenir à la piratebox qui est trop lourd) / access to the file list adminstation on the html page
  • administration de la liste des fichiers de la playlist / admin panel of the files
    • insérer possibilité de supprimer un fichier / implement the possibuilty to erase a files
    • gérer mode de lecture : boucle, random, ones - mode de classement / playlist modes : shuffle / random etc ...
  • insérer accès la partie admin (avec mot de passse) / insert admin page at the bottom

XP FEATs

and any other xp feature welcome on forks ! text to speech, tcpdumps, etc ... :))

Options

AirTime

Airtime is a simple, open source platform that lets you broadcast streaming radio on the web. https://www.sourcefabric.org/en/airtime/

To install it, install dependencies :

sudo apt-get install postgresql-9.4 python-virtualenv apache2 coreutils curl ecasound flac gzip libapache2-mod-php5 libcamomile-ocaml-data liquidsoap locales lsof monit mp3gain multitail patch php5-cli php5-curl php5-gd php5-json php5-pgsql php5-fpm php-apc php-pear pwgen python rabbitmq-server silan sudo sysv-rc tar unzip vorbisgain vorbis-tools zendframework icecast2
/!\ for debian jessie, you must install postgresql-9.4 and not postgresql without -9.4 else the calendar does'nt show up /!\

Clone the repository and launch the installer :

git clone https://github.com/sourcefabric/Airtime
cd Airtime
sudo ./install

Follow the configuration process, at the end, you'll see the IP adress of the pibox on wich you can connect with a browser to finish the configuration threw the proposed interface

rtl_fm player fm rtlsdr

Pour l'installer sur la Pi (ici v3) sur raspbian jessie

sudo apt install libusb-1.0-0-dev cmake build-essential
git clone git://git.osmocom.org/rtl-sdr.git
cd rtl-sdr/
mkdir build
cd build
cmake ../ -DINSTALL_UDEV_RULES=ON
make
sudo make install
sudo ldconfig

Blacklister un module :

sudo nano /etc/modprobe.d/nodvb28.conf

avec dedans

blacklist dvb_usb_rtl28xxu

reboot ! et test avec

rtl_test

Known Bugs

(clear when fixed)

reboot

  • daily reboot seems blocked sometimes by pifm


automatic switch to files when ping to google fail

  • there is a 5 seconds timeout to check if internet is ok, opening google.com web page, but on my pibox (b01), it keeps switching whereas internet is ok, I tried to put a 30 s timeout but it doesn't seem to have solve the pb