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.

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ą:

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

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.

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

No i dysk się tworzy:

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:

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:

Ostatecznie wygląda to tak:

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.

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

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

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:

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:

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

No i mamy Debiana, wirtualnego:

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

Teraz sklonujmy sobie pliki niezbędne do budowy Volumio:

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

Przechodzimy do folderu build:

cd build

No i zaczynamy budowanie softu:

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

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

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

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:

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:

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ć:

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:

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

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:

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

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

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.

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?

Wojtek

Zobacz komentarze

  • 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!

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

Ostatnie posty

Tani moduł IoT z kamerką ESP32 CAM – pierwsze uruchomienie

Mega tanie, bezprzewodowe moduły Internet of Things na dobre zadomowiły się w naszych sieciach. Od…

2 dni temu

Aktualizacja oprogramowania w stacji lutowniczej AiXun T3A

Pewnie nie każdy posiadacz tytułowej stacji lutowniczej wie, że posiada ona możliwość aktualizacji firmware'u. Producent…

2 tygodnie temu

Programator USB AVR ISP z Arduino Nano

Jakiś czas temu, przeglądając Aliexpress natknąłem się na ciekawy shield do Arduino Nano. Według opisu…

4 tygodnie temu

Tester elementów elektronicznych na atmega – aktualizacja firmware’u

W mailach i komentarzach kilka razy przewijała się prośba o ten wpis. Chodzi o aktualizację…

2 miesiące temu

Wzmacniacz słuchawkowy Lovely Cube – popularny klon Lehmanna

Dziś tematyka audio, a nawet audiofilska. Uznany wzmacniacz słuchawkowy Lehmann Black Cube Linear o dość…

2 miesiące temu

Podsumowanie 2023 roku

Tradycyjnie w styczniu, publikuję podsumowanie minionego roku na stronie grylewicz.pl. Poniżej trochę liczb, lista najpopularniejszych…

3 miesiące temu