Linux Mint 17 та DLNA

Linux Mint 17 та DLNA

Автор: admin від 3-08-2014, 12:20, подивилося: 3534

Навіщо це все треба

Linux Mint - чудова домашня ОС. Багатий вибір графічних середовищ на будь-який смак, проста і зрозуміла навіть новачкові установка, відразу після встановлення маємо основний набір необхідного софту, зручний менеджер додатків, основні мультимедійні кодеки. Загалом, чудова система для переходу та ознайомлення з Linux.

потрібно

Але виникає проблема для тих, хто не має вдома NAS або чогось подібного, а дивитися контент з ПК на інших пристроях, що підтримують DLNA хочеться. Під Linux існує безліч різних DLNA-серверів, але оптимальним, все ж таки, є MiniDLNA . І тому є кілька причин. По-перше, це типовий Unix-way: цей сервер є саме DLNA-сервером, а не комбайном з купою свистелок, при цьому контент без проблем сприймається на будь-якому пристрої. Навіть телевізори Samsung зі своїми AllShare чудово підключаються до нього. Також можна відзначити і чудову швидкість роботи та невибагливість до ресурсів цього сервера.

І все було б добре, але ось за допомогою команди

встановити його не вдасться - немає його в репозитарії.

Існують різні варіанти усунення цього непорозуміння, але найправильніший шлях - установка з вихідників. Щоб не відвернути можливих новоспечених лінуксоїдів з цього шляху і, можливо, допомогти комусь, напишу як обійти підводні камені, бо інформації багато, але на початку шляхи людям потрібно простіше.

Підготовка

Якщо виконуватимете команди в консолі, запущеній з правами root, команду sudo писати не потрібно.

Для початку потрібно встановити необхідні бібліотеки:

І встановлюємо самі бібліотеки:

Теперперейдемо до розпакованої папки з вихідними джерелами

Якщо ви хочете, щоб на пристрої відображалися папки з файлами, потрібно трохи підправити код:

Для відключення запиту способу відображення файлів потрібно в папці з вихідними кодами (minidlna-1.1.3, ми в неї вже повинні були перейти) підправити файл upnpsoap.c, але спочатку зробимо його резервну копію:

На початку процедури виконується розбір SOAP/XML-запиту, потім його обробка та повернення результату. Розбір запиту завершується формуванням повідомлення налагодження:

Далі реалізовано вибір кореневого контейнера залежно від конфігураційного параметра root_container:

У результаті правлений фрагмент має виглядати так:

Щоб спростити процедуру подальшого оновлення, збережемо патч із внесеними змінами:

Тепер замість редагування файлу достатньо застосувати патч:

Тепер можна переходити до конфігурації.

Якщо вам це не потрібно, переходьте одразу до конфігурування:

1) Для тих, хто надалі захоче оновити версію, попередню можна видалити (конфігураційні файли при цьому зберігаються), якщо цього не зробити, то якщо у новій версії склад інсталяційних файлів зміниться, в /usr/local можуть залишитися старі файли , при першому встановленні - переходимо відразу до пункту 2.

Ключ -D вказує, що має бути створений пакет Debian

3) Якщо ми робимо початкову установку, потрібно створити init-скрипт: , якщо ми оновлюємо версію, більше нічого робити не потрібно, при початковій установці у нас відкриється порожній файл, в який потрібно внести наступний код:

4) Після цього даємо права на запуск скрипта:5) І активуємо запуск init-скрипта: 6) Оскільки за замовчуванням служба запускається під користувачем minidlna, нам потрібностворити відповідний обліковий запис:

7) Правимо файл конфігурації сервера: У ньому нам необхідний наступний вміст (тут підправлений інтервал, з яким сервер себе анонсує, тому що не всі телевізори опитують сервер, також вам потрібно прописати шлях до папки з медіа, наприклад так: «media_dir=V ,/mnt/sdb6/Video/Alex/» у відповідному розділі файлу):

Зазвичай після цього не потрібні додаткові настройки, але якщо є проблеми з доступом до медіа (або хочете перестрахуватися), можна налаштувати права доступу:

Оскільки служба працює під користувачем з обмеженими правами, папки та файли, що публікуються, повинні бути доступні на читання для всіх користувачів, отже, мати дозволи 644: «rw-r--r--», для файлів і 755: «rwx r-x r-x», для тек.

Перевіряємо доступність для кожної папки, заданої в minidlna.conf, командою: Якщо папка недоступна, задаємо права доступу: Папки, що стоять вище, також повинні бути доступні на читання всім користувачам. Перевіряємо доступність для читання кожної папки, вказаної в дорозі. Для вищих папок використовуємо chmod без ключа -R, якщо не потрібно скидання дозволів для всіх дочірніх файлів та папок. В якості альтернативи зміні дозволів, можна запустити MiniDLNA від імені користувача або групи-власника файлів. Для цього необхідно задати параметри USER та GROUP в /etc/default/minidlna, та змінити власника папки /var/lib/minidlna командою:

Запуск сервера

Перевіряємо, чи працює служба, також дивимося параметри запуску:

Перевіряємо, чи слухається порт:

У разі успішного старту, лог має бути приблизно наступним:

Якщо бачимо: «WARNING: Inotify max_user_watches [8192] is low.», необхідно збільшити кількість дескрипторів стеження inotify до 100 000. Для цього файл/etc/sysctl.conf додамо рядки:

Або копіпастом команди:

Налаштування сервера DLNA/UPnP-AV завершено.

При появі помилок у каталозі, необхідно виконати повторне сканування файлів.

Служба буде перезапущена, підключені клієнти будуть відключені.

Для сканування медіа-бібліотеки при кожному старті системи можна встановити ключ запуску: "-R" у параметрі DAEMON_OPTS у файлі /etc/default/minidlna. Сканування великої медіа-бібліотеки суттєво навантажує диск, що може сповільнити завантаження системи.

Все це випробувано у своїй системі, користуйтеся на здоров'я. Сподіваюся, кількість користувачів Linux постійно збільшуватиметься.