- DLNA сервер для Linux Debian / Ubuntu на базе MiniDLNA
- Содержание
- Установка MiniDLNA
- Установка Sudo
- Настройка MiniDLNA
- Запуск MiniDLNA
- Сканирование медиа-библиотеки MiniDLNA
- Установка MiniDLNA из исходников
- Сборка стабильной версии MiniDLNA
- Сборка текущей разрабатываемой версии MiniDLNA из Git-репозитория
- Установка
- Отключение запроса способа отображения файлов: All Files, Folders
- Отключение виртуальных папок в MiniDLNA версии 1.1.4 и выше
- Отключение виртуальных папок в MiniDLNA версии 1.1.3 и ниже
- Ссылки
- Linux Mint Forums
- Нужен DLNA сервер
- Нужен DLNA сервер
- Re: Нужен DLNA сервер
- Re: Нужен DLNA сервер
- Re: Нужен DLNA сервер
- Re: Нужен DLNA сервер
- Linux Mint 17 и DLNA
- Зачем это все надо
DLNA сервер для Linux Debian / Ubuntu на базе MiniDLNA
Настраиваем домашний DLNA-сервер на базе MiniDLNA, он же ReadyMedia в Linux Debian или Ubuntu Server.
Содержание
Установка MiniDLNA
Простейшим способом установки является, установка пакета из репозитория вашего дистрибутива:
Установка Sudo
Если в вашей системе отсутствует команда sudo, желательно ее установить. Sudo нам потребуется в процессе настройки, для тестирования прав доступа к папкам с медиа-файлами.
Добавляем пользователя в группу sudo:
Выходим из системы и входим заново, чтобы изменение группы вступило в силу.
Настройка MiniDLNA
Правим файл конфигурации:
Как минимум, потребуется задать путь к папке с медиа-файлами, параметр: «media_dir». Также можно задать имя сервера, отображаемое клиентом, параметр: «friendly_name».
В случае если наш DLNA-сервер по совместительству является интернет-шлюзом, также необходимо задать внутренний сетевой интерфейс, параметр: «network_interface».
Параметры в комментариях файла конфигурации содержат значения по умолчанию.
Проверяем параметры init-скрипта /etc/default/minidlna:
Обычно корректировка не требуется. Если файл отсутствует, при первичной установке из исходников, копируем листинг:
Поскольку служба работает под пользователем с ограниченными правами, публикуемые папки и файлы должны быть доступны на чтение для всех пользователей, следовательно, иметь разрешения 644: » rw- r— r— «, для файлов и 755: » rwx r-x r-x «, для папок.
Проверяем доступность для каждой папки, заданной в minidlna.conf, командой:
Если папка недоступна, задаем права доступа:
Вышестоящие папки также должны быть доступны на чтение всем пользователям. Проверяем доступность на чтение каждой папки, указанной в пути. Для вышестоящих папок используем chmod без ключа -R, если не требуется сброс разрешений для всех дочерних файлов и папок.
В качестве альтернативы смене разрешений, можно запустить MiniDLNA от имени пользователя или группы-владельца файлов. Для этого необходимо задать параметры USER и GROUP в /etc/default/minidlna, и сменить владельца папки /var/lib/minidlna командой:
Запуск MiniDLNA
Проверяем, работает ли служба, также смотрим параметры запуска:
Проверяем, слушается ли порт:
В случае успешного старта, лог должен быть примерно следующим:
Если видим: » WARNING: Inotify max_user_watches [8192] is low. «, необходимо увеличить число дескрипторов слежения inotify до 100 000. Для этого в файл /etc/sysctl.conf добавим строки:
Или копипастом команды:
Изменение параметра вступит в силу после перезагрузки системы.
Открываем в браузере http://адрес.сервера:8200, видим количество файлов в библиотеке, начиная с версии 1.1.2, также отображается список подключенных клиентов.
Настройка DLNA/UPnP-AV сервера завершена.
Если вместо сообщений и папок-контейнеров MiniDLNA отображаются знаки вопроса, отключаем локализацию.
Если был установлен пакет:
При установке из исходников:
Перезапускаем MiniDLNA с повторным сканированием библиотеки.
Сканирование медиа-библиотеки MiniDLNA
При появлении ошибок в каталоге, необходимо выполнить повторное сканирование файлов.
Для этого удалим базу Minidlna и перезапустим службу:
Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ запуска: «-R» в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.
Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.
Установка MiniDLNA из исходников
Дальнейший материал был написан во времена Debian 7 и не тестировался на современных версиях.
Как минимум, инит-скрипты и юнит-файлы берем из deb-пакета.
Устанавливаем сборочные зависимости:
Если при установке зависимостей возникает ошибка: «Невозможно найти пакет с исходным кодом для minidlna». Значит, пакет MiniDLNA отсутствует в вашей версии дистрибутива. В этом случае придется установить зависимости вручную:
Создаем папку для исходников в профиле пользователя и переходим в нее:
Сборка стабильной версии MiniDLNA
Загружаем исходники последней стабильной версии:
С ключом —trust-server-name, будет сохранено исходное имя файла: «minidlna-1.1.4.tar.gz», номер версии может отличаться. Если ключ не указан, файл будет сохранен под именем: «download».
Переходим в папку с исходниками:
Сборка текущей разрабатываемой версии MiniDLNA из Git-репозитория
Для сборки из Git-репозитория, потребуются дополнительные пакеты:
Переходим в папку с исходниками:
Создаем скрипт автоконфигурации:
Установка
Удаляем пакет, если он был установлен ранее:
Устанавливаем собранную версию:
При первичной установке, копируем minidlna.conf в папку /etc:
Если скрипт остался от оригинального пакета Debian, достаточно исправить путь к исполняемому файлу, выделенный красным. Если файл отсутствует, копируем следующий листинг:
Для дистрибутивов на базе Debian 6 в init-скрипте необходимо скорректировать параметр PIDDIR, для современных дистрибутивов корректировка не требуется.
Разрешаем запуск скрипта:
Активируем запуск init-скрипта в rc.d:
По умолчанию служба запускается под пользователем minidlna, создаем учетную запись:
Также, при первичной установке, потребуется создать файл параметров init-скрипта (/etc/default/minidlna), рассмотренный далее, в процессе настройки.
При установке из исходников, minidlna.conf требует дополнительной корректировки. В пакете Debian пути по умолчанию были изменены, теперь их необходимо прописать явно.
Задаем путь для хранения базы данных, используем домашнюю папку пользователя minidlna, созданного на предыдущем шаге:
Задаем путь к лог-файлу:
Отключение запроса способа отображения файлов: All Files, Folders
Настраиваем отображение содержимого папок Music, Pictures, Video без промежуточного запроса способа их отображения.
Частично вопрос можно решить установкой параметра: «root_container=B» в minidlna.conf. При этом сам запрос не отключается, но содержимое папок отображается непосредственно в корневом контейнере.
В случае если устройство, в качестве корневого контейнера, отображает свой собственный стартовый экран, корректировка файла конфигурации не даст результата. Для полного отключения запроса способа отображения файлов, придется внести изменения в код программы.
Отключение виртуальных папок в MiniDLNA версии 1.1.4 и выше
Для версии 1.1.4 применяем патч, и добавляем параметр disable_extended_directories=yes в minidlna.conf. Данный патч войдет в состав следующей версии MiniDLNA, для более поздних версий достаточно задать параметр в файле конфигурации.
Получаем и устанавливаем пакет с исходниками, как описано в разделе: «Установка или обновление MiniDLNA из исходников».
Переходим в папку с исходниками:
Загружаем и применяем патч:
Собираем и устанавливаем исправленную версию:
Редактируем файл конфигурации:
Перезапускаем службу с повторным сканированием медиа-библиотеки:
В системах на базе systemd для повторного сканирования потребуется удалить базу данных вручную:
Отключение виртуальных папок в MiniDLNA версии 1.1.3 и ниже
Получаем и устанавливаем пакет с исходниками, как описано в разделе: «Установка или обновление MiniDLNA из исходников».
Переходим в папку с исходниками:
Необходимые константы идентификаторов папок объявлены в scanner.h
Нам необходимо при запросе папок MUSIC_ID, VIDEO_ID и IMAGE_ID, перенаправить клиента в MUSIC_DIR_ID, VIDEO_DIR_ID и IMAGE_DIR_ID соответственно.
Обработка запросов клиента реализована в файле upnpsoap.c.
Сохраняем резервную копию файла:
Активируем поиск (F6), ищем процедуру: «BrowseContentDirectory».
В начале процедуры выполняется разбор SOAP/XML-запроса, затем его обработка и возврат результата.
Разбор запроса завершается формированием отладочного сообщения:
Далее реализован выбор корневого контейнера в зависимости от конфигурационного параметра root_container:
Сразу после этого блока и перед блоком с запросами к БД добавляем код перенаправления папок для видео, музыки и изображений:
В итоге правленный фрагмент должен выглядеть следующим образом:
Собираем и устанавливаем исправленную версию:
Проверяем результат. Папки должны открываться без запроса способа отображения.
Ссылки
Список DLNA-серверов и клиентов в Википедии.
Источник
Linux Mint Forums
Welcome to the Linux Mint forums!
Нужен DLNA сервер
Нужен DLNA сервер
Post by Mnogolik » Thu Jan 28, 2016 1:46 am
Доброго времени суток, прошу Вас помочь подобрать DLNA сервер для Linux Mint 17.3, необходим просмотр фильмов через локальную сеть.
На данный момент пользуюсь Twonky, но проблема в том, что телевизор Philips не видит папки и приходится все запускать с компьютера, но это не удобно.
Пробовал MediaTomb, но при попытке зайти в папку /media (там находятся диски) выпадает ошибка и я не могу расшарить файлы с других дисков.
Попробовал ps3 media server — все хорошо, телевизор его видит, но файлы медиа на теливизоре не запускаются или тормозят, видать из-за транскодирования контента, да на Винде он не дружил с моим телевизором.
Minidlna и Serviio media server мне просто не удалось поставить, т.к. не очень пока знаком с линукс.
Линуксом пользуюсь неделю, до этого 15 лет сидел на Windows.
Прошу подсказать какой dlna сервер, или рабочую инструкцию по установке и настройке.
Re: Нужен DLNA сервер
Post by darvin44in » Sat Feb 06, 2016 11:23 am
Добрый день! Minidlna — советую его — там дел на 3-5 минут. Один файл подправить и все работает — использую его из-за простоты.
Установить:
sudo apt-get install minidlna
Настроить:
sudo gedit /etc/minidlna.conf
.
media_dir=/ваша_директория_с_файлами
.
Сохранить и закрыть файл
Далее перезапуск сервиса:
sudo service minidlna force-reload
Если не отображается содержимое /ваша_директория_с_файлами
Установить разрешения:
sudo chmod 777 -R /ваша_директория_с_файлами
Re: Нужен DLNA сервер
Post by LeoPoldSl » Mon Feb 29, 2016 6:54 pm
Re: Нужен DLNA сервер
Post by DartVader » Fri Mar 11, 2016 7:45 pm
Re: Нужен DLNA сервер
Post by DartVader » Fri Mar 11, 2016 7:56 pm
Источник
Linux Mint 17 и DLNA
Зачем это все надо
Linux Mint — отличная домашняя ОС. Богатый выбор графических сред на любой вкус, простая и понятная даже новичку установка, сразу после установки имеем основной набор необходимого софта, удобный менеджер приложений, основные мультимедийные кодеки. В общем, отличная система для перехода и ознакомления с Linux.
Но возникает проблема для тех, у кого нет дома NAS или чего-то подобного, а смотреть контент с ПК на других устройствах, поддерживающих DLNA хочется. Под Linux существует множество различных DLNA-серверов, но оптимальным, все же, является MiniDLNA. И тому есть несколько причин. Во-первых, это типичный Unix-way: этот сервер является именно DLNA-сервером, а не комбайном с кучей свистелок, при этом контент без проблем воспринимается на любом устройстве. Даже телевизоры Samsung со своим AllShare прекрасно подключаются к нему. Также можно отметить и замечательную скорость работы и нетребовательность к ресурсам этого сервера.
И все бы было хорошо, но вот в с помощью команды
установить его не получится — нет его в репозитарии.
Существуют разные варианты устранения этого недоразумения, но самый правильный путь — установка из исходников.
Чтобы не отвратить возможных новоиспеченных линуксоидов с этого пути и, возможно, помочь кому-то, напишу как обойти подводные камни, ибо информации много, но в начале пути людям нужно попроще.
Подготовка
Если будете выполнять команды в консоли, запущенной с правами root, команду sudo писать не нужно.
Для начала нужно установить необходимые библиотеки:
И устанавливаем сами библиотеки:
Самая свежая версия MiniDLNA на данный момент — 1.1.3, ее можно скачать здесь, либо загрузить из консоли: ключ перед адресом нужен, чтобы сохранилось оригинальное имя, с выхдом новой версии имя файла будет отличатся. После этого архив нужно распаковать:
Теперь перейдем в распакованную папку с исходниками
Если вы хотите, чтобы на устройстве отображались сразу папки с файлами, нужно немного подправить код:
Для отключения запроса способа отображения файлов нужно в папке с исходниками (minidlna-1.1.3, мы в нее уже должны были перейти) подправить файл upnpsoap.c, но сначала сделаем его резервную копию:
и откроем в редакторе поиском (F6), ищем процедуру:
В начале процедуры выполняется разбор SOAP/XML-запроса, затем его обработка и возврат результата. Разбор запроса завершается формированием отладочного сообщения:
Далее реализован выбор корневого контейнера в зависимости от конфигурационного параметра root_container:
Сразу после этого блока и перед блоком с запросами к БД добавляем код перенаправления папок для видео, музыки и изображений:
В итоге правленный фрагмент должен выглядеть следующим образом:
Чтобы упростить процедуру последующего обновления, сохраним патч с внесенными изменениями:
Теперь вместо редактирования файла, достаточно применить патч:
Теперь можно переходить к конфигурированию.
Если вам это не нужно, переходите сразу к конфигурированию:
Установка
1) Для тех, кто в дальнейшем захочет обновить версию, предыдущую можно удалить (конфигурационные файлы при этом сохраняются), если этого не сделать, то в случае, если в новой версии состав установочных файлов изменится, в /usr/local могут остаться старые файлы, при первой установке — переходим сразу к пункту 2.
Для удаления заходим в папку с предыдущей установкой и выполняем команду: 2) Запускаем установку (в комментариях предложили более правильный путь, чем make install):
Ключ -D указывает, что должен быть создан Debian-пакет
3)Если мы производим первоначальную установку, нужно создать init-скрипт: , если мы обновляем версию, больше ничего делать не нужно, при первоначальной установке у нас откроется пустой файл, в который нужно внести следующий код:
, сохранить комбинацией клавиш Ctrl+O и выйти из редактора — Ctrl+X.
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 добавим строки:
Или копипастом команды:
Изменение параметра вступит в силу после перезагрузки системы.
Открываем в браузере адрес.сервера:8200, видим количество файлов в библиотеке, начиная с версии 1.1.2, также отображается список подключенных клиентов.
Настройка DLNA/UPnP-AV сервера завершена.
При появлении ошибок в каталоге, необходимо выполнить повторное сканирование файлов.
При использовании приведенного выше init-скрипта, для запуска сканирования медиа-библиотеки используем команду:
Служба при этом будет перезапущена, подключенные клиенты будут отключены.
Для сканирования медиа-библиотеки при каждом старте системы можно задать ключ запуска: «-R» в параметре DAEMON_OPTS в файле /etc/default/minidlna. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.
Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.
Все это опробовано на своей системе, пользуйтесь на здоровье. Надеюсь, количество пользователей Linux будет постоянно увеличиваться.
Источник