README for Gnomad2
0. Easy install for distributions that already package
Gnomad2 by default:
apt-get install gnomad2
yum install gnomad2
1. Gnomad2 requires the library GTK+-2.x or GTK+3.x
Get it here: http://www.gtk.org/
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 http://developer.gnome.org/doc/API/
Any distribution built on GNOME 2.2+ will work
fine with Gnomad2.
3. Gnomad2 also requires the library libnjb
Get it here: http://sourceforge.net/projects/libnjb/
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
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
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: http://sourceforge.net/projects/mad/
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: http://libmtp.sourceforge.net/
Fedora: yum install libmtp-devel
6. Gnomad2 can optionally use taglib:s C interface to read/write
Ogg and FLAC tags. http://developer.kde.org/~wheeler/taglib.html
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
(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
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
* 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
* 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 (http://easytag.sourceforge.net/).
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:
* 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
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).