mount AV device as filesystem (original) (raw)
djmount
mount MediaServers content as a Linux filesystem
djmount is a UPnP AV client. It mounts as a Linux filesystem the media content of compatible UPnP AV devices.
Djmount discovers automatically all UPnP AV Media Servers on the network, and make the content available in a directory tree. All shared files (e.g. Audio or Video files) are directly visible and can be played using your favorite media player.
djmount is written in C for the Linux operating system.
It is free software, licensed under the terms of the GNU General Public License (GNU GPL).
Example 1 : browsing
(the actual content listed depends on your AV files collection !)
$ djmount /mnt/av
$ cd /mnt/av
$ ls -l dr-xr-xr-x 3 root root 512 jan 1 2000 SomeMediaServerDeviceName/ dr-xr-xr-x 3 root root 512 jan 1 2000 AnotherMediaServerDeviceName/ -r--r--r-- 1 root root 114 jan 1 2000 devices
$ cd SomeMediaServerDeviceName
$ ls -l dr-xr-xr-x 14 root root 512 jan 1 2000 Music/ dr-xr-xr-x 5 root root 512 jan 1 2000 Pictures/ dr-xr-xr-x 4 root root 512 jan 1 2000 Videos/
$ ls -l Music/Artists/Tinariwen/ -r--r--r-- 1 root root 5407087 jan 1 2000 Chatma.mp3 -r--r--r-- 1 root root 3751143 jan 1 2000 Chet Boghassa.mp3
$ xmms Music/Artists/Tinariwen/
$ fusermount -u /mnt/av
Note: the FUSE kernel module shall be loaded before running djmount, otherwise you will get the error:
fusermount: fuse device not found, try 'modprobe fuse' first
Example 2 : searching
(again, the actual content listed depends on your AV files collection !)
$ djmount /mnt/av
$ cd /mnt/av
$ ls -l dr-xr-xr-x 3 root root 512 jan 1 2000 SomeMediaServerSupportingSearch/ dr-xr-xr-x 3 root root 512 jan 1 2000 AnotherMediaServerDeviceName/ -r--r--r-- 1 root root 114 jan 1 2000 devices
$ cd SomeMediaServerSupportingSearch
$ ls -l dr-xr-xr-x 14 root root 512 jan 1 2000 Music/ dr-xr-xr-x 5 root root 512 jan 1 2000 Pictures/ dr-xr-xr-x 4 root root 512 jan 1 2000 Videos/ dr-xr-xr-x 2 root root 512 Jan 1 2000 _search/
$ ls -l _search -r--r--r-- 1 root root 126 Jan 1 2000 search_capabilities -r--r--r-- 1 root root 12640 Jan 1 2000 search_help.txt
$ ls -l _search/brel -r--r--r-- 1 root root 3151929 jan 1 2000 Amsterdam.mp3 dr-xr-xr-x 4 root root 512 jan 1 2000 Jacques Brel/ -r--r--r-- 1 root root 3246781 jan 1 2000 Ne me quitte pas.mp3 dr-xr-xr-x 2 root root 512 Jan 1 2000 _and/ dr-xr-xr-x 2 root root 512 Jan 1 2000 _or/
$ xmms _search/brel/Amsterdam.mp3
$ fusermount -u /mnt/av
Note: full help for searching (basic search and advanced syntax) is available in the "search_help.txt" file, included in the djmount package. This file is also available at run-time in the "_search" directory, if the connected UPnP device supports searching.
Building and Installation
djmount has been built and tested on various Linux distro (MandrakeLinux 10.1, GeeXboX, Debian sarge or sid, Ubuntu 5.10, Mandriva 2006.0 ...), which include various Linux kernels (e.g. 2.6.14), gcc (e.g. 3.4.1, 4.0.3) and libc (e.g. glibc-2.3.5, uClibc 0.9.28). Different versions of FUSE are also supported (e.g. 2.2.1, 2.4, 2.5)
- Prerequisites for compilation:
- the FUSE package : http://fuse.sourceforge.net/
Use 'configure' and 'make' in the top directory to compile.
./configure make
if you want to install djmount on your system, run :
make install
or to strip the resulting executable :
make install-strip
For advanced build instruction, see the README file included in djmount.
Usage
as root : load the FUSE kernel module
modprobe fuse
To run, simply use the 'djmount/djmount' executable (no extra file is needed).
The FUSE mountpoint is a required argument. For example:djmount /mnt/upnp
when finished, unmount the mountpoint (see details in FUSE documentation):
fusermount -u /mnt/upnp
Options : see "djmount --help" for the complete list of options.
A useful option is "-o" which can set mount options, in particular:
-o iocharset=<_charset_>
for proper encoding of filenames, in case djmount has not autodetected your settings (which should be the default).
Example :
djmount -o iocharset=iso-8859-15 /mnt/upnp-o playlists
to render all Audio or Video files as playlists (.m3u or .ram), which contains an URL for the file. In this mode, only the address of the file is exported through djmount ; the actual content is streamed through HTTP when the playlist is accessed by your favorite media player. This mode was the only mode possible for djmount before version 0.50.-o search_history=<_size_>
to set the maximum number of remembered searches (see "djmount --help" for the default number). Set to 0 to disable searching completely (no "_search" directory will be displayed, even if supported by the connected device).
Known Compatible Devices
djmount has been tested successfully with the following UPnP AV Devices / Media Servers :
- TwonkyVision UPnP Music Server on Linux : www.twonkyvision.de/
- GMediaServer on Linux : www.gnu.org/software/gmediaserver/
- Ahead Nero MediaHome Server (included in Nero ultra) : www.nero.com/en/Nero_MediaHome.html
- Microsoft Windows Media Connect : www.microsoft.com/windows/windowsmedia/devices/wmconnect/
- GeeXboX uShare on Linux : ushare.geexbox.org
- AV Media Server in Intel Tools for UPnP Technologies (.NET) : www.intel.com/cd/ids/developer/asmo-na/eng/downloads/upnp/tools/index.htm
- Nokia N93 phone
- MythTV : www.mythtv.org This page describes how to share A/V content between with some of the above servers :www.geexbox.org/wiki/index.php/Accessing_to_UPnP_Contents
Although djmount should work with other UPnP AV compliant devices, help is needed to test on additional devices.
Troubleshooting
- see the "Troubleshooting" section in the "README" file included in the djmount package
- for general problems, try also the FUSE documentation.
- finally, please report problems on the djmount forums.
Implementation
This project uses the following main libraries :
- the FUSE package :http://fuse.sourceforge.net/
- the Linux SDK for UPnP Devices (libupnp), initially created by Intel: http://upnp.sourceforge.net/.
The "libupnp" directory contains a copy with some mandatory patches. - the "talloc" library : http://talloc.samba.org/. A local copy is included in the "talloc" directory for convenience.
Reference documentation : The UPnP AV Architecture.
Updated Date:2006/10/0620:30:00Date: 2006/10/06 20:30:00 Date:2006/10/0620:30:00, Rémi Turboult