Volumio na płytce Banana Pi M1

Mikrokomputerki typu Raspberry Pi, poprzez Banana, Orange itd, zadomowiły się na dobre. Wachlarz zastosowań jest ogromny, od automatyki przemysłowej, przez inteligentne domy po rozrywkę. Chyba już nikogo nie dziwi samodzielnie zbudowany NAS, serwer www, czy odtwarzacz multimedialny z Kodi na pokładzie. Również miłośnicy wysokiej jakości muzyki zaprzęgli małe płytki do roboty. Poniżej opis, jak poradzić sobie z jawną dyskryminacją 😉 i zbudować odtwarzacz HiFi na BananaPi.

Player HiFi i inne DAC’i

Jeśli chodzi o dźwięk z Raspberry Pi, to bez znaczenia, czy jest to wersja 1, 2 czy 3, to chyba nic dobrego nie można o nim powiedzieć. I z HDMI i z wyjścia liniowego mini jack, prócz odtwarzanych dźwięków słychać mnóstwo zakłóceń, śmieci. Kto ma Kodi na Raspberry ten wie o czym piszę. Jak to się stało, że audiofile budują sobie playery na malinach? Tajemnica tkwi w bardzo modnych ostatnio DAC’ach. DAC to przetwornik cyfrowo-analogowy. Niezakłócony, cyfrowy dźwięk w postaci zer i jedynek jest dostarczany do przetwornika, który zamienia go na wysokiej jakości sygnał analogowy. W RPi sprawa jest o tyle łatwa, że mamy na portach wyprowadzoną magistralę I2S, która idealnie nadaje się do tego celu. Wystarczy więc wcisnąć na goldpiny płytkę z DAC’iem i gotowe. Na potrzeby rynku zareagowano od razu no i jest słynny DAC HiFiBerry na układzie PCM5122 – cena zależnie od wersji od około 100zł. Wybierając się wirtualnie na zakupy do Chin, łatwo znajdziemy PiFi DAC+ v2.0 za ok. 60 zł. Oczywiście też na chipie PCM5122.

PiFi i HiFiBerry

Banana Pi M1 nie posiada I2S, ale sytuacja nie jest beznadziejna, bo są też fajne DAC’i na USB. Problemem jest brak softu, czyli Volumio czy RuneAudio na tą platformę. Na szczęście zamiast rozglądać się za zakupem Raspberry, można zbudować sobie Volumio bazujące na armbianie. I to właśnie o tym będzie poniższy tekst.

Instrukcję budowy Volumio można znaleźć na github. Oczywiście środowiskiem jest Linux, zalecany jest Debian 8 (Jessie). W dobie maszyn wirtualnych nie jest to problem, virtualbox i po sprawie.

Debian na Virtualbox

Bez znaczenia, czy to Windows, czy Linux, tworzenie maszyny wirtualnej w Virtualbox jest praktycznie takie samo. Poniższe zrzuty ekranowe zostały zrobione w wersji na linuksa. Zaczynamy od stworzenia maszyny, czyli klik na ikonce New (Nowa) w menu, w nowo otwartym oknie wpisujemy nazwę maszyny, wybieramy typ systemu operacyjnego i jego wersję bitową:

Tworzenie nowej maszyny

Kolejne okno to ilość pamięci RAM, nie potrzeba jej dużo, wystarczy proponowane 768MB:

Virtualbox pamięć RAM

Teraz typ dysku, niech będzie polecany VDI, oraz Dynamically allocated – co to znaczy? Plik dysku wirtualnego na naszym fizycznym dysku będzie miał taki rozmiar jak objętość plików na dysku wirtualnym. Czyli tworzymy dysk 16 GB z dynamiczną alokacją, na tym dysku są pliki zajmujące 8 GB, więc plik dysku wirtualnego będzie miał około 8 GB.

nowy dysk virtualbox

Rodzaj dysku

Dynamiczna alokacja

Tu ustawiamy nazwę dysku i właśnie jego maksymalny rozmiar:

Dysk wirtualny rozmiar

No i dysk się tworzy:

Tworzenie dysku wirtualnego

Teraz w głównym oknie Virtualboksa klikamy prawym myszy na maszynie i wybieramy Właściwości.

W zakładce System możemy edytować sprzętowe ustawienia – dokładać procesory czy regulować rozmiar pamięci RAM:

RAM i CPU ustawienia

Ze strony z obrazami debiana ściągamy obraz nośnika iso z wersją netinstall – czyli na płycie są tylko niezbędne pliki, a pozostałe pakiety są ściągane z internetu. W przypadku wersji 8.4 będzie to obraz o nazwie debian-8.4.0-i386-netinst.iso. We właściwościach maszyny wirtualnej przechodzimy do zakładki Nośniki i jako napęd CD wybieramy pobrany obraz:

obraz iso jako CD

Ostatecznie wygląda to tak:

Obraz iso jako cd-rom

Teraz przechodzimy do zakładki Sieć i zmieniamy ustawienie na Mostkowana karta sieciowa, a poniżej wybieramy fizyczną kartę naszego komputera, do której jest podłączony internet. Dzięki temu w naszej domowej sieci pojawi się kolejny komputer, ze swoim adresem IP.

Sieć w virtualbox

Stworzona, gotowa do uruchomienia maszyna, wygląda tak:

Virtualbox - maszyna wirtualna

Po wciśnięciu strzałki Uruchom, maszyna włączy się i uruchomi z płyty, czyli pobranego obrazu iso:

Start maszyny virtualbox

Czas na instalację Debiana, po wybraniu Install, zaznaczeniu typowych ustawień regionalnych, kont użytkowników i ich haseł pojawia się okno partycjonowania dysku, wystarczy pierwsza opcja:

Dysk - instalacja debiana

Jeśli chodzi o wybór oprogramowania, to wystarczą nam dwie ostatnie opcje – Serwer SSH, który pozwoli nam na wygodne dostawanie się do maszyny oraz Podstawowe narzędzia systemowe:

Wybór oprogramownaia Debian

Później zapis programu rozruchowego – korzystamy z proponowanego miejsca na wirtualnym dysku:

GRUB - instalacja

No i mamy Debiana, wirtualnego:

Debian na maszynie wirtualnej

Maszyna jest gotowa do budowy Volumio na banana pi m1.

Budowa Volumio na Banana Pi M1

Na początek musimy zainstalować niezbędne pakiety, wymagane do budowy Volumio, prócz tego, co jest podane w informacjach na github, trzeba dodać sudo, ostatecznie będzie to wyglądało tak:

apt update && apt install sudo git squashfs-tools kpartx multistrap qemu-user-static samba debootstrap parted dosfstools qemu binfmt-support qemu-utils

Środowisko do budowy Volumio

Teraz sklonujmy sobie pliki niezbędne do budowy Volumio:

git clone https://github.com/volumio/Build build

Github Volumio - klonowanie

Przechodzimy do folderu build:

cd build

No i zaczynamy budowanie softu:

./build.sh -b arm -d armbian_bananapi_vanilla -v 2.0

Volumio - budowanie

Trochę to potrwa, a wynikowym plikiem będzie obraz z rozszerzeniem img, gotowy do zapisania na kartę.

Volumio - zbudowany obraz

Za pomocą scp skopiowałem go z maszyny wirtualnej do domowego katalogu na moim Mincie:

scp - kopiowanie pliku

Teraz plik wystarczy zapisać na karcie w dowolny sposób, kilka z nich opisałem tutaj: Jak przygotować bootowalną kartę SD lub pendrive?. Gotowy obraz, który zbudowałem według tego opisu, możecie pobrać z mojego Dropboksa. Zachęcam do założenia konta w tym serwisie z mojego linka i instalację klienta na komputerze – otrzymamy 500 MB przestrzeni gratis.

Volumio na Banana Pi – pierwsze uruchomienie

Kartę z Volumio wsadziłem do płytki Banana Pi, którą podłączyłem do sieci za pomocą kabla ethernet. W routerze sprawdziłem jaki adres IP został jej przydzielony. Jeśli mamy OpenWrt, lede czy inny linux, to możemy sprawdzić wpisy w pliku dhcp.leases, który znajduje się w folderze /tmp:

adresy ip z dhcp.leases

Czyli IP mojego Volumio to 192.168.1.147 . Interfejs jest responsywny i świetnie wygląda na smartfonie, ale nic nie stoi na przeszkodzie, żeby konfigurację przeprowadzić z przeglądarki komputera. Na początek warto uwolnić się od kabla. Czyli do usb banana pi wkładam kartę TL-WN722N, a na przeglądarce otwieram znaleziony wcześniej adres:

Volumio - kreator

W kreatorze najważniejszą opcją będzie połączenie sieciowe. Podłączona karta WiFi, powinna wykryć dostępne sieci, tak jak to widać wyżej. Po połączeniu z wybraną powinniśmy ujrzeć:

Podłączone do WiFi

Odpinamy kabel sieciowy. Teraz znowu trzeba ustalić jaki adres IP ma Volumio, by się z nim łączyć.

Szybka próba odtworzenia jakiegoś radia internetowego i… lipton, Volumio sypie błędami. Nie mamy co prawda DAC’a, ale z mini jacka też powinien płynąć dźwięk. W zakładce Opcje odtwarzania w Ustawieniach wszystko wygląda ok, ale nie ma dźwięku.

No więc trzeba zobaczyć co tam słychać w alsamixer. SSH w Volumio jest włączone tylko przy pierwszym uruchomieniu, trzeba więc włączyć je, przechodząc pod adres_ip/dev i przy ssh wciskamy ENABLE:

Volumio - włączenie ssh

Łączymy się do playerka przez ssh, nazwa użytkownika i hasło to po prostu volumio i odpalamy alsamixer:

Ustawienia alsa mixer brak dźwieku

Przechodzimy strzałkami na 3 pozycję – Power Amplifier DAC i włączamy go wciskając klawisz m, dalej przechodzimy do Power Amplifier Mute (5 pozycja) i też go włączamy przy pomocy m, wracamy na Power Amplifier (2 pozycja) i strzałkami góra/dół ustawiamy głośność, ogólnie całość powinna wyglądać tak:

Volumi0 - ustawienia alsamixer

I ustawienia w Volumio, ja mam tak to skonfigurowane i dźwięk na słuchawkach jest naprawę niezłej jakości:

Volumio - działające opcje odtwarzania

I już można się cieszyć muzyką.

Volumio - muzyka

A jeśli komuś nie wystarczy jakość dźwięku z mini jacka, to zawsze można podpiąć dac’a na usb, oby tylko był wspierany przez Volumio.

Banana Pi M1 - uruchomione Volumio

Podsumowanie

Jak widać, da się odpalić na Banana Pi coś, co nie jest dostępne out of box. Oczywiście należy pamiętać, że taki obraz może sprawiać problemy i nie będzie tak stabilny jak gotowiec na Raspberry czy innej wspieranej platformie. Jednak z powodzeniem można to wykorzystywać jako radio internetowe czy odtwarzacz audiobooków. Jakość dźwięku jest zadowalająca, uszy nie więdną ;). No dobra, to kto przeportuje RuneAudio na Banana Pi?

Możesz również polubić…

5 komentarzy

  1. j. pisze:

    > git clone https://github.com/volumio/Build build
    Tutaj chyba wkradł się błąd 🙂

  2. wv pisze:

    Dzięki za tutorial, próbowałem zbudować obraz do uruchomienia na banana pro (lub jak kto woli M1+). Niestety po stworzeniu obrazu i zgraniu go na kartę, banan nie uruchamia się (uboot nie zaskakuje – brak obrazu i świecąca stale czerwona dioda).

    Nie orientujesz się może czy jest jakaś szansa uruchomienia Volumio 2 na wyżej wspomnianej wersji banana?

    Z góry dzięki!

    • Wojtek pisze:

      Na Pro też powinno działać. Też miałem taki problem jak Ty, brak bootowania. Spróbuj zbudować firmware na ubuntu.

Leave a Reply

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.