Всем хорош Nas4Free в качестве операционной системы для сетевого хранилища, и тем что основана на моей любимой FreeBSD, и поддержкой многих протоколов (TFTP, Unison, BitTorrent, FTP, CIFS (Samba), NFS, AFP, RSYNC, iSCSI, UPnP...), и возможностью установить embedded-вариант на флешку, и поддержкой ZFS и RAID-массивов разных уровней, и легкой настройкой через web-интерфейс. Но есть у него один недостаток, связанный с встроенным DLNA/UPnP сервером Fuppes.
То его телевизоры не воспринимают его как DLNA сервер, то он свою базу не обновляет, то ещё какие то проблемы с ним. И приходится пользователям Nas4Free использовать различные костыли (решения найдены мной на просторах интернета, ссылок, к сожалению, не сохранилось? хотя все эти «костыли» описаны не в одном месте):
- то с другим профилем попробуют заставить его работать,
- то для просмотра фильма на телевизоре включают ещё и ноутбук (или другое устройство), который получает файлы с NAS4Free по другим протоколам (CIFS/Samba, FTP, NFS) и отдает DLNA-поток на телевизор,
- то устанавливают виртуальную машину, в которой запускается совсем не бесплатная, и совсем не из мира *nix, ОСь, и в ней же, такой же не бесплатный, DLNA сервер,
- то запускают в jail-окружении альтернативный UPnP сервер, который тоже имеет свои недостатки...
В общем, проблема есть, вариантов её решения тоже много на просторах интернета, но все они лишь полумеры.
Но если подойти к решению этой задачи отвлекшись от NAS4Free как основы, то все становится гораздо проще. Но обо всем по порядку.
И так, став недавно обладателем вот такого телевизора Samsung с функцией AllShare, я столкнулся со всеми этими проблемами.
Началось все с того, что Fuppes нормально не виделся телевизором, и даже при смене профиля, телевизор все равно его периодически теряет, так что о нормальной функциональности можно и не заикаться.
Следующим шагом стало установка jail-тюрьмы и miniDLNA внутри неё. Но и тут нас поджидают проблемы: нормально обновлять свою базу miniDLNA под NAS4Free отказывалась, т.е. без «пинка под зад» совсем ни как. Сначала я написал небольшой скрипт, который останавливал сервис, удалял его базу, и запускал заново. И добавил запуск этого скрипт в планировщик (cron) на 7мь утра.
В дальнейшем и этот костыль был заменен на другой, а именно: скрипт был немного модифицирован, и стал проверять каждые две минуты наличие маркерного файла в определенной папке моего NAS, и при его наличии проделывал все те же действия, т.е. останавливал сервис, удалял его базу и запускал заново.
Но опять же, все это костыли, которые все равно не позволяли автоматизировать процесс обновления базы файлов miniDLNA. И решил я проверить, в чем же суть проблемы, в том, что FreeBSD в NAS4Free очень сильно урезана, или же в чем то другом. Но об этом пойдет речь уже в следующей части.
|
Подробнее...