30 April 2011

Promethean Board ActivInspire installation on KDE and Debian Squeeze

The Promethean-branded whiteboards provide GNU/Linux software which is great, but like most closed software it has issues with never seeming to get the packaging quite right.  Today's headache was with the audio drivers on a Debian 6 KDE system; MoDaX in the #debian-kde IRC channel was again a great help.

First we need to add the repository line for Debian, as their instructions read:
deb http://activsoftware.co.uk/linux/repos/debian squeeze oss non-oss
 and from a command line we need to install their key so that we can trust their software:
Terminal method
Type
wget http://www.activsoftware.co.uk/linux/repos/Promethean.asc
sudo apt-key add Promethean.asc
If all goes well, the last line you see will be OK

Great!  I opened up Synaptic to install these packages; searched for Promethean and installed the various packages that came up, avoiding those that looked like languages (-es and -pt and -it and the like).  Installation was fast other than the download of the massive packages, but once installed we couldn't get the program 'ActivInspire' to launch!

From a command-line I typed 'activ[tab][tab]' to see what would auto-complete, but there were no programs by the name 'activinspire'.  I right-clicked on the KDE menu, selected Edit, found the Educational section of the menu and dug down to ActivInspire; turns out the program is run as 'inspire'.  Obviously.

Ok, so I run 'inspire' from the command line, which allows us to get output that launching from a Graphical Menu generally hides.  The output errors were about the Phonon sound system:

user@vostro1500:~$ inspire
Loaded libfam.so.0
Promethean: Open lock
Promethean: Initialise board state
Promethean: File Monitor Starting.
Promethean: File Alteration Monitor (FAM) Not Open : Polling instead.
Promethean: Pollfile: /tmp
Promethean: Unlocked count 0
Promethean: Activ devices 0
ActivInspire(2881)/phonon (KDE plugin): Can not create backend object from factory for  "Xine" ,  "phonon_xine" :
 "Could not find plugin 'Xine' for application 'ActivInspire'"
./Inspire: symbol lookup error: /usr/lib/kde4/plugins/phonon_backend/phonon_vlc.so: undefined symbol: _ZN6Phonon12PulseSupport11getInstanceEv
user@vostro1500:~$
At first I thought this may be an Xine issue and that the program wanted GStreamer as the backend, but installing phonon-backend-gstreamer and changing the KDE Multimedia Backend didn't fix this.

Off to the IRC (irc.debian.org), where the ever helpful MoDaX walked me through seeing what the app was trying to launch; apparently the Prometean repo installed additional Phonon audio backend files which didn't properly function:

user@vostro1500:~$ sudo updatedb
user@vostro1500:~$ locate libphonon.so.4
/usr/lib/libphonon.so.4
/usr/lib/libphonon.so.4.4.0
/usr/local/bin/activsoftware/libphonon.so.4
/usr/local/bin/activsoftware/libphonon.so.4.3.1

I moved those last two (with sudo, giving me root user permissions) to a new location (just in case!) and now I was able to launch the app without issue!

hbomb@hbomb1500:~$ sudo mkdir /usr/local/bin/activsoftware/badlibs
hbomb@hbomb1500:~$ sudo mv /usr/local/bin/activsoftware/libphonon.so.4*  /usr/local/bin/activsoftware/badlibs

Thanks MoDax, thanks KDE, thanks community!  Thank you also to Promethean for providing the software; you should consider Freeing ('open sourcing' and giving it a good license) that code so that we can get this working properly.  Also, Promethean, your Linux forums seem locked :( with no posts there since May of 2010.  Not inspiring.

I really hope this helps someone out there.  All I can think of, however, is that nearly everyone that I know wouldn't go through this trouble.  Nearly everyone I know would have given up and found a computer that didn't have these problems, which probably meant it wasn't running a FLOSS operating system.  Nearly everyone I know wouldn't even know to try an IRC room to look for support, wouldn't know how to run the Terminal commands needed to get this done, wouldn't even have the time to do it.  This is doubly-true for teachers, one of Promethean's target audiences, who are already overworked.

Yes these bad libraries were provided by Promethean, but who gets the blame in this situation?  Yep, the umbrella known as 'Linux', and every distro and program under that umbrella gets a black mark.  I hear all the time about how Linux cannot do the job because MSOffice doesn't open OpenOffice-created documents properly; what a crock.

It is really too bad, because GNU/Linux and FLOSS in general is sooo good.  As this example shows, however, Audio still seems to be an issue.

27 April 2011

BZ2 Libraries Not Found, UUID errors....

I am trying to compile and install Cluster-Glue and Heartbeat onto a CentOS system, as a test for High-Availability Linux clustering to eventually run on Redhat RHEL5 or RHEL6.
An error when compiling Cluster-Glue is that:
configure: error: BZ2 libraries not found
The fix is to install the 'bzip2-devel' package. See what they did there, one is BZ2 and one is bzip2 (different capitalization, and a different name). I hope to follow up with additional info once I have this working, or maybe not.

Another error that I've hit is:
./.libs/libplumb.so: undefined reference to `uuid_parse'
./.libs/libplumb.so: undefined reference to `uuid_generate'
./.libs/libplumb.so: undefined reference to `uuid_copy'
./.libs/libplumb.so: undefined reference to `uuid_is_null'
./.libs/libplumb.so: undefined reference to `uuid_unparse'
./.libs/libplumb.so: undefined reference to `uuid_clear'
./.libs/libplumb.so: undefined reference to `uuid_compare'
collect2: ld returned 1 exit status
gmake[2]: *** [ipctest] Error 1
gmake[2]: Leaving directory `/root/halinux/Reusable-Cluster-Components-glue--glue-1.0.7/lib/clplumbing'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/root/halinux/Reusable-Cluster-Components-glue--glue-1.0.7/lib'
make: *** [all-recursive] Error 1

The fix here (on CentOS5) is to install these packages since I cannot find 'libuuid-devel' on CentOS:
e2fsprogs-devel

e2fsprogs-libs

For those interested, this is what I've needed to install on a CentOS server in order to build the Cluster-Glue software:
yum install flex python net-snmp OpenIPMI autoconf automake libtool glib2-devel libxml2 libxml2-devel bzip2 bzip2-devel uuidd e2fsprogs-devel e2fsprogs-libs
Looking at the HALinux page, they only mention these requirements:

Building Cluster Glue requires the presence of the following tools and libraries on the build system:
  • A C compiler (typically gcc) and associated C development libraries;
  • the flex scanner generator and the bison parser compiler;
  • net-snmp development headers, to enable SNMP related functionality;
  • OpenIPMI development headers, to enable IPMI related functionality;
  • Python (just the language interpreter, not library headers).
I don't mind that the requirements are semi-extensive and I am excited about the HALinux project, but when people complain about Linux software installs being difficult, this is what they mean.  Installing software from a repo is easy, even at a command line if you know the command:
yum install flex

But getting the software installed when there AREN'T readily available packages isn't easy, and not listing dependencies or HowTos makes things all the worse.  For example, this exciting Video Stabilization project has zero information about the installation of the software: http://vstab.sourceforge.net/

Next up, actually getting Heartbeat built and installed...


=-=-=-=-=
Powered by Blogilo