cuaderno de campo

anotaciones

Menú
  • casa
    • cocina
      • pan
      • verdura
    • dinou del carrer nou
    • nadal : una carta
    • plano
  • huerto
    • instrucciones sobre el huerto
    • huerto del año 2022
  • humanidades
    • fonoteca
      • Noches en Poderna
      • El canto de las aves
    • galería
    • mala lluna
    • rutas fuera
    • umbrario
    • El misterio de Sant Mena
  • jardín
    • instrucciones sobre el jardín
    • exterior
    • interior
    • viveros
  • juego
    • listado de juegos
  • linux
    • bash
    • sistema operativo
    • ssh
  • web
    • apache
    • css
    • html5
    • javascript
    • mysql
    • php
Menú

Pi MusicBox con Mopidy

Publicado el 30 de diciembre de 202026 de febrero de 2021 por ernesto

  • instalación de Pi MusicBox
  • configuración de Pi MusicBox
    • nombre del dispositivo
    • servicio ssh
    • acceso vía ssh
    • cambio de la contraseña
    • comprobar la versión de Pi MusicBox vía consola
    • hifiberry dac+
    • mpd
    • last.fm
  • Mopidy
    • extensiones de Mopidy
    • música local
      • disco duro externo
      • enlace o acceso directo a los archivos del disco duro externo
      • problema: mopidy no detecta ningún archivo local
      • local scan
    • instalación de rsync
  • Pi MusicBox no se puede actualizar
    • instalación de extensiones vía apt-get
      • repositorio de apt.mopidy.com
    • instalación de extensiones vía pip
  • fuentes
Pi MusicBox v0.7.0RC6 con Mopidy 1.1.2

Make your Raspberry Pi stream!

Welcome to the Swiss Army Knife of streaming music using the Raspberry Pi. With Pi MusicBox, you can create a cheap (Sonos-like) standalone streaming music player for Spotify, Google Music, SoundCloud, Webradio, Podcasts and other music from the cloud. Or from your own collection from a device in your network. It won’t drain the battery of your phone when playing. The music won’t stop if you play a game on your phone.

Pi MusicBox

instalación de Pi MusicBox

si no se quiere recurrir a PINN para la instalación de Pi MusicBox, hay que descargar el archivo musicbox_v0.7.0RC7.zip de 293 MB de github.com/pimusicbox, extraer la imagen musicbox_v0.7.0RC7.img de su interior y grabarla en una tarjeta SD mediante etcher.

hecho esto, ya es posible introducir la tarjeta SD en la raspberry pi y arrancar el sistema operativo.

configuración de Pi MusicBox

en tanto que headless audio player o sistema operativo sin interfaz gráfica, Pi MusicBox sólo ofrece la señal de un terminal si tiene salida a pantalla: el usuario de acceso es «root» y la contraseña, «musicbox».

dispone, sin embargo, de una vía natural de manejo, a través de un navegador web:

http://musicbox.local

o la dirección IP correspondiente:

http://192.168.1.7

ambas direcciones HTTP pertenecen a una misma red interna y sólo están al alcance de otros dispositivos conectados a esa misma red (es decir, a un mismo router).

nombre del dispositivo

el dispositivo en que se ha instalado Pi MusicBox se llama por defecto «musicbox». este nombre se puede modificar desde la interfaz web de MusicBox:

Settings > Music Box > Device name > RB2

Device name

Set the name of the MusicBox. In this way you can create different devices on the same network (in different rooms). The webinterface is accessible via the name you use here, e.g. http://kitchen.local/, and multiple devices will show up in AirTunes. You can only use normal caracters and numbers in the name (no spaces, dots, etc). You can even have different devices with different Spotify accounts when needed.

«Settings > MusicBox» en MusicBox.

la dirección HTTP de acceso a Pi MusicBox se compone del nombre del dispositivo, musicbox, más local, así que, una vez realizado el cambio a RB2, la nueva dirección de acceso será:

http://rb2.local/

también se puede cambiar el nombre del dispositivo modificando la siguiente línea del archivo settings.ini desde la terminal del sistema:

nano /cf/settings.ini

# Set the name of the MusicBox.
name = RB2

servicio ssh

el servicio SSH se activa fácilmente desde la interfaz web:

Settings > Network > Enable SSH > On > Save

también se puede activar el servicio SSH añadiendo la siguiente línea al archivo settings.ini desde la terminal del sistema:

nano /cf/settings.ini

# Enable this to allow remote login via SSH on MusicBox
enable_ssh = true

una vez activado el servicio, basta con reiniciar el sistema operativo:

System > Reboot

acceso vía ssh

ssh root@musicbox.local

root@musicbox.local’s password:

la contraseña es «musicbox».

en lugar de musicbox.local (o rb2.local, si se realizó el cambio de nombre del dispositivo), también puede remitirse a la dirección IP correspondiente:

ssh root@192.168.1.7

root@192.168.1.7’s password:

cambio de la contraseña

Enable SSH
For security reasons, ensure you have changed the root password if you enable this.

«Settings > Network» en MusicBox.

como se recomienda en la propia web de MusicBox, es aconsejable modificar la contraseña de acceso si se ha habilitado el servicio de SSH:

passwd
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully

comprobar la versión de Pi MusicBox vía consola

cat /etc/issue

Musicbox v0.7.0RC6 built on Tue 20 Mar 00:10:58 GMT 2018

hifiberry dac+

Pi MusicBox detecta automáticamente este tipo de tarjetas de sonido. si se dispone de una hifiberry dac+, es posible seleccionarla como la salida de audio por defecto desde la interfaz web de MusicBox:

Settings > Audio > Audio output > HifiBerry DAC+/PRO/AMP2

también se puede establecer la salida de audio modificando la siguiente línea del archivo settings.ini desde la terminal del sistema:

nano /cf/settings.ini

# Set default system audio output.
output = hifiberry_dacplus

luego, es necesario reiniciar el sistema:

System > Reboot

una vez reiniciado el sistema, desde consola, puede comprobarse si la tarjeta de sonido hifiberry dac+ está activa:

aplay -l

card 1: sndrpihifiberry [snd_rpi_hifiberry_dacplus], device 0: HiFiBerry DAC+ HiFi pcm512x-hifi-0 []

mpd

la extensión de MPD para Mopidy está lista y escuchando en el puerto 6600:

netstat -tlpn

tcp6 0 0 0.0.0.0:6600 :::* LISTEN 2463/python

luego, en el cliente de MPD de turno, basta con introducir la dirección IP correspondiente acompañada del puerto 6600:

192.168.1.2:6600

en lugar de la IP, también sirve la dirección HTTP de la interfaz web de MusicBox:

rb2.local

last.fm

se activa y configura fácilmente desde la interfaz web de MusicBox:

Settings > Services > Last.FM > On
Username
Password

Mopidy

Pi MusicBox está basado en Mopidy y Mopidy es el servidor de Pi MusicBox encargado de servir música a sus distintos clientes:

Mopidy is an extensible music server written in Python.

Mopidy plays music from local disk, Spotify, SoundCloud, TuneIn, and more. You can edit the playlist from any phone, tablet, or computer using a variety of MPD and web clients.

Mopidy is just a server

Out of the box, Mopidy is an HTTP server. If you install the Mopidy-MPD extension, it becomes an MPD server too. Many additional frontends for controlling Mopidy are available as extensions.

Mopidy

extensiones de Mopidy

a continuación, se ofrece una lista de las extensiones de Mopidy instaladas en Pi MusicBox:

mopidy deps | grep Mopidy-

Mopidy-MusicBox-Webclient: 2.4.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Dirble: 1.3.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-GMusic: 2.0.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-WebSettings: 0.2.3 from /usr/local/lib/python2.7/dist-packages
Mopidy-Spotify-Tunigo: 1.0.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Spotify>=1.2.0: 1.4.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-ALSAMixer: 1.0.3 from /usr/local/lib/python2.7/dist-packages
Mopidy-Mobile: 1.8.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-HTTP-Kuechenradio: 0.4.2 from /usr/local/lib/python2.7/dist-packages
Mopidy-InternetArchive: 2.0.3 from /usr/local/lib/python2.7/dist-packages
Mopidy-Local-SQLite: 1.0.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Spotify-Web: 0.3.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Spotify>=1.2.0: 1.4.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-SomaFM: 0.7.1 from /usr/local/lib/python2.7/dist-packages
Mopidy-Moped: 0.4.4 from /usr/local/lib/python2.7/dist-packages
Mopidy-Simple-Webclient: 0.1 from /usr/local/lib/python2.7/dist-packages
Mopidy-Spotify: 1.4.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Mopify: 1.6.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Scrobbler: 1.1.1 from /usr/local/lib/python2.7/dist-packages
Mopidy-Youtube: 2.0.2 from /usr/local/lib/python2.7/dist-packages
Mopidy-TuneIn: 0.4.1 from /usr/local/lib/python2.7/dist-packages
Mopidy-Podcast-iTunes: 2.0.0 from /usr/local/lib/python2.7/dist-packages
Mopidy-Podcast>=2.0: 2.0.1 from /usr/local/lib/python2.7/dist-packages
Mopidy-AudioAddict: 0.2.7 from /usr/local/lib/python2.7/dist-packages
Mopidy-SoundCloud: 2.0.2 from /usr/local/lib/python2.7/dist-packages
Mopidy-Podcast: 2.0.1 from /usr/local/lib/python2.7/dist-packages

música local

en la medida en que el servidor Mopidy puede reproducir archivos de música en un directorio local, si se dispone de un disco duro externo, cabe averiguar si Pi MusicBox lo ha detectado y en qué punto lo ha montado.

disco duro externo

blkid

/dev/sda1: LABEL="archivo" UUID="92054482-bb7b-4b9d-8c90-07900cb6c8f1" TYPE="ext4"

df -h

/dev/sda1 458G 214G 222G 50% /music/USB

en este caso, el disco duro /dev/sda1/, con la etiqueta archivo, está montado en /music/USB.

enlace o acceso directo a los archivos del disco duro externo

ln -s /music/USB/audio ~/audio

ls ~/ -l

lrwxrwxrwx 1 root root 16 Mar 17 21:25 audio -> /music/USB/audio

problema: mopidy no detecta ningún archivo local

Mopidy en Pi MusicBox se ejecuta como un servicio:

service mopidy status

[ ok ] mopidy is running.

y, como se advierte en la documentación de Mopidy, el usuario del servicio, mopidy, necesita permiso de lectura para acceder a los archivos de música o, de lo contrario, no podrá verlos:

The Mopidy system service runs as the mopidy user […] The mopidy user will need read access to any local music you want Mopidy to play.

«Running as a service» en Mopidy’s Documentation.

se puede otorgar el permiso de lectura a todos los archivos y directorios de /music/USB/ con la siguiente instrucción:

chmod o+r /music/USB/* -R

donde, del o+r, la o vale por otros (que no usuario, ni grupo) y el +r, por la concesión del permiso de lectura.

hay otra vía, si se prefiere, que consiste en crear un usuario/grupo ernesto, que tiene permiso de lectura sobre los archivos de música, al que se añade posteriormente el usuario mopidy:

useradd ernesto

id ernesto

uid=1000(ernesto) gid=1000(ernesto) groups=1000(ernesto)

chown ernesto:ernesto /music/USB/* -R

chmod 770 * -R

ls -l

drwxrwx— 6 ernesto ernesto 4096 Dec 30 16:58 audio
drwxrwx— 5 ernesto ernesto 4096 Dec 28 12:09 tmp

adduser mopidy ernesto

Adding user ‘mopidy’ to group ‘ernesto’ …
Adding user mopidy to group ernesto
Done.

id mopidy

uid=109(mopidy) gid=29(audio) groups=29(audio),1000(ernesto)

después de realizar estos cambios y de reiniciar el sistema operativo, los archivos de música deberían estar disponibles a través de la interfaz web de MusicBox:

Browse > Files > USB

local scan

otra manera de comprobar que el usuario mopidy tiene permiso de lectura sobre los archivos locales de música consiste, precisamente, en realizar un escáner o examen de los archivos locales:

service mopidy run local scan

INFO Starting Mopidy 1.1.2
INFO Loading config from builtin defaults
INFO Loading config from /etc/mopidy/mopidy.conf
INFO Loading config from command line options
INFO Enabled extensions: mopify, mpd, http, moped, stream, spotify_tunigo, mobile, m3u, youtube, scrobbler, simple-webclient, podcast-itunes, softwaremixer, http-kuechenradio, file, musicbox_webclient, websettings, podcast, local, local-sqlite
INFO Disabled extensions: spotify, alsamixer, gmusic, somafm, internetarchive, audioaddict, spotify_web, dirble, tunein, soundcloud
INFO Found 16667 files in media_dir.
WARNING Encountered 2 errors while scanning media_dir.
INFO Checking 0 tracks from library.
INFO Removing 0 missing tracks.
INFO Found 15376 tracks which need to be updated.
INFO Scanning…
INFO Scanned 100 of 15376 files in 6s, ~936s left.
INFO Scanned 200 of 15376 files in 12s, ~985s left.
INFO Scanned 300 of 15376 files in 19s, ~991s left.
Etcétera.

instalación de rsync

apt-get install rsync

Reading package lists… Done
Building dependency tree
Reading state information… Done
Package rsync is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package ‘rsync’ has no installation candidate

nano /etc/apt/sources.list

# deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
# deb-src http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
deb http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi
deb-src http://mirrordirector.raspbian.org/raspbian/ stretch main contrib non-free rpi

en /etc/apt/sources.list, se cambia la distribución wheezy por stretch.

apt-get update

apt-get install rsync

Reading package lists… Done
Building dependency tree
Reading state information… Done
The following NEW packages will be installed:
rsync

Pi MusicBox no se puede actualizar

a uno de enero de 2021, Pi MusicBox es un sistema operativo que no está pensado (ni preparado) para ser actualizado: tal cual viene, tal se queda.

instalación de extensiones vía apt-get

Pi MusicBox está basado en raspbian (que está basado en debian (que está basado en linux)) y, por lo tanto, para la instalación de nuevas extensiones de Mopidy, lo más sencillo sería recurrir a apt-get:

If you run a Debian based Linux distribution, like Ubuntu or Raspbian, the easiest way to install Mopidy is from the Mopidy APT archive. When installing from the APT archive, you will automatically get updates to Mopidy in the same way as you get updates to the rest of your system.

If you want to use any Mopidy extensions, like Spotify support or Last.fm scrobbling, you need to install additional packages.

«Debian/Ubuntu» en Mopidy’s Documentation.

sin embargo, el método apt-get de Pi MusicBox acusa la falta de dependencias de un modo fatal (no en vano es un sistema operativo aligerado) y no instala ninguna extensión como cabría esperar:

Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming.

repositorio de apt.mopidy.com

aunque finalmente el método apt-get de Pi MusicBox no instala ninguna extensión como debería, estas son las instrucciones para añadir el repositorio de apt.mopidy.com a la lista de repositorios de Pi MusicBox:

wget -q -O - https://apt.mopidy.com/mopidy.gpg | sudo apt-key add -

OK

wget -q -O /etc/apt/sources.list.d/mopidy.list https://apt.mopidy.com/buster.list

cat /etc/apt/sources.list.d/mopidy.list

# Mopidy APT archive
# Built on Debian 10 (buster), compatible with Ubuntu 19.10 and newer
deb https://apt.mopidy.com/ buster main contrib non-free
deb-src https://apt.mopidy.com/ buster main contrib non-free

apt-get update

E: The method driver /usr/lib/apt/methods/https could not be found.

nano /etc/apt/sources.list.d/mopidy.list

deb http://apt.mopidy.com/ buster main contrib non-free
# deb https://apt.mopidy.com/ buster main contrib non-free
# deb-src https://apt.mopidy.com/ buster main contrib non-free

apt-get update

Get:4 http://apt.mopidy.com buster/contrib armhf Packages [1697 B]
Get:5 http://apt.mopidy.com buster/non-free armhf Packages [719 B]

apt-get install mopidy-mpd

Reading package lists… Done
Building dependency tree… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
mopidy-mpd : Depends: mopidy (>= 3.0.0) but it is not going to be installed
Depends: python3-pkg-resources but it is not installable
Depends: python3-pykka (>= 2.0.1) but it is not going to be installed
Depends: python3:any but it is not installable
E: Unable to correct problems, you have held broken packages.

«Install from apt.mopidy.com» en Mopidy’s Documentation.

instalación de extensiones vía pip

Pi MusicBox también dispone de pip para la instalación de paquetes:

pip -V

pip 9.0.1 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

pip install --upgrade pip

Installing collected packages: pip
Found existing installation: pip 9.0.1
Uninstalling pip-9.0.1:
Successfully uninstalled pip-9.0.1
Successfully installed pip-20.3.3

pip -V

pip 20.3.3 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

pip install Mopidy-MPD

DEPRECATION: Python 2.7 reached the end of its life on January 1st, 2020. Please upgrade your Python as Python 2.7 is no longer maintained. pip 21.0 will drop support for Python 2.7 in January 2021. More details about Python 2 support in pip can be found at https://pip.pypa.io/en/latest/development/release-process/#python-2-support pip 21.0 will remove support for this functionality.

ERROR: Could not find a version that satisfies the requirement Mopidy-MPD (from versions: none)
ERROR: No matching distribution found for Mopidy-MPD

pero, aun después de instalar la última versión de python, el error persiste porque Pi MusicBox no se puede actualizar.

python3 -m pip install Mopidy-MPD

Collecting Mopidy-MPD
Cache entry deserialization failed, entry ignored
Could not find a version that satisfies the requirement Mopidy-MPD (from versions: )
No matching distribution found for Mopidy-MPD

fuentes

  • «Pi MusicBox v0.7 manual» en Pi MusicBox.
  • «Documentation» en Mopidy.
Etiquetado como etcher-electron, hifiberry dac+, last.fm, mopidy, mpd, passwd, pinn, pip
  • NOOBS o PINN: LibreELEC + Recalbox

    Instalación de dos sistemas operativos para Raspberry Pi 3 en una única tarjeta SD mediante…

  • hifiberry dac+ standard

    instalación de hifiberry dac+ para raspberry pi 2/3 si estuviera activa, hay que desactivar la…

  • MPD: Music Player Daemon

    Puesto al día el 7 de enero de 2021. instalación sudo apt install mpd [borrador]…

RSS rutas fuera

  • HS: Laure le Prunenec (Rïcïnn, Öxxö Xööx, Corpo-Mente, ex-Igorrr, etc) 27 de marzo de 2023 hessianfirm
  • Gracias por asistir a la presentación de “Criptozoología en España” 27 de marzo de 2023 Javier Resines
  • Demilich “Last Show Ever” In Madrid Tonight 26 de marzo de 2023 Brett Stevens
  • Fourth Monarchy – Nocturnal Odes of a Wandering Spirit (2023) 25 de marzo de 2023 Brett Stevens
  • Esta tarde, Criptozoología con Vicente Fuentes 23 de marzo de 2023 Javier Resines
  • Beats and yelling from: Yaaroth, Verminous Serpent, Svraoz 22 de marzo de 2023 Hate Meditations
  • Xerrada: La importància de les llavors locals 22 de marzo de 2023 moon
  • Beats and yelling from: Cromlech, Contrarian, Skrying Mirror 21 de marzo de 2023 Hate Meditations
  • Necropolis #62 – On Burzum (Band Focus) 19 de marzo de 2023 Hate Meditations

Categorías

apache bash casa cocina corral css exterior fonoteca galería html5 huerto humanidades humanidades digitales interior jardín javascript juego linux mysql pan php repostería sistema operativo ssh verdura web

Archivo

cuaderno de campo 2011-2023