El tutorial lo vamos a ir desarrollando entre todos. Os comento los problemas que he ido teniendo y que veo que el resto de foreros también.
1.- El minidlna no reconoce todos los ficherosEl problema en sí es bastante complejo porque puede ser debido a varias causas:
1.1.- Falta de RAMEste punto es algo polémico. Hay quien preferirá activar la swap y asunto resuelto. Aunque según el caso esto puede ser relativo; si estamos ante una falta de memoria sin duda será la solución, pero en mi caso la falta de ram es debida a bugs que aún no sé si son debidos al minidlna o a alguna configuración del openwrt/linux (¿I/O bloqueante?, ¿acceso a disco lento?,...)
--->
¿Cómo saber si el minidlna está fallando por falta de ram? Ejecutando el siguiente comando:
# dmesg | grep "Out of memory"
Si nos devuelve algo como esto:
[ 3436.436000] Out of memory: Kill process 3147 (
minidlna) score 751 or sacrifice child
es porque el minidlna está petando y aquí se explica una solución:
https://foro.seguridadwireless.net/openwrt/minidlna-no-me-detecta-el-contenido-del-usb-excepto-si-hago-restart/msg268813/#msg268813
1.2.- ¿bloqueo por concurrencia a disco? (por confirmar) Si no vemos nada raro en el punto 1.1 el problema puede ser debido al acceso concurrente de varios programas a disco (sólo son suposiciones, necesito compilarme un firmware con herramientas de debugueo).
Si arrancamos el minidlna de esta forma:
/usr/bin/minidlna -f /tmp/minidlna.conf -d -R
veremos como el escaneo se detiene sin terminar de escanear todos los ficheros. No habrá nada raro en los logs y por más que se intente el problema se repetirá. La solución es detener todos los programas que accedan a disco y luego ejecutar el comando anterior. En mi caso el transmission estaba bloqueando al minidlna y hasta que no lo he detenido no ha podido terminar el escaneo de los ficheros multimedia. Es importantísimo que se complete el escaneo para que el minidlna genere la base de datos y que ésta no acabe bloqueada.
Estos bloqueos pueden ser provocados por transmission, samba, ftp, etc. Aquí me surge una gran duda, ¿se bloquean los programas entre sí o es el minidlna el único que lo sufre?
2.- InotifyCuando el escaneo se ha completado es cuando funciona el inotify. En teoría, una vez construida la base de datos con el inotify funcionando nos podemos olvidar temporalmente de todos estos dolores de cabeza.
[2013/02/22 21:30:22] playlist.c:258: warn: Finished parsing playlists.
[2013/02/22 21:30:22] scanner.c:844: debug: Initial file scan completed[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:32] minissdp.c:680: info: SSDP M-SEARCH from 10.10.10.102:59000 ST: ssdp:all, MX: 3, MAN: "ssdp:discover"
[2013/02/22 21:30:33] inotify.c:153: debug: Add watch to /mnt/persa/multimedia/DLNA
[2013/02/22 21:30:33] inotify.c:153: debug: Add watch to /mnt/persa/musica
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Cloud.Atlas.2012.720p.BluRay.x264-BiDA [PublicHD]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Cloud.Atlas.2012.720p.BluRay.x264-BiDA [PublicHD]/Sample
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/Lo Imposible [BluRay 1080p][DTS_AC3 5.1 Castellano_DTS English + Subs. ES_EN][2013]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/The.Amazing.Spiderman.2012.iNTERNAL.REPACK.720p.BluRay.x264-BRHD [PublicHD]
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/seal.team.six.the.raid.on.osama.bin.laden.2012.720p.hdtv.x264-2hd
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube/piscina
[2013/02/22 21:30:33] inotify.c:160: debug: Add watch to /mnt/persa/multimedia/DLNA/youtube/ted
3.- Problemas de lentitud asociados al tipo de particiónMiniDLNA lists Movies and Photos by file name in its DB, and Music entries by ID3 tags instead of file names. If Music collection wasn't tagged in UTF8 but in a local charset, MiniDLNA might not identify and transcode it correctly to UTF8 for display in media players, or the original tags codepage(s) may be absent in your system, so the tags won't be readable even when media file names are. In this case consider re-tagging your collection to UTF-16BE or UTF-8 encoding with an ID3 Tag Converter.
Picking the "right" file system for your Media_Collection is a trade-off: XFS and EXT4 show fast read/write for HDs and lower CPU load critical for small Plug Computers with attached storage. NTFS is most compatible with Windows when plugging a drive directly for faster copy, while network file systems like Samba, NFS or iSCSI allow import to Windows any Linux FS with slower data copy. As file fragmentation affects playback, store your Movies on a non-system drive formatted in XFS (prevents fragments), NTFS (fragment resistant and easy to defrag), or EXT4 (uses large file extents), and avoid EXT3 or less resistant FAT32. For smaller Flash drives with seldom fragmented Music and Photo files, VFAT (FAT32) and EXT4 show faster writes with less CPU load, but EXT4 may affect memory wear due to journaling, and less compatible with media players. Proper drive partitioning, block alignment and mount options (i.e. async,noatime...- choice depends on file system and memory type) can greatly accelerate flash and HD drive speed among other advantages.
Fuente:
https://wiki.archlinux.org/index.php/MinidlnaOptimizaciones para ext4:
http://blog.smartlogicsolutions.com/2009/06/04/mount-options-to-improve-ext4-file-system-performance/