Jump to content
  • 0

Встроенный minidlna


emlen
 Share

Question

Дорогие друзья, вопрос следующий, монтирую encfs в папочку /tmp/mnt/DATA/download/, на которую натравлен родной dlna из стабильной прошивки. Т.к. подключение происходит после загрузки роутера, то пока что приходится руками делать что-то типа этого:

 rm -f /tmp/mnt/DATA/download/.dlna_files.db &&  encfs /tmp/mnt/DATA/.cache/ /tmp/mnt/DATA/download/

, но чует мое сердце, что не комильфо и было бы правильно "сварганить" парочку скриптов, ну или один с параметрами start/stop, для того чтобы это все происходило гладко. Подскажите пожалуйста, как это сделать, чтобы была возможность горячего подключения/отключения шифрованного содержимого. Пока что мне кажется что для подключения надо как-то стопить сервисы использующие эту знаковую точку монтирования, чистить ее от всего лишнего, подключать encfs и стартовать все остановленные сервисы с пересканированием папки. Непонятно как управлять родным minidlna? Нашел пересканирование и управление сервисом, насколько корректно будет это делать так:

ndmq -p "config-dlna rescan full" -x
и 
ndmq -p "no service dlna" -x

. Отключение по той же схеме, пока родной dlna-сервис не выключишь вот такая штука происходит:

~ # fusermount -u /tmp/mnt/DATA/download
fusermount: failed to unmount /tmp/mnt/DATA/download: Device or resource busy
~ # lsof +d /tmp/mnt/DATA/download/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
minidlna 6567 root    4u   REG   0,14    77824 335227 /tmp/mnt/DATA/download/.dlna_files.db
~ # killall minidlna && fusermount -u /tmp/mnt/DATA/download/
fusermount: failed to unmount /tmp/mnt/DATA/download: Device or resource busy
~ # killall minidlna && fusermount -u /tmp/mnt/DATA/download/

Буду очень благодарен всем подсказкам, т.к. вроде все и расписал, но не знаю насколько правильным путем иду.

Link to comment
Share on other sites

10 answers to this question

Recommended Posts

  • 0
Дорогие друзья, вопрос следующий, монтирую encfs в папочку /tmp/mnt/DATA/download/, на которую натравлен родной dlna из стабильной прошивки. Т.к. подключение происходит после загрузки роутера, то пока что приходится руками делать что-то типа этого:
 rm -f /tmp/mnt/DATA/download/.dlna_files.db &&  encfs /tmp/mnt/DATA/.cache/ /tmp/mnt/DATA/download/

, но чует мое сердце, что не комильфо и было бы правильно "сварганить" парочку скриптов, ну или один с параметрами start/stop, для того чтобы это все происходило гладко. Подскажите пожалуйста, как это сделать, чтобы была возможность горячего подключения/отключения шифрованного содержимого. Пока что мне кажется что для подключения надо как-то стопить сервисы использующие эту знаковую точку монтирования, чистить ее от всего лишнего, подключать encfs и стартовать все остановленные сервисы с пересканированием папки. Непонятно как управлять родным minidlna? Нашел пересканирование и управление сервисом, насколько корректно будет это делать так:

ndmq -p "config-dlna rescan full" -x
и 
ndmq -p "no service dlna" -x

. Отключение по той же схеме, пока родной dlna-сервис не выключишь вот такая штука происходит:

~ # fusermount -u /tmp/mnt/DATA/download
fusermount: failed to unmount /tmp/mnt/DATA/download: Device or resource busy
~ # lsof +d /tmp/mnt/DATA/download/
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
minidlna 6567 root    4u   REG   0,14    77824 335227 /tmp/mnt/DATA/download/.dlna_files.db
~ # killall minidlna && fusermount -u /tmp/mnt/DATA/download/
fusermount: failed to unmount /tmp/mnt/DATA/download: Device or resource busy
~ # killall minidlna && fusermount -u /tmp/mnt/DATA/download/

Буду очень благодарен всем подсказкам, т.к. вроде все и расписал, но не знаю насколько правильным путем иду.

Похоже на правду.

Можете еще использовать хуки в /opt/etc/ndm/fs.d для получения событий о монтировании и размонтировании ФС: https://github.com/ndmsystems/packages/ ... -Component

Link to comment
Share on other sites

  • 0

Я бы отключил автозапуск minidlna в прошивке. С этого момента все равно прошивочный minidlna или из entware (в entware получше будет :P ).

Дальше соорудил бы несколько конфигов, с базами данных в разных папках.

Сделал бы скрипт. который в зависимости от подключенного (или отключенного) шифрованного диска переключал бы minidlna на нужный конфиг.

Link to comment
Share on other sites

  • 0
Можете еще использовать хуки в /opt/etc/ndm/fs.d для получения событий о монтировании и размонтировании ФС: https://github.com/ndmsystems/packages/ ... -Component

У меня почему-то нет fs.d. Вручную если создам не поможет?

snapshot.PNG.46b2501bc0350ccd406478cc2d1

Link to comment
Share on other sites

  • 0

У меня почему-то нет fs.d. Вручную если создам не поможет?

Поможет, как и

opkg update
opkg upgrade

Последнее следует делать периодически - получать список пакетов и обновлять установленные. Есть установленный метапакет, который обновляет папки и скрипты entware в соответствии с обновлением прошивок.

Link to comment
Share on other sites

  • 0

opkg upgrade

Последнее следует делать периодически - получать список пакетов и обновлять установленные. Есть установленный метапакет, который обновляет папки и скрипты entware в соответствии с обновлением прошивок.

что за метапакет? про opkg upgrade мне где-то тут попадалось, что все ломается, яж и не делаю, только opkg update в начале самом сделал, ну и периодически перед установкой новых пакетов.. можно не бояться? :)

Link to comment
Share on other sites

  • 0

... про opkg upgrade мне где-то тут попадалось, что все ломается, яж и не делаю, только opkg update в начале самом сделал, ну и периодически перед установкой новых пакетов.. можно не бояться? :)

Вроде бы это было у юзера смешавшего keenopt и entware в одном флаконе. Гремучая смесь, доложу Вам.

Если что и сломается, то доложить. Максимум плохого - перепишет файлы, которые Вы редактировали, и которые не отмечены, как конфигурационные.

На этот случай рекомендую самому делать периодически бекап ручками папки /opt/etc

Link to comment
Share on other sites

  • 0

Если что и сломается, то доложить.

/opt/etc/init.d # opkg update
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/Packages.gz.
Updated list of available packages in /opt/var/opkg-lists/keenle.
/opt/etc/init.d # opkg upgrade
Upgrading opt-ndmsv2 on root from 1.0-1 to 1.0-4...
Downloading http://pkg.entware-keenetic.ru/binaries/keenle/opt-ndmsv2_1.0-4_keenle.ipk.
Configuring opt-ndmsv2.
Updating /opt/etc/ld.so.cache... done.
Collected errors:
* resolve_conffiles: Existing conffile /opt/etc/passwd is different from the conffile in the new package. 
The new conffile will be placed at /opt/etc/passwd-opkg.
* resolve_conffiles: Existing conffile /opt/root/.profile is different from the conffile in the new package. 
The new conffile will be placed at /opt/root/.profile-opkg.

то есть конффайлы те которые с постфиксом "-опкж" он положил чтоб было, как я понял. Или как? (то что пароль нестандартный и в профиль я "export EDITOR="/opt/bin/nano"" добавлял.) можно же эти два файла грохнуть, там все как раньше, кроме моих правок. Кстати как обозначить на будущее что их не нужно впаривать при апгрейде?

отмечены, как конфигурационные.
Это как?
Link to comment
Share on other sites

  • 0
Это как?

Догадайтесь с одного раза после выполнения

>ls /opt/lib/opkg/info/*.conffiles

и просмотра любого файла.

Если файл отмечен как конфигурационный и Вы его редактировали, то его opkg не трогает, ругается и добавляет -opkg к файлам с тем же именем при распаковке из пакета.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...