Tree [94637e] master /

File Date Author Commit
CVSROOT 2002-11-08 Linus Walleij Linus Walleij [8c51cd] Initial revision
attic 2004-05-21 Linus Walleij Linus Walleij [4fdb09] Some work
debian 2005-03-15 tsirc tsirc [b8df47] debian/changelog: New Debian directory.
doc 2005-10-17 Linus Walleij Linus Walleij [1b8606] More cleanups.
po 2011-02-13 Linus Walleij Linus Walleij [c0fafe] Fix up gitignores
src 2012-05-19 Linus Walleij Linus Walleij [9e9f43] Detect GTK+2 or 3
.gitignore 2011-02-13 Linus Walleij Linus Walleij [c0fafe] Fix up gitignores
AUTHORS 2006-05-31 Linus Walleij Linus Walleij [2b17c0] Some documentation updates.
COPYING 2002-11-08 Linus Walleij Linus Walleij [8c51cd] Initial revision
ChangeLog 2009-02-17 Linus Walleij Linus Walleij [0384e3] Incorporate a public bug fix!
INSTALL 2007-04-14 hughredelmeier hughredelmeier [4c06a7] 2005-10-24 Linus Walleij Linus Walleij [5d67c8] Last 2.8.2 fixes.
NEWS 2007-08-29 Linus Walleij Linus Walleij [92c5b1] Release time.
README 2013-11-03 Linus Walleij Linus Walleij [94637e] update build deps
TODO 2007-12-02 Linus Walleij Linus Walleij [6a4aab] Minor edits 2006-05-30 Linus Walleij Linus Walleij [346e6e] Update intltool to 0.35.0 2012-05-19 Linus Walleij Linus Walleij [9e9f43] Detect GTK+2 or 3
gnomad2-logo.png 2005-06-19 Linus Walleij Linus Walleij [2db270] Icon do it
gnomad2.1 2005-09-18 Linus Walleij Linus Walleij [9ab4e7] Resurrect.
gnomad2.applications 2003-01-19 Linus Walleij Linus Walleij [65a8ba] Gnomad release fixes v1 2008-06-09 Linus Walleij Linus Walleij [14b792] Some updates
gnomad2.spec 2005-09-18 Linus Walleij Linus Walleij [1cfdf1] Minor updates
mkinstalldirs 2005-10-24 Linus Walleij Linus Walleij [5d67c8] Last 2.8.2 fixes.

Read Me

README for Gnomad2

0. Easy install for distributions that already package
   Gnomad2 by default:

            apt-get install gnomad2
            yum install gnomad2
            emerge gnomad2
            use YaST?

1. Gnomad2 requires the library GTK+-2.x or GTK+3.x
   to build.

   Get it here:

   This comes by default on most systems by the way.
   You mostly only need to install a gtk3-dev(el)
   package to enable compiling.

   Any distribution built on GNOME 2.2+ will work
   fine with Gnomad2.

   Fedora: yum install gtk3-devel

2. Gnomad2 using GTK+ < 2.6 will require the library
   libGnomeui to build. Newer versions will rely solely
   on GTK+. (Hey, this also actually works from Gnomad2
   >= 2.8.2!) We support GTK+ 2.x and GTK+ 3.x.

   Get it here

   Any distribution built on GNOME 2.2+ will work
   fine with Gnomad2.

3. Gnomad2 also requires the library libnjb
   to build.

   Get it here:

   Pay attention to the notes in the libnjb README file
   for underlying functionality requirements and

   libnjb may in turn require libusb if you're building
   under Linux.

   Debian: libnjb is now included in the Debian
           distribution. You might need a newer
           library revision (subsitute the "5"
           for something higher).

           apt-get install libnjb5
           apt-get install libnjb5-dev

           should be available, and you may need later
           interface revision numbers (substitute the
           "5" for something higher).

           Notice that Debian also carries gnomad2 so
           why bother installing libnjb separately...
           When you "apt-get install gnomad2" libnjb
           will be auto-installed anyway.

   Fedora: yum install libnjb-devel

   SuSE:   Use YaST to satisfy the dependencies. You need
           atleast the following packages unless you already
           have them:

           popt and popt-devel

           Most users will prefer to install libnjb and gnomad2
           from source. Packman has libnjb packages for SuSE
           but not for gnomad2 unfortunately.

4. Gnomad2 also requires the library libid3tag to build.

   NOTE: Gnomad has switched from using id3lib to using
         libid3tag produced by the libmad project. This
         latter library is used by e.g. gtkpod and the
         gstreamer project use id3tag instead of id3lib.
         These two libraries are confused all the time, so
         please pay attention.

   Get it here:

   Debian: apt-get install libid3tag0
           apt-get install libid3tag0-dev
           The versions from testing (upcoming Debian 4.0)
           are needed for gnomad2 to work.

   Fedora: yum install libid3tag-devel

5. Gnomad2 can optionally use libmtp to access MTP devices, too!
   This is a work in progress:

   Fedora: yum install libmtp-devel

6. Gnomad2 can optionally use taglib:s C interface to read/write
   Ogg and FLAC tags.
   This will only be needed if you have an MTP device that can
   play these files I suppose.

   Fedora: yum install taglib-devel

7. Gnomad2 will optionally use D-Bus and GUDEV to autodetect attached
   and removed devices. You'll need development files for the D-Bus
   glib bindings and libgudev1 if you want this stuff to work.

   Fedora: yum install libgudev1-devel

8. Install gnomad using this sequence:

   tar xvfz gnomad2-2.X.X.tar.gz
   cd gnomad2-2.X.X
   make install

   (make may be named gmake on some systems)


1. Q: Hey, it starts, but it doesn't connect to the jukebox!

   A: First, do you have USB support in your kernel, with
      the usbfs filesystem activated?

      /proc/bus/usb/ is a virtual file system implemented
      (usbfs) in the 2.4.x versions of the Linux kernel that
      represents the USB port. So this info is worthless for
      BSD users.

      In the Linux kernel USB is used in user mode by
      accessing this virtual file system. Devices that have
      kernel drivers appear here, and devices that haven't
      atleast appear in /proc/usb/001/... etc. And this is
      how libusb access your USB port.

      * Distributions with hotplugging:
        (Eg: RedHat 7.2 / 7.3 / 8.0 / 9, Fedora Core, Debian)

      This is info for distributions with hotplugging enabled
      for USB / PCI devices. This typically means you have
      something i /etc/hotplug and that hotplugging is started
      when you boot your machine in a script named
      /etc/init.d/hotplug or similar.

      See the README file of libnjb for instructions on how this
      works. Compiling libnjb from source will nowadays add
      hotplugging for you by default. The RPM for Gnomad2 will
      also try to add hotplugging using a script.

      * Other distributions:

      This is if you don't have hotplugging enabled and do not
      want to set it up on your machine either. You want to
      mount the usbfs manually.

      According to Tim Pepper, this should work in your

      none  /proc/bus/usb  usbdevfs noauto,devmode=0666 0 0

      You can find the Linux hotplug project at:

   A: Check out the libusb homepage for more information on
      USB problems that might be caused by USB stuff, and check

2: Q: My kernel does not find a driver for the jukebox!

   A: So I guess you're using Linux. libnjb doesn't use a
      kernel driver for the jukebox anyway. It uses the USB
      from userland, accessing the device through /proc/bus/usb.

      The important thing for you is to see that if you write
      cat /prob/bus/usb/devices you find your jukebox among
      the listed devices (the Vendor/Product ID combo can be
      found in the "nomad.usermap" file that comes with

      If you have (very unlikely but some manage to anyway)
      actually compiled and modprobed a kernel driver for
      the jukebox, then REMOVE IT for gods sake, that old
      driver isn't used by anyone.

      OK this is quite technical but you asked for it.

3. Q: How do I use Gnomad2?

   A: Plug in your jukebox, start the program. Gnomad2 will
      locate and scan your jukebox for files. (If it fails
      you may use the "rescan contents" option in the
      Jukebox menu, or the popups in the jukebox file lists.)

4. Q: How do I select multiple files?

   A: Click first file, then hold down CTRL and click
      additional files. To select a large region of files,
      click top file, hold down SHIFT and click bottom file.
      Easy, see? (You really ought to know this behaviour
      from other applications.)

5. Q: How do I add some tracks in the jukebox library to a

   A: OK this might be not-so-logical: you add the files
      in the music transfer frame, by selecting the files
      you want in the jukebox view, right clicking your
      mouse and selectiong "Add selected to playlist" on
      the popup menu.

6. Q: How does Gnomad2 determine metadata for a file?

   A: Gnomad2 will try to retrieve metadata from files
      in the left view of the music transfer view using
      several heuristic methods.

      For MP3 files, concerning the "Remove ID3 tag"
      option: What is shown on the screen is not primarily
      related to ID3 as a matter of fact. The "Remove ID3"
      option just removes the ID3-tag block from the
      file when transferring it, it does not avoid reading
      in the information from the file in the first place.

      Gnomad will always try everything it can to retrieve
      the metadata:

       * first it reads the ID3 info (on MP3 files) or WMA
         ASF metadata (on WMA files)
       * next it looks at the filename path to determine
         probable metadata
       * if this fails it will use the string <unknown>

      Don't use WMA. Mail Creative and tell them to include
      support for Ogg Vorbis instead.

      When transferring files from harddisk to jukebox,
      the info on the left is always added to the files in
      the view on the right. If some part of it is missing
      after a rescan, that's a bug.

7. Q: If I set Gnomad2 to open a 2900 song music dir, it takes
      12 minutes to open. If I open it up in another directory,
      it starts in seconds. If I then change to my 2900 songs,
      I have to wait 12 minutes again. Is this normal?

   A: Sadly yes. This is because the MP3 and the associated
      ID3 tag format gives no good way of [quickly] determining
      the length of the songs, so this info has to be retrieve
      from the file anew on every scan. I have evangelized the
      use of ID3v2:s "TLEN" tag, which makes it possible to tag
      a file with its playlength, so that gnomad and others don't
      need to go to such extreme measures to find out how long
      (in time) they are. Look into the file "mp3file.c" for

      I have added a "progress" dialog and cancel function though,
      so one know what is happening...

      If you need a program to add TLEN tags to your songs then
      look into EasyTAG (
      When songs are transfered from your jukebox device back
      to the host, these TLEN tags are happily added.

8. Q: But how do I...

   A: Hey! did you try selecting something and clicking the
      right mousebutton? Different popups may appear
      depending on what is selected. Notably in the playlist.

9. Q: Sometimes the graphics freeze for example when I delete
      some files on the jukebox.

   A: OK so Gnomad2 is not 100% multi-threaded. Might fix it
      someday when everything that is more important has been
      fixed. Sit back and enjoy the show.

10.Q: Gnomad2 seqfaulted/crashed on me!

   A: OK so neither Gnomad2 nor the libnjb, libmtp, libusb or id3lib
      are entirely stable. Please start up you GDB and help
      us find the error and submit patches to respective
      maintainer, thats how it works.

      The problem can be in several different places:

      * Gnomad2
      * libnjb
      * libmtp
      * libusb
      * Your operating system

      The first task is to find out where the problem is.
      Some things are obviously in gnomad2, while others,
      especially relating to the NJB USB communications, are
      more elusive.

      To intercept the libnjb USB traffic, invoke gnomad2 with
      "gnomad2 -D7". If you think the problem is in libnjb
      join the libnjb mailing list and discuss the problem

      Error messages that explicitly say that they are USB
      errors (and this happens from time to time) may be either
      in libnjb (unlikely), libmto, libusb (more likely) or the kernel
      of your operating system (also very likely).