minidlna на raspberryPi

19 Декабрь, 2017

Моя семья практически не смотрит эфирные каналы телевидения, но смотрит много фильмов и сериалов, поэтому на десктопе уже собралась приличная коллекция медиа-контента. Однако если нужно посмотреть какую-нибудь серию минут на 20 во время завтрака, fika или просто перерыва, а потом снова бежать по делам, то загружать стационарный ПК нет никакого смысла, а так как в ящике стола лежит "малинка" над которой я время от времени ставлю нечеловеческие эксперименты, то надумал я из нее сделать dlna сервер. Она быстро загружается, не требовательна к ресурсам и отлично подходит под эти задачи.

Первым делом установим сам сервер

sudo apt-get install minidlna

Затем создаем каталоги, где будет храниться все необходимое для ее работы

mkdir /home/minidlna #это корневой каталог сервера

mkdir /home/minidlna/db #здесь я буду хранить базу данных необходимую для работы сервера

mkdir /home/minidlna/media #здесь будут лежать фильмы

Все директории для хранения файлов должны иметь права 755, а сами файлы фильмов 644

Самое время поправить конфигурационный файл сервера

nano /etc/minidlna.conf

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

meaid_dir=/var/lib/minidlna/ #это путь к каталогу медиа-файлов, изменим его на наш

media_dir=/home/minidlna/media

Теперь укажем путь до базы данных и кэша

db_dir=/var/cache/minidlna #так он выглядит по умолчанию

db_dir=/home/minidlna/db #а так он должен выглядеть

При установке и первом запуске, dlna-сервер запускается от пользователя root, но при перезагрузке, он запускается от пользователя minidlna, что приводит к невозможности доступа к базе данных и ошибке в логах вида "minidlna c:279 fatal error failed to open sqlite database" имейте это в виду! При переносе БД в другой каталог, нужно выставить соответствующие права для minidlna:minidlna

На этом правка конфига заканчивается, его можно сохранять и закрывать.

Для того, чтобы перечитать каталоги, есть специальная команда:

sudo service minidlna force-reload

Но в системах с systemd она не работает и поэтому приходится удалять файл БД и перезапускать сервер

sudo rm /home/minidlna/db/files.db
sudo systemctl restart minidlna

Осталось запустить службу

sudo service minidlna start

Поглядеть на его веб-интерфейс можно по адресу http://Your_server_ip:8200

С настройкой minidlna покончено. Теперь, хотелось бы поднять сервис smb, чтобы заливать на сервер скачанные файлы было проще.

Устанавливаем samba

sudo apt-get install samba

далее переходим к редактированию файла конфигурации

sudo nano /etc/samba/smb.conf

Вместо содержимого открытого файла, пишем:

[global]
workgroup = WORKGROUP
netbios name = RaspberryPi
server string = share
security = user
map to guest = bad user
browseable = yes

[minidlna]
path = /home/minidlna/media
writeable = yes
browseable = yes
guest ok = yes

Перезапускаем службу

sudo /etc/init.d/samba restart

Теперь можно выставить права на каталог 777 или как вашей душе пожелается и можно заливать контент.

Вам ведь не нужно напоминать, что вы все делаете на свой страх и риск, и автор статьи не несет ответственности за возможный причиненный ущерб? ;-) Экспериментируйте, ведь дорогу осилит идущий.