Меню Рубрики

Установка minidlna сервера на ubuntu

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. Сканирование большой медиа-библиотеки существенно нагружает диск, что может замедлить загрузку системы.

Полное формирование каталога может занять несколько минут. Сканирование папок выполняется в порядке их объявления в конфиге. Файлы из небольших папок, объявленных в конфиге выше, появятся в каталоге в самом начале процесса сканирования. Крупные папки с редко воспроизводимым контентом имеет смысл размещать в конфиге последними.

Установка Min >Дальнейший материал был написан во времена Debian 7 и не тестировался на современных версиях.
Как минимум, инит-скрипты и юнит-файлы берем из deb-пакета.

Устанавливаем сборочные зависимости:

Если при установке зависимостей возникает ошибка: «Невозможно найти пакет с исходным кодом для minidlna». Значит, пакет MiniDLNA отсутствует в вашей версии дистрибутива. В этом случае придется установить зависимости вручную:

Создаем папку для исходников в профиле пользователя и переходим в нее:

Сборка стабильной версии MiniDLNA

Загружаем исходники последней стабильной версии:

С ключом —trust-server-name, будет сохранено исходное имя файла: «minidlna-1.1.4.tar.gz», номер версии может отличаться. Если ключ не указан, файл будет сохранен под именем: «download».

Читайте также:  Установка bluetooth на шкода

Переходим в папку с исходниками:

Сборка текущей разрабатываемой версии 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-серверов и клиентов в Википедии.

источник

Media UniX

freebsd команды, настройка, установка сервера и не только

Min > Добавить комментарий

MiniDLNAпростой DLNA сервер без транскодирования «на лету», так что ждать чуда не стоит и показывать Ваш смарт телевизор или приставка будет только те файлы, которые сможет осилить самостоятельно. Но зато бюджетную приставку к ТВ можно сделать из raspberry pi (обзор этого мини ПК здесь.) или его аналогов, к тому же нагрузка на сервер будет меньше, а значит и тех. требования для сервера не большие.

Читайте также:  Установка лобового стекла с подогревом уаз патриот

Устанавливаем Min > но сначала добавим репозиторий:
sudo add-apt-repository ppa:stedy6/stedy-minidna
видим:
ppa for unofficial minidlna
More info: https://launchpad.net/

stedy6/+archive/ubuntu/stedy-minidna
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpzlov5kvw/secring.gpg’ created
gpg: keyring `/tmp/tmpzlov5kvw/pubring.gpg’ created
gpg: requesting key 661F5D0B from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpzlov5kvw/trustdb.gpg: trustdb created
gpg: key 661F5D0B: public key «Launchpad PPA for stedy» imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK

Продолжаем:
sudo apt-get update
sudo apt-get install minidlna

На этом установка завершена. Увидим что-то вроде:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующий пакет устанавливался автоматически и больше не требуется:
python-pyinotify
Для его удаления используйте «apt-get autoremove».
НОВЫЕ пакеты, которые будут установлены:
minidlna
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 286 пакетов не обновлено.
Необходимо скачать 130 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 482 kB.
Получено:1 http://ru.archive.ubuntu.com/ubuntu/ trusty-backports/universe minidlna amd64 1.1.2+dfsg-1

ubuntu14.04.1 [130 kB]
Получено 130 kБ за 0с (419 kБ/c)
Выбор ранее не выбранного пакета minidlna.
(Чтение базы данных … на данный момент установлен 76361 файл и каталог.)
Preparing to unpack …/minidlna_1.1.2+dfsg-1

ubuntu14.04.1_amd64.deb .
Unpacking minidlna (1.1.2+dfsg-1

ubuntu14.04.1) .
Processing triggers for ureadahead (0.100.0-16) .
Processing triggers for man-db (2.6.7.1-1ubuntu1) .
Настраивается пакет minidlna (1.1.2+dfsg-1

ubuntu14.04.1) …
* Starting DLNA/UPnP-AV media server minidlna [ OK ]
Processing triggers for ureadahead (0.100.0-16) .

Дальше самое интересное — редактирование конфигурационного файла /etc/minidlna.conf , но прежде сделаем его резервную копию:
sudo cp /etc/minidlna.conf /etc/minidlna.conf-0

и теперь переходим к редактированию:
sudo nano /etc/minidlna.conf

Доводим конфиг до следующего состояния(в некоторых ключевых местах я сделал пояснения):
# This is the configuration file for the MiniDLNA daemon, a DLNA/UPnP-AV media
# server.
#
# Unless otherwise noted, the commented out options show their default value.
#
# On Debian, you can also refer to the minidlna.conf(5) man page for
# documentation about this file.

# Specify the user name or uid to run as.
#user=minidlna

# Path to the directory you want scanned for media files.
#
# This option can be specified more than once if you want multiple directories
# scanned.
#
# If you want to restrict a media_dir to a specific content type, you can
# prepend the directory name with a letter representing the type (A, P or V),
# followed by a comma, as so:
# * «A» for audio (eg. media_dir=A,/var/lib/minidlna/music)
# * «P» for pictures (eg. media_dir=P,/var/lib/minidlna/pictures)
# * «V» for v > #media_dir=/var/lib/minidlna
# В папке /var/lib/minidlna/videos НЕ хранятся видео файлы, в эту директорию
# будут созданы символические ссылки на директории с видео
# Для аудио надо использовать media_dir=A, для изображений media_dir=P.
media_dir=V,/var/lib/minidlna/videos

# Path to the directory that should hold the database and album art cache.
# указываем директорию с базой даннх
db_dir=/var/cache/minidlna

# Path to the directory that should hold the log file.
# место, куда складывать лог
log_dir=/var/log

# Type and minimum level of importance of messages to be logged.
#
# The types are «artwork», «database», «general», «http», «inotify»,
# «metadata», «scanner», «ssdp» and «tivo».
#
# The levels are «off», «fatal», «error», «warn», «info» or «debug».
# «off» turns of logging entirely, «fatal» is the highest level of importance
# and «debug» the lowest.
#
# The types are comma-separated, followed by an equal sign («=»), followed by a
# level that applies to the preceding types. This can be repeated, separating
# each of these constructs with a comma.
#
# The default is to log all types of messages at the «warn» level.
#log_level=general,artwork,database,inotify,scanner,metadata,http,ssdp,tivo=warn

# Use a different container as the root of the directory tree presented to
# clients. The possible values are:
# * «.» — standard container
# * «B» — «Browse Directory»
# * «M» — «Music»
# * «P» — «Pictures»
# * «V» — «Video»
# If you specify «B» and the client device is audio-only then «Music/Folders»
# will be used as root.
#root_container=.

Читайте также:  Установка virtual radar server

# Network interface(s) to bind to (e.g. eth0), comma delimited.
# This option can be specified more than once.
# так как интерфейсов в сервере у меня не один, а некоторые смотрять наружу,
# то указываю один конкретный интерфейс, смотрящий в домашнюю сеть
network_interface=eth1

# IPv4 address to listen on (e.g. 192.0.2.1/24).
# If omitted, the mask defaults to 24. The IPs are added to those determined
# from the network_interface option above.
# This option can be specified more than once.
#listening_ip=

# Port number for HTTP traffic (descriptions, SOAP, media transfer).
# This option is mandatory (or it must be specified on the command-line using
# «-p»).
port=8200

# URL presented to clients (e.g. http://example.com:80).
#presentation_url=/

# Name that the DLNA server presents to clients.
# Defaults to «hostname: username».
# указываю понятное для меня имя dlna сервера
friendly_name=MiniDLNA

# Serial number the server reports to clients.
# Defaults to 00000000.
serial=681019810597110

# Model name the server reports to clients.
#model_name=Windows Media Connect compatible (MiniDLNA)

# Model number the server reports to clients.
# Defaults to the version number of minidlna.
#model_number=

# Automatic discovery of new files in the media_dir directory.
# автоматический поиск новых файлов (По умолчанию yes)
#inotify=yes

# List of file names to look for when searching for album art.
# Names should be delimited with a forward slash («/»).
# This option can be specified more than once.
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg

# Strictly adhere to DLNA standards.
# This allows server-side downscaling of very large JPEG images, which may
# decrease JPEG serving performance on (at least) Sony DLNA products.
#strict_dlna=no

# Support for streaming .jpg and .mp3 files to a TiVo supporting HMO.
#enable_tivo=no

# Notify interval, in seconds.
#notify_interval=895

# Path to the MiniSSDPd socket, for MiniSSDPd support.
#minissdpdsocket=/run/minissdpd.sock

Дальше создаю указанные в конфиге директории и назначаю на них нужные права:
sudo mkdir -p /var/lib/minidlna/videos
Если создавали для аудио и изображений, то не забудьте создать /var/lib/minidlna/music и /var/lib/minidlna/pictures.

Дальше:
sudo chown -R minidlna:minidlna /var/lib/minidlna
Директория для базы данных /var/cache/minidlna у меня создалась при установке minidlna, но если у Вас её не оказалось, то:
sudo mkdir -p /var/cache/minidlna
sudo chown minidlna:minidlna /var/cache/minidlna

После этого создаём символические ссылки, про которые мы говорили выше. Если коротко, то допустим видео у нас по факту храниться в нескольких директориях /путь/к/директории/с/видео1 и /путь/к/директории/с/видео2, а симвоическими ссылками мы сделаем как-будто они у нас лежат в /var/lib/minidlna/videos/видео1 и /var/lib/minidlna/videos/видео2. Так навигация будет удобнее.
Итак создаём ссылки (директории, конечно же, указывайте свои):
sudo ln -s /тут/директория/с/видео/файлами/1 /var/lib/minidlna/videos/video01
sudo ln -s /тут/директория/с/видео/файлами/2 /var/lib/minidlna/videos/video02

И последнее — перезапуск сервиса minidlna:
sudo service minidlna restart

Теперь на телевизоре с поддержкой DLNA подключенном к домашней сети или на отдельной приставке к ТВ можно выбрать новый источник сигнала под названием MiniDLNA (это имя мы указывали в параметре «friendly_name» конфигурационного файла /etc/minidlna.conf)

Всё вышеописанное тестировалось на:
Ubuntu Server 14.04.2 LTS
$ minidlnad -V
Version 1.1.2
Кстати теперь можно посетить http://ip-адрес-вашего-сервера:8200/ и посмотреть «MiniDLNA status», где будут указаны подключённые клиенты и количество файлов в библиотеке.
Дополнение:
Не забывайте про доступ к директориям и файлам. Если что-то не работает, то попробуйте:
sudo chmod -R 0777 /директория/с/файлами/
Ещё одна из причин, почему Ваш ТВ не показывает какие-то файлы (а какие-то показывает) — это просто ТВ их не поддерживает.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

источник

Добавить комментарий

Adblock
detector