Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 30/12/2018, à 22:34

mmz1test

[Résolu] Base de données miniDLNA en readonly

Bonjour,

j'utilise depuis longtemps miniDLNA sur mon ordi pour partager mes dossiers multimedia sur ma tv (raspberry b+, osmc, kodi 17.6) et cela sans trop de problème.

Depuis peu de temps (peut-être mise à jour et changement de fonctionnement) miniDLNA fonctionne parfaitement mais lorsque j'ai voulu ajouter de la musique pas de mise à jour de ma liste sur mon rpi, je consulte donc le log et il est indiqué que ma base de données sql est en readonly, certainement un problème de droit. le fichier file.db est en : utilisateur : root et groupe : root. J'ai essayer de changer les droits dans le fichier de configuration mais alors le serveur n'est plus disponible.

voici mon 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 video    (eg. media_dir=V,/var/lib/minidlna/videos)
media_dir=/home/memz/Musique
media_dir=/home/memz/Images/photos
media_dir=/home/memz/Vidéos

# Path to the directory that should hold the database and album art cache.
db_dir=/home/memz/.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=.

# Network interface(s) to bind to (e.g. eth0), comma delimited.
# This option can be specified more than once.
# wifi (wlp*s0), ethernet(enp*s0)
network_interface=wlp3s0,enp4s0

# 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=49200

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

# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=memzDLNA

# 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.
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=300

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

mon minidlna

# Defaults for minidlna initscript
# sourced by /etc/init.d/minidlna
# installed at /etc/default/minidlna by the maintainer scripts

# These options can be set to modify the behavior of the minidlna init script.
# The options commented out show the default values.

# Start the daemon if set to "yes"
START_DAEMON="yes"

# Path to the configuration file
#CONFIGFILE="/etc/minidlna.conf"

# Path to the log file
#LOGFILE="/var/log/minidlna.log"

# User and group the daemon should run as
#USER="minidlna"
#GROUP="minidlna"
GROUP="memz"

# Additional options that are passed to the daemon
DAEMON_OPTS=""

un extrait de mon fichier log

[2018/12/30 18:37:07] minidlna.c:1060: warn: Starting MiniDLNA version 1.2.1.
[2018/12/30 18:37:07] minidlna.c:355: warn: Creating new database at /home/memz/.miniDLNA/files.db
[2018/12/30 18:37:07] minidlna.c:1101: warn: HTTP listening on port 49200
[2018/12/30 18:37:07] getifaddr.c:109: error: Network interface enp4s0 not found
....
[2018/12/30 20:10:16] playlist.c:135: warn: Parsing playlists...
[2018/12/30 20:15:19] playlist.c:269: warn: Finished parsing playlists.
[2018/12/30 21:14:04] minidlna.c:155: warn: received signal 15, good-bye
[2018/12/30 21:14:30] minidlna.c:1060: warn: Starting MiniDLNA version 1.2.1.
[2018/12/30 21:14:30] sql.c:41: error: SQL ERROR 8 [attempt to write a readonly database]
pragma default_cache_size = 8192;
[2018/12/30 21:14:30] minidlna.c:1101: warn: HTTP listening on port 49200
[2018/12/30 21:14:30] getifaddr.c:109: error: Network interface enp4s0 not found

Tout fonctionnement parfaitement jusqu'à ce que je redémarre mon ordi ou relance le serveur dlna, la seul solution est de recréer la base de données pour pouvoir la modifier (ajout ou suppression)

sudo /etc/init.d/minidlna stop
sudo /etc/init.d/minidlna restart
sudo /etc/init.d/minidlna force-reload
sudo minidlnad -f /etc/minidlna.conf -R

Parfois, au cours de l'utilisation du serveur mon ordi monte dans les tours (processeur à 25% -1proc à 100%) et consommation batterie 2 à 2.5x plus élevé, seul moyen stopper le processus et reconstruire la base de données, l'erreur se reproduit en continu dans le fichier log

Est-il normal que le fichier file.db soit en root et non pas en minidlna ou utilisateur courant? cela expliquerait peut-être pourquoi la base de données se retrouve en readonly

Si quelqu'un peut m'apporter des lumières je suis preneurs, je suis dispo pour des test et info supplémentaires si besoin

je vous remercie


edit : j'ai reconstruit la base de donnée en /var/cache/minidlna comme vu sur un autre forum mais sans succès

Dernière modification par mmz1test (Le 03/01/2019, à 19:52)

Hors ligne

#2 Le 03/01/2019, à 09:04

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Bonjour,

Je vois au moins un problème de configuration concernant l'utilisateur et 'emplacement de la base de données.
- il n'y a aucune raison de modifier le groupe dans /etc/default/minidlna ;
- il n'y aucune raison de modifier l'emplacement de la base de données dans /etc/minidlna.conf (/var/cache/minidlna part défaut). Et c'est une mauvaise chose de mettre dans son dossier personnel des fichiers qui appartiennent à un autre utilisateur.

Autre souci la ligne :

network_interface=wlp3s0,enp4s0

génère cette erreur : [2018/12/30 18:37:07]

getifaddr.c:109: error: Network interface enp4s0 not found

Tu devrais commenter toutes les lignes dans /etc/minidlna.conf sauf celles concernant tes dossiers musique, photo, etc.
Et pour relancer un service on utilise :

sudo systemctl restart minidlna

Hors ligne

#3 Le 03/01/2019, à 15:18

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

Bonjour Bruno,
je te remercie de ta reponse :

- pour l'emplacement de la base de données j'avais vu sur un autre forum que l'emplacement pouvait poser problème, je l'ai donc remis en /var/cache/minidlna sans amélioration malgré la reconstruction de la bd
- pour le groupe dans etc/default/minidlna j'ai suivi les recommandations sur la page de la doc https://doc.ubuntu-fr.org/minidlna en 4.1 afin de ne pas donner les droits sur l'ensemble de mes fichiers pour tout le monde (cela me semble plus sécurisé)
- qu'en à l'erreur sur l'interface j'ai paramétré la possibilité de partage par le wifi ou par câble selon le branchement disponible, quand le câble Ethernet n'est pas connecté il provoque l'erreur mais sans gravité

je vais essayer, comme tu le préconise de commenter les lignes dans /etc/minidlna.conf sauf dossiers partagés pour voir s'il y a du changement

Pourtant je n'avais pas eut de soucis avec cette configuration depuis des années, juste les noms d'interfaces qui changées d'une version kubuntu à l'autres

Si tu as d'autres pistes aussi, je suis preneur

merci

Hors ligne

#4 Le 03/01/2019, à 15:36

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

Malgré les essais j'ai toujours l'erreur qui apparaît dans les log :

[2019/01/03 14:26:59] sql.c:41: error: SQL ERROR 8 [attempt to write a readonly database]
pragma default_cache_size = 8192;

ce soir j'essayerai de désinstaller minidlna et supprimer l'ensemble des fichiers de configurations pour repartir sur une install propre et modifier les fichiers de config élément par élément pour voir si cela coince.

Y-a-t’il une façon propre de purger l'ensemble de minidlna et sa config sans rien oublier ?

Dernière modification par mmz1test (Le 03/01/2019, à 16:04)

Hors ligne

#5 Le 03/01/2019, à 16:29

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Pour désinstaller complètement minidlna, y compris les fichiers de configuration :

sudo apt purge minidlna

L'autre truc qui n'est pas normal c'est que le fichier de base de données appartienne à root (ce qui est apparemment la source du ton problème). Sur ma machine :

$ sudo ls -al /var/cache/minidlna/
total 460
drwxr-x---  3 minidlna minidlna   4096 oct.   6 20:47 .
drwxr-xr-x 25 root     root       4096 nov.  20 07:21 ..
drwxr-xr-x  3 minidlna minidlna   4096 oct.   6 20:47 art_cache
-rw-r--r--  1 minidlna minidlna 458752 janv.  3 12:54 files.db

Hors ligne

#6 Le 03/01/2019, à 18:00

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

Je pense effectivement que mon problème vient de droit d'accès sur la base de données :
Voici ce que me renvoie la même commande sur mon install sans comprendre pourquoi  et comment ce changement est intervenu:

memz@memz-Legion:~$ sudo ls -al /var/cache/minidlna/
[sudo] Mot de passe de memz : 
total 219056
drwxr-xr-t  3 root root      4096 janv.  1 18:03 .
drwxr-xr-x 17 root root      4096 janv.  1 18:03 ..
drwxr-xr-x  3 root root      4096 janv.  1 18:03 art_cache
-rw-r--r--  1 root root 224296960 janv.  1 19:02 files.db
memz@memz-Legion:~$ 

Hors ligne

#7 Le 03/01/2019, à 18:05

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Je serais curieux de voir le retour de :

ps aux | grep minidlna

Hors ligne

#8 Le 03/01/2019, à 18:16

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

voici ce que renvoie la commande :

memz@memz-Legion:~$ ps aux | grep minidlna
minidlna  1213  0.0  0.4 429896 35284 ?        Ssl  16:53   0:00 /usr/sbin/minidlnad -f /etc/minidlna.conf -P /run/minidlna/minidlna.pid
memz      2981  0.0  0.0  15664  1048 pts/1    S+   17:13   0:00 grep --color=auto minidlna
memz@memz-Legion:~$ 

sans trop comprendre la signification....

Hors ligne

#9 Le 03/01/2019, à 18:23

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Je voulais juste vérifier que minidlnad était bien lancé par l'utilisateur minidlna. C'est bien le cas. Je ne comprends donc pas pourquoi ta base appartient à root (à moins bien sûr, que tu n'aies lancé une commande minidlnad en tant que root).

Tu devrais aussi remettre l'option « -r » dans /etc/default/minidlna :

DAEMON_OPTS="-r"

Dernière modification par bruno (Le 03/01/2019, à 18:24)

Hors ligne

#10 Le 03/01/2019, à 18:30

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

je vais essayer cette option dans etc/default/minidlna, quel est sa fonction ? car je ne l'ai jamais eu auparavent

Hors ligne

#11 Le 03/01/2019, à 18:39

bruno

Re : [Résolu] Base de données miniDLNA en readonly

man minidlnad a écrit :

     -r      Do a non-destructive rescan of the media files on start-up.

Effectue une (ré-)analyse non destructive des fichiers multimédia au démarrage.

Hors ligne

#12 Le 03/01/2019, à 18:46

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

…et relancer un scan (qui est toujours en cours)

Ah ? Et comment relances-tu un scan ?

Dernière modification par bruno (Le 03/01/2019, à 18:58)

Hors ligne

#13 Le 03/01/2019, à 19:08

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

d'après la doc :

sudo minidlnad -f /etc/minidlna.conf -R

Hors ligne

#14 Le 03/01/2019, à 19:17

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Cela me semble une mauvaise idée pour deux raisons :
- tu relances en tant que root un démon qui est déjà lancé ;
- l'analyse des fichiers est faite de toute façon quand tu redémarre minidlna, donc il suffi d'un simple :

sudo systemctl restart minidlna

J'ai essayé ta commande chez moi et elle ne fait pas de nouvelle analyse, par contre elle supprime le fichier files.db et génère une erreur (forcément) :

error: MiniDLNA is already running. EXITING.

La doc est erronée.

Dernière modification par bruno (Le 03/01/2019, à 19:49)

Hors ligne

#15 Le 03/01/2019, à 19:21

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

je viens de réinstaller complètement et purger la config, je viens de reparamétrer basiquement la config :

La base de données est en cours de construction mais les droits on l'air ok :

memz@memz-Legion:~$ sudo ls -al /var/cache/minidlna/
[sudo] Mot de passe de memz : 
total 43216
drwxr-x---  3 minidlna minidlna     4096 janv.  3 18:10 .
drwxr-xr-x 17 root     root         4096 janv.  3 17:51 ..
drwxr-xr-x  3 minidlna minidlna     4096 janv.  3 18:10 art_cache
-rw-r--r--  1 minidlna minidlna 44236800 janv.  3 18:16 files.db
memz@memz-Legion:~$ 

à voir pour la suite

Hors ligne

#16 Le 03/01/2019, à 19:32

bruno

Re : [Résolu] Base de données miniDLNA en readonly

Parfait. Bon, j'ai corrigé un peu la doc.

Hors ligne

#17 Le 03/01/2019, à 19:42

mmz1test

Re : [Résolu] Base de données miniDLNA en readonly

La doc devait dater un peu....
je n'ai pas eu besoin de changer le groupe dans etc/default/minidlna

voici mon nouveau 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 (root by default).
# On Debian system command line option (from /etc/default/minidlna) overrides this.
#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 video    (eg. media_dir=V,/var/lib/minidlna/videos)
#   * "PV" for pictures and video (eg. media_dir=PV,/var/lib/minidlna/digital_camera)
media_dir=/home/memz/Musique
media_dir=/home/memz/Images/photos
media_dir=/home/memz/Vidéos

# Set this to merge all media_dir base contents into the root container
# (The default is no.)
#merge_media_dirs=no

# 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"
#   * Or, you can specify the ObjectID of your desired root container
#     (eg. 1$F for Music/Playlists)
# If you specify "B" and the client device is audio-only then "Music/Folders"
# will be used as root.
#root_container=.

# Network interface(s) to bind to (e.g. eth0), comma delimited.
# This option can be specified more than once.
network_interface=wlp3s0,enp4s0

# 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=49200

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

# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=memzDLNA

# Serial number the server reports to clients.
# Defaults to the MAC address of nework interface.
#serial=

# 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.
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

# Which method to use for registering in TiVo: 'bonjour' (default) or
# legacy 'beacon'
#tivo_discovery=bonjour

# SSDP notify interval, in seconds.
notify_interval=895

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

# Always set SortCriteria to this value, regardless of the SortCriteria
# passed by the client
# e.g. force_sort_criteria=+upnp:class,+upnp:originalTrackNumber,+dc:title
#force_sort_criteria=

# maximum number of simultaneous connections
# note: many clients open several simultaneous connections while streaming
#max_connections=50

# set this to yes to allow symlinks that point outside user-defined media_dirs.
#wide_links=no

et mon etc/default/minidlna

# Defaults for minidlna initscript
# sourced by /etc/init.d/minidlna
# installed at /etc/default/minidlna by the maintainer scripts

# These options can be set to modify the behavior of the minidlna init script.
# The options commented out show the default values.

# Start the daemon if set to "yes"
START_DAEMON="yes"

# Path to the configuration file
#CONFIGFILE="/etc/minidlna.conf"

# Path to the log file
#LOGFILE="/var/log/minidlna.log"

# User and group the daemon should run as
#USER="minidlna"
#GROUP="minidlna"

# Additional options that are passed to the daemon
# We pass -r option to do soft non-destructive rebuild on every start-up.
# If your systerm restarts often, you might want to remove this.
DAEMON_OPTS="-r"

Un grand merci pour l'aide apportée et bonne année

Hors ligne