You are here: Home » Topic » Installing Firefly on Embedded System

Installing Firefly on Embedded System

This topic contains 9 replies, has 3 voices, and was last updated by  Anonymous 7 years, 12 months ago.

Viewing 10 posts - 1 through 10 (of 10 total)
  • Author
    Posts
  • #2933

    Anonymous

    I’m working on installing Firefly on an embedded system that runs a custom version of Linux, so it may not have some of the packages taken for granted in other distros. I have the basic dependencies taken care of (libid3tag, sqlite3, zlib), and i ran the standard configure/make/make install with no errors on a Fedora build server (with host=mipsel-linux-uclibc) However when i try to run the file mt-daapd on the embedded board, it fails with this error: “mt-daapd: can’t load library ‘libdl.so.0′” Am i missing the library? I tried searching for libdl but found sparse information on it. Any suggestions as to what may be going wrong?

    #18637

    Anonymous

    ha, nevermind… it seems to be a problem on my side rather than on Firefly’s.

    #18638

    Anonymous

    I’ve run into a small hitch when it comes to the placement of the mt-daapd.conf file. I have the file created in /home/…/etc on a build server, but when i execute the mt-daapd file on the board, it should look at /etc. It’s still looking at the absolute path where the file exists on the build server. Is there a way to change where the file looks for the mt-daapd.conf file without changing where it’s installed on the build server?

    #18636

    fizze
    Participant

    Yes, modify the init-script accordingly.

    If you cant figure that out, you can always use symlinks or even hardlinks to the file. Hardlinks only work on the same partition and type, while symlinks work across all devices.

    #18639

    Anonymous

    Thanks! I ran into an issue with some of the paths referenced in the config file. Changing those paths fixed my problem. Sadly, that has exposed another problem. The system i am working with is a single user linux system, and trips up on the “runas”. Here’s the error i run into:


    # ./mt-daapd -c /etc/mt-daapd.conf -f -d 5
    Loading new config file.
    Firefly Version svn-1696: Starting with debuglevel 5
    Loaded plugin /lib/mt-daapd/plugins/out-daap.so (daap/svn-1696)
    Loaded plugin /lib/mt-daapd/plugins/rsp.so (rsp/svn-1696)
    Loaded plugin /lib/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1696)
    Plugin loaded: ssc-script/svn-1696
    Plugin loaded: rsp/svn-1696
    Plugin loaded: daap/svn-1696
    Starting rendezvous daemon
    Starting signal handler
    Couldn't lookup user root
    Error in drop_privs: No such file or directory
    Aborting

    I traced the error down to the function “getpwnam” in the file pwd.h in /usr/include (on ubuntu). The issue being that my system doesn’t have that file or the package it goes with. Because this is a single user system, a workaround where we simulate a multi-user system for the use of firefly is not desirable. Is there a way to remove the user lookup functionality in order to circumvent this error? Or is there another option that i am currently missing?

    #18642

    Anonymous

    bumping thread above the spam.

    #18643

    EVILRipper
    Participant

    Try raising your debuglevel up to level 9. The current logfile doesnt give any clue on where it goes wrong.

    #18644

    Anonymous

    Unfortunately, there’s not too much more from increasing the debug level. Here’s the console output:


    # ./mt-daapd -c /etc/mt-daapd.conf -f -d 9
    Loading config file /etc/mt-daapd.conf
    Opening file:///etc/mt-daapd.conf?ascii=1
    Checking handler for file
    opening /etc/mt-daapd.conf
    Config file open
    Got general/web_root, convert to general/web_root (/share/mt-daapd/admin-root)
    Found existing section
    Got general/port, convert to general/port (3689)
    Found existing section
    Got general/admin_pw, convert to general/admin_pw (mt-daapd)
    Found existing section
    Got general/db_type, convert to general/db_type (sqlite)
    Found existing section
    Got general/db_parms, convert to general/db_parms (/var/cache/mt-daapd)
    Found existing section
    Got general/mp3_dir, convert to general/mp3_dir (/home/bridgea)
    Found existing section
    Found 1 tokens in /home/bridgea
    Token 1: /home/bridgea
    Got general/servername, convert to general/servername (Firefly %v on %h)
    Found existing section
    Got general/runas, convert to general/runas (root)
    Found existing section
    Got general/extensions, convert to general/extensions (.mp3,.m4a,.m4p)
    Found existing section
    Got general/ssc_codectypes, convert to general/ssc_codectypes (ogg,flac,alac)
    Found existing section
    Got general/ssc_prog, convert to general/ssc_prog (/bin/mt-daapd-ssc.sh)
    Found existing section
    Got general/logfile, convert to general/logfile (/var/log/mt-daapd.log)
    Found existing section
    Expanding precomments to 2048
    Got general/scan_type, convert to general/scan_type (2)
    Found existing section
    Got plugins/plugin_dir, convert to plugins/plugin_dir (/lib/mt-daapd/plugins)
    Found existing section
    Got scanning/process_playlists, convert to scanning/process_playlists (1)
    Found existing section
    Got scanning/process_itunes, convert to scanning/process_itunes (1)
    Found existing section
    Got scanning/process_m3u, convert to scanning/process_m3u (1)
    Found existing section
    Checking existence of /share/mt-daapd/admin-root
    Checking existence of /share/mt-daapd/admin-root
    Checking existence of /var/cache/mt-daapd
    Checking existence of /var/cache/mt-daapd
    Checking existence of /lib/mt-daapd/plugins
    Checking existence of /lib/mt-daapd/plugins
    Loading new config file.
    Opening file:///var/log/mt-daapd.log?mode=a&ascii=1
    Checking handler for file
    opening /var/log/mt-daapd.log
    Firefly Version svn-1696: Starting with debuglevel 9
    Attempting to load plugin /lib/mt-daapd/plugins/out-daap.so
    Loaded plugin /lib/mt-daapd/plugins/out-daap.so (daap/svn-1696)
    New transcode codec list:
    Attempting to load plugin /lib/mt-daapd/plugins/rsp.so
    Loaded plugin /lib/mt-daapd/plugins/rsp.so (rsp/svn-1696)
    New transcode codec list:
    Attempting to load plugin /lib/mt-daapd/plugins/ssc-script.so
    Loaded plugin /lib/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1696)
    New transcode codec list: ogg,flac,alac
    Plugin loaded: ssc-script/svn-1696
    Plugin loaded: rsp/svn-1696
    Plugin loaded: daap/svn-1696
    Starting rendezvous daemon
    Starting signal handler
    Couldn't lookup user root
    Error in drop_privs: No such file or directory
    Aborting
    # Couldn't lookup user root

    The log file gives no more information:


    cat /var/log/mt-daapd.log
    1970-01-01 00:47:42 (00000400): Firefly Version svn-1696: Starting with debuglevel 9
    1970-01-01 00:47:42 (00000400): Attempting to load plugin /lib/mt-daapd/plugins/out-daap.so
    1970-01-01 00:47:42 (00000400): Loaded plugin /lib/mt-daapd/plugins/out-daap.so (daap/svn-1696)
    1970-01-01 00:47:42 (00000400): New transcode codec list:
    1970-01-01 00:47:42 (00000400): Attempting to load plugin /lib/mt-daapd/plugins/rsp.so
    1970-01-01 00:47:42 (00000400): Loaded plugin /lib/mt-daapd/plugins/rsp.so (rsp/svn-1696)
    1970-01-01 00:47:42 (00000400): New transcode codec list:
    1970-01-01 00:47:42 (00000400): Attempting to load plugin /lib/mt-daapd/plugins/ssc-script.so
    1970-01-01 00:47:42 (00000400): Loaded plugin /lib/mt-daapd/plugins/ssc-script.so (ssc-script/svn-1696)
    1970-01-01 00:47:42 (00000400): New transcode codec list: ogg,flac,alac
    1970-01-01 00:47:42 (00000400): Plugin loaded: ssc-script/svn-1696
    1970-01-01 00:47:42 (00000400): Plugin loaded: rsp/svn-1696
    1970-01-01 00:47:42 (00000400): Plugin loaded: daap/svn-1696
    1970-01-01 00:47:42 (00000400): Starting rendezvous daemon
    1970-01-01 00:47:42 (00000400): Starting signal handler
    1970-01-01 00:47:42 (00000400): Error in drop_privs: No such file or directory
    1970-01-01 00:47:42: Aborting
    #
    #18641

    EVILRipper
    Participant

    Right, sorry, should have searched before.
    viewtopic.php?f=3&t=6439&start=0
    viewtopic.php?f=3&t=4583&start=0

    I found these 2 topics with the same error. The problem is your run_as user in your config file.
    It looks like you’re running as root? Baaad idea. I suggest you use the daemon to run mt-daapd: /etc/init.d/mt-daapd start
    This way the run_as user from the config will be used for sure.

    Next you need to make sure is you’re running mt-daapd as “nobody”.
    Yes, nobody. So you need to make sure all music files can be read by anybody.

    #18640

    Anonymous

    Thanks for the links to those topics… I had seen those before, but there is a slight difference between their cases and mine. They both have the line

    Aug 25 15:01:07 server mt-daapd[28298]: Error in drop_privs: Success

    whereas mine says

    Error in drop_privs: No such file or directory

    . I have tried with the “runas” set as nobody, root, and 0, all with no change to the message (besides the username reflecting the current runas setting). I am using the tarball for svn-1696, and am using the standard configure;make;make install method with a specific host and a prefix to install the package on my embedded system. However, there is no directory /etc/init.d on the board let alone a daemon in there. it also doesn’t exist in that directory on the build server either. My current theory on what is going on is that during the compile, the compiler recognizes certain basic files and packages that are on the build server (fedora 8 ) by default such as /usr/include/pwd.h, but in order to run on the board, i create an image of a small part of the file system, thus removing all these necessary files and packages and causing this runtime error. If that theory is correct, the next step i need to take is to try to disable or modify the functionality that relies on these files and packages. So, i’m currently looking for any information on runas user to see if i can modify the source so that i don’t have to install all these extra files and packages.

    EDIT: Actually, i don’t know if this exists or anything, but a list of core linux utilities that firefly uses would be amazing!

Viewing 10 posts - 1 through 10 (of 10 total)

You must be logged in to reply to this topic.