Elektroda.pl
Elektroda.pl
X
Servizza
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Jak uruchomić Apple Airplay na Raspberry Pi w siedmiu prostych krokach

ghost666 06 Sty 2019 16:39 1329 2
  • Jak uruchomić Apple Airplay na Raspberry Pi w siedmiu prostych krokach
    Czy masz sprzęt audio, który jest zbyt stary, by wspierać Apple Airplay, z którego chcesz korzystać? Nie chcesz zamieniać go na niższej jakości bezprzewodowe głośniki, ale chcez słuchać muzyki z Internetu? To częsty problem. Dobra wiadomość jest taka, że rozwiązanie tego problemu kosztuje tyle co Raspberry Pi - niedużo. W oparciu o ten minikomputer zestawić można prosty serwer Airplay, który pozwoli nam bezpośrednio przekazywać muzykę z naszego iPhona lub iPada do starszego zestawu audio.

    W poniższym poradniku opiszemy jak skonfigurować w siedmiu prostych krokach serwer Shairport-sunc na komputerze Raspberry Pi

    Zanim zaczniesz

    Zanim zaczniemy samo konfigurowanie i programowanie sprzętu, musimy koniecznie rozważyć kilka kwestii.

    Wybór odpowiedniego modelu 'Maliny'

    Być może jakieś Raspberry Pi leży już u Ciebie w domu, wtedy nie ma problemu z wyborem. Większość modeli powinna działać w opisanej poniżej aplikacji, ale problematyczne może być, np. Pi Zero, z uwagi na fakt, że ciężej tam skonfigurować połączenia sieciowe. Zanim zaczniemy konfigurować nasze Raspberry Pi Zero, dobrze jest poczytać o tym więcej w Internecie. Model Pi Zero W nie będzie miał już takich problemów. Jednordzeniowy procesor znajdujący się w modelach Zero dosyć dobrze radzi sobie ze strumieniem audio, przynajmniej tak długo, jak nie każe mu się robić w tym czasie nic innego.

    Jeśli chcemy kupić nową malinę, to najlepiej wykorzystać Model 3 Autor wykorzystał w swojej konstrukcji Raspberry Pi 3 A+, ponieważ zależało mu na zmniejszeniu wielkości systemu i wbudowanym interfejsie, ale model 3 B sprawdzi się identycznie dobrze.

    Wybór systemu operacyjnego

    Pierwszą rzeczą, jaka będzie potrzebna, jest karta SD z obrazem systemu operacyjnego na Raspberry Pi. Obecnie wybór jest znacznie szerszy niż kiedyś - od tradycyjnego Raspbiana poprzez dedykowane systemu operacyjne dla urządzeń multimedialnych po Windows 10 w wersji dla systemów Internetu Rzeczy.

    Serwer Airplay nie jest jak Kodi, które wymagać będzie ekranu, do prezentacji swojego bogatego interfejsu graficznego. Zasadniczo urządzenie to może pracować zupełnie Headless, bez interfejsu użytkownika, jako że wszystkie nastawy zadawane są ze strony urządzenia klienckiego z iOSem lub macOSem. Praktyczne jest posiadanie jakiegoś wyświetlacza by prezentować dane odtwarzanego utworu - autora i tytuł - ale nie jest to w żaden sposób wymagane do działania układu.





    Przy tych wymaganiach widzimy, że szukać powinniśmy raczej minimalistycznego systemu operacyjnego, który nie wprowadza a duo dodatków, gdyż aby zagwarantować sobie stabilne działanie serwera Airplay bez zacięć dobrze jest zminimalizować liczbę procesów pracujących w danym momencie na 'Malinie' - pozostawi to dostatecznie dużo pamięci RAM jak i mocy obliczeniowej wolnej na potrzeby serwera.

    Problemem z tego rodzaju uproszczonymi systemami (jak np. Arch Linux) jest jednakże to, że wymagają sporej wiedzy od użytkownika. Są one zaawansowane i szybkie, jednakże jest także spora szansa, że próbując na nich zainstalować jakieś aplikacje czy biblioteki...

    Na drugim końcu spektrum są systemy operacyjne tak zoptymalizowane dla nowych użytkowników, że korzystając z nich nie nauczymy się zupełnie niczego na temat architektury i wykorzystania tego systemu operacyjnego.

    Więcej o systemach operacyjnych dla Raspberry Pi poczytać możemy w tym temacie na forum.

    Z uwagi na powyższe autor zdecydował się na wykorzystanie Raspbiana w wersji Lite. Z jednej strony to dojrzały, zaawansowany system operacyjny oparty o tradycyjnego dla RPi Raspbian OSa, ale został on uproszczony - zrezygnowano z GUI, by mógł on pracować na słabszych maszynach. Łatwo się go konfiguruje (pomimo pracy jedynie z terminalem tekstowym) czy też utrzymuje, dzięki możliwości zarządzania systemem w postaci headless poprzez np. SSH. Dzięki temu maszyna nie będzie potrzebowała klawiatury ani myszy, jedynie połączenie sieciowe, które i tak potrzebne jest do działania serwera Airplay. To czyni Raspbian Lite idealnym do wykorzystania w poniższej aplikacji.

    Instalacja Raspbian Lite i uruchomienie SSH

    Jeśli macie już Raspberry Pi z zainstalowanym systemem, albo wiecie jak to zrobić, to możecie pominąć pierwszy krok - instalację systemu operacyjnego na komputerze. Jeśli musicie zacząć od instalacji OS, to postępować można zgodnie z tym poradnikiem.

    Po zainstalowaniu systemu operacyjnego i uruchomieniu Raspberry Pi możemy z pomocą Raspi-config zezwolić na łączenie się z komputerem z pomoc SSH. W ten sposób możemy uruchomić Raspberry Pi w pełni headless i konfigurować je wygodnie zdalnie z własnego komputera.

    Konfiguracja serwera Airplay

    1. Instalacja zależności

    W pierwszej kolejności zainstalować musimy zależności, jakich wymagać będzie sama aplikacja. W terminalu najpierw aktualizujemy system, a potem instalujemy najnowsze wersje poszczególnych bibliotek:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    2. Zbuduj i zainstaluj shairport-sync/

    Oprogramowanie to, napisane i utrzymywane przez Mika Bradyego jest bardzo ciekawym pakietem, które zamienia linuksową maszynę w serwer Apple Aurplay. Pracuje bezpośrednio z linii komend i pomimo wielu możliwości konfiguracji, to bardzo prosto jest go uruchomić.

    Najpierw klonujemy repozytorium z githuba:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Następnie wchodzimy do folderu shaairport-sync i konfigurujemy budowanie aplikacji:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Finalnie możemy zbudować i zainstalować aplikację:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Po tym kroku na naszej 'Malinie' mamy już działającą instalację naszej aplikacji - serwera Airport.

    3. Konfiguracja wyjścia audio.

    Możemy teraz skonfigurować serwer tak, by odtwarzał dźwięk w pożądany przez nas sposób. Najpierw potrzebujemy odpowiedniego wyjścia:

    * Dowolne słuchawki z jackiem 3,5 mm.
    * Aktywne głośniki z kablem z jack 3,5 mm.
    * Kabel z jack 3,5 mm z jednej strony i dwoma wtyczkami RCA z drugiej, by podłączyć RPi do sprzętu Hi-Fi.

    W raspi-config musimy ustawić, by dźwięk był przekierowywany na wyjście 3,5 mm - domyślnie wybrana jest opcja 'auto', która jest dla nas za mało precyzyjna. W linii komend wpisujemy:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Następnie wybieramy “7. Advanced Options”, i “A4. Audio”, zaznaczamy opcję numer 1 “Force 3.5mm (‘headphone’) jack”. To wymusi wyjście dźwięku na gnieździe słuchawkowym.

    4. Ustawienie głośności.

    Głośność powinniśmy ustawić od razu na 100% i regulować ją w dalszych elementach toru audio, np. wzmacniaczu. By w Raspberry Pi ustawić głośność na 100%, wpisujemy w linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Dokładne zrozumienie, jak działa regulacja głośności nie jest takie proste, ponieważ podawana jest ona w decybelach, które dla laika mogą być co najmniej nieintencjonalne. W skali decybelowej, przyjętej w systemie 0 dB odpowiada maksymalnej głośności. Najniższy poziom to z kolei około -100 dB. Niestety nie to jest najbardziej skomplikowanym elementem skali decybelowej - dodatkowo jest ona nieliniowa, co oznacza, że procenty ustawienia głośności nie działają tak, jak nam się wydaje... Jeśli chcemy tylko odrobinę przyciszyć wyjście i ustawimy ją na, załóżmy 80%:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    To system tak naprawdę ustawi głośność wypadkowo na - 17 dB, ale my już nic nie usłyszymy albo dźwięk będzie ekstremalnie cichy. Procenty odpowiadają liniowo decybelom, więc nie możemy regulować ich liniowo. Poniżej 70% nie usłyszymy już nic. Dwa razy cichszy dźwięk będzie już przy 97%, dlatego też zostawmy bez wgłębiania się w to głośność na poziomie 100% i regulujmy ją gdzie indziej, gdzie jest to trochę bardziej intuicyjne.

    5. Przetestujmy Airplay na Raspberry Pi.

    Zacznijmy od uruchomienia shairport-sync:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz serwer już działa i możemy się z nim połączyć. Dopóki tego nie zrobimy, to nic nie usłyszymy. Dlatego skorzystajmy teraz z iPhone lub innego kompatybilnego urządzenia, które wspiera Airplay i połączmy się z naszym serwerem. Po wybraniu opcji połączenia się z odtwarzaczem, wybieramy raspberrypi i klikamy "Done".

    Jak uruchomić Apple Airplay na Raspberry Pi w siedmiu prostych krokach
    Wybieranie Raspberry Pi jako odtwarzacza Airplay na telefonie iPhone.


    Jeśli początkowo nic nie słyszymy, to należy podkręcić poziom głośności w naszym telefonie, ponieważ wyjście audio w Raspberry Pi nie est szczególnie głośne. W tym momencie powinniśmy już coś usłyszeć.

    6. Konfiguracja shairport-sync do automatycznego uruchamiania się wraz z systemem.

    Chcemy, by nasz dedykowany odtwarzacz był zawsze gotowy i po uruchomieniu komputera od razu mógł przyjmować połączenia do serwera Airplay. Dlatego też, musimy dodać usługę shairport-sync do automatycznie uruchamianych przez system Pi, gdy tylko się on załaduje. Na szczęście skonfigurowaliśmy serwer tak, by działał z systemd. Oznacza to, że możemy skonfigurować tą usługę, by uruchamiała się automatycznie ze startem systemu. Wystarczy w linii komend wpisać:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Powinna wtedy pokazać się informacja tego rodzaju:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    która potwierdzi nam, że udało nam się dodać serwer Airplay do uruchamianych przy starcie systemu (persystentnych) usług. Teraz możemy bezpiecznie zresetować komputer:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz po zalogowaniu się przez SSH, by sprawdzić, czy shairport-sync jest uruchomione, możemy wpisać:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Jeżeli wszystko dobrze działa, powinno zaowocować następującą odpowiedzią systemu:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz za każdym razem, gdy uruchomimy Raspberry Pi, serwer Airplay będzie automatycznie uruchomiony.

    7. Zapobieganie gubieniu sieci Wi-Fi.

    Raspberry Pi ma tendencję do gubienia połączenia z siecią Wi-Fi, gdyż przełącza się okresowo w tryb oszczędzania energii. W naszym systemie chcemy tego uniknąć, by system działał gładko i bez problemów. Aby to zrobić, musimy dodać dodatkową linię w pliku konfiguracyjnym /etc/network/interfaces. wpisujemy w linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    A do pliku dopisujemy:

    Code:
    # Disable wifi power management
    
    wireless-power off


    Po tym możemy zresetować system:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Teraz nasz serwer Airplay powinien chodzić bez najmniejszych problemów. Jeżeli jednak napotykamy jakieś problemy, to zapoznajmy się z poniższym poradnikiem rozwiązywania problemów.

    Jeżeli nie widzimy naszego urządzenia - raspberrypi - w liście urządzeń Airplay, to w pierwszej kolejności sprawdzić musimy, czy usługa jest uruchomiona. Robimy to, wpisując w linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Jeżeli usługa jest uruchomiona, a nadal nie widzimy serwera, to musimy sprawdzić, czy nasze urządzenie jest w tej samej sieci LAN, a najlepiej tej samej sieci Wi-Fi, co serwer Airplay. Oczywiście obydwa urządzenia muszą być w zasięgu sieci bezprzewodowej.

    Jeżeli połączyliśmy się z serwerem, ale nic nie słychać, to należy upewnić się, że ustawiliśmy wszędzie odpowiednio wysoki poziom głośności. Na źródłowym urządzeniu dobrze ustawić dźwięk na 80..90%, w Raspberry Pi dźwięk powinie być ustawiony na maksa (100%). W RPi możemy sprawdzić poziom głośności, wpisując w linii komend:

    Kod: bash
    Zaloguj się, aby zobaczyć kod


    Komend zwróci nam aktualne ustawienia w postaci:

    Code:
    Mono: Playback 400 [100%] [4.00dB] [on]


    Jeżeli ustawione jest cokolwiek poniżej 70% (-27 dB), to najpewniej nie usłyszymy absolutnie nic. Dlatego też najlepiej tutaj poziom głośności ustawić na 100%.

    Oczywiście, należy także sprawdzić konfiguracje naszego sprzętu audio, podłączonego do Raspberry Pi.

    Uwagi co do jakości dźwięku

    Wiele osób zwrócić może uwagę na słabą jakość dźwięku z wbudowanego gniazda audio Raspberry Pi. Do poprawy dźwięku wykorzystać można dedykowane moduły przetworników cyfrowo-analogowych (DAC) podłączających się do interfejsu I²S. Na rynku jest wiele tego rodzaju układów. Autor próbował dwóch typów DAC. Pierwszym z nich był IQAudIO PiDAC +, który ma idealny kształt, pasujący do nowego modelu Pi 3 A +. Używał również HiFiBerry DAC + Zero na Pi Zero W. Oba moduły są niesamowicie proste w konfiguracji i brzmią świetnie.

    Kolejną bardzo popularną alternatywą, której autor jeszcze nie testował, jest przetwornik Pimoroni pHAT DAC.

    Nie ma dostępnych poważnych testów porównawczych, ale zmiana z wbudowanego wyjścia audio na dedykowany przetwornik DAC da ogromną poprawę jakości dźwięku.

    Źródło: https://appcodelabs.com/7-easy-steps-to-apple-airplay-on-raspberry-pi


    Fajne! Ranking DIY
  • Servizza
  • #2 06 Sty 2019 17:57
    RafalB

    Poziom 26  

    Wole 1 krok...ściągam Volumio :)

  • Servizza