W tym samouczku wyjaśnię, jak zainstalować serwer strumieniowego przesyłania muzyki (madsoniczny) w Raspberry Pi z Ramię ArchLinux.
Aby zobaczyć samouczek dotyczący instalacji Arch Linux na Raspberry Pi możesz na to spojrzeć pisać.
Główne cechy Madsonic to:
- Intuicyjny interfejs sieciowy
- Obsługuje transkodowanie do różnych formatów (np. FLAC> mp3)
- Ma klientów na Androida i iOS
Ograniczenie pamięci RAM do tworzenia GPU i obszaru wymiany (SWAP)
Serwer madsonic działa pod Javą, dlatego na 256MB RAM Raspberry Pi zużywa około 50% pamięci RAM. W takim przypadku polecam utworzenie pliku obszar wymiany (zamień), aby zapobiec wyczerpaniu pamięci w Raspberry Pi.
1. Tworzymy plik, który będzie używany jako obszar wymiany plików i przydzielamy mu przestrzeń 512 MB
# fallocate -l 512M / swapfile
2. Do pliku przypisujemy uprawnienia do odczytu i zapisu.
# chmod 600 / swapfile
3. Formatujemy jako swap
# mkswap / swapfile
3. Aktywujemy swap
# swapon / swapfile
4. Dodajemy następujący wiersz do pliku / etc / fstab aby automatycznie zamontować swap.
/ plik wymiany brak wartości domyślnych wymiany 0 0
5. Modyfikujemy plik /etc/sysctl.d/99-sysctl.conf tak, że zapis w zamianie jest wykonywany tylko w przypadku, gdy mamy mało dostępnej pamięci RAM. Dodajemy następujący wiersz
vm.swappiness = 10
6. Użyj polecenia wolny -h sprawdzamy ilość pamięci RAM, którą mamy.
7. Modyfikujemy plik /boot/config.txt w zależności od posiadanego modelu Raspberry Pi, ogranicza ilość pamięci RAM przeznaczonej na grafikę.
Na grafikę przeznaczymy 64 MB pamięci RAM.
- Dla Raspberry Pi model A (z 256 MB pamięci RAM) modyfikujemy linię gpu_mem_256 = 128 przez gpu_mem_256 = 64
- Dla Raspberry Pi model B (z 512 MB pamięci RAM) modyfikujemy linię gpu_mem_512 = 316 przez gpu_mem_512 = 64
Przetaktowywanie (opcja)
Zmodyfikujemy plik /boot/config.txt i odkomentujemy niektóre opcje przetaktowywania znajdujące się na końcu pliku.
##Modest arm_freq=800 core_freq=300 sdram_freq=400 over_voltage=0 ##Medium #arm_freq=900 #core_freq=333 #sdram_freq=450 #over_voltage=2 ##High #arm_freq=950 #core_freq=450 #sdram_freq=450 #over_voltage=6 ##Turbo #arm_freq=1000 #core_freq=500 #sdram_freq=500 #over_voltage=6
Użyłem opcji Modest (prędkość 800), z tą prędkością moja Raspberry Pi To dobrze działa.
Instalacja Madsonic
Madsonic jest w Repozytorium użytkowników Arch Linux (AUR), dlatego potrzebujemy pakietu base-devel, aby móc kompilować programy AUR.
Instalujemy niezbędne pakiety:
# pacman -S wget curl base-devel yajl libcups środowiska wykonawczego java
Tworzymy katalog do kompilacji i pobieramy madsonic z AUR.
$ mkdir build $ cd build $ wget https://aur.archlinux.org/packages/ma/madsonic/madsonic.tar.gz
Rozpakowujemy pliki i edytujemy plik Pkgbuild. aby dodać obsługę procesorów ARM. Szukamy linii arch = ('i686' 'x86_64') i dodajemy
„armv6h”.
$ tar zxf madsonic.tar.gz $ cd madsonic $ nano PKGBUILD ... arch = ('i686' 'x86_64' 'armv6h')
Używamy polecenia makepkg aby pobrać i skompilować kod madsonic. Może to zająć dużo czasu. Bądź cierpliwy.
$ makepkg -g >> PKGBUILD $ makepkg
Polecenie makepkg Wygeneruje plik z rozszerzeniem .xz, ten plik można zainstalować za pomocą programu pacman.
# pacman -U madsonic-5.0.3860-1-armv6h.pkg.tar.xz
Instalowanie Java Oracle for ARM
Po zainstalowaniu madsonic zauważyłem to openjdk wykorzystuje prawie 100% procesor, co oznacza niską wydajność Raspberry Pi.
Rozwiązaniem tego problemu jest użycie Oracle Java dla architektury ARM. Aby uzyskać więcej informacji na ten temat, możesz zapoznać się z artykułem oracle, w którym przedstawiają test porównawczy Oracle Java vs OpenJDK w tym link.
Pobieramy Java Oracle dla architektury ARM
wget --no-cookies \ --no-check-certificate --header "Plik cookie: gpw_e24 = http% 3A% 2F% 2Fwww.oracle.com% 2F; \ oraclelicense = accept-securebackup-cookie" \ "http: / /download.oracle.com/otn-pub/java/jdk/7u55-b13/jdk-7u55-linux-arm-vfp-hflt.tar.gz ”
Rozpakuj plik w ścieżce / opt / java-oracle /
# mkdir / opt / java-oracle # tar -zxf jdk-7u55-linux-arm-vfp-hflt.tar.gz -C / opt / java-oracle
Tworzymy zmienną środowiskową Java Home i wykonujemy kopię zapasową plików wykonywalnych Java OpenJDK.
# JHome = / opt / java-oracle / jdk1.7.0_55 # test -L / usr / bin / java && mv /usr/bin/java[,.backup}
Tworzymy dowiązania symboliczne do Jawa y javac.
# ln -sf /opt/java-oracle/jdk1.7.0_55/bin/java / usr / bin / java # ln -sf /opt/java-oracle/jdk1.7.0_55/bin/javac / usr / bin / javac
Teraz możemy przetestować instalację javy poleceniem java -version
[eroland @ alarmpi ~] $ java -version java version "1.7.0_55" Java (TM) SE Runtime Environment (build 1.7.0_55-b13) Java HotSpot (TM) Client VM (build 24.55-b03, tryb mieszany)
Edytujemy plik konfiguracyjny madsonic, aby używał Java Oracle, a nie Java OpenJDK.
# nano /var/madsonic/madsonic.sh
I modyfikujemy linię JAVA_HOME tak, aby wyglądało to następująco:
JAVA_HOME = / opt / java-oracle / jdk1.7.0_55 / jre: / usr / lib / jvm / java-7-openjdk
Konfiguracja Madsonic
Konfiguracja madsonic jest wykonywana w pliku /var/madsonic/madsonic.sh, pierwszą rzeczą, jaką robimy, jest wsparcie.
cp /var/madsonic/madsonic.sh[,.backup}
W tym pliku możesz zmodyfikować port, z którego będzie korzystał madsonic (domyślnie używa portu 4040), ścieżkę do folderu, w którym będą przechowywane utwory itp.
Dodamy plik Zewnętrzny dysk twardy podłączony przez USB, gdzie umieścimy utwory do odtwarzania.
Jeśli dysk twardy jest sformatowany NTFS, aby zamontować dysk, musisz zainstalować pakiet ntfs-3g.
# pacman -S ntfs-3g
Tworzymy folder, w którym zostanie zamontowany dysk twardy i nadajemy mu niezbędne uprawnienia
# mkdir / mnt / Data # chmod 775 / mnt / Data
Otrzymujemy punkt montowania naszego dysk twardy
$ ls -l / dev / disk / by-label / total 0 lrwxrwxrwx 1 root root 10 31 grudnia 1969 Dane -> ../../sda2 lrwxrwxrwx 1 root root 10 31 grudnia 1969 PS3 -> ../../ sda1
W moim przypadku interesuje mnie dysk z etykietą Data w formacie / Dev / sda2
Jednak użycie etykiety do zamontowania dysku nie jest wysoce zalecane, ponieważ w przypadku zmiany etykiety dysk nie może zostać zamontowany.
Otrzymujemy unikalny identyfikator (UUID) z naszego dysku twardego.
ls -l / dev / disk / by-uuid /
Otrzymamy wynik podobny do tego:
[eroland @ alarmpi ~] $ ls -l / dev / disk / by-uuid / total 0 lrwxrwxrwx 1 root root 10 31 grudnia 1969 19F4-1917 -> ../../sda1 lrwxrwxrwx 1 root root 15 31 grudnia 1969 2300 -4E18 -> ../../mmcblk0p1 lrwxrwxrwx 1 root root 10 31 grudnia 1969 58F6AA78F6AA55D2 -> ../../sda2 lrwxrwxrwx 1 root root 15 31 grudnia 1969 b471cde8-2a15-44e7-acce9 .. --2a / mmcblk54511p6
Zapisujemy UUID naszego dysku twardego (w tym przypadku 58F6AA78F6AA55D2)
Na końcu pliku dodajemy następujący wiersz / etc / fstab
UUID = 58F6AA78F6AA55D2 / mnt / Data ntfs-3g domyślnie 0 0
Ponownie uruchamiamy nasze Raspberry Pi, a dysk twardy zostanie automatycznie zamontowany.
Wreszcie zaczynamy usługę madsonic:
# systemctl uruchom madsonic.service
Jeśli chcemy, aby usługa uruchamiała się automatycznie przy każdym ładowaniu systemu.
# systemctl włącz madsonic.service
I voila, mamy nasz serwer strumieniowego przesyłania muzyki.
Kiedyś usługa madsoniczny, możemy wejść z naszej preferowanej przeglądarki na adres IP naszego Raspberry Pi wraz z portem 4040, w moim przypadku jest to 192.168.17.1:4040 i wchodzimy za pomocą danych użytkownik = admin hasło = admin.
Już w interfejsie WWW możemy dodawać nowych użytkowników i zmieniać domyślne hasło.
Cóż, to mój pierwszy wkład, mam nadzieję, że Ci się spodoba.
Źródła:
http://d.stavrovski.net/blog/post/set-up-home-media-streaming-server-with-madsonic-archlinux-and-cubieboard2
http://www.techjawab.com/2013/06/how-to-setup-mount-auto-mount-usb-hard.html
Nie mam zgrzyta, ale jeśli domowy serwer strumieniowy xD, czy kiedykolwiek używałeś mediatomb? Jeśli tak, co możesz mi powiedzieć w porównaniu z tym? Używam mediatomb, na pierwszy rzut oka interfejs madsonic daje mediatomb xD tysięcy tur, co by mnie bardzo zaciekawiło, to wiedzieć, czy można przesyłać strumieniowo przez "WAN" i czy jest to przez lepiej zabezpieczony protokół, ponieważ mediatomb pozwala na zarządzanie przez internet, ale nie przez https, a także ( do tej pory znalazłem tylko klienta na androida) streaming z mediatomb przez WAN (jeśli z telefonu komórkowego będąc gdziekolwiek mogę odtwarzać muzykę z mojego serwera domowego) ponieważ wątpię w bezpieczeństwo protokołu umieszczam hasła, które nie zachowują żadnego związku z tymi, których zwykle używam, i ta sama mediatomb jest włączona z uprawnieniami, więc jeśli ktoś wejdzie, nie będzie mógł niczego dotykać xD
Witam, nie korzystałem z mediatomb. Jeśli chodzi o twoje pytania, oczywiście możesz użyć madsonic przez WAN, ja używam madsonic przez WAN i działa to bardzo dobrze. Madsonic zezwala na używanie https, wystarczy włączyć go w swoim pliku konfiguracyjnym: madsonic_https_port = 8443 i to wszystko 🙂
Jeśli chodzi o aplikacje na androida to używam wywołania ultradźwiękowego, jest to bardzo dobre, pozwala na przechowywanie utworów w pamięci podręcznej do słuchania bez połączenia xD
Pozdrowienia.
Przyjacielu, jakie masz doświadczenie z Arch ARM? Jestem użytkownikiem Arch. Zainstaluj rasbian. Ale zmęczyły mnie problemy z repozytoriami. Chcę Arch. A co z pakietami, których nie ma w oficjalnym repozytorium. Na przykład pakiety AUR, czy można je skompilować?
Bardzo ciekawy artykuł!
Zrobiłem szybkie wyszukiwanie, aby zobaczyć twojego klienta na Androidzie i zobaczyłem, że jest płatny. Czy istnieje bezpłatna alternatywa?
Witam, jeśli są darmowe alternatywy, używam ultradźwięków.
https://play.google.com/store/apps/details?id=com.thejoshwa.ultrasonic.androidapp&hl=es
Pozdrowienia.
Subsonic to bestia i nie używa łajna Java. Jeśli się nie mylę, ownCloud może również przesyłać strumieniowo audio i wideo i jest bardzo lekki - przynajmniej w porównaniu z uruchomioną maszyną JVM i inną ciężką aplikacją na wierzchu.
Java musi umrzeć - tak samo jak Flash.
Rzeczywiście ownCloud ma podstawową usługę przesyłania strumieniowego, zaletą, którą widzę dla subsonic, jest możliwość transkodowania, na przykład w przypadku, gdy mają dużo muzyki flac. I masz rację, używając javy jest to ciężki program, jednak na razie nie miałem problemów z użyciem 256MB RAM Raspberry.
Cóż, OpenJDK 7 (a nie 6, jak pokazuje Oracle) jest znacznie bardziej stabilny pod względem wydajności. Jeśli jednak istnieje wersja bez Javy, to gratuluję (przynajmniej jest to dobra alternatywa dla Spotify).
A tak przy okazji, czy OWnCloud ma do przesyłania strumieniowego ?! Wydaje się, że to już 4shared
Używam minidlny, nic nie zużywa i możesz mieć dostęp do filmów, zdjęć i muzyki, a ja je przechwytuję z odtwarzacza wideo na komputerze lub telewizorze, daje to również możliwość umieszczenia bardzo ograniczonej strony internetowej.
Inna sprawa, Madsonic to usługa przesyłania strumieniowego lub streamer? «… Madsonic to internetowy odtwarzacz multimediów i widelec z szafą grającą firmy Subsonic…. , Madsonic obsługuje konwersję w locie i przesyłanie strumieniowe praktycznie dowolnego formatu audio… »Nie wiem, jaka jest różnica między jednym terminem a drugim
Nie jestem pewien, jaka jest różnica, wydaje mi się, że streamer jest używany do mówienia, że oprogramowanie jest w stanie streamować, ale powtarzam, nie jestem pewien xD
Obecnie używam Ampache, od Subsonic jak widziałem to jest wolne oprogramowanie, licencja GPL3 ale jeśli chcesz mieć wszystkie cechy to musisz zapłacić klucz licencyjny dla serwera, który jest zamontowany z subsonic, jak dla madsonic nie wiedziałem o tym , to będzie kwestia przetestowania tego, możesz mi powiedzieć, jakie korzyści mogę mieć, jeśli użyję madsonic zamiast ampache.
Cześć, madsonic to fork subsonic, tylko w madsonic nie ma potrzeby płacenia za klucz. Jeśli chodzi o Ampache, nie korzystałem z niego - i nie mogłem powiedzieć, jakie są zalety madsonic w stosunku do ampache, w google znalazłem ten link, być może mógłby pomóc: http://www.brunobense.com/2013/04/subsonic_ftw/.