Raspberry Pi jako serwer NAS: Samba, MPD oraz DAC

Raspberry Pi jako serwer NAS: Samba, MPD oraz DAC

W domu namnożyło się “inteligentnych urządzeń”, więc pojawiła się potrzeba współdzielenia danych. Po co dublować identyczne pliki na dwóch różnych urządzeniach – nie tędy droga. Patrzyłem na gotowe rozwiązania serwerów NAS na Allegro i ceny mnie odrzuciły natychmiastowo. Dobrym rozwiązaniem tej nieciekawej sytuacji jest użycie Raspberry Pi.

W związku z licznymi komentarzami chciałbym nadmienić, że pisałem tekst biorąc pod uwagę tylko i wyłącznie sprzęt posiadany w domu. Nie mam gniazda USB w routerze oraz nie podłączę do niego DACa (Schiit Bifrost). Można oczywiście podpiąć dysk i skonfigurować Sambę w routerze z wymienionymi opcjami, jednak ja się skupiam na Raspberry Pi!

Urządzenie miało spełnić kilka wymogów:

  • zamontowanie dysku zewnętrznego i udostępnianie plików domownikom – widoczność jako dysk sieciowy
  • serwer muzyczny sterowany za pomocą tabletu z Androidem
  • bezproblemowe oglądanie filmów oraz przeglądanie zdjęć
  • niska cena, stabilność, szybkość działania, obsługa bez dodatkowych monitorów, klawiatur i innych bzdetów
  • możliwość rozbudowy w wolnym czasie (automatyczne wyłączenie listwy z prądu po wyłączeniu serwera czy inna automatyzacja domu)

Na początek ustawiłem statyczne IP, konfiguracja jest następująca:

Pomocne okazały się komendy: ifconfig oraz netstat -nr. Na koniec:

Dzięki temu odłączyłem Raspberry Pi od telewizora i mogłem dalej konfigurować urządzenie siedząc przed laptopem wykorzystując Kitty z automatycznym logowaniem. A właśnie, skoro już jestem przy tym temacie to warto zrobić, aby zlikwidować ręczne logowanie do sytemu w RPi (edycja 55 linijki):

Można przy okazji odświeżyć firmware, aby zaktualizować jajko (u mnie nie zachodziła taka potrzeba na Raspbianie).

Po restarcie sytemu, overclockingu poprzez raspi-config dodaję do /boot/config.txt linię force_turbo=1:

Dlaczego? Doczytałem, że Pi w trybie normalnej pracy działa na nominalnej częstotliwości, czyli 700 MHz, zwiększa się dopiero, gdy jest takie zapotrzebowanie. Mnie interesuje praca ciągła na poziomie 900 MHz, stąd wymusiłem przyspieszenie. Co to mi dało?

Poprzednio zamiast “9” wyświetlała mi się siódemka, więc mam pewność, że overclocking się udał. Temperatura po kilku godzinach pracy oscylowała wokół 50 stopni, więc nie ma tragedii z zamontowanymi radiatorami (na nie miałem ich jeszcze gdy robiłem fotografie).

Montowanie dysku po uruchomieniu się sytemu to będzie podstawa. U siebie na dysku zastosowałem system plików ext4. Dam również prawa do zapisywania (a nie tylko odczyt). Sprawdzam UUID poleceniem blkid. Potem przystąpiłem do edycji fstaba (po stworzeniu katalogu “dysk” w /media). Ukryłem unikalny numer dysku, zatem można podziwiać piękny UUID: 3×666!

Dla dysku, który ma format plików NTFS trzeba doinstalować brakujący pakiet ntfs-3g, a następnie dodać linijkę (identycznie jak powyżej) o treści:

Instalacja serwera plików Samba przebiegła bezproblemowo:

Moja konfiguracja:

Dzięki temu inne urządzenia będą widziały “dwa” dyski sieciowe: pierwszy tylko do odczytu, a drugi po zalogowaniu z możliwością edycji, zapisu itd. Dodałem drugiego użytkownika na zapas, w razie konfliktów z logowaniem kilku urządzeń na jedno konto. Po zrestartowaniu Samby zmapowałem dysk sieciowy w Windowsie. Pojawił się również na Androidzie. Czyli pierwszy cel zakończony: udostępnianie i swobodna edycja plików w jednym miejscu.

Na sam koniec zostawiłem najważniejszą funkcję: Raspberry Pi jako odtwarzacz muzyki sterowany tabletem. Podłączyłem wzmacniacz do wejścia mini-jack i przystąpiłem do konfiguracji. Pamiętam jak pierwszy raz konfigurowałem Debiana (też bez X-ów, a co!) i chciałem puścić muzykę – Google ukazało MPD. I nic z tym nie zrobiłem, bo nie wiedziałem wtedy, że można po prostu zainstalować CMusa…

Dziś ogarnąłem angielskiego manuala i wyszło coś takiego:

Zauważyłem, że MPD nie uruchamia się automatycznie po włączeniu Raspberry Pi, więc napisałem skrypt:

I dodałem go do autostartu (crontab -e):

I gra muzyka – dosłownie :-)

Na sam koniec wprowadziłem kilka(naście) ulepszeń (optymalizacji), które miały na celu poprawienie szybkości działania Raspberry Pi. W chwili obecnej ilość zużywanej pamięci RAM jest zredukowana do minimum, nie notuję żadnych przycinek (miało to miejsce w “oryginalnym” Raspbianie). Jednak to się nadaje na osobnego posta.

Użyte aplikacje na Androidzie to:

  • ASTRO File Manager with Cloud – przeglądanie, kopiowanie plików
  • DicePlayer – bezproblemowe odtwarzanie filmów na tablecie
  • MPDroid – zdalne sterowanie muzyką z tableta, Raspberry Pi podłączony do wzmacniacza

Kilka refleksji:

  • Raspberry Pi dało mi dużo radości i odświeżenie informacji o linuksie/podstawach sieci
  • Siostra w końcu odcięła się od przewodu audio prowadzącego do wzmacniacza, jednak swobodna praca na tablecie to podstawa. Wygoda niesamowita, sterowanie muzyką z całego domu, nie mówiąc o tym, że na 16 GB pamięci zmieści się śmieszna ilość muzyki
  • Raspberry Pi posłuży mi jako baza do kolejnych projektów. Chciałbym zrobić jakąś automatyzację w pokoju – temat poczeka na wakacje
  • Oszczędność pieniędzy – kupiłem całość (Raspberry Pi wersja 512 MB + karta SDHC 8GB + zasilacz + obudowa) za 199 zł
  • Pierwsza konfiguracja NASa zajęła mi kilka godzin, ponowna to pewnie kwestia kilkunastu minut

Raspberry Pi i sprawa audio:

Powołując się na listę wspieranych przetworników cyfrowo analogowo-cyfrowych mój Bifrost powinien pójść bez problemu. I tak się stało! Wystarczy powiadomić MPD, że nie chcemy słuchać muzyki z szajowatego (domyślnego) wyjścia audio (zmiana z hw:0,0 na hw:1,0):

  • można się pobawić wyjściowym formatem np. na 24/192 – to co tygryski lubią najbardziej
  • puściłem “Chorus: And the Glory of the Lord” z “Messiah (Dublin Version, 1742)” Händla w wersji 24/192 – nie usłyszałem żadnych “dziwnych rzeczy”, wszystko grało bardzo ładnie
  • złotousi pewnie uznają Raspberry Pi w roli transportu za herezję, brak jakiś bit-perfectów w przypadku użycia USB itp. itd. No cóż, kwestia podejścia. Moim transportem jest cały czas laptop i różnicy nie usłyszałem :)
  • poważnie rozważam kupno zewnętrznego DACa dla Raspberry Pi w przyszłości. Jeden z takich wynalazków można znaleźć na stronie HiFiBerry. Jest WM8804 Wolfsona, 24/192, bit-perfect… świetne rozwiązanie!

Przykładowe zrzuty ekranu:

Ocena: 4.56/5 (głosów: 61)

Podobne posty

31 komentarzy do “Raspberry Pi jako serwer NAS: Samba, MPD oraz DAC

  • “Mnie interesuje praca ciągła na poziomie 900 MHz, stąd wymusiłem przyspieszenie. Co to mi dało?”

    No właśnie, co Ci to dało poza robieniem z RPI grzejnika?

    Odpowiedz
    • Nie mam żadnego grzejnika, ponieważ zamontowałem radiatory. Ponadto ograniczyłem zużycie zasobów do minimum, więc temperatura jest na stałym i bezpiecznym poziomie. A przyspieszyłem z następujących powodów: zaspokojenie zachcianki i wyeliminowanie zacinek, które zdarzały się podczas jednoczesnego odtwarzania gęstych plików i kopiowania różnych rzeczy na dysk.

      Odpowiedz
  • “Oszczędność pieniędzy – kupiłem całość (Raspberry Pi wersja 512 MB + karta SDHC 8GB + zasilacz + obudowa) za 199 zł”

    Nie chcę krytykować, ale wiesz, że Twoje potrzeby jest w stanie spełnić dowolny router za około 200PLN? Oczywiście frajda ze składania mniejsza, ale czy jest sens?

    Odpowiedz
    • Router może jest w stanie spełnić te wymagania, lecz te routery do 200zł nie są tak wydajne i nie posiadają tylu złącz wyprowadzonych.

      Odpowiedz
        • Nie mogę odpowiedzieć na to pytanie precyzyjnie, ponieważ w domu nie będzie mnie do połowy marca. Spróbuję odpowiedzieć następująco: nie mam żadnych problemów z odtwarzaniem filmów HD (4-6 GB) poprzez WiFi, więc nie jest źle. :)

          Odpowiedz
        • Na sterowniku ntfs-3g (odpowiedzialnym za obsługę ntfs) na ethernecie osiąga się max 2.4Mbps, po sformatowaniu dysku na ext4, transfery wzrastają do 6-8Mbps na @900Mhz

          Odpowiedz
    • Do routera nie podłącze zewnętrznego przetwornika cyfrowo-analogowego, który dla mnie jest podstawą jeśli chodzi o odtwarzanie muzyki. Również routera nie wykorzystam jako bazy do automatyzacji pokoju. Serwer NAS to dopiero początek zabawy Raspberry Pi.

      Odpowiedz
      • I tu jesteś w błędzie. Wystarczy router, który posiada wyprowadzone USB. Brat zrobił sobie stację radia internetowego z jakiegoś routera ASUSa. W USB wsadzona karta dźwiękowa i podgryza neta ze skrętki albo z WiFi (nie pamiętam już dokładnie). Sterowanie też zdalne, via MPD
        .
        Co do automatyzacji pokoju, to również jesteś w błędzie – np. Linksys WRT54GL posiada wyprowadzone dwa porty RS232, które działają w standardzie TTL (czyt: nie trzeba dodatkowo konwertera poziomu napięć). Fakt, jeden port jest głównie na potrzeby wewnętrznej konsoli, ale nadal masz do dyspozycji jeden port. No, na upartego jednak dwa.

        I nawet jak masz postawione zwykłe Tomato, to możesz sobie wykorzystać /dev/ttyS0. Kartę SD do WRT też wciśniesz, trzeba tylko wyprowadzenia przylutować, jest zpatchowane Tomato.

        Siejesz herezje, Arturze. [;

        Odpowiedz
        • Nie zrozumieliśmy się, ale rozumiem twój punkt widzenia. Wyraziłem się niejasno więc może napiszę o co mi chodzi: w domu nie posiadam routera z USB, RS-em itp. więc nici z podłączenia dysku oraz tworzenia innych ciekawych rzeczy. Jeśli ktoś ma dodatkowe funkcję to proszę bardzo – ja do postawienia NASa wykorzystałem Raspberry Pi, ponieważ nie widziałem innych możliwości. Zdecydowanie wolę kupić Rpi niż zmieniać router, bo “stary” przecież działa bez problemu. :-) Pozdrawiam serdecznie.

          Odpowiedz
          • Router – a widzieliście ile jest dziur w routerach? :] To powiem wam że do większości routerów (które są wystawione do internetu) da się z niego dostać nie znając hasła.

            A co do “Po co dublować identyczne pliki na dwóch różnych urządzeniach” jak najbardziej JEST POCO! zdechnie ci dysk przy raps, albo go coś zaatakuje i pliki szlak trafił, a tak są w innym miejscu;) Możesz też zainstalować serwer http i ownCloud;) Ale to juz chyba przerost formy nad treścią;)

            Do backupu, jak już koniecznie chcesz zostawić 1 dysk polecam na najważniejsze dane dodać np. https://copy.com?r=d7ydIW (z tego linku ty masz 20GB zamiast 15 a ja +5 do swojego konta)

            Mają aplikacje synchronizującą się z raps. zajmuje około 10MB ram. Do tego masz pliki dostępne po www, gdzie tylko chcesz;)

            Popieram Raps’a;)

            Odpowiedz
              • Ale hosting jest po co innego:P Dropbox nie lubię za mało miejsca;) I regulamin eee…

                A backup powinno się mieć poza domem;) Pożar czy coś;) Albo jakiś złodziej;) Wszystko jedno jak, ale najlepiej poza domem:)

                Odpowiedz
      • Wystarczy Ci tp link za 100zł i oprogramowanie OpenWRT, zrobisz nie tylko to ale nawet więcej ;) Ale nie krytykuję, bo raspi to świetna zabawka, a sam projekt bardzo dobry.

        Odpowiedz
        • Właśnie czytam sobie tego arta, bo też mam w planie taką konstrukcję i chcę rozwiać wszelkie wątpliwości bo mam doświadczenie (a widzę, że wiele tutaj czysto teoretycznych mądrości) – można do routera z usb na tomato podłączyć DACa (zresztą czym jest karta dźwiękowa?), ale wszystko zależy od zastosowanego w nim przetwornika (właściwie jego popularności ;)). Sprawdzone – działa, z tym, że jest inny problem – wydajność mpd (Netgear 3500).

          Odpowiedz
    • Dziękuję za ocenę :) Nie będę do tego dorabiał XBMC, usunąłem serwer X-ów, nie mam żadnych “graficznych pulpitów”. Wszelkie zmiany dokonuję poprzez SSH, a muzyką steruje siostra za pomocą tabletu. Nie zamierzam podpinać Raspberry Pi do żadnych telewizorów czy tworzyć z niego “centrum multimedialnego”.

      Odpowiedz
    • XBMC na rPi działa IMO średnio – a na pewno nie odpowiada moim oczekiwaniom :) Odtwarzanie filmów jeszcze jako-tako, aczkolwiek już te największe (~15GB pliku) się przycinały. Podobno można było to trochę zoptymalizować nie dekodując strumienia AC3 tylko wypychając go bezpośrednio na kanał audio, ale już z tym nie kombinowałem. Pliki brałem z NASa bezpośrednio. Wszystkie inne pliki wideo odtwarzał bez problemu – w końcu ma do tego wspomaganie sprzętowe. Z kolei płynność interfejsu użytkownika pozostawiała dużo do życzenia. Można oczywiście znaleźć jakiś bardzo lekki temat graficzny, ale dla mnie estetyka i bajeranckość XBMC to połowa frajdy z korzystania z niego :)

      Odpowiedz
  • A ja wiedzę tutaj jeden poważny problem wydajnościowy. Odpal kopiowanie jakiegoś pliku na sambę i zobacz co Ci obciąża najbardziej system… podpowiem ntfs-3g. To jest znany problem tego sterownika. Efektem jest to, że transfery na/z sambę masz na poziomie 2-2.4Mbps. Na początku mi to nie przeszkadzało. Ale apetyt rośnie w miarę jedzenia. Jak backup z lokalnych stacji wykonywał się za długo, a filmy przegrywały się bardzo długo to zmieniłem format dysku na ext4 i od tego czasu transfer wzrósł do 7-8Mbps, obciążenie spadło znacznie, a temperatura utrzymuje się na poziomie 45-47 stopni.

    Odpowiedz
    • Najbardziej obciąża Raspberry Pi ntfs-3g – tak, to wiedziałem. Jednak jakoś nie przychodziło mi do głowy, aby zmienić system plików na ext4, nie czułem takiej potrzeby. Jak będę w domu to się tym zajmę na bank, bardzo dziękuję za wartościowy komentarz.

      Odpowiedz
  • Brawo! Jestem za jakimś podziałem majsterkowa na dwie kategorię, nazwijmy cyfrową i analogową, bo szczerze nie uważam tych podstawek za szczególnie mądre artykuły. Ale jest to poniekąd majsterkowanie, jednakże, mnie osobiście nie interesują one w ogóle i nieomal przeoczyłem ten ciekawy artykuł w całym tym bałaganie. A od siebie pozdrawiam tą bardziej elektroniczno-informatyczną część majsterkowa. Tak trzymać! Tylko dla tych projektów tu zaglądam.

    Odpowiedz
  • Z zewnętrznych Daców polecam konstrukcje z kostkami WM8742 lub PCM1792. Obsługują gęste formaty i są bardzo muzykalne. WM8804 to SPIDIF Receiver :-) Notabene bardzo dobry, choć z tendencją do przycinek po restarcie. Ale i tak największy problem, to skąd pewne źródło 24/192 muzy, które nie doprowadzi do zapaści finansowej. Szacun za pomysł i realizację, czyli połączenie wiedzy z umiejętnościami. Za cienki jest w linuksie, żeby się na to porwać. Jakimś cudem odpaliłem Free NAS na platformie Intel Atom z pasywnym chłodzeniem + Logitech Squeezbox Classic. Jako transport plików muzycznych daje radę, ale filmów nie da się pooglądać, a sterowanie tylko dedykowanym pilotem. Okrutnie mnie ten pomysł z Pi zafrapował. Wielkie dzięki za inspiracje.

    Odpowiedz
  • Możesz mi pomóc z konfiguracją MPDroid? … nie wiem co mam tam wpisać.
    W pliki konfiguracyjne wkleiłem dokładnie to co Ty.
    MPDroid nie może się połączyć.

    Jestem na etapie że mam widoczny w “Sieć” pendrive zamontowany w rapsberry i mogę na niego zapisywać pliki. Jak dysk sieciowy.

    Odpowiedz
  • Świetny pomysł i dobry tutek. Od siebie dodam że na nowym raspibianie bez optymalizacji 1-edynka krecona na 800 (odtwarzanie 2 mkv naraz z sieci – podpięty 64GB pendrive) + muza na wieże + łączenie zdalne na terminal (server SSH) i się nie tnie !!! (wyłączony LightDM)
    Jedynie to sygnał audio nie powala, ale jak ktoś to łączy tak jak ja ze zwykłą starą wieżą i nie jest nietoperzem to funkcjonalność tego zestawu (malinka+obudowa+pendrive=około 150 pln) to i tak bomba!!!
    Wielkie dzieki

    Odpowiedz
  • Artykuł stary, ktoś próbował na nowej 3 lub najnowszej 3 B+??

    Jak podłączyłeś dyski twarde do rpi? (czytałem cały art i mi to umknęło). To były dyski sieciowe, chyba
    nie SATA?

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?