FAQ
From MtdWiki
Frequently Asked Questions
General
What is mt-daapd
mt-daapd is a program which acts as an iTunes (DAAP) server for Linux and other POSIX unixes. It may eventually support Win32 as well.
Some random features that it supports:
- Supports the Roku SoundBridge (query/browse/index support)
- Supports periodic rescans of the database
- Can advertise shoutcast streams
- Supports password-protected shares
- Is web-configurable and managable
- Support dynamic playlists, like iTunes "Smart playlists"
- Probably other things I've forgotten
All is not perfect, however. Currently, there are several drawbacks to it:
- database is indexed by inode, so all music must be on one filesystem
- browse by artist is slow on Roku, times out (with large databases ~10K songs)
- Probably other things I've forgotten
If you can think of others, remind me of them in the forums!
After upgrading to 0.2.2 for support of iTunes 5, I am unable to see my DAAP share!
Apple has changed the method by which DAAP shares are discovered. One must ensure that the "Show: Radio" button is selected under the General preference tab. Some have also reported the need to deselect, then reselect the "Look for shared music" under the Sharing preference tab.
Subsequent reports have indicated the need to also check the Parental tab as well. One of the options is to Disable shared music and some upgrades apparently enable this bit and will prevent access to a shared library.
Performing these actions should iTunes be unable to "see" the share are reported to correct the issue. If not, please search this forum thread (http://www.mt-daapd.org/index.php?option=com_simpleboard&Itemid=40&func=view&id=1719&catid=2) for possible solutions.
Installation and Management
Using the SQLite-based nightlies, I am unable to compile from source What could be the problem?
mt-daapd requires the use of SQLite v.2.x; it is not compatible, at present, with 3.x. Anticipating this problem, the SQLite developers have provided for this situation by allowing for simultaneous installations of both development trees. If you have SQLite 3.x installed and are receiving an error such as...
... checking for sqlite.h... no configure: error: sqlite.h not found... Must have sqlite headers installed ...
...then downloading (http://www.sqlite.org/download.html) and installing version 2.x should solve the problem.
I have SQLite 3.x is installed, but mt-daapd crashed out with a segfault error
Again, the current version of mt-daapd requires SQLite version 2.x; it is not compatible with version 3.x. All developmental versions of mt-daapd after 11 March 2005 must have SQLite version 2.x installed or they will not function.
There is no SQLite 2.x installation package available for my OS!
That is unfortunate, but mt-daapd requires SQLite 2.x and is presently incompatible with version 3.x. Therefore, it will be necessary for you to build and install SQLite 2.x from the source tarball in order to run any developmental version of mt--daapd subsequent to 11 March 2005.
Following a library reorganization, I can no longer play songs in my database
(pertains to latest stable release 0.2.x)
This is a known issue affecting versions of mt-daapd making use of GDBM. The location of the files catalogued within the database is based upon the inode of the file. In most all circumstances, if the files are moved for any reason the inode number will change. The daemon will continue to access the file at its stored location and will fail with an error to that effect.
To solve this issue:
- kill the mt-daapd process
- locate and delete the songs.gdb file
(this is declared in the configuration file usually /var/spool/mt-daapd, but may be /opt/var/mt-daapd or another...check the configuration file)
- restart mt-daapd
This procedure will force mt-daapd to rescan the directory tree and recreate the database with the correct inode for the files.
Artwork and Video
I cannot see the album artwork while songs are playing
The only way iTunes can see the pictures is if you change the picture browser to "Now Playing" instead of "Selected Song" (the default).
All you will see is the cover art of the song you are currently playing, but anything more than that wouldn't be possible for iTunes to do.
So:
- Play a song that has cover art
- If the picture browser says "Selected Song" in the title bar, then click on it
- Enjoy the album artwork
If that doesn't work, then something is wrong.
Rendezvous Issues
mt-daapd keeps dropping out of iTunes
This is almost always because of firewall rules on the machine that mt-daapd is running on. Specifically, mt-daapd isn't seeing multicast packets. There is a large thread talking about this on the mt-daapd forums here (http://www.mt-daapd.org/index.php?option=com_simpleboard&Itemid=40&func=view&id=635&catid=2&limit=6&limitstart=0). Read those posts for more information, but the gist of it is that you must enable multicast traffic to 224.0.0.251 on port 5353, or mt-daapd will disappear from iTunes.
On a linux box, commands like the following should work:
iptables -A INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT iptables -A OUTPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
You probably want to use the firewalling tools provided by your distro to set up these rules properly, but failing that, you could merely add these lines into the script that starts mt-daapd.
SuSE
Gerhard adds that these are the steps he had to take for SuSE running SuSEfirewall2:
modify the function fw_custom_before_antispoofing() in /sbin/SuSEfirewall2 and add the following line:
iptables -A INPUT -j ACCEPT -d 224.0.0.251 -p udp --dport 5353
(before the line "true;")
Hank adds that the above is the default configuration for Fedora 4.
I do not understand the previous answer, but have the same problem. Is there something else I can check?
If you have a software derived firewall or one built into a router or switch with a GUI, yes, you can accomplish something similar to the above. First, a little theory.
The DAAP protocol requires two components in order to share music or podcast libraries across a sub-net: open ports on TCP 3689 and UDP 5353. Some firewall installations come with UDP ports disabled by default. Therefore, in order to provide a reliable and persistent DAAP share, it is necessary to ensure that these ports are open to traffic on both the server and client machines as well as all points in between.
To ensure reliable DAAP access, check the firewall configuration settings on all machines and devices residing on the subnet, inclusive of the machine running mt-daapd and the client device/machine. Locate the configuration tab responsible for the allowance of the various networking protocols and ensure that both TCP port 3689 and UDP port 5353 are open to packet transmission.
