Twój prywatny radiowęzeł

Firefly to program pozwalający na utworzenie muzycznego serwera np. w domowej lub firmowej sieci lokalnej – takie rozwiązanie opisujemy w artykule. Nic nie stoi jednak na przeszkodzie, by Linux serwował muzykę także w Internecie. Wystarczy publiczny adres IP i podobna konfiguracja serwera Firefly. Odbiorca muzyki nadawanej przez serwer muzyczny uruchomiony zgodnie z poradami CHIP-a może korzystać z odtwarzacza iTunes lub Banshee.

A więc słuchacze będą odbierać naszą rozgłośnię niezależnie od systemu operacyjnego, na którym pracują. Emitowany strumień danych może być także odbierany przez sprzętowe odtwarzacze, takie jak np. Roku SoundBridge (www.rokulabs.com). Bezprzewodowy dom pełen muzyki? To także da się zrobić, inwencja w wymyślaniu zastosowań serwera Firefly należy do was.

Opisywany proces instalacji i konfiguracji serwera Firefly dotyczy dystrybucji openSUSE 10.3 (jest na płycie DVD CHIP-a) oraz Firefly instalowanego z archiwum tar.gz – zaawansowani użytkownicy Linuksa mogą po dokonaniu drobnych modyfikacji skorzystać z tych samych porad w przypadku dowolnej innej dystrybucji systemu.

Instalacja Firefly w openSUSE

Najnowsze wersje Firefly (tzw. Nightly Releases) udostępniane są w postaci kodów źródłowych. Aby na tej bazie zbudować i zainstalować działający serwer, musimy mieć prawa administratora systemu oraz zainstalowany kompilator języka C (zazwyczaj dostępny na płycie instalacyjnej). Firefly w próbnej wersji może nie funkcjonować poprawnie – w takim wypadku radzimy poszukać pomocy na forach dyskusyjnych programu (forums.fireflymediaserver.org) lub zainstalować wcześniejszą, stabilną wersję aplikacji. Na płycie CHIP-a umieszczamy najnowszą dostępną wersję Nightly Release.

Narzędzia

Firefly
To znany również pod nazwą Multi-Threaded DAAP Demon serwer umożliwiający strumieniową transmisję danych dla programu iTunes. Na naszym DVD i CD zamieszczamy pakiet Firefly (w wersji Nightly Release) do openSUSE oraz Windows.

openSUSe 10.3
Najnowsza wersja popularnej dystrybucji Linuksa. Zawiera większość komponentów niezbędnych do uruchomienia serwera Firefly.

Aby zainstalować aplikację, kopiujemy archiwum tar.gz z płyty CHIP-a do naszego katalogu domowego. Otwieramy konsolę, następnie logujemy się z prawami administratora, wpisując polecenie »su« i podając hasło. Rozpakowujemy archiwum zawierające serwer Firefly, wpisując polecenie »tar zxvf mt-daapd-svn-1685.tar.gz«. Przechodzimy do folderu zawierającego kod źródłowy aplikacji polecenie »cd mt-daapd-svn-1685.tar.gz«). Kolejny etap to sprawdzenie komponentów systemu operacyjnego i przygotowanie pliku »Makefile«, odpowiedzialnego za kompilację i instalację Firefly. Wpisujemy polecenie »./configure«. Jeśli wystąpią błędy, plik »Makefile« nie zostanie utworzony. W większości wypadków program podpowiada nam, jakich komponentów brakuje. W przypadku open-SUSE 10.3 niezbędne biblioteki i pliki znajdziemy, korzystając z internetowych repozytoriów – do poprawnej pracy Firefly potrzebuje pakietów sqlite, sqlite-devel, libid3tag oraz libid3tag-devel. Po uzupełnieniu komponentów ponownie wpisujemy polecenie »./configure –enable-sqlite3«, tym razem z dodatkowym parametrem, który spowoduje, że Firefly będzie korzystał z SQLite – systemu do zarządzania bazami danych. Gdy uporamy się z problemami, na skutek wykonania polecenia »configure« otrzymamy gotowy plik »Makefile«. Wpisujemy polecenie »make«, a następnie »make install«, by skompilować i zainstalować serwer Firefly. Po instalacji wpisujemy polecenie »cp contrib/mt-daapd.conf /etc«, które skopiuje przykładową konfigurację Firefly do katalogu »/etc«. Dodatkowo potrzebujemy jeszcze pliku zawierającego listę odtwarzania.

Konfiguracja serwera Firefly

Ustawienia parametrów serwera Firefly dokonujemy, modyfikując plik »/etc/mtdaapd.conf«. Poszczególne opcje zostały szczegółowo opisane w komentarzach zawartych w tym samym pliku konfiguracyjnym. Zmiany, których powinniśmy dokonać, obejmują:

1. hało administratora serwera: zamieniamy wpis »admin_pw = mt_daapd« np. na »admin_pw = serwer_muzyczny«

2. wskazanie typu bazy danych: wpisujemy »db_type = sqlite3«

3. określenie folderu z plikami MP3: wpisujemy np. »mp3_dir = /home/radio/mp3«

4. wpisanie nazwy serwera: zamieniamy oryginalny wpis np. na »servername = Serwer muzyczny Firefly (wersja %v) na Linux %h«, w efekcie czego pełna nazwa serwera muzycznego będzie brzmieć “Serwer muzyczny Firefly (wersja syn-1685) na Linux radio”

5. wybór hasłoa które zablokuje dostęp do plików audio niepowołanym osobom: usuwamy znak komentarza (#) i zmieniamy wiersz np. na »password = mp3«

6. określenie położenia bazy danych, np. »db_parms = /home/radio/mt-daapd«

7. wybór typów indeksowanych plików, np. »extension = .mp3,.m4a,.wav,.ogg,. flac,.mp3,.alac«

8. aktywację zapisywania komunikatów serwera: usuwamy znak komentarza przy wpisie »logfile = /var/log/mt-daapd.log«.

Oprócz modyfikacji pliku konfiguracyjnego musimy również dokonać zmian w skrypcie odpowiedzialnym za uruchamianie serwera Firefly. Wersja przygotowana dla dystrybucji openSUSE znajduje się w folderze aplikacji w pliku »/contrib/init.d/mt-daapd.suse«. Dwa wpisy zawarte w tym pliku wymagają zmian:

1. określamy indeksowany folder zawierający pliki audio, wpisując np. »MT_WATCH_DIR = /home/radio/mp3«

2. wskazujemy położenie pliku konfiguracyjnego: »MT_DAAPD_CONFIG = / etc/mt_daapd.conf«.

Jak nazwać komputer w sieci lokalnej bez serwera DNS
Każdy komputer w sieci TCP/IP musi mieć przydzielony adres IP, jednak nazwa samego komputera w sieci lokalnej nie jest już wymagana. Mimo wszystko warto odpowiednio nazwać swoją maszynę.

Łatwiej zapamiętać nazwę niż rząd cyferek składających się na adres IP. Zmiany nazwy komputera w Linuksie możesz dokonać po zalogowaniu się w systemie z prawami administratora. Linux ustala nazwę komputera podczas startu systemu. W wypadku sieci lokalnych, w których adresy IP przydzielane są automatycznie, w openSUSE 10.3 nazwa komputera również zostanie dobrana samoczynnie. Za pomocą komendy »hostname« możesz wyświetlić aktualną nazwę serwera lub zmienić ją, dodając nazwę jako parametr (np. »hostname radio«). Aby przypisać do adresu IP dowolną nazwę na stałe, korzystamy z programu yast2 z parametrem host (wpisujemy w oknie terminala »yast2 host«). Podajemy hasło administratora systemu, następnie klikamy przycisk »Dodaj« i w polu »Adres IP« wpisujemy adres na-szego komputera (np. »192.168.1.171«). W pole »Nazwa komputera« wpisujemy pełną nazwę wraz z domeną, np. »radio.chip.pl«, a w pole »Aliasy komputerów« – np. »radio«. Rozległe sieci komputerowe takie jak Internet zwykle korzystają z Domain Name Service (DNS), by móc zidentyfikować nazwę podłączonego do Sieci komputera – DNS odpowiada za przypisywanie nazw do adresów IP. W małych sieciach zwykle nie ma zainstalowanych serwerów DNS. Aby mimo to “być z komputerem po imieniu”, sporządzamy odpowiednią tabelkę na każdym z komputerów, zawierającą nazwy i adresy pozostałych klientów. Do tego celu w Linuksie wykorzystywany jest plik konfiguracyjny »/etc/hosts« (w Windows »Windows\system32\ drivers\etc\hosts«): noWa nazWa W Linuksie, posługując się yaST2, możemy przypisać nazwy do adresów IP. interfejsu sieciowego jest ograniczona: możemy jedynie zarządzać listami opcje są zablokowane z powodu serwera Firefly z innego Panel sterowania i wybieramy »Zabezpieczenia i użytkownicy«

127.0.0.1•chip.waw.pl • localhost

192.168.1.171 radio.chip.pl•radio

Lista wszystkich dostępnych w sieci lokalnej komputerów musi być identyczna na każdej z maszyn, ponieważ tylko w ten sposób będzie można znaleźć komputer na podstawie jego unikalnej nazwy. Każdy wiersz zawiera adres IP, pełną nazwę hosta oraz opcjonalnie listę aliasów.

Konto z muzyką

W opisywanych przykładach pliki audio oraz logi serwera Firefly zapisywane są w jednym folderze domowym użytkownika nazwanego »radio«. Aby wszystko działało, musimy (mając prawa administratora systemu) uruchomić Panel sterowania openSUSE i wybrać opcję »Zarządzanie użytkownikami«. Następnie klikamy przycisk »Dodaj«. W pola »Nazwa użytkownika« i »Pełna nazwa użytkownika « wpisujemy »radio«. W polach »Hasło « i »Potwierdź hasło« określamy hasło dla konta »radio«. Na zakładce »Szczegóły « w pole »Uprawnienia katalogu domowego « wpisujemy »777«. Z listy »Powłoka logowania« wybieramy »/bin/false«. Klikamy »Akceptuj«. Kopiujemy do folderu »/home/radio/mp3« pliki audio, które zamierzamy udostępnić.

Próbny start serwera

Aby wystartować serwer Firefly, wpisujemy w oknie terminala polecenie »mt-daapd-suse start«. Skrypt rozpocznie pracę serwera Firefly, którym możemy zarządzać zdalnie, wpisując w pole adresu w oknie przeglądarki »http://192.168.1.171:3689« lub nadaną serwerowi nazwę, czyli »http://radio.chip.pl:3689«. Funkcjonalność interfejsu sieciowego jest ograniczona: możemy jedynie zarządzać listami odtwarzania oraz zatrzymać serwer. Pozostałe opcej są zablokowane z powodu braku praw dostępu. Jeśli zalęzy nam na dodatkwej funkcjonalności interfejsu (m. in. modyfikacji haseł dostępowych i położenia folderów z plikami), możemy po prostu zmienić prawa dostępu do pliku konfiguracyjnego lub przenieść go z katalogu »/etc« np. do »/home/radio« i zmodyfikować prawa dostępu do tego pliku (pamiętając w drugim wypadku o konieczności wprowadzenia zmian w skrypcie startowym).

Jeśłi nie możesz zalogować się do uruchomionego serwera Firefly z innego komputera, najczęstszą przyczyną tego jest działająca w Linuksie zapora – musimy zmodyfikować jej ustawienia. Uruchamiamy Panel sterowania i wybieramy »Centrum sterowania YaST«. Na zakładce »Zabezpieczenia i użytkownicy« wybieramy »Zapora sieciowa«. Z listy »Dozwolone usługi w wybranej strefie« wybieramy »Strefa zewnętrzna«. Z listy »Usługa, którą należy zezwolić« wybieramy »Zeroconf/Bonjour Multicast DNS«. Klikamy »Dodaj« i »Zaawansowane«. W oknie »Dodatkowe dozwolone porty« w pola »Porty TCP« i »Porty UDP« wpisujemy »3689«. Wstępnie skonfigurowany, działający serwer muzyczny wymaga po każdym uruchomieniu Linuksa ręcznej aktywacji. Proces ten warto zautomatyzować. W tym celu kopiujemy plik »mt-daapd-suse« do folderu »/etc/init.d/«. Następnie wpisujemy kolejno polecenia »chkconfig –add mt-daapd-suse«, »chkconfig–set mt-daapd-suse on«.

Muzyka w iTunes

Poprawnie zainstalowany i skonfigurowany Firefly po uruchomieniu iTunes na dowolnym komputerze z Windows lub Mac OS X widoczny jest na zakładce »Udostępniane«. Wystarczy kliknąć nazwę naszego serwera, wpisać hasło dostępu (jeśli je określiliśmy) i wybrać dowolny utwór z listy.