PDA

View Full Version : HOWTO: Install basic G15Tools support for the Logitech G15



Pages : [1] 2

drdnl
September 28th, 2006, 12:40 PM
Major Edit:

I haven't really had time to update this thread to reflect more recent changes. Don't follow the instructions below as they are practically ancient. See here (http://ubuntuforums.org/showpost.php?p=2461304&postcount=285) for the latest installation tips and debs(FEISTY)


















































please scroll down for information on getting amaroK to play nice with the g15 lcd.

My turn to do something back for this community, stuff tagged with * are optional steps possibly required to get this running (most likely they are on 6.06 Dapper)

First off, install libusb-dev* and libdaemon-dev using Synaptic or the terminal


sudo apt-get install libusb-dev libdaemon-dev

(*I had some kind of weird dependancy problem with xsane and ubuntu desktop with libusb-dev, simply do a search for "libusb-dev debian" and download/install, you'll know it works when it warns you about an older version in the repos)

Then, download the attachment and install libg15, g15daemon, libg15render and g15composer_1.0.1 (in that order)


Edit: If you want to run the latest version of G15composer (which handles it own pipe) you can get them here (http://www.ubuntuforums.org/showpost.php?p=1637309&postcount=62)

It should be mostly backwards compatible except for the aforementioned pipe handling, remove any mention of (for example) mknod $pipe p from any script you wish to run. In addition, any pipes left behind by other scripts should be removed or it will complain.

next, try running g15daemon

if properly installed it will probably complain:


g15daemon: error while loading shared libraries: libg15.so.1: cannot open shared object file: No such file or directory

to solve that run:


sudo gedit /etc/ld.so.conf and insert
/usr/local/lib at the top of the file. Now run
sudo ldconfig

Now lets see if it'll work:


sudo g15daemon

If you now have a gigantic clock showing on your lcd, CONGRATULATIONS!

Of course, many, many thanks to all the developers at http://g15tools.sourceforge.net/ !

I'll be updating this post as I discover more functions, of course all help is greatly appreciated.

Edit:

If you want to have the demon autorun on startup try running (BE CAREFUL)
sudo visudo Change the user part and add the following to the end of the file:
user ALL= NOPASSWD: /usr/local/sbin/g15daemon . *If you use the packages posted later on in this thread it'll be /usr/sbin/g15daemon and press ctrl+x to exit. Press Y to accept, it will check for syntax mistakes and if it finds one it will ask you "What now?" Simply press E and make the necessary changes.

After this go to System->Preferences->Sessions and add sudo g15daemon to the list

Next, getting some useful data on the screen. To get you all started try typing


echo 'TL "Hello" "World"' > ~/g15lcd
g15composer ~/g15lcd

Now please SOMEONE, make a decent amarok script with an analizer, track info and progress bar so we have a linux alternative for g15plugin for winamp in windows. :)

Hope this helps someone,
D

Amarok and the Logitech G15

This is surprisingly easy these days after some efforts from guitoo and Anuerysm9 plus the tiniest bit of packing effort on my end. Provided the lcd is fully functioning with a running clock you can download the following scripts:

amarok-g15-dcop_cli.ubuntu.amarokscript.tar.gz (http://www.ubuntuforums.org/attachment.php?attachmentid=17192&stc=1&d=1160410939)

This is Aneurysm9's script, it is a modified version of his original script designed to run without dependancies. It displays artist name plus song info and a wonderful song progress bar. If you are using ubuntu (very likely) make sure to get this version. The change made is adding the word "truetype" in the font location. The original can be found attached to this post below.

or

GentooG15Amarok(fixed).amarokscript.tar.gz (http://www.ubuntuforums.org/attachment.php?attachmentid=17191&stc=1&d=1160410498)

Another no dependancy script made by guitoo, simpler than Aneurysm9's but very reliable , simple and easy on the eyes. Gives a little more track info in the form of track number and album.

Download either script and install it into amarok by opening amarok -> tools -> script manager. Select the option install script, point it to the downloaded *.amarokscript.tar.gz and select ok. It should return a "script installed ok" after which you select the script in the list and press "run". G15Composer should show up and a few moments later (sometimes it takes a track change) the song info should pop up. As long as you leave the script running within amarok/script manager it will automatically turn on and off along with the player itself.

On a sidenote, aneurysm9's original scipt can be found on the next page of this post. It is supposedly more cpu efficient but I have never been able to resolve its dependancies so I cannot offer any advice on installation.

Enjoy!

Troubleshooting:

If you run sudo G15Deamon and it complains about a return value make sure to run
modprobe uinput
People who previously installed G15Lcd will not have this problem.

Big Edit

Turns out I made a mistake and should have been clearer about creating a pipe, not a file, to read data from.


Will everyone who is seeing g15composer eating 100% of their cycles please ensure that they are telling g15composer to read from a pipe and not a regular file. You can create a pipe with "mknod /path/to/pipe p" (replacing /path/to/pipe with whatever you really want, I use /var/run/lcdpipe) and run g15composer with "g15composer /path/to/pipe". If you tell it to read from a regular file it will simply read the file over and over again, eating all of your cycles because there's always something for it to read. With a pipe there's only something to read when you put something there so most of the time it's waiting for something to do.

subpar
September 29th, 2006, 09:28 AM
I followed the instructions to the t, and I got the following error when I tried to run g15daemon.


subpar@gargamel:~/tmp$ sudo g15daemon
Something went wrong. Couldnt get return value from daemon process


Also, /etc/lib.so.conf was completely empty when I edited it, but it didn't give me that error until I changed the contents. Any clues on what I did wrong/what's going on?

drdnl
September 29th, 2006, 10:44 AM
Hi, /etc/lib.so.conf is empty when you edit it, did you run sudo ldconfig afterwards? check the .conf for any (spelling) errors. I assume G15Daemon gave the library related error before you edited the .conf and afterwards this new one regarding return values. I've had that return value error but it came with not running sudo... What kind of system are you running?

Edit: umm, /etc/lib.so.conf? hope you meant /etc/ld.so.conf :)

Edit: Dont forget to run (sudo?)
modprobe uinput

subpar
September 29th, 2006, 06:56 PM
Double checked everything (yes, I even checked to make sure I edited ld.so.conf instead), and this is everything I tried:


subpar@gargamel:~$ sudo g15daemon
Something went wrong. Couldnt get return value from daemon process
subpar@gargamel:~$ modprobe uinput
FATAL: Error inserting uinput (/lib/modules/2.6.15-27-386/kernel/drivers/input/misc/uinput.ko): Operation not permitted
subpar@gargamel:~$ sudo modprobe uinput
subpar@gargamel:~$


I'm running i386, and if you need actual hardware specs, they can be found here (https://secure.newegg.com/NewVersion/WishList/MySavedWishDetail.asp?ID=3670283).

drdnl
September 29th, 2006, 09:25 PM
try running sudo g15daemon again after having run sudo modprobe uinput

aqwabawks
September 30th, 2006, 07:37 AM
Well, I managed to get it to work, it displays a clock at the moment, but I was wondering, how would I go about binding say the Play/Forward/Rewind/Stop keys to say an application like Amarok?

drdnl
September 30th, 2006, 09:48 AM
You dont need the daemon to do so, simply go into system->preferences->keyboard shortcuts and amarok->settings->global shortcuts and fiddle with them till it works. It takes a little trial and error but as a hint: in gnome settings my stop key has a value of 0x04 and in Amarok it has a value of XF86Audiostop

Actually, these keys working where a major factor in my switch to linux, I was willing to not have an lcd for a while (this is 4 months ago) but I wanted at least the mediakeys, its not a cheap keyboard after all.

So again, just fiddle with it, if you get any feedback from pressing the buttons in gnome settings that means you're close to getting it to work.

Thunderstriker
September 30th, 2006, 11:23 PM
i managed to install it but it should support libgraphlcd does anyone know how to get this working?

Dawnrazor
October 1st, 2006, 11:56 AM
Great, now we need something for the G-Keys :)

drdnl
October 1st, 2006, 12:17 PM
The G-Keys are working just fine, try setting one in keyboard shortcuts. There's a slight bug though, it doesnt capture all keypresses (yet) so you have to hold it for a moment longer than a simple keypress. But I'm pretty sure you can't record G-Keys yet.

drdnl
October 1st, 2006, 01:34 PM
My turn to ask a question :), does anyone else here have 100% cpu usage when running g15composer listening to a pipe? (g15composer ~/g15lcd for example). I'd like to start trying out programming for amarok but I dont want to run software that uses up that amount of resources. I'm guessing maybe the polling interval is set too high? Any solutions would be greatly appreciated.

Thunderstriker
October 1st, 2006, 02:06 PM
yeah my cpu goes up to 90% to

bstock
October 2nd, 2006, 12:51 AM
I have a dual-core, and 1 of my cores spikes to full CPU usage. I would guess the program is running some kind of loop to output to the LCD, but I haven't looked at the code or anything. It would be cool to see some better outputs for this, as it could be very useful when used in the proper applications.

Aneurysm9
October 3rd, 2006, 04:48 AM
Hello,

I'm one of the g15tools developers, so hopefully I can answer some questions. I have working packages built for Dapper and the package structure is in the svn repository so future versions will have the debian directory in the tarball. Unfortunately, I don't have hosting space for them and I don't want to clutter up the sourceforge files page with packages for every distro. If anyone has hosting space and would be willing to set up a repository for them, or add them to an existing repo, that would be greatly appreciated. They're attached, though without the source .gz files as that would put the attachment over the forum's limit. If someone wants to put them in a repo, let me know and I'll send the sources as well.

I've also attached an Amarok script that I've been working on that uses g15composer. It's not the greatest, but it displays artist and track info as well as a progress bar and time info. You may need to edit it and change the location of $PIPE if you use something other than /var/run/lcdpipe.

As for processor usage, I'm not seeing that here, but I'm running Gentoo on this machine. I'll bring the G15 down to one of the Dapper boxes tonight or tomorrow and see if I can reproduce the problem.

WRT recording and playing back G-key macros, it's not yet possible but should be fairly simple to implement as a G15daemon client if anyone is so inclined.

Edit:

With the Amarok script, you may also need to change the font that is loaded if it's in a different location or not available, or if you just want a different font. You'll also need DCOP::Amarok::Player installed.

I have found that starting Amarok with the script running but no media playing causes g15composer to start chewing processor cycles. My guess would be that it's because some of the fields aren't populated and g15composer is choking on one of the commands that doesn't have all the arguments it should. I'll look into that some more.

Edit 2:
Ok, the problem was lack of data in some fields. I've worked around it in the script, but I'll look into making sure that g15composer checks for complete data as well as this could be what's causing problems for some of you. The new script is attached and should work.

Edit 3:

We've tracked down the problem with g15composer using all available cycles. Please ensure that you're telling g15composer to read from a pipe and not a regular file. You can make a new pipe with "mknod lcdpipe p". That will give you a pipe called "lcdpipe" in the current directory. Then run "g15composer lcdpipe" and you can then give it commands such as "echo 'TL "this is a test"' > lcdpipe" and it will output to the LCD.

Aneurysm9
October 3rd, 2006, 04:56 AM
i managed to install it but it should support libgraphlcd does anyone know how to get this working?

You will need to apply the patch to graphlcd 1.3 from the g15daemon tarball and rebuild graphlcd or use graphlcd-svn where the patch is already applied.

drdnl
October 3rd, 2006, 08:40 AM
Aneurysm9, thank you very much for all the work so far. I'll be trying out the packages and the script when i get back later today. Hopefully the cpu bug will be squashed soon,

Regards,
D

drdnl
October 3rd, 2006, 11:30 AM
Congratulations Aneurysm9, you have the distinction of creating the hardest script I've ever had to install :) Nonetheless I'm still grateful, even with my very limited coding abilities I can see that it should be quite a nice script once up and running.

At the moment my problem is not being able to install DCOP::Amarok::Player properly, I had to fix some earlier dependancy problems but this last one eludes me:


make test
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/1....ok 2/89ERROR: Multiple available KDE sessions!
Please specify the correct session to use with --session or use the
--all-sessions option to broadcast to all sessions.
t/1....NOK 4
# Failed test (t/1.t at line 14)
# got: ''
# expected: '0'
# *** Amarok needs to be open.
ERROR: Multiple available KDE sessions!
Please specify the correct session to use with --session or use the
--all-sessions option to broadcast to all sessions.
t/1....NOK 5
# Failed test (t/1.t at line 16)
# got: ''
# expected: '0'
# *** Amarok needs to be open.
# Looks like you planned 89 tests but only ran 85.
t/1....dubious
Test returned status 6 (wstat 1536, 0x600)
DIED. FAILED tests 4-5, 86-89
Failed 6/89 tests, 93.26% okay
Failed Test Stat Wstat Total Fail Failed List of Failed
-------------------------------------------------------------------------------
t/1.t 6 1536 89 10 11.24% 4-5 86-89
(55 subtests UNEXPECTEDLY SUCCEEDED).
Failed 1/1 test scripts, 0.00% okay. 6/89 subtests failed, 93.26% okay.
make: *** [test_dynamic] Error 6
daniel@ubuntu:~/DCOP-Amarok-Player-0.036$

I'm running XGL/Compix on ubuntu dapper 6.06 (Gnome), I tried make test --all-sessions but that didn't work. With some hackish fumbling i managed to install dcop player but of course if it didnt pass the tests its not going to work, this is the output from your script:


ERROR: Multiple available KDE sessions!
Please specify the correct session to use with --session or use the
--all-sessions option to broadcast to all sessions.

On a sidenote, is DCOP::Amarok::Player necessary? this old script (http://www.aaue.dk/~janoc/personal/linux/soft/g15amarok.pl) for g15lcd manages without (but is of course much simpler).

-D

Edit: In the hope that maybe I just made a stupid mistake I installed the script directly into Amarok after I realized that that might be what I had to do. Unfortunately it complains about the same "which session?" stuff.

Nappateemu
October 3rd, 2006, 06:33 PM
How to install XMMS plug-in for Ubuntu and G15Daemon?
I found the sources from sourceforge, but after installing g15tools from .deb files they don't seem to work...

Aneurysm9
October 3rd, 2006, 06:44 PM
How to install XMMS plug-in for Ubuntu and G15Daemon?
I found the sources from sourceforge, but after installing g15tools from .deb files they don't seem to work...

The XMMS plugin isn't handled by the Makefile from g15daemon, you need to first install g15daemon (including libg15daemon-client-dev if you're using the debs) and then build the XMMS plugin from the source.

Aneurysm9
October 3rd, 2006, 06:56 PM
drdnl,

If you want, you can remove the dependency on DCOP::Amarok::Player, but I would expect that it then would be more resource intensive as you would need to use the cli dcop client, starting a new session for each bit of data you want and perhaps parsing some of the results. Usage dropped for me from 7% down to about 3% after switcing to DCOP::Amarok::Player rather than the cli dcop client.

If you want to do it, that script that you linked should provide guidance, just replace the $amarok->(etc) lines with calls to the cli dcop client.

Nappateemu
October 3rd, 2006, 06:57 PM
The XMMS plugin isn't handled by the Makefile from g15daemon, you need to first install g15daemon (including libg15daemon-client-dev if you're using the debs) and then build the XMMS plugin from the source.
Ok... I think I'm just going to stick with Amarok. I didn't quite understand the Amarok plug-in installation either, any help? :oops:

Aneurysm9
October 3rd, 2006, 07:21 PM
Ok... I think I'm just going to stick with Amarok. I didn't quite understand the Amarok plug-in installation either, any help? :oops:

First you'll need to install DCOP::Amarok::Player, which you can get with cpan or by downloading the sources for DCOP, DCOP::Amarok, and DCOP::Amarok::Player and installing them in order. Then you install the script from the Amarok script manager, just point it to the tarball that I attached to an earlier post. If you don't have g15composer reading from /var/run/lcdpipe, right click on the script in the script manager and select edit and change the location of $PIPE to wherever g15composer is reading from. Change the font as well if you need to, I think it may be in a different location on Breezy, that script was written on a Gentoo system. Then start the script from the script manager and you're good to go.

Edit:

The font is indeed in a different location, add /truetype/ after /usr/share/fonts and before ttf-bitstream....

Aneurysm9
October 3rd, 2006, 07:38 PM
I can't seem to get g15composer to chew cycles simply by starting it up on Breezy. Have those of you seeing that problem tried the packages I posted last night? If so, are all of you using AMD64? I don't have and AMD64 install to test with, sorry. Perhaps if one of you has some debugging experience you can try to trace it out with profiling or valgrind.

Thunderstriker
October 3rd, 2006, 08:38 PM
thx for all the info i'm running amarok on gnome dont supose the scipt can work on gnome ?

Aneurysm9
October 3rd, 2006, 08:43 PM
thx for all the info i'm running amarok on gnome dont supose the scipt can work on gnome ?

Yup, works fine. I'm running Amarok on Gnome myself.

Thunderstriker
October 3rd, 2006, 08:49 PM
damn than i do something wrong i DCOP make test did work DCOP::Amarok butt the DCOP::Amarok::Player gave error

# Failed test (t/1.t at line 14)
# got: ''
# expected: '0'
t/1....NOK 4# *** Amarok needs to be open.

# Failed test (t/1.t at line 16)
# got: ''
# expected: '0'
# *** Amarok needs to be open.

when i run the script is just starts with no errors but there notting on the display

Aneurysm9
October 3rd, 2006, 10:09 PM
damn than i do something wrong i DCOP make test did work DCOP::Amarok butt the DCOP::Amarok::Player gave error

# Failed test (t/1.t at line 14)
# got: ''
# expected: '0'
t/1....NOK 4# *** Amarok needs to be open.

# Failed test (t/1.t at line 16)
# got: ''
# expected: '0'
# *** Amarok needs to be open.

when i run the script is just starts with no errors but there notting on the display

I got the same when I tried to install it on Breezy, even with Amarok running. I didn't get that on Gentoo. On Breezy, I just skipped the make test portion and it worked fine. There won't by any display if DCOP::Amarok::Player isn't installed because it won't have any data (though it probably should error in that case) Did you point $PIPE to the pipe on your system that g15composer is reading from? Did you update the font path, if not you'll only get the progress bar and time info.

OnoA
October 4th, 2006, 02:36 PM
Hello gents!

First of all, let me say Thank you so much for all the work you put into this :)

Aneurysm9, I tried to install your .debs and the amarok script.
It seems to be running all right (no error messages anywhere ;))
but all I get on the lcd is rubbish.

The total time displayed is right, but the "time into the song" keeps on changing about 10 times per second, sometimes displaying the right value, most of the time it doesn't.
Same goes for the bar. And I do not have a "artist" or "title" displayed at all :( ](*,)

----
I had the g15tooles installed from source, before using your debs. Could that be part of the problem?

I also had to "force install CPAN::Amarok::Player" but it looks like that is working fine...

Any ideas, what could be wrong?


By the way, my cpu load goes up to 70-90% too, when running g15composer.


Thanks!

Philipp

Nappateemu
October 4th, 2006, 06:59 PM
Ok, now that the LCD is working, how do I use the G-buttons.
Someone could tell me step-by-step how to program for example so, that when I press G13 it writes "Hello everybody".

And another matter, are the next/previous/pause... buttons usable with g15tools?

Aneurysm9
October 4th, 2006, 08:16 PM
OnoA,

That should not be possible. The progress info is handled in a separate thread that sleeps for one second after every update. It shouldn't be able to change more than once per second. As for artist and title, you will need to change the path to the font that's loaded somewhere near the top to reflect a font available on your system. You should have the bitstream fonts installed as I think they're part of the base install. The script was written on a Gentoo system, however, so you will need to add "/truetype/" before "ttf-bitstream" in the font path.

I'm still not sure what's causing the cpu usage problems. Can you give me some more info about your system? Are you using an AMD64 or i386 install?

Nappateemu,

Good to hear that you have the LCD working. Currently, there is not a g15daemon client that allows recording and playing back macros like the ******* software does. It should be fairly trivial to do so, should someone be so inclined, but so far nobody has coded one.

As for the media keys, they should be usable with or without g15daemon. Try the gnome keyboard settings applet or the counterpart if you're using KDE.

drdnl
October 4th, 2006, 09:09 PM
Aneurysm9, is there any way to "dumb down" the current Amarok script to make it more accessible to ex-******* users? I've gotten pretty good at figuring out linux but sometimes a simple binary would be nice. The clock currently built into g15 daemon works great, could similar Amarok support be built into it? It would be fantastic to simply load up G15Daemon and have automatic Amarok support. It would probably also reduce the cpu/mem overhead.

If none of this dumbing down or building in is possible could you maybe release a second script with no dependancies? Sorry to have to ask but I'm really lost with Perl.

Either way, thank you for the help.

(and yes, I also run an AMD64 single core in case I had forgotten to mention that. Oh, and I'm running your debs, so it cant be a faulty checkinstall)

Aneurysm9
October 4th, 2006, 09:46 PM
Unfortunately, there's not much that can be done to make the current script simpler. The only thing that could be done would be to use the cli DCOP client and remove the dependence on DCOP::Amarok::Player, but that would increase CPU overhead, not decrease it. The support can't really be built into g15daemon because of the way Amarok scripts work, nor would I want to as we want to keep a clean separation of the daemon and the clients. The clock is only there to let you know that it's working. I've been thinking about rewriting the script as a C++ program to use DCOP natively, but that will take a while as I've never used DCOP with C++.

I'm thinking that maybe there's a problem with AMD64 systems because of int size mismatches. I'll look into it but there's not a lot I can do as I don't have an AMD64 system myself. If that is the problem, it will also require rewriting the entire g15tools chain, so it will take a while to fix.

Noneus
October 5th, 2006, 07:06 AM
Does anyone know howto use the G buttons in KDE? In GNOME I could bind them. But I don't use GNOME. Any thoughts?

drdnl
October 5th, 2006, 09:43 AM
Aneurysm9, good to hear you're thinking of solutions. If you'd like we could set up a day where you log into my machine with nxclient and do some debugging if possible (non-admin/root of course). This should make it possible for you to "have" an AMD64. PM me if you're interested.

Either way I'm looking forward to watching the developments unfold,

And Noneus, no idea, sorry (Gnome user)

Aneurysm9
October 5th, 2006, 11:44 PM
I've been talking with some people testing on Gentoo where ebuilds for the g15tools have just made it into the portage tree and they tell me that there are no problems with AMD64 systems on their end. It may be something that is only exposed on Ubuntu, or systems other than Gentoo, such as the malloc issue was with g15composer. If drdnl gets me access to his box I'll see what I can do to figure out where the problem is.

drdnl,

I forgot to mention in the PM that I would also like to have screen installed if you don't have it already, it's a lifesaver when working on remote machines (or locally for that matter).

drdnl
October 6th, 2006, 09:13 AM
Aneurysm9,
turns out ubuntu does no notification of pm's so you must have missed mine (I know i missed yours until i noticed the forum message last night). Check your pm's :)

-D

Aneurysm9
October 6th, 2006, 10:15 PM
Will everyone who is seeing g15composer eating 100% of their cycles please ensure that they are telling g15composer to read from a pipe and not a regular file. You can create a pipe with "mknod /path/to/pipe p" (replacing /path/to/pipe with whatever you really want, I use /var/run/lcdpipe) and run g15composer with "g15composer /path/to/pipe". If you tell it to read from a regular file it will simply read the file over and over again, eating all of your cycles because there's always something for it to read. With a pipe there's only something to read when you put something there so most of the time it's waiting for something to do.

Aneurysm9
October 7th, 2006, 07:12 AM
I have released an new version of g15composer, 1.1, that prevents the problem seen here where g15composer will eat all of your CPU cycles if told to read from a regular file. It will now exit if it is not reading from a named pipe. This release also enables control of the LCD contrast and brightness as well as the M1-M3 LEDs. Attached is a .deb for Dapper and I'm going to build an Edgy VM right now to build Edgy packages.

Aneurysm9
October 7th, 2006, 10:12 AM
Here are the packages for Edgy.

drdnl
October 8th, 2006, 11:29 AM
Packages for Edgy seem to be running but I can no longer get this script to run:

Edit: solved


#!/bin/sh
BASEDIR="${HOME}/.kde/share/apps/amarok/scripts-data"
PIPE=${BASEDIR}/pipe
EXEC=${BASEDIR}/

size()
{
if [ $1 -gt 32 ]; then
SIZE=S
else
if [ $1 -gt 20 ]; then
SIZE=M
else
SIZE=L
fi
fi
}

terminate()
{
rm $PIPE
kill -9 $PID
exit 0
}

mknod $PIPE p
g15composer $PIPE &
PID=$!

trap terminate 1 2 5 15

while [ 1 ]
do
read input
if [ "$input" == "trackChange" ];then
echo "MC 1" > $PIPE

ARTIST="`dcop amarok player artist`"
size ${#ARTIST}
echo "TO 0 0 $SIZE 1 \"$ARTIST\"" > $PIPE

TITLE="`dcop amarok player title`"
size ${#TITLE}
echo "TO 0 18 $SIZE 1 \"$TITLE\"" > $PIPE

ALBUM="`dcop amarok player album`"
TRACK="`dcop amarok player track`"
ALBTRA="($ALBUM - $TRACK)"
size ${#ALBTRA}
echo "TO 0 35 $SIZE 1 \"$ALBTRA\"" > $PIPE

echo "MC 0" > $PIPE
#out="$ARTIST\" \ \"$TITLE\" \ \"($ALBUM - $TRACK)"
#echo "TO 0 0 M 1 \"$out\"" > $PIPE
fi
done

It complains about "[: 56: ==: unexpected operator
[: 56: ==: unexpected operator", anyone?

There's good news though, for those dapper users the attached .tar.gz should work just fine without dependancies. Just download the file to your desktop, open amarok, tools -> script manager -> install script, point it to your desktop and double click the script. Now just select it from the list and press Run. The nice thing about it is that it opens a g15composer and pipe and closes it when done.

Edit: Seems that the script had a "=" to many, if you have the same problem I had simply download and install the fixed script.
Edit: And of coure, full credit for these scripts go to guitoo who wrote them for this thread (http://forums.gentoo.org//viewtopic-t-490492-postdays-0-postorder-asc-start-0.html)

OnoA
October 8th, 2006, 11:58 AM
That should not be possible. The progress info is handled in a separate thread that sleeps for one second after every update. It shouldn't be able to change more than once per second.


That's right, I tailed the pipefile, and your script writes in there about once per second. Still, The lcd updates more often.



As for artist and title, you will need to change the path to the font that's loaded somewhere near the top to reflect a font available on your system. You should have the bitstream fonts installed as I think they're part of the base install. The script was written on a Gentoo system, however, so you will need to add "/truetype/" before "ttf-bitstream" in the font path.


Been there, done that ;-) I adjusted the path to Vera at the very beginning, so that does not seem to be the problem, or, at least not the path.



I'm still not sure what's causing the cpu usage problems. Can you give me some more info about your system? Are you using an AMD64 or i386 install?

i386, Kubuntu 6.06, What else do you wanna know?

cheers,
Philipp

Aneurysm9
October 8th, 2006, 01:09 PM
Onoa,

Can you try g15composer-1.1? It sounds like maybe you're having it loop over a regular file.

OnoA
October 8th, 2006, 02:16 PM
Solved it! I'm stupid ;-)

Thanks!

rbu
October 9th, 2006, 12:40 AM
Hi Aneurysm9,

what do you think about packaging the amarok-g15-perl.pl together with the actual application? By that, you would
1) have it under version control
2) ease installation for most users (it could by default be installed into /usr/share/g15composer/examples or contrib)

One would also have a central point for neat scripts to use it, I've seen a few of them around the Gentoo Forums, too.

--robert

Aneurysm9
October 9th, 2006, 03:44 AM
I've added the amarok scripts to g15composer-svn. I've also converted my script to use the CLI dcop client so people who can't get DCOP::Amarok::Player working can still use it. Here's the converted script:


#!/usr/bin/perl -w

use strict;
use threads;
use threads::shared;

my $pipe = "$ENV{HOME}/.g15amaroklcdpipe";

my $mknod = system("mknod $pipe p");

my $G15Cpid : shared = open(G15COMPOSER, "| g15composer $pipe");

my $vol : shared = `dcop amarok player getVolume`;
chomp $vol;
my $tmpStatus = `dcop amarok player status`;
chomp $tmpStatus;
my $status : shared = ( $tmpStatus > 1 ) ? 1 : 0;

open(PIPE, ">>$pipe");
print PIPE "FL 0 10 \"/usr/share/fonts/ttf-bitstream-vera/Vera.ttf\"\n";

sub volUpdate {
print PIPE "PC 0\n";
print PIPE "TO 0 10 2 1 \"Volume\"\n";
print PIPE "DB 3 27 157 35 2 $vol 100 3\n";
}

while($status == 0) {
$tmpStatus = `dcop amarok player status`;
$status = ( $tmpStatus > 1 ) ? 1 : 0;
sleep 1;
}

my $artist : shared = `dcop amarok player artist`;
my $title : shared = `dcop amarok player title`;
my $album : shared = `dcop amarok player album`;
my $trackTotalSecs : shared = `dcop amarok player trackTotalTime`;
my $trackCurSecs : shared = `dcop amarok player trackCurrentTime`;
my $trackTotalTime : shared = `dcop amarok player totalTime`;
my $trackCurTime : shared = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;

&initScreen();

$SIG{TERM} = \&bye;

my $progressThread = threads->create(\&progress);
$progressThread->detach();

while(1) {
$_ = <STDIN>;
chomp $_;
if ( /trackChange/ ) {
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
} elsif ( /engineStateChange/ ) {
if( /playing/ ) {
$status = 1;
initScreen();
} elsif ( /pause/ ) {
$status = 0;
} else {
$status = 0;
}
} elsif( /volumeChange/ ){
m/: (\d+)/;
$vol = $1;
$status = 0;
&volUpdate();
$status = 1;
}
exit if( /exit/ );
&bye() if( /kill/ );
}

sub initScreen {
print PIPE "PC 0\n";
print PIPE "DR 0 0 159 43 1 1\n";
print PIPE "DR 3 22 157 40 1 0\n";
print PIPE "PB 3 22 157 24 0\n";
print PIPE "FP 0 15 0 0 0 1 \"$artist\"\n";
print PIPE "FP 0 9 0 15 0 1 \"$title\"\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
}

sub progress {
while(1) {
if($status > 0) {
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $trackCurSecs;
chomp $trackCurTime;
print PIPE "PB 5 27 155 35 0 1 1\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
} elsif($status == -1) {
return;
}
sleep 1;
}
}

sub bye {
$status = -1;
sleep 2;
print PIPE "PC 0\n";
system("kill 15 $G15Cpid");
close(PIPE);
close(G15COMPOSER);
$mknod = system("rm $pipe");
exit 0;
}


The script now creates its own pipe and runs g15comopser from within the script.

You can get the D::A::P version here (http://svn.sourceforge.net/viewvc/*checkout*/g15tools/trunk/g15composer/examples/amarok-g15-perl.pl?revision=112) and the CLI dcop version here (http://svn.sourceforge.net/viewvc/*checkout*/g15tools/trunk/g15composer/examples/amarok-g15-dcop_cli.pl?revision=113).

drdnl
October 9th, 2006, 05:46 PM
updated first post with details on how to install amarok support for the lcd.

Aneurysm9
October 15th, 2006, 11:09 PM
Would everyone be so kind as to go take the poll at http://ubuntuforums.org/showthread.php?t=277518 Thanks.

daihenka
October 16th, 2006, 03:49 PM
I've struck a problem with Aneurysm9's dcop_cli amarok script. It doesn't display Artist/Title information but displays everything else. (This is with Kubuntu 6.06.1. I'll test it tomorrow with Ubuntu 6.06.1)

Things I've checked:
* path to the vera font (which is correct)
* upgrading g15composer from 1.0.1 to 1.1.1 (source compile) - no artist/title info displayed
* upgrading g15composer from 1.0.1 to 1.1.1 (1.1.1 deb) - wouldn't run g15composer

Anyone have any ideas on this? I'm stumped. ](*,)

Guitoo's script worked, but no progress bar/time information. I'll most probably hack at Guitoo's version tomorrow, but not tonight.

I've also hacked together some init scripts for g15daemon and g15composer (/dev/g15lcd pipe).
They are pretty basic and based off the gentoo init scripts, but I can post them here if anyone wants.

Aneurysm9
October 16th, 2006, 05:40 PM
Daihenka,

Did you install libg15render from source or from my debs? If you installed from source you need to configure with --enable-ttf to have font support. The debs are built that way so g15composer from the debs won't work with libg15render from source without ttf support. If you post the init scripts I'll put them into future debs.

daihenka
October 16th, 2006, 11:20 PM
Everything was installed from debs to start with.

The only one that wasn't from a deb was g15composer 1.1.1 as the deb didn't work for me and you included the source for it.

I'm going to install Edgy sometime today and remove kubuntu (hate the feel of kde). After I've installed Edgy, I'll make up some init scripts for it as well and post them here with the Dapper init scripts.

Aneurysm9
October 16th, 2006, 11:31 PM
It sure sounds like libg15render doesn't have ttf support. I probably should have made g15composer report an error when ttf support is disabled. Can you try sending the "FL 0..." line from the script to the pipe after the script is running? It's only sent once at the top of the script and if something is keeping that from getting through to the composer you'll get no artist/title info as there won't be any font loaded in slot 0.

daihenka
October 16th, 2006, 11:49 PM
I sent it "FL 0 10 "/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf"" to the pipe and no luck. I'll build libg15render from source instead and test it again.

I'll test this on Ubuntu Dapper and post the results soon as well.

Another thing that you might need to look into with g15composer is that when you turn off the lighting on the keyboard with lightbulb button, the MR button is still lit up. This only happens when g15composer is running.

Aneurysm9
October 17th, 2006, 12:33 AM
The light on the MR button is coming from g15daemon, it's an indication that there are active clients connected to the daemon. I would presume that the M1-M3 buttons would stay lit as well, they do under windows.

Let me know if you have any success after building libg15render from source. I've got to figure out a way to make autoconf refuse to build g15composer with ttf support without it also being present in libg15render. I tried before but it didn't work as expected. Any autotools wizards out there?!?

daihenka
October 17th, 2006, 12:45 AM
Ok just got it displaying the Artist/Title!

I grabbed the latest code from the svn repos and compiled both libg15render-1.1.1 and g15composer-1.1 with --enable-ttf. It now works :D
The display looks so much better now! CPU usage is very low.

Thanks for the help with that Aneurysm9. I'll post the init scripts soon.

Have you been able to figure out how to implement the LCD buttons? (the black ones above the multimedia buttons) The MR button doesn't seem to like being pressed too many times.

If I knew c++ better, I would try and help out. Anyways, I'm off to install Ubuntu Edgy to make the init scripts for it.

Aneurysm9
October 17th, 2006, 12:55 AM
Good to hear that you got it working. The LCD buttons work fine, they're used in my lcdproc driver in the new 5.1 release of lcdproc. I know what you're saying about the MR button, mine tends to stick occasionally, as if it's a little too big for the hole it's in. As far as I know, my lcdproc driver is the only one using the LCD buttons, I use the round button for enter, so maybe I'll talk with mlampard about moving the g15daemon swap screen button from MR. That would also leave MR available for the same use as under windows whenever macro recording and playback software is written for linux.

daihenka
October 17th, 2006, 01:04 AM
Yeah, that would be great if it goes ahead for the LCD switch button.
I'll be happy to test out any changes that are made on Edgy and Dapper.

Over the next couple of weeks, I'll try and code up some display scripts for the LCD that will act as daemons with init scripts. Thats the only way I can see it working (but greatly pollutes the system with init scripts imo) unless an amarok script manager style application is made for g15composer. I'll have a think about it, and see what I can do to help with that.

Aneurysm9
October 17th, 2006, 01:21 AM
That's a great idea. Instead of launching an instance of g15composer for each script, add a command to create a new screen. That way, one script can handle multiple screens without loading multiple copies of g15composer.

daihenka
October 17th, 2006, 04:30 AM
Attached are the init scripts that I created.


Extract them into /etc/init.d/
Create a group called g15lcd and add yourself and any others that you want to access the composer pipe that is created.
Add them to the default runlevel (update-rc.d g15daemon defaults 20 / update-rc.d g15composer defaults 21)


I'm not a guru on the runlevels and such and I know I have stuffed up the shutdown process (where g15composer doesn't stop on shutdown). I'll look into this soon.

The g15daemon init script will automatically modprobe uinput (just incase its not in the module autoloads)

To start g15daemon:
sudo /etc/init.d/g15daemon start
and to stop g15daemon:
sudo /etc/init.d/g15daemon stop

The g15composer init script will create the pipe called /dev/g15lcd and sets the group ownership to g15lcd.

To start g15composer:
sudo /etc/init.d/g15composer start
and to stop g15composer:
sudo /etc/init.d/g15composer stop

Feel free to modify them to suit your needs. It would have been nice if ubuntu had a better init scripting environment (similar to gentoo). Maybe upstart will be decent when they provide more information on it for edgy.

Aneurysm9
October 19th, 2006, 08:30 AM
I have released g15composer-2.0. The big highlight is that a new screen can be created programmatically. Full details are available at https://sourceforge.net/forum/forum.php?forum_id=624770 Please let me know if you run into any problems as I've changed a lot of things under the hood even though the interface is stable.

Packages will follow as soon as I have a chance to integrate the init scripts.

daihenka
October 19th, 2006, 12:51 PM
Nice work Aneurysm. I'll try and have a good play around with G15composer over the weekend when I get sometime.

drdnl
October 19th, 2006, 04:40 PM
Great work, will be looking forward to the scripts created. Is there a special place for all these scripts to be saved? Maybe we should ask the current g15forum.com to open up a linux subsection. In fact, think i'll try and ask right now...

-D

Aneurysm9
October 19th, 2006, 08:42 PM
Attached are Dapper debs for g15composer-2.0 and g15daemon-1.2.1 with the init scripts included. I've modified the location of the pipe used by g15composer to /dev/g15composer from /dev/g15lcd to remain consistent with the scripts already in use on Gentoo. This way, scripts like my Amarok script that want to create a new screen don't have to change the location of the control pipe for each distro.

I'll do the same for Edgy once I get back to the system with the Edgy VM on it.

Edit:

Here are g15composer-2.1 debs for Dapper and Edgy. The Edgy tarball also includes g15daemon with the init script included.

daihenka
October 24th, 2006, 12:02 PM
I've just started to port some of my work related status monitors across to display on the G15 LCD. So nice and smooth! :D

Thank you G15Tools team (Especially Aneurysm9) for your time and effort that you have put in so far!

Aneurysm9
October 24th, 2006, 07:36 PM
If you're writing scripts for g15composer, you may want to use the full syntax for commands with optional components such as PB. I'm rewriting g15composer with flex and bison and I'm not sure yet whether I'll be able to handle variable length commands. I think it can be done, but if it can't, it will ease the transition if you're using the full syntax.

daihenka
October 25th, 2006, 04:49 AM
Thanks for the heads up... I'll check out the SVN repos tonight and have a play with the g15composer-ng branch.

Aneurysm9
October 25th, 2006, 10:46 AM
Can I get some volunteers to try out this version of g15composer? It should be fully compatible with g15composer-2.1 with the exception that what were previously optional arguments are now mandatory. I'll work on that some more tomorrow (today?!?) but I'd like to get a few eyes on it as it is. Thanks.

daihenka
October 25th, 2006, 02:27 PM
I've downloaded g15composer-3.0 and it doesn't seem to like your example tail.pl on my edgy system. Always exits with "Error: Could not create FIFO /home/sean/.g15tailpipe, aborting".

For some reason since version 2.1 onwards when opening a g15composer active FIFO pipe, g15composer dies (MR light is turned off and the g15composer screen is closed). Version 2.0 is fine though. Maybe that could be a problem in itself?

This happens on both dapper and edgy.

daihenka
October 25th, 2006, 02:59 PM
I'm currently writing a PHP class to support g15composer. Currently working with v2.0 since 2.1+ doesn't like me :(

Most of the applications I'm working with are php-based.

Aneurysm9
October 25th, 2006, 06:41 PM
Arg, sorry about that. tail.pl wasn't supposed to be in the distfile, it's not working yet. That error happens when the FIFO already exists. As of 2.1, g15composer handles FIFO creation and deletion. The pipe you give it to read from must not exist when started. There was a message about it in the ChangeLog, but it's probably kinda cryptic, I'll add more detailed info to README.

I don't know if it's possible to wrap a C library in PHP, but you may want to look into wrapping libg15render rather than g15composer if it's possible. You'd then also need a g15daemon wrapper, but there are perl and python wrappers already for that you can look at to get started. However you do it, if you want me to include the wrapper with future versions send it along when you're finished.

drdnl
October 26th, 2006, 06:14 PM
Edited first post to reflect availability of g15composer 2.1 debs (including edgy) and quick tips regarding use.

Aneurysm9
October 26th, 2006, 10:53 PM
I have released g15composer-3.0. This release reimplements g15composer using flex and bison. As a result, some command syntax has changed slightly. See the README for details.

Edit 2: disregard that last edit. I noticed another bug with right justified text that I fixed and made a quick 3.0.1 release.

shadowhywind
October 30th, 2006, 01:38 AM
Thanks for the wonderful HOWTO! But i am having some slight problems. I have the time being displayed on the lcd. But the MR and M1-3 lights are not on. Also, can we program the G keys like we do in windows , mini-macros? or just strictly hotkeys?

Aneurysm9
October 30th, 2006, 01:54 AM
The M1-M3 lights are application controlled. The MR light will come on when a g15daemon client is connected. Currently, the G keys function as normal extra keys that can be assigned as hotkeys. Mlampard is planning a rewrite of g15daemon that will include macro recording and playback.

bodhi.zazen
October 31st, 2006, 06:04 PM
Nice How-to drdnl

This thread has been added to the UDSF wiki.

HOWTO: Install basic G15Tools support for the Logitech G15 (http://doc.gwos.org/index.php/G15Tools_support_for_the_Logitech_G15)

bodhi.zazen

drdnl
November 1st, 2006, 01:19 AM
Thank you bodhi.zazen, i feel quite honoured. But of course the majority of the credit should go to the developers at http://g15tools.sourceforge.net/ , without them all this would not be possible. I'll make sure to update the thread sometime soon with new versions when I have more time. I am however happy to see few problem posts in this thread, that means it works.

-D

ChadMC
November 2nd, 2006, 05:22 PM
is there a g15composer-3.0 .deb file? I can't find one.

drdnl
November 2nd, 2006, 05:38 PM
Sorry but no, haven't gotten around to it yet, you can follow the original howto or install the updated debs later in the thread (page 6 or so?)

Regards,
D

ChadMC
November 2nd, 2006, 05:58 PM
Well I'm having some problems getting some things to work. I have it to where it shows the Large Clock on the LCD. But when I install the amarok script and run it, it instantly stops running. Also on the g15tools website there is a bunch of screenshots of different thigns you can do, like the weather and other stuff. Is there a place to download these scripts somewhere or a tutorial?

Aneurysm9
November 2nd, 2006, 09:02 PM
Here's a deb for g15composer 3.0.1 (it says 3.0, but it has the fixes from .1) The amarok scripts that were posted earlier won't work with >=g15composer-2.1 because of how FIFO handling changed. Attached are updated scripts that will work with 2.1 and 3.0. The lcdmetar.pl script is part of lcdproc. The latest version, 5.1, includes the g15 driver. If you use VDR, graphlcd-svn includes a g15 driver.

ChadMC
November 2nd, 2006, 09:25 PM
Thanks for the packages. This is the first time I ran a amarok script without it crashing or giving me errors in the Output Log. However, it still isn't showing in my LCD screen. All I see is the clock. I installed the deb file you just posted and the amarok script as well.

What am I doing wrong? The MR light is off. g15composer and g15daemon is running

ChadMC
November 2nd, 2006, 09:27 PM
Some more info..
I'm running edgy eft, also running Beryl/nvidia.
x86 version

Aneurysm9
November 2nd, 2006, 09:31 PM
Can you try stopping the script in the Script Manager, removing $HOME/.g15amaroklcdpipe, and restarting the script? G15composer will fail to create a new screen if the FIFO already exists.

ChadMC
November 2nd, 2006, 09:43 PM
That did the trick. However it is only showing the track playing time. Is it supposed to show the Artist and Track name too? If so, it's not and it's just blacked out at the top. I'm thinking it has something to do with the fonts, but I'm not sure what to do about it.

drdnl
November 2nd, 2006, 10:07 PM
Hi,

I too had it running for a moment but not artist/track... Any chance you could release as an amarokscript.tar.gz with self starting g15composer etc.? I tried to do it myself but to no avail, either way thank you for g15composer 3.0, any interesting end user features?

-D

Aneurysm9
November 2nd, 2006, 10:53 PM
Oh yeah, the font path needs to be changed for ubuntu, gotta add truetype/ before ttf-bitstream-vera. It shouldn't need to start its own instance of g15composer as the composer is now multi-threaded and can handle screen creation. There is an init script with the debs that will start the composer listening on /var/run/g15composer. The script now sends an "SN $pipe" command to /var/run/g15composer that causes g15composer to create $pipe and display a new screen reading from that pipe. The "SC" command at the end closes the display and removes the pipe. This should be more efficient than having multiple instances of g15composer running as it is only in memory once. If the init script isn't working for you, let me know, but you can get the same effect in the meantime with "g15cmposer -b /var/run/g15composer" There will not be a display when g15composer starts (because of the -b argument) so that /var/run/g15composer only listens for "SN" and "SC" commands. The "SC" command should be sent to the pipe for the screen you want to close. Sending "SC" to the initial pipe will close all screens and terminate g15composer.

There aren't really any new features, g15composer-3.0 is simply a rewrite from the old C++ codebase that was essentially a rudimentary lexer and parser to now use flex and bison to generate a proper lexer and parser. I did this because the old code didn't have any significant error handling capability and I thought it would be easier to leverage flex and bison than to reinvent the wheel. I did slip in one new capability, more an extension of previous features than a new feature in its own right, allowing text placed with "TO" to be right justified. I'll eventually add the same to libg15render for TTF text.

ChadMC
November 2nd, 2006, 11:54 PM
That fixed it. Thanks.

Are there any other scripts or anything to use the LCD screen for? I've tried searching but can't find anything. I've seen screenshots of people showing the weather on there. Any place to get things like that?

Aneurysm9
November 3rd, 2006, 12:36 AM
lcdproc-5.1, http://www.lcdproc.org, has a driver for the g15. With that you can use any of the lcdproc scripts that are out there, like the lcdmetar.pl script shown in the screenshot on the g15tools homepage.

ChadMC
November 3rd, 2006, 03:44 AM
Thats exactly what I need. Thanks once again. I guess there isn't any .deb files for the newest version that has the g15 driver in it?

I'll try compiling from source, but I usually screw something up when I do that.

Aneurysm9
November 3rd, 2006, 04:16 AM
It's pretty easy, the only catch is to give --enable-drivers=g15 to ./configure.

ChadMC
November 3rd, 2006, 06:16 AM
I got it working nicely now. Thanks for the help.

Sorry to keep posting questions.. but now that I have LCDproc running, Amarok won't show up in the LCD now. Is it possible to have them both running at once? If I press the MR key, it just switches between LCDproc and the Big Clock. I've tried deleting the .g15amaroklcdpipe file and then running it again, but it dodn't work. If only the plugin was just in LCDproc =)

DigitalHighlander
November 3rd, 2006, 08:25 AM
Wow. great script for Amarok, or so it seems, but..... lol any way to get it supported for the xine engine? I know, always gotta be one whiner.

Aneurysm9
November 3rd, 2006, 09:37 AM
Sounds like maybe g15composer isn't running. Try "ps aux | grep g15" to see if it shows up. There are some amarok scripts for lcdproc, but I don't like them as well as mine (though I may be biased) since they're just plain text. It's pretty amazing what a couple of rounded boxes and centered TTF text can do.

As for the script working with the xine engine, it should work with any engine. It gets its data from Amarok via DCOP, which should be the same regardless which engine Amarok is using.

ChadMC
November 3rd, 2006, 06:51 PM
Well, it seems like everything is working after I restarted. Not sure what happened there. Oh well, it all works.

Now... to work out all the problems.. ](*,)
Can you please tell me how or direct me to a howto on how to get all of this to run on startup? Just putting all this stuff in my Session startup doesn't work. I have to run "modprobe uinput" every time I restart. So I need all these commands, I just don't know where to put this. I used to know how to write a startup script, but it's been awhile since I've used linux and I can't remember how to do it. I need all these commands...

sudo modprobe uinput
sudo g15daemon
LCDd
lcdproc

Should I write a startup script for all that stuff, or is there a better place to put all those. I think my problem is the sudo parts. I don't think they work by putting sudo in my session startup.

EDIT:

Nevermind, after a little googling I wrote a startup script and now all is well.

KernelJunkie
November 8th, 2006, 05:39 PM
i tried this stuff on my g15 but the composer won't see the pipe or something.

sword@sword-laptop:~$ mknod /home/sword/lcdpipe p
sword@sword-laptop:~$ g15composer /home/sword/lcdpipe
Error: Could not create FIFO /home/sword/lcdpipe, aborting
sword@sword-laptop:~$


hope u can help me with this.

greets
KernelJunkie

drdnl
November 8th, 2006, 07:03 PM
Sounds like you have g15composer 2.1 or 3.* running, it handles its own pipe so type rm /home/sword/lcdpipe and then run g15composer /home/sword/lcdpipe

Should work, let me know,

D

KernelJunkie
November 8th, 2006, 07:27 PM
this is what i get:

sword@sword-laptop:~$ g15composer lcdpipe



...

and after i did the command it doesn't do anything.
what must i do to make a text on the screen?

greets
KernelJunkie

Aneurysm9
November 8th, 2006, 11:09 PM
try it this way instead: g15composer pipe &
so that it will go to the background. You can then echo commands to the pipe, such as: echo 'TL "Hello World"' > pipe

The commands are detailed in the README file.

KernelJunkie
November 10th, 2006, 03:34 AM
hey,

i found something wicked.
if i start World of Warcraft, login ,and start playing with one of my characters ,the whole world freezes and i can only move my mouse a bit.
is that a fault of the keyboard itself or the g15daemon?

i hooked this g15 keyboard on a Asus Z7000c laptop.

plz help because i wanna be able to play again :)

greetings,
KernelJunkie

Aneurysm9
November 10th, 2006, 04:14 AM
I don't have WoW myself, so I can't really debug such a problem, but I seem to remember hearing that it had native support for the G15. If that's the case, it may attempt to communicate with the LCD directly if it finds one attached, which could conflict with g15daemon. If this only happens with the keyboard attached or with g15daemon running, I would suggest trying to get info from Blizzard about how the G15 support works and whether it can be disabled.

Anaximander Thales
November 13th, 2006, 04:56 AM
Having problems with the amarok script myself.

I've so far attempted to everything listed in the thread to get it working. I noticed in one post that there should be a g15composer 'init script' (which I'm assuming should be g15composer.pid?) in /var/run -- and that it should be there if installed from the .debs.

I did not install from the debs, plus I have an error that says:

print() on closed filehandle CPIPE (on line 17)

so I'm assuming that this is part of my problem.

So, how would I get that init script in to /var/run?

Also, do I need to have 'g15composer lcdpipe' kick off on start up, or will the amarok script take care of this when I start amarok? If I do, what's the best way to autostart it.

I have tried having it start in autostart applications (I'm running XFCE4), and it does kick off, but I get the FIFO error when I try to send anything to the pipe -- very frustrating. If I kill the pipe, and restart it, everything works fine. I don't know if list order has anything to do with execution order, but when I run 'ps aux | grep g15,' the g15composer always appears before the g15daemon when I restart. It appears after when I kill it and restart it.

Thanks for any help.

Aneurysm9
November 13th, 2006, 05:38 AM
The init script would be /etc/init.d/g15composer, which when started should create /var/run/g15composer, which is a pipe where g15composer listens for new screen commands. If you didn't install from debs, then you should start g15composer as "g15composer -b /var/run/g15composer" in order to use the amarok script or modify the script to suit your environment. G15composer needs to be running before you start the amarok script.

Anaximander Thales
November 13th, 2006, 08:03 AM
Okay -- just so I'm clear.

Run 'sudo g15composer -b /var/run/g15composer'
then I should be able to run amarok and run the dcop_cli script and see the output on the screen.

Aneurysm9
November 13th, 2006, 08:29 AM
That should do it. Make sure that neither /var/run/g15composer nor $HOME/.g15amaroklcdpipe exist before starting g15composer and the script respectively. G15composer will refuse to operate on a FIFO that already exists to prevent against interfering with another instance of g15composer.

Anaximander Thales
November 13th, 2006, 11:36 PM
Aneurysm9 -- thank you for all the information.

I know I'm not dense, I'm just not getting this to work. it's not just your script, the other script, guitoo's? (GentooG15Amarok) script, is also not working.

I have made headway on it though. Prior to your help, nothing would occur.

Now, g15composer pops up (on start up of amarok) and I can flip between that and the clock (which I couldn't do before your help). However, in either script nothing is displayed. The screen blanks as if it's trying to write something, but nothing occurs.

I read that I needed g15render needed to be configured with --enable-ttf, so I uninstalled g15composer and g15render and attempted to configure g15render with ttf support, but it errored out on the make portion (sudo make). The version I have is 1.1.1.

However, if I send something to the pipe, it has no problem displaying.

Aneurysm9
November 14th, 2006, 01:36 AM
can you paste the error from make on libg15render? Even if you don't have ttf support compiled in the script should display a box, the progess bar and the time. TTF is only used for the artist and track name. I don't know about guitoo's script, but with mine it won't display anything until amarok is playing to avoid sending commands with missing data.

Anaximander Thales
November 14th, 2006, 02:23 AM
I believe I have attached the configure output and the make output.

Aneurysm9
November 14th, 2006, 01:52 PM
checking whether to enable FreeType2 support... ./configure: line 18740: freetype-config: command not found

That looks like the problem there. Do you have the freetype dev packages installed?

Anaximander Thales
November 14th, 2006, 09:35 PM
all right -- new problem. I'm feeling completely useless now and my field of work is in computer science and tech support. Although I know my limits on the *nix environments. This has been a great learning experience for me.

Drdnl -- I'd be happy to make some notes or even help out if you'd like to make this a complete newbies guide to installing the g15 keyboard.

I didn't have the freetype dev install. Here is what I installed (and only installed) and below that is my procedure:
freetype2 (thought I needed this)
libttf2 (installed with freetype2)
libfreetype6-dev (realized this one on 2nd read)
zlib1g-dev (installed with libfreetype6-dev)

attempted to install libg15render-1.1.1
completed with two warnings (at the end about preprocessor)
2 attached files for that.

attempted to install g15composer-3.0.1
completed but with a bunch of warnings (can't remember).
2 attached files for that.

attempted to start the g15composer and recieved error:
g15composer:
error while loading shared libraries:
libg15render.so.1:
cannot open shared object file: No such file or directory

So -- what next?

Aneurysm9
November 15th, 2006, 12:39 AM
The libg15render build looks ok. Those two warnings from configure are to be expected, they have something to do with using macros in an #include statement. It seems that g15composer was not configured with --enable-ttf, which you'll need if you want to use my amarok script. As for not finding libg15render.so.1, do you have /usr/local/lib in /etc/ld.so.conf? If not, add it and run ldconfig.

Anaximander Thales
November 15th, 2006, 08:11 AM
alright -- everything seems to be working now. Had an issue with having lcdproc loaded, but once I removed it, everything seemed to work. I suppose that I'll need a shutdown script that closes out g15composer and removes the g15composer pipe from /var/run so that nothing errors out on the next start up?

I guess now I just need to look at the link for all the different formatting commands so I can see what the script is actually doing.

<StAiNlEsS>
November 18th, 2006, 01:22 AM
hey guys i need some help with the amarok scrpit. im running edgy kubuntu and i've got the LCD displaying the clock and when i run amarok i can get the progress bar to display on the lcd but not the track name - artist name. i double checked that truetype\ was in the script and it is. but the track info still isnt loading.

i've installed all of this as per the first post in this HOWTO.

thanks for you help.

Aneurysm9
November 18th, 2006, 01:25 AM
The first question would be whether you have bitstream vera installed. I think it's installed by default but it can't hurt to check. The next most likely culprit is that libg15render or g15composer weren't configured with --enable-ttf. Rebuild them with ttf support and try again.

<StAiNlEsS>
November 18th, 2006, 07:18 AM
hey thanks for the quick reply, yeah the fonts are installed. sorry im a newb and not up to compiling my own yet, the files i installed are the packages in the first post so if they have the font enabled then it should be the same on this end.

Aneurysm9
November 18th, 2006, 09:03 AM
Try libg15render and g15composer from the tarball attached. I'm not sure whether the ones on the front page are the ones that I built or not. These should have ttf support enabled.

<StAiNlEsS>
November 18th, 2006, 09:44 AM
wow, thankyou for all your help so far! i installed all the packages you gave me but now the amarok script only runs for a second and when i check the error log for the amarok plugin i get this:

mknod: `/home/cameron/.g15amaroklcdpipe': File exists
Error: Could not create FIFO /home/cameron/.g15amaroklcdpipe, aborting

thankyou for you help

Aneurysm9
November 18th, 2006, 10:05 AM
That would be because the way g15composer deals with pipes has changed. Delete /home/cameron/.g15amaroklcdpipe and use the current script that you can get from here: http://g15tools.svn.sourceforge.net/viewvc/*checkout*/g15tools/trunk/g15composer/examples/amarok-g15-dcop_cli.pl?revision=158

Then start g15composer with /etc/init.d/g15composer and start Amarok.

<StAiNlEsS>
November 18th, 2006, 10:28 AM
im really sorry but how do i get amarok to load the script you gave me, its not finding the file in the script manager.

newbie question i know

Aneurysm9
November 18th, 2006, 10:32 AM
look under /home/cameron/.kde/share/apps/amarok/scripts/ you can just copy the new file into there.

<StAiNlEsS>
November 18th, 2006, 11:17 AM
hey i've moved the script into there but its not showing up in the script manager.

Aneurysm9
November 18th, 2006, 11:16 PM
that's strange. Is there an "amarok-g15" subfolder under there? If so, try moving the script into there.

<StAiNlEsS>
November 18th, 2006, 11:24 PM
nah there isn't, i've tried installing the old sript and just overwriting the file and that didnt work either.

Aneurysm9
November 19th, 2006, 11:27 AM
That's odd. Try editing the script from within Amarok's script manager, deleting the text from the old script and pasting in the text from the new one.

Louie
November 19th, 2006, 01:55 PM
Hello there. I installed the thinks you said. But when I try to start the g15daemon it says;

louie@louie:~$ sudo g15daemon
An Error Occurred - 3 : ( Unable to configure the linux kernel UINPUT driver ) received

Do you know why?

ChadMC
November 19th, 2006, 02:20 PM
Did you try

sudo modprobe uinput

Louie
November 19th, 2006, 02:53 PM
No I didn't, but I can see a HUGE clock on my G15 now. THANK YOU! :)

Louie
November 19th, 2006, 03:27 PM
Hmm, my clock work perfectly. Ive also installed the script for amarok. But when I load the first one in the script manager in amarok it stops directly. And when I try the second version I only get the text "G15Composer" on my LCD screen. Whats wrong then? It would be nice to see my tracks ;P

Aneurysm9
November 20th, 2006, 01:47 AM
My current amarok script will display "G15Composer" until amarok starts playing. If you're still seeing that after Amarok starts playing then that might be a problem. Can you try this command when you have the "G15Composer" display: echo 'TL "This is a test"' > $HOME/.g15amaroklcdpipe

If g15composer is working you'll see "This is a test" on the LCD. If you do then it's an issue with the amarok script, if you don't it's g15composer.

drdnl
November 20th, 2006, 09:34 AM
Hi Aneurysm9, I've been using your amarok script for quite some time now and it works better than the original one except for the fact that whilst g15composer now handles its own pipe it doesnt always handle it in a user friendly manner. For some reason my amarok never seems to close properly thus removing the pipe so when i start it up again I need to (every time) stop the amarok script, delete the pipe myself and then start it again. From here on it will work fine till I restart Amarok.

My question is, would it be possible for either g15composer or your script to simply use or delete any existing pipe? I'm pretty sure there's no vital data in a pipe that could be lost.

Anyone else have this problem?

Regards,
D

Aneurysm9
November 20th, 2006, 09:44 AM
I don't want g15composer to do it because it could overwrite a pipe that is in use by another script. The same thing can happen if a script, but I guess the amarok script is the kind of script where it's only likely to be run once at a time. If you want to avoid those issues, you could add "unlink $pipe;" before the SN command to create the pipe, making sure that it's not there before it's used.

Zypher3001
November 23rd, 2006, 01:11 AM
I have installed g15composer 3.0.1, lcdproc 0.5.1, g15daemon 1.2.6a, libdaemon 0.10, and libg15 1.0. I ran modprobe uinput and then ran g15daemon as root. My LCD says g15 4 Linux daemon loaded, but I never see and clock and I can't get the script that I want to use to display anything on the screen even after I run g15composer /home/[username]/lcdpipe. Any ideas as to how I can try and troubleshoot this problem?

Thanks.

mlampard
November 23rd, 2006, 03:33 AM
I'm not sure what happened here. Can you try running g15daemon with the --debug option, which should help narrow down the problem.

KClaisse
November 23rd, 2006, 03:42 AM
I need help.
I got the LCD clock working, now I am trying to get Amarok to work.
I don't have DCOP so I donloaded DCOP, DCOP:Amarok, DCOP::Amarok::Player and tried to install them.
It says that I can't build DCOP because I don't have ExtUtils::MakeMaker, but when I try to build MakeMaker it says


Checking if your kit is complete...
Looks good
Could not open '': No such file or directory at lib/ExtUtils/MM_Unix.pm line 2697.


i am so lost.

Aneurysm9
November 23rd, 2006, 04:43 AM
KClaisse,

you can use the dcop_cli version of the amarok script. It uses the cli dcop client from kde rather than the perl modules that some have trouble building.

KClaisse
November 23rd, 2006, 06:04 AM
OK I got it working for the most part. Here's how.
I added this to /etc/sudoers (at the end)
(kyle is the my username)


kyle ALL= NOPASSWD: /usr/sbin/g15daemon
kyle ALL= NOPASSWD: /usr/local/bin/g15composer
kyle ALL= NOPASSWD: /sbin/modprobe


then I created this script to start when gnome starts (added under sessions).


#!/bin/bash
sudo /sbin/modprobe saa7134 card=3 tuner=39
sleep 1s
#
sudo /sbin/modprobe uinput
sleep 1s
#
sudo /usr/sbin/g15daemon
sleep 1s
#
sudo g15composer -b /var/run/g15composer &


It seems the sleep 1s is necessary for everything to work properly. Without it things don't start right.

Now the only problem left is this output from the amarok script:


Can't exec "/home/kyle/.g15amaroklcdpipe": No such file or directory at /home/kyle/.kde/share/apps/amarok/scripts/amarok-g15-dcop_cli.pl line 9.


I'm think of changing


my $pipe = "$ENV{HOME}/.g15amaroklcdpipe";

to


my $pipe = "/var/run/g15composer";

But I don't want to mess anything up. As of now it actually works.

Will that change remove this error without hurting anythng?

Zypher3001
November 23rd, 2006, 05:06 PM
Here is the output I got from running g15daemon --debug

Found g15, trying to open it
Trying to detach drive currentl attached: "usbhid"
Success, detached the driver
Debug: usbhid
Done opening the keyboard
g15daemon 1.2.6a loaded

I still only got the "G15 4 Linux daemon loaded" output on my LCD.

One question I have... I know I should get the clock as soon as the daemon starts, but I noticed that once I run g15composer, it creates the pipe, but when I run ps -el I don't see g15composer running as a process in the listing. I only see g15daemon. Shouldn't the composer still be running?

Aneurysm9
November 23rd, 2006, 06:00 PM
KClaisse,

It looks like maybe you're using an older version of the amarok script. You can get the current version here: http://g15tools.svn.sourceforge.net/viewvc/*checkout*/g15tools/tags/g15composer-3.0/examples/amarok-g15-dcop_cli.pl?revision=160

changing $pipe to /var/run/g15composer won't work since g15composer is only listening there for SN commands and doesn't create a screen for it (because of the -b argument on the command line).

Zypher3001,

It sounds like g15composer may be causing your problem then. Are you starting g15composer as soon as you start g15daemon? Does g15daemon show the clock if you don't start g15composer? Are you using an AMD64 system?

drdnl
November 23rd, 2006, 08:47 PM
Edit: FFS :), its working fine now, no idea what was wrong with it earlier. I'll post a message if it happens again. Having worked on g15tools/daemon for a while now, what are the chances the amarok script will get some eyecandy? (equalizer/analyzer)

Hey Aneurysm9, thanks for the unlink, now that it removes the pipe it gets rid of one particularly tedious step :) Just one little issue, my amarok (1.4.4 on gnome) never starts the script on startup. It shuts the script down properly and displays a little play button next to the script in the script manager but no running script anywhere. A quick stop/start in script manager fixes this quickly but it would be nice if it where automatic. Any idea's? I have checked the MR button in order to see if it was "hiding" on another page/tab but no luck.

Regards,
D

Zypher3001
November 23rd, 2006, 10:31 PM
Aneurysm9

I never see the g15daemon clock on the lcd. I do wait for a minute before I start g15composer. And yes, I am using an AMD64 system. I just tried the old version of g15composer that I still had also with no luck.

Aneurysm9
November 23rd, 2006, 10:31 PM
I dunno about getting an analyzer going for Amarok. The DCOP interface doesn't provide any frequency or PCM data from which to create an analyzer or oscilloscope. I'll look into the libvisual visualization system to see if maybe it can be done that way. I've been playing with the XMMS plugin from g15daemon and now that I've got a grip on how that works it should be fairly easy to recreate it for Amarok. As for the script not starting on startup, I've not a clue. I've got 1.4.4 on gnome as well and it starts automatically as would be expected for me. You'll probably have to ask around on the Amarok lists for an answer to that one.

Aneurysm9
November 23rd, 2006, 10:38 PM
Hmm. If the clock never shows up even without starting g15composer then it is g15daemon that's not working right. Are you building g15daemon from svn? If so, can you jump back to about rev. 60 and, if that works, try a binary search forward until you find the change that broke things for you.

drdnl
November 23rd, 2006, 10:53 PM
Oh I'm sorry if I didnt make it entirely clear, amarok is working fine now (with auto-start scripts). Haven't rebooted yet though, I'll have to test that later :)

About the analyzer, it would truly be great if we linux users also have the option of a g15 analyzer but if DCOP doesnt supply it I understand if maybe it is quite a bit harder to do. I'm not a programmer, at most a tinkerer, but all those analyzers built into Amarok (and the plugin based ones) have to get their info from somewhere :)

Either way, g15 support is maturing nicely. I wonder whether all this work would provide a good base for linux support if Logitech (hypothetically) released a G25 with colour screen etc.

Excellent work!

Aneurysm9
November 23rd, 2006, 11:11 PM
The Amarok visualizations are either libvisual or xmms plugins. There's an xmms plugin that comes with g15daemon that might work (though it won't provide artist or track info due to the way Amarok handles xmms plugins). I'm looking at the code for some of the libvisual plugins right now, but there's a whole bunch of private data types that don't seem to be very well documented so it could take a while before I grok it enough to actually do something with it.

We've tried to make things so that it should be relatively simple to extend support to other keyboards with LCD displays, though none of us have anything other than the G15 so we can't really test that theory. For libg15render, color support should be simply a matter of modifying g15r_setPixel since all the other functions end up calling that one. That would enable, i.e, drawing a red circle rather than just black or white, but things like gradients would be a bit more complex. G15daemon should likewise be capable of supporting additional hardware in the next release now that it's based on plugins. All that would need to be done (hopefully) would be to write a plugin to handle the new LCD interface.

drdnl
November 24th, 2006, 12:00 AM
Well, if you get it to work (or anyone else for that matter) i'll buy you a big "thank you" beer (via paypal)

Should be interesting to watch the developments,

-D

rasta_freak
November 24th, 2006, 02:26 AM
Hi everyone. My small tribute for g15 packages.
I'm using g15daemon_1.2.1 on Kubuntu 6.10.
This is nice clock client for G15. Please try it and tell...

Aneurysm9
November 24th, 2006, 05:14 AM
rasta_freak,

Thanks. Good to see other people programming for the G15. Can you share the source for your clock client? I use Gentoo with my G15 so I'd like it compiled for my system. Plus, any nifty new features could be incorporated into the g15daemon clock plugin in the next version, if you are willing to release the source under the GPL.

rasta_freak
November 24th, 2006, 11:30 AM
Sure, here it is. I wonder about performance issues, please take a look and tell.

Aneurysm9
November 24th, 2006, 11:41 AM
That is very nice. I was hoping when I put in g15r_drawCircle that someone would use it to make a nice analog clock. Would you mind if I worked this into the clock plugin for the upcoming version of g15daemon?

rasta_freak
November 24th, 2006, 11:45 AM
No, please do. I love my G15 keyboard, and I love even more that linux not only supports it, it kicks it's *** :) Thank you for all your work.

Aneurysm9
November 24th, 2006, 12:37 PM
Thank you very much. I've got it integrated into the clock plugin for what will be g15daemon-2.0. It was even easier than I thought. It's in trunk/g15daemon-wip as of rev 195 if you want to check it out. I've dropped the load meter because I'd like to keep the clock simply a clock. There are other options, such as lcdproc, for load meters. I did like that you used mode_xor for the text in the meter though. I had played with that with my amarok script but had trouble getting it to work right. Maybe I'll try it again sometime. I think I'll need to change the bar type though.

As for performance issues, I don't see any. My system isn't ancient, but it's over three years old and it doesn't even break a sweat drawing the clock. Drawing the clock face to a static canvas will surely save some cycles on systems where it's important. Other than that, I'm not sure I see where speed could be improved unless it's in the math which isn't my strong suit.

dreadbrazen
November 25th, 2006, 08:46 PM
Hey guys, just got my g15 keyboard and have been playing around with it. I have everything working properly, except for when I go to run any scripts. I get this error:

Error, could not create FIFO /home/brazen/.g15amaroklcdpipe aborting

So.... I'm still a little unfamiliar with this sort of technology (piping and such). Help me out a little?

Great work, by the way. I'm loving everything you guys are putting into this. I'm using Edgy EFT (6.10). It would be good to note that media keys work out-of-the-box in Kubuntu and amarok.

Aneurysm9
November 25th, 2006, 09:26 PM
The most likely cause for that is that $HOME/.g15amaroklcdpipe already exists. Delete it and try again.

V-ernie-R
November 26th, 2006, 06:11 PM
I made a little Start/Stop script for the g15daemon. Maybe its usefull to you guys too.


Hi everyone. My small tribute for g15 packages.
I'm using g15daemon_1.2.1 on Kubuntu 6.10.
This is nice clock client for G15. Please try it and tell...

I made also one for the clock client. Thank you for the nice client rasta_freak :)

Just put the files somewhere in your home folder and make shortcuts to the scripts. I added also two icons for the scripts. Run the script once to start the g15daemon, run it again to kill the daemon. The same goes for the clock script.

Aneurysm9
December 2nd, 2006, 11:20 PM
I've released g15composer-3.0.2 as an interim release before 3.1, adding improved FIFO handling and the ability to set the effective UID for the g15composer process. I'm doing this because g15composer-3.1 will include new features from libg15render-1.2 and I'm holding off on that until g15daemon-2.0, which now uses libg15render, so we can get all the improvements in one release.

FIFO handling is now greatly improved. If a FIFO does not exist, it will be created. If it exists, but there is no process reading from it, g15composer will start reading from it. If it exists and another process is reading from it, or g15composer is unable to create or open the FIFO, g15composer will error and exit as appropriate. Also, when invoked, g15composer will attempt to open /var/run/g15composer for writing, if another g15composer instance is listening there, g15composer will ask that instance to open a new screen rather than have multiple instances loaded simultaneously.

Changing the effective UID may provide some security against misbehaving scripts and g15composer errors. It is currently only recommended for single user systems due to the potential for permission problems if not correctly configured on multi-user systems.

Debs for edgy are attached.

NZ-Wanderer
December 8th, 2006, 02:14 AM
Hi all, Brand new G15 user here, just got it couriered to me today.. :D :D
Got it all up and working in XP and Vista, now gonna try to get it working in Kubuntu..
Have read all 16 pages, downloaded all the files in the pages and got totally lost (which isn't unusual for me) so am going to follow the instructions on page One and ignore everything else..

Hopefully I can do this......

Aneurysm9
December 8th, 2006, 02:43 AM
User-friendliness may not be the strong suit of this software, but other people have managed to do it, with help or without, so I'm sure you'll be able to do it too. If you have any questions, just ask, someone will more than likely have an answer. Best of luck.

NZ-Wanderer
December 8th, 2006, 02:52 AM
Thanks for that...

Will see how I go, struck a problem but finally figured out my downloader had double named the extensions, so have renamed the files and will try to carry on :)


User-friendliness may not be the strong suit of this software, but other people have managed to do it, with help or without, so I'm sure you'll be able to do it too. If you have any questions, just ask, someone will more than likely have an answer. Best of luck.

Aneurysm9
December 8th, 2006, 03:34 AM
It looks like the info on the first page is a bit out of date. I'm updating it over at the UDSF, http://doc.gwos.org/index.php/G15Tools_support_for_the_Logitech_G15. Here's a tarball with current debs for each of the tools.

NZ-Wanderer
December 8th, 2006, 03:47 AM
Thanks for that :) - looks like I have to go through it all again.. - BTW, I actually got the clock showing up... :mrgreen: :mrgreen:

I did have one tiny problem tho, I can't use your composer 3.0.2.1 as the file gives me an error when trying to use the packet manager, it says that I am using libc6 2.3.6-0ubuntu20 whereas composer needs >=2.4.1 and that file isn't in the respositories.

Ok, I off to redo the later files you included :)

PS: I didn't need to do the autorun part either, for some reason Kubuntu autostarts it, and I get the clock showing up when I get to my password prompt.


It looks like the info on the first page is a bit out of date. I'm updating it over at the UDSF, http://doc.gwos.org/index.php/G15Tools_support_for_the_Logitech_G15. Here's a tarball with current debs for each of the tools.

Aneurysm9
December 8th, 2006, 03:54 AM
Yeah, looks like you're using dapper and the packages I just built are for edgy. If you feel comfortable building from source, you can do it that way, or I can put together a dapper VM to build packages if you prefer.

NZ-Wanderer
December 8th, 2006, 03:57 AM
Ohhh if you would do it I would appreciate it.. - I just thought I would be smart and install using that command you listed on that page you redone... - Man did I get a shock... - I got:


john@kubuntu:/media/Go-Between/linux-g15/untared-files$ sudo dpkg -i libg15_1.1-
1_i386.deb libg15render_1.1.1-1_i386.deb libg15daemon-client_1.2.6a-1_i386.deb g
15daemon_1.2.6a-1_i386.deb g15composer_3.0.2-1_i386.deb
(Reading database ... 176866 files and directories currently installed.)
Preparing to replace libg15 1.0-1 (using libg15_1.1-1_i386.deb) ...
Unpacking replacement libg15 ...
Preparing to replace libg15render 1.1-1 (using libg15render_1.1.1-1_i386.deb) ..
.
Unpacking replacement libg15render ...
dpkg: warning - unable to delete old directory `/usr/local/lib': Directory not e
mpty
dpkg: warning - unable to delete old directory `/usr/local': Directory not empty
Preparing to replace libg15daemon-client 1.2.1-2 (using libg15daemon-client_1.2.
6a-1_i386.deb) ...
Unpacking replacement libg15daemon-client ...
Preparing to replace g15daemon 1.2.1-2 (using g15daemon_1.2.6a-1_i386.deb) ...
* Stopping G15 Daemon... [ ok ]
Unpacking replacement g15daemon ...
Preparing to replace g15composer 2.1-1 (using g15composer_3.0.2-1_i386.deb) ...
* Stopping G15 Composer... [ ok ]
Unpacking replacement g15composer ...
dpkg: dependency problems prevent configuration of libg15:
libg15 depends on libc6 (>= 2.4-1); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
libg15 depends on libusb-0.1-4 (>= 2:0.1.12); however:
Version of libusb-0.1-4 on system is 2:0.1.10a-22ubuntu1.
dpkg: error processing libg15 (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libg15render:
libg15render depends on libc6 (>= 2.4-1); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
libg15render depends on libfreetype6 (>= 2.2); however:
Version of libfreetype6 on system is 2.1.10-1ubuntu2.2.
libg15render depends on libg15; however:
Package libg15 is not configured yet.
dpkg: error processing libg15render (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of libg15daemon-client:
libg15daemon-client depends on libc6 (>= 2.4-1); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
libg15daemon-client depends on libg15; however:
Package libg15 is not configured yet.
dpkg: error processing libg15daemon-client (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of g15daemon:
g15daemon depends on libc6 (>= 2.4-1); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
g15daemon depends on libg15; however:
Package libg15 is not configured yet.
g15daemon depends on libusb-0.1-4 (>= 2:0.1.12); however:
Version of libusb-0.1-4 on system is 2:0.1.10a-22ubuntu1.
g15daemon depends on libg15daemon-client (= 1.2.6a-1); however:
Package libg15daemon-client is not configured yet.
dpkg: error processing g15daemon (--install):
dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of g15composer:
g15composer depends on libc6 (>= 2.4-1); however:
Version of libc6 on system is 2.3.6-0ubuntu20.
g15composer depends on libg15render; however:
Package libg15render is not configured yet.
g15composer depends on g15daemon; however:
Package g15daemon is not configured yet.
dpkg: error processing g15composer (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
libg15
libg15render
libg15daemon-client
g15daemon
g15composer
john@kubuntu:/media/Go-Between/linux-g15/untared-files$


Now I really don't know what to do.... ](*,) ](*,)

If there is an easy way to tell me how to build from source I would give it a go to save you making a VM...


Yeah, looks like you're using dapper and the packages I just built are for edgy. If you feel comfortable building from source, you can do it that way, or I can put together a dapper VM to build packages if you prefer.

Aneurysm9
December 8th, 2006, 04:08 AM
What you'll need to do is download the latest distfiles for libg15, libg15render, g15daemon and g15composer. You can get them from http://g15tools.sourceforge.net/. Extract all of them, then build them in order. Go into the directory and configure the package with ./configure --prefix=/usr then build it with make and install with sudo make install. Lig15render and g15composer can be built with truetype font support if you add --enable-ttf to the configure line. You may need to install libfreetype6-dev to use truetype fonts.

NZ-Wanderer
December 8th, 2006, 04:16 AM
Hmmmm I'll try anything once...

So I get the files, put them all into a temp folder.
cd to the temp folder (then you sort of lost me, do I:
then do a ./configure --prefix=/usr on each of the files??? eg: ./configure --prefix=/usr libg15

If you could type each of the commands I need to do I could follow that real easy :-D (I good at following commands)


What you'll need to do is download the latest distfiles for libg15, libg15render, g15daemon and g15composer. You can get them from http://g15tools.sourceforge.net/. Extract all of them, then build them in order. Go into the directory and configure the package with ./configure --prefix=/usr then build it with make and install with sudo make install. Lig15render and g15composer can be built with truetype font support if you add --enable-ttf to the configure line. You may need to install libfreetype6-dev to use truetype fonts.

Aneurysm9
December 8th, 2006, 04:27 AM
sure, first we'll install libfreetype6-dev if you don't have it:


sudo apt-get install libfreetype6-dev

then we'll extract all the files (assuming we're in a directory containing only the tar.bz2 files you've downloaded):


tar jxvf *.bz2

Now we have directories for each tarball and we want to build them in order. Since we're doing the same thing for each directory we'll use a for loop to cut down on typing :)


for package in libg15-1.1.0 libg15render-1.1.1 g15daemon-1.2.6a g15composer-3.0.2
do;
cd $package
./configure --prefix=/usr --enable-ttf
make
sudo make install
cd ..
done

And that should do it.

NZ-Wanderer
December 8th, 2006, 04:34 AM
Ok, I checked and the libfreetype6-dev is already installed..

While I was waiting I have grabbed the files and extracted them into a folder called sources. (I ended up with the following folders:)

g15composer-3.0.2
g15daemon-1.2.6a
g15lcd-1.2
libg15-1.1.0
libg15render-1.1.1

Is this correct so far??

If so, where do I put that loop?? paste it into terminal??

Aneurysm9
December 8th, 2006, 04:36 AM
So far so good. We don't need g15lcd-1.2, that's the original program that the other tools reimplement. Paste the for loop into a shell and it should start building each package.

NZ-Wanderer
December 8th, 2006, 04:42 AM
oops, something not right.. - I pasted the lines into terminal like you said and got the following:

ohn@kubuntu:/media/Go-Between/linux-g15/sources/sources$ for package in libg15-1.1.0 libg15render-1.1.1 g15daemon-1.2.6a g15composer-3.0.2
> do;
bash: syntax error near unexpected token `;'
john@kubuntu:/media/Go-Between/linux-g15/sources/sources$ cd $package
john@kubuntu:~$ ./configure --prefix=/usr --enable-ttf
bash: ./configure: No such file or directory
john@kubuntu:~$ make
make: *** No targets specified and no makefile found. Stop.
john@kubuntu:~$ sudo make install
Password:
make: *** No rule to make target `install'. Stop.
john@kubuntu:~$

Aneurysm9
December 8th, 2006, 04:47 AM
oops, serves me right for trying to give instructions from memory. Remove the ; and it should work.

NZ-Wanderer
December 8th, 2006, 04:58 AM
Should I have done that in root terminal instead of normal terminal?? cause it got a few errors (not allowed etc)

Here is part of the output for you to look at, I can't understand it... (couldn't put it all in cause it was too long...)


john@kubuntu:/media/Go-Between/linux-g15/sources/sources$ for package in libg15-1.1.0 libg15render-1.1.1 g15daemon-1.2.6a g15composer-3.0.2
> do
> cd $package
> ./configure --prefix=/usr --enable-ttf
> make
> sudo make install
> cd ..
> done
chmod: changing permissions of `conf6657.sh': Operation not permitted
chmod: changing permissions of `conf6657.file': Operation not permitted
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... no, using cp -p
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... no
checking for g95... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... chmod: changing permissions of `.': Operation not permitted
yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
chmod: changing permissions of `libtool': Operation not permitted
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... chmod: changing permissions of `.': Operation not permitted
yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
chmod: changing permissions of `libtool': Operation not permitted
checking for main in -lusb... yes
checking for ANSI C header files... (cached) yes
checking for string.h... (cached) yes
checking usb.h usability... yes
checking usb.h presence... yes
checking for usb.h... yes
checking for an ANSI C-conforming const... yes
checking for memset... yes
configure: creating ./config.status
chmod: changing permissions of `./config.status': Operation not permitted
chmod: changing permissions of `conf10052.sh': Operation not permitted
chmod: changing permissions of `conf10052.file': Operation not permitted
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
make all-am
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/libg15-1.1.0'
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT libg15.lo -MD -MP -MF ".deps/libg15.Tpo" -c -o libg15.lo libg15.c; \
then mv -f ".deps/libg15.Tpo" ".deps/libg15.Plo"; else rm -f ".deps/libg15.Tpo"; exit 1; fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT libg15.lo -MD -MP -MF .deps/libg15.Tpo -c libg15.c -fPIC -DPIC -o .libs/libg15.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -MT libg15.lo -MD -MP -MF .deps/libg15.Tpo -c libg15.c -o libg15.o >/dev/null 2>&1
/bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o libg15.la -rpath /usr/lib -version-info 1:0:0 libg15.lo -lusb
gcc -shared .libs/libg15.o /usr/lib/libusb.so -Wl,-soname -Wl,libg15.so.1 -o .libs/libg15.so.1.0.0
(cd .libs && rm -f libg15.so.1 && cp -p libg15.so.1.0.0 libg15.so.1)
cp: preserving times for `libg15.so.1': Operation not permitted
make[1]: *** [libg15.la] Error 1
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/libg15-1.1.0'
make: *** [all] Error 2
/bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -o libg15.la -rpath /usr/lib -version-info 1:0:0 libg15.lo -lusb
rm -fr .libs/libg15.so.1 .libs/libg15.so.1.0.0
gcc -shared .libs/libg15.o /usr/lib/libusb.so -Wl,-soname -Wl,libg15.so.1 -o .libs/libg15.so.1.0.0
(cd .libs && rm -f libg15.so.1 && cp -p libg15.so.1.0.0 libg15.so.1)
(cd .libs && rm -f libg15.so && cp -p libg15.so.1.0.0 libg15.so)
ar cru .libs/libg15.a libg15.o
ranlib .libs/libg15.a
creating libg15.la
(cd .libs && rm -f libg15.la && cp -p ../libg15.la libg15.la)
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/libg15-1.1.0'
test -z "/usr/lib" || mkdir -p -- "/usr/lib"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'libg15.la' '/usr/lib/libg15.la'
/usr/bin/install -c .libs/libg15.so.1.0.0 /usr/lib/libg15.so.1.0.0
(cd /usr/lib && { cp -p -f libg15.so.1.0.0 libg15.so.1 || { rm -f libg15.so.1 && cp -p libg15.so.1.0.0 libg15.so.1; }; })
(cd /usr/lib && { cp -p -f libg15.so.1.0.0 libg15.so || { rm -f libg15.so && cp -p libg15.so.1.0.0 libg15.so; }; })
/usr/bin/install -c .libs/libg15.lai /usr/lib/libg15.la
/usr/bin/install -c .libs/libg15.a /usr/lib/libg15.a
ranlib /usr/lib/libg15.a
chmod 644 /usr/lib/libg15.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib
ldconfig: /usr/lib/libg15.so.1 is not a symbolic link

----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/usr/include" || mkdir -p -- "/usr/include"
/usr/bin/install -c -m 644 'libg15.h' '/usr/include/libg15.h'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/libg15-1.1.0'
chmod: changing permissions of `conf10565.sh': Operation not permitted
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for egrep... grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... no, using cp -p
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for epcf90... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for gfortran... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking for correct ltmain.sh version... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
chmod: changing permissions of `libtool': Operation not permitted
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ static flag -static works... yes
checking if g++ supports -c -o file.o... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
appending configuration tag "F77" to libtool
chmod: changing permissions of `libtool': Operation not permitted
checking whether to enable FreeType2 support... yes
checking for writePixmapToLCD in -lg15... yes
checking for ceil in -lm... yes
checking for an ANSI C-conforming const... yes
checking for ANSI C header files... (cached) yes
checking for string.h... (cached) yes
checking ft2build.h usability... yes
checking ft2build.h presence... no
configure: WARNING: ft2build.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: ft2build.h: proceeding with the compiler's result
checking for ft2build.h... yes
checking for ANSI C header files... (cached) yes
checking for memset... yes
configure: creating ./config.status
chmod: changing permissions of `./config.status': Operation not permitted
chmod: changing permissions of `conf13747.sh': Operation not permitted
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
make all-am
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/libg15render-1.1.1'
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT text.lo -MD -MP -MF ".deps/text.Tpo" -c -o text.lo text.c; \
then mv -f ".deps/text.Tpo" ".deps/text.Plo"; else rm -f ".deps/text.Tpo"; exit 1; fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT text.lo -MD -MP -MF .deps/text.Tpo -c text.c -fPIC -DPIC -o .libs/text.o
text.c: In function 'g15r_renderString':
text.c:92: warning: comparison between pointer and integer
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT text.lo -MD -MP -MF .deps/text.Tpo -c text.c -o text.o >/dev/null 2>&1
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT pixel.lo -MD -MP -MF ".deps/pixel.Tpo" -c -o pixel.lo pixel.c; \
then mv -f ".deps/pixel.Tpo" ".deps/pixel.Plo"; else rm -f ".deps/pixel.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT pixel.lo -MD -MP -MF .deps/pixel.Tpo -c pixel.c -fPIC -DPIC -o .libs/pixel.o
pixel.c: In function 'g15r_drawBar':
pixel.c:324: warning: incompatible implicit declaration of built-in function 'ceil'
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT pixel.lo -MD -MP -MF .deps/pixel.Tpo -c pixel.c -o pixel.o >/dev/null 2>&1
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT screen.lo -MD -MP -MF ".deps/screen.Tpo" -c -o screen.lo screen.c; \
then mv -f ".deps/screen.Tpo" ".deps/screen.Plo"; else rm -f ".deps/screen.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT screen.lo -MD -MP -MF .deps/screen.Tpo -c screen.c -fPIC -DPIC -o .libs/screen.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT screen.lo -MD -MP -MF .deps/screen.Tpo -c screen.c -o screen.o >/dev/null 2>&1
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_6x4.lo -MD -MP -MF ".deps/font_6x4.Tpo" -c -o font_6x4.lo font_6x4.c; \
then mv -f ".deps/font_6x4.Tpo" ".deps/font_6x4.Plo"; else rm -f ".deps/font_6x4.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_6x4.lo -MD -MP -MF .deps/font_6x4.Tpo -c font_6x4.c -fPIC -DPIC -o .libs/font_6x4.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_6x4.lo -MD -MP -MF .deps/font_6x4.Tpo -c font_6x4.c -o font_6x4.o >/dev/null 2>&1
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_7x5.lo -MD -MP -MF ".deps/font_7x5.Tpo" -c -o font_7x5.lo font_7x5.c; \
then mv -f ".deps/font_7x5.Tpo" ".deps/font_7x5.Plo"; else rm -f ".deps/font_7x5.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_7x5.lo -MD -MP -MF .deps/font_7x5.Tpo -c font_7x5.c -fPIC -DPIC -o .libs/font_7x5.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_7x5.lo -MD -MP -MF .deps/font_7x5.Tpo -c font_7x5.c -o font_7x5.o >/dev/null 2>&1
if /bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_8x8.lo -MD -MP -MF ".deps/font_8x8.Tpo" -c -o font_8x8.lo font_8x8.c; \
then mv -f ".deps/font_8x8.Tpo" ".deps/font_8x8.Plo"; else rm -f ".deps/font_8x8.Tpo"; exit 1; fi
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_8x8.lo -MD -MP -MF .deps/font_8x8.Tpo -c font_8x8.c -fPIC -DPIC -o .libs/font_8x8.o
gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -MT font_8x8.lo -MD -MP -MF .deps/font_8x8.Tpo -c font_8x8.c -o font_8x8.o >/dev/null 2>&1
/bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -o libg15render.la -rpath /usr/lib -version-info 1:0:0 text.lo pixel.lo screen.lo font_6x4.lo font_7x5.lo font_8x8.lo -lfreetype -lm -lg15
gcc -shared .libs/text.o .libs/pixel.o .libs/screen.o .libs/font_6x4.o .libs/font_7x5.o .libs/font_8x8.o /usr/lib/libfreetype.so -lm /usr/lib/libg15.so -L/usr/lib -Wl,-soname -Wl,libg15render.so.1 -o .libs/libg15render.so.1.0.0
(cd .libs && rm -f libg15render.so.1 && cp -p libg15render.so.1.0.0 libg15render.so.1)
cp: preserving times for `libg15render.so.1': Operation not permitted
make[1]: *** [libg15render.la] Error 1
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/libg15render-1.1.1'
make: *** [all] Error 2
/bin/sh ./libtool --tag=CC --mode=link gcc -g -O2 -I/usr/include/freetype2 -g -O2 -I/usr/include/freetype2 -o libg15render.la -rpath /usr/lib -version-info 1:0:0 text.lo pixel.lo screen.lo font_6x4.lo font_7x5.lo font_8x8.lo -lfreetype -lm -lg15
rm -fr .libs/libg15render.so.1 .libs/libg15render.so.1.0.0
gcc -shared .libs/text.o .libs/pixel.o .libs/screen.o .libs/font_6x4.o .libs/font_7x5.o .libs/font_8x8.o /usr/lib/libfreetype.so -lm /usr/lib/libg15.so -L/usr/lib -Wl,-soname -Wl,libg15render.so.1 -o .libs/libg15render.so.1.0.0
(cd .libs && rm -f libg15render.so.1 && cp -p libg15render.so.1.0.0 libg15render.so.1)
(cd .libs && rm -f libg15render.so && cp -p libg15render.so.1.0.0 libg15render.so)
ar cru .libs/libg15render.a text.o pixel.o screen.o font_6x4.o font_7x5.o font_8x8.o
ranlib .libs/libg15render.a
creating libg15render.la
(cd .libs && rm -f libg15render.la && cp -p ../libg15render.la libg15render.la)
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/libg15render-1.1.1'
test -z "/usr/lib" || mkdir -p -- "/usr/lib"
/bin/sh ./libtool --mode=install /usr/bin/install -c 'libg15render.la' '/usr/lib/libg15render.la'
/usr/bin/install -c .libs/libg15render.so.1.0.0 /usr/lib/libg15render.so.1.0.0
(cd /usr/lib && { cp -p -f libg15render.so.1.0.0 libg15render.so.1 || { rm -f libg15render.so.1 && cp -p libg15render.so.1.0.0 libg15render.so.1; }; })
(cd /usr/lib && { cp -p -f libg15render.so.1.0.0 libg15render.so || { rm -f libg15render.so && cp -p libg15render.so.1.0.0 libg15render.so; }; })
/usr/bin/install -c .libs/libg15render.lai /usr/lib/libg15render.la
/usr/bin/install -c .libs/libg15render.a /usr/lib/libg15render.a
chmod 644 /usr/lib/libg15render.a
ranlib /usr/lib/libg15render.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib
ldconfig: /usr/lib/libg15render.so.1 is not a symbolic link

ldconfig: /usr/lib/libg15.so.1 is not a symbolic link

----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/usr/include" || mkdir -p -- "/usr/include"
/usr/bin/install -c -m 644 'libg15render.h' '/usr/include/libg15render.h'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/libg15render-1.1.1'
chmod: changing permissions of `conf15121.sh': Operation not permitted
chmod: changing permissions of `conf15121.file': Operation not permitted
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for /usr/bin/ld option to reload object files... -r
checking for BSD-compatible nm... /usr/bin/nm -B
checking whether ln -s works... no, using cp -p
checking how to recognise dependent libraries... pass_all
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking dlfcn.h usability... yes
checking dlfcn.h presence... yes
checking for dlfcn.h... yes
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking dependency style of g++... gcc3
checking how to run the C++ preprocessor... g++ -E
checking for g77... no
checking for f77... no
checking for xlf... no
checking for frt... no
checking for pgf77... no
checking for cf77... no
checking for fort77... no
checking for fl32... no
checking for af77... no
checking for f90... no
checking for xlf90... no
checking for pgf90... no
checking for pghpf... no
checking for epcf90... no
checking for gfortran... no
checking for g95... no
checking for f95... no
checking for fort... no
checking for xlf95... no
checking for ifort... no
checking for ifc... no
checking for efc... no
checking for pgf95... no
checking for lf95... no
checking for ftn... no
checking whether we are using the GNU Fortran 77 compiler... no
checking whether accepts -g... no
checking the maximum length of command line arguments... 32768
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for objdir... .libs
checking for ar... ar
checking for ranlib... ranlib
checking for strip... strip
checking if gcc static flag works... yes
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC
checking if gcc PIC flag -fPIC works... yes
checking if gcc supports -c -o file.o... chmod: changing permissions of `.': Operation not permitted
yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
configure: creating libtool
chmod: changing permissions of `libtool': Operation not permitted
appending configuration tag "CXX" to libtool
checking for ld used by g++... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking for g++ option to produce PIC... -fPIC
checking if g++ PIC flag -fPIC works... yes
checking if g++ supports -c -o file.o... chmod: changing permissions of `.': Operation not permitted
yes
checking whether the g++ linker (/usr/bin/ld) supports shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
appending configuration tag "F77" to libtool
chmod: changing permissions of `libtool': Operation not permitted
checking for ranlib... (cached) ranlib
checking for daemon_log in -ldaemon... yes
checking for initLibG15 in -lg15... yes
checking for sin in -lm... yes
checking for pthread_mutex_init in -lpthread... yes
checking for ANSI C header files... (cached) yes
checking for sys/wait.h that is POSIX.1 compatible... yes
checking linux/input.h usability... yes
checking linux/input.h presence... yes
checking for linux/input.h... yes
checking for linux/uinput.h... yes
checking for arpa/inet.h... yes
checking for fcntl.h... yes
checking for stdlib.h... (cached) yes
checking for string.h... (cached) yes
checking for sys/socket.h... yes
checking for unistd.h... (cached) yes
checking for libg15.h... yes
checking for struct uinput_user_dev.id... yes
checking for an ANSI C-conforming const... yes
checking for pid_t... yes
checking for size_t... yes
checking whether gcc needs -traditional... no
checking sys/select.h usability... yes
checking sys/select.h presence... yes
checking for sys/select.h... yes
checking for sys/socket.h... (cached) yes
checking types of arguments for select... int,fd_set *,struct timeval *
checking for strftime... yes
checking for memset... yes
checking for select... yes
checking for socket... yes
checking for strerror... yes
configure: creating ./config.status
chmod: changing permissions of `./config.status': Operation not permitted
chmod: changing permissions of `conf19086.sh': Operation not permitted
chmod: changing permissions of `conf19086.file': Operation not permitted
config.status: creating Makefile
config.status: creating g15daemon/Makefile
config.status: creating libg15daemon_client/Makefile
config.status: creating config.h
config.status: executing depfiles commands
make all-recursive
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
Making all in libg15daemon_client
make[2]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT g15daemon_net.lo -MD -MP -MF ".deps/g15daemon_net.Tpo" -c -o g15daemon_net.lo g15daemon_net.c; \
then mv -f ".deps/g15daemon_net.Tpo" ".deps/g15daemon_net.Plo"; else rm -f ".deps/g15daemon_net.Tpo"; exit 1; fi
mkdir .libs
gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT g15daemon_net.lo -MD -MP -MF .deps/g15daemon_net.Tpo -c g15daemon_net.c -fPIC -DPIC -o .libs/g15daemon_net.o
gcc -DHAVE_CONFIG_H -I. -I. -I.. -g -O2 -MT g15daemon_net.lo -MD -MP -MF .deps/g15daemon_net.Tpo -c g15daemon_net.c -o g15daemon_net.o >/dev/null 2>&1
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o libg15daemon_client.la -rpath /usr/lib -version-info 1:2:0 g15daemon_net.lo -lpthread -lm -lg15 -ldaemon
gcc -shared .libs/g15daemon_net.o -lpthread -lm /usr/lib/libg15.so -L/usr/lib /usr/lib/libdaemon.so -Wl,-soname -Wl,libg15daemon_client.so.1 -o .libs/libg15daemon_client.so.1.0.2
(cd .libs && rm -f libg15daemon_client.so.1 && cp -p libg15daemon_client.so.1.0.2 libg15daemon_client.so.1)
cp: preserving times for `libg15daemon_client.so.1': Operation not permitted
make[2]: *** [libg15daemon_client.la] Error 1
make[2]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
make: *** [all] Error 2
Making install in libg15daemon_client
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o libg15daemon_client.la -rpath /usr/lib -version-info 1:2:0 g15daemon_net.lo -lpthread -lm -lg15 -ldaemon
rm -fr .libs/libg15daemon_client.so.1 .libs/libg15daemon_client.so.1.0.2
gcc -shared .libs/g15daemon_net.o -lpthread -lm /usr/lib/libg15.so -L/usr/lib /usr/lib/libdaemon.so -Wl,-soname -Wl,libg15daemon_client.so.1 -o .libs/libg15daemon_client.so.1.0.2
(cd .libs && rm -f libg15daemon_client.so.1 && cp -p libg15daemon_client.so.1.0.2 libg15daemon_client.so.1)
(cd .libs && rm -f libg15daemon_client.so && cp -p libg15daemon_client.so.1.0.2 libg15daemon_client.so)
ar cru .libs/libg15daemon_client.a g15daemon_net.o
ranlib .libs/libg15daemon_client.a
creating libg15daemon_client.la
(cd .libs && rm -f libg15daemon_client.la && cp -p ../libg15daemon_client.la libg15daemon_client.la)
make[2]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
test -z "/usr/lib" || mkdir -p -- "/usr/lib"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'libg15daemon_client.la' '/usr/lib/libg15daemon_client.la'
/usr/bin/install -c .libs/libg15daemon_client.so.1.0.2 /usr/lib/libg15daemon_client.so.1.0.2
(cd /usr/lib && { cp -p -f libg15daemon_client.so.1.0.2 libg15daemon_client.so.1 || { rm -f libg15daemon_client.so.1 && cp -p libg15daemon_client.so.1.0.2 libg15daemon_client.so.1; }; })
cp: `libg15daemon_client.so.1.0.2' and `libg15daemon_client.so.1' are the same file
(cd /usr/lib && { cp -p -f libg15daemon_client.so.1.0.2 libg15daemon_client.so || { rm -f libg15daemon_client.so && cp -p libg15daemon_client.so.1.0.2 libg15daemon_client.so; }; })
/usr/bin/install -c .libs/libg15daemon_client.lai /usr/lib/libg15daemon_client.la
/usr/bin/install -c .libs/libg15daemon_client.a /usr/lib/libg15daemon_client.a
ranlib /usr/lib/libg15daemon_client.a
chmod 644 /usr/lib/libg15daemon_client.a
PATH="$PATH:/sbin" ldconfig -n /usr/lib
ldconfig: /usr/lib/libg15render.so.1 is not a symbolic link

ldconfig: /usr/lib/libg15daemon_client.so.1 is not a symbolic link

ldconfig: /usr/lib/libg15.so.1 is not a symbolic link

----------------------------------------------------------------------
Libraries have been installed in:
/usr/lib

If you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR'
flag during linking and do at least one of the following:
- add LIBDIR to the `LD_LIBRARY_PATH' environment variable
during execution
- add LIBDIR to the `LD_RUN_PATH' environment variable
during linking
- use the `-Wl,--rpath -Wl,LIBDIR' linker flag
- have your system administrator add LIBDIR to `/etc/ld.so.conf'

NZ-Wanderer
December 8th, 2006, 04:58 AM
heres the rest of it



See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
test -z "/usr/include" || mkdir -p -- "/usr/include"
/usr/bin/install -c -m 644 'g15daemon_client.h' '/usr/include/g15daemon_client.h'
make[2]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/libg15daemon_client'
Making install in g15daemon
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/g15daemon'
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT lcdclient_test.o -MD -MP -MF ".deps/lcdclient_test.Tpo" -c -o lcdclient_test.o lcdclient_test.c; \
then mv -f ".deps/lcdclient_test.Tpo" ".deps/lcdclient_test.Po"; else rm -f ".deps/lcdclient_test.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o g15daemontest lcdclient_test.o ../libg15daemon_client/libg15daemon_client.la -lpthread -lm -lg15 -ldaemon
mkdir .libs
gcc -g -O2 -o .libs/g15daemontest lcdclient_test.o ../libg15daemon_client/.libs/libg15daemon_client.so -lpthread -lm /usr/lib/libg15.so /usr/lib/libusb.so /usr/lib/libdaemon.so
creating g15daemontest
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT g15_net.o -MD -MP -MF ".deps/g15_net.Tpo" -c -o g15_net.o g15_net.c; \
then mv -f ".deps/g15_net.Tpo" ".deps/g15_net.Po"; else rm -f ".deps/g15_net.Tpo"; exit 1; fi
g15_net.c: In function ‘process_client_cmds’:
g15_net.c:126: warning: assignment from incompatible pointer type
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT g15_uinput.o -MD -MP -MF ".deps/g15_uinput.Tpo" -c -o g15_uinput.o g15_uinput.c; \
then mv -f ".deps/g15_uinput.Tpo" ".deps/g15_uinput.Po"; else rm -f ".deps/g15_uinput.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT utility_funcs.o -MD -MP -MF ".deps/utility_funcs.Tpo" -c -o utility_funcs.o utility_funcs.c; \
then mv -f ".deps/utility_funcs.Tpo" ".deps/utility_funcs.Po"; else rm -f ".deps/utility_funcs.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT main.o -MD -MP -MF ".deps/main.Tpo" -c -o main.o main.c; \
then mv -f ".deps/main.Tpo" ".deps/main.Po"; else rm -f ".deps/main.Tpo"; exit 1; fi
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT linked_lists.o -MD -MP -MF ".deps/linked_lists.Tpo" -c -o linked_lists.o linked_lists.c; \
then mv -f ".deps/linked_lists.Tpo" ".deps/linked_lists.Po"; else rm -f ".deps/linked_lists.Tpo"; exit 1; fi
linked_lists.c: In function ‘lcdnode_remove’:
linked_lists.c:126: warning: comparison of distinct pointer types lacks a cast
if gcc -DHAVE_CONFIG_H -I. -I. -I.. -I../libg15daemon_client/ -g -O2 -MT gfx_primitives.o -MD -MP -MF ".deps/gfx_primitives.Tpo" -c -o gfx_primitives.o gfx_primitives.c; \
then mv -f ".deps/gfx_primitives.Tpo" ".deps/gfx_primitives.Po"; else rm -f ".deps/gfx_primitives.Tpo"; exit 1; fi
/bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -o g15daemon g15_net.o g15_uinput.o utility_funcs.o main.o linked_lists.o gfx_primitives.o -lpthread -lm -lg15 -ldaemon
gcc -g -O2 -o g15daemon g15_net.o g15_uinput.o utility_funcs.o main.o linked_lists.o gfx_primitives.o -lpthread -lm /usr/lib/libg15.so /usr/lib/libusb.so /usr/lib/libdaemon.so
make[2]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/g15daemon'
test -z "/usr/sbin" || mkdir -p -- "/usr/sbin"
/bin/sh ../libtool --mode=install /usr/bin/install -c 'g15daemon' '/usr/sbin/g15daemon'
/usr/bin/install -c g15daemon /usr/sbin/g15daemon
make[2]: Nothing to be done for `install-data-am'.
make[2]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/g15daemon'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a/g15daemon'
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
make[2]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
make[2]: Nothing to be done for `install-exec-am'.
test -z "/usr/share/doc/g15daemon-1.2.6a" || mkdir -p -- "/usr/share/doc/g15daemon-1.2.6a"
/usr/bin/install -c -m 644 'FAQ' '/usr/share/doc/g15daemon-1.2.6a/FAQ'
/usr/bin/install -c -m 644 'README.usage' '/usr/share/doc/g15daemon-1.2.6a/README.usage'
/usr/bin/install -c -m 644 'README' '/usr/share/doc/g15daemon-1.2.6a/README'
/usr/bin/install -c -m 644 'ChangeLog' '/usr/share/doc/g15daemon-1.2.6a/ChangeLog'
/usr/bin/install -c -m 644 'TODO' '/usr/share/doc/g15daemon-1.2.6a/TODO'
/usr/bin/install -c -m 644 'AUTHORS' '/usr/share/doc/g15daemon-1.2.6a/AUTHORS'
/usr/bin/install -c -m 644 'NEWS' '/usr/share/doc/g15daemon-1.2.6a/NEWS'
/usr/bin/install -c -m 644 'LICENSE' '/usr/share/doc/g15daemon-1.2.6a/LICENSE'
test -z "/usr/share/man/man1" || mkdir -p -- "/usr/share/man/man1"
/usr/bin/install -c -m 644 '././Documentation/g15daemon.1' '/usr/share/man/man1/g15daemon.1'
test -z "/usr/share/man/man3" || mkdir -p -- "/usr/share/man/man3"
/usr/bin/install -c -m 644 '././Documentation/g15daemon_client_devel.3' '/usr/share/man/man3/g15daemon_client_devel.3'
make[2]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15daemon-1.2.6a'
chmod: changing permissions of `conf20263.sh': Operation not permitted
chmod: changing permissions of `conf20263.file': Operation not permitted
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for style of include used by make... GNU
checking dependency style of gcc... gcc3
checking for flex... no
checking for lex... no
checking for yywrap in -lfl... no
checking for yywrap in -ll... no
checking for bison... no
checking for byacc... no
checking whether to enable FreeType2 support... checking for g15r_ttfLoad in -lg15render... yes
yes
checking for g15_send in -lg15daemon_client... yes
checking for g15r_initCanvas in -lg15render... yes
checking for pthread_create in -lpthread... yes
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking sys/socket.h usability... yes
checking sys/socket.h presence... yes
checking for sys/socket.h... yes
checking for sys/stat.h... (cached) yes
checking libg15.h usability... yes
checking libg15.h presence... yes
checking for libg15.h... yes
checking libg15render.h usability... yes
checking libg15render.h presence... no
configure: WARNING: libg15render.h: accepted by the compiler, rejected by the preprocessor!
configure: WARNING: libg15render.h: proceeding with the compiler's result
checking for libg15render.h... yes
checking g15daemon_client.h usability... yes
checking g15daemon_client.h presence... yes
checking for g15daemon_client.h... yes
checking for an ANSI C-conforming const... yes
configure: creating ./config.status
chmod: changing permissions of `./config.status': Operation not permitted
chmod: changing permissions of `conf21406.sh': Operation not permitted
chmod: changing permissions of `conf21406.file': Operation not permitted
config.status: creating Makefile
config.status: creating config.h
config.status: executing depfiles commands
make all-am
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15composer-3.0.2'
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -MT g15composer.o -MD -MP -MF ".deps/g15composer.Tpo" -c -o g15composer.o g15composer.c; \
then mv -f ".deps/g15composer.Tpo" ".deps/g15composer.Po"; else rm -f ".deps/g15composer.Tpo"; exit 1; fi
g15composer.c: In function ‘threadEntry’:
g15composer.c:123: warning: passing argument 1 of ‘fclose’ makes pointer from integer without a cast
g15composer.c:147: warning: passing argument 1 of ‘pthread_exit’ makes pointer from integer without a cast
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -MT g15composer.tab.o -MD -MP -MF ".deps/g15composer.tab.Tpo" -c -o g15composer.tab.o g15composer.tab.c; \
then mv -f ".deps/g15composer.tab.Tpo" ".deps/g15composer.tab.Po"; else rm -f ".deps/g15composer.tab.Tpo"; exit 1; fi
g15composer.y: In function ‘yyparse’:
g15composer.y:433: warning: pointer targets in passing argument 2 of ‘g15r_renderString’ differ in signedness
g15composer.y:450: warning: pointer targets in passing argument 2 of ‘g15r_renderString’ differ in signedness
g15composer.y:467: warning: pointer targets in passing argument 2 of ‘g15r_renderString’ differ in signedness
g15composer.y:490: warning: pointer targets in passing argument 2 of ‘g15r_renderString’ differ in signedness
g15composer.y:493: warning: pointer targets in passing argument 2 of ‘g15r_renderString’ differ in signedness
if gcc -DHAVE_CONFIG_H -I. -I. -I. -g -O2 -I/usr/include/freetype2 -MT g15composer.lex.o -MD -MP -MF ".deps/g15composer.lex.Tpo" -c -o g15composer.lex.o g15composer.lex.c; \
then mv -f ".deps/g15composer.lex.Tpo" ".deps/g15composer.lex.Po"; else rm -f ".deps/g15composer.lex.Tpo"; exit 1; fi
g15composer.l: In function ‘yylex’:
g15composer.l:63: warning: assignment makes integer from pointer without a cast
gcc -g -O2 -I/usr/include/freetype2 -o g15composer g15composer.o g15composer.tab.o g15composer.lex.o -lpthread -lg15render -lg15daemon_client
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15composer-3.0.2'
make[1]: Entering directory `/media/Go-Between/linux-g15/sources/sources/g15composer-3.0.2'
test -z "/usr/bin" || mkdir -p -- "/usr/bin"
/usr/bin/install -c 'g15composer' '/usr/bin/g15composer'
test -z "/usr/share/doc/g15composer-3.0.2" || mkdir -p -- "/usr/share/doc/g15composer-3.0.2"
/usr/bin/install -c -m 644 'AUTHORS' '/usr/share/doc/g15composer-3.0.2/AUTHORS'
/usr/bin/install -c -m 644 'ChangeLog' '/usr/share/doc/g15composer-3.0.2/ChangeLog'
/usr/bin/install -c -m 644 'COPYING' '/usr/share/doc/g15composer-3.0.2/COPYING'
/usr/bin/install -c -m 644 'NEWS' '/usr/share/doc/g15composer-3.0.2/NEWS'
/usr/bin/install -c -m 644 'README' '/usr/share/doc/g15composer-3.0.2/README'
test -z "/usr/share/man/man1" || mkdir -p -- "/usr/share/man/man1"
/usr/bin/install -c -m 644 '././doc/g15composer.1' '/usr/share/man/man1/g15composer.1'
make[1]: Leaving directory `/media/Go-Between/linux-g15/sources/sources/g15composer-3.0.2'
john@kubuntu:/media/Go-Between/linux-g15/sources/sources$

Aneurysm9
December 8th, 2006, 05:03 AM
Looks like everything is ok. Those errors might happen if the user building the packages doesn't own the files it's building from. It looks like everything built and installed fine though.

NZ-Wanderer
December 8th, 2006, 05:07 AM
Ummm so what do I do now?? - or don't I have to do anything else??

Anyway, thanks very much, that's the very first thing I have ever built from source, usually I try to find something in the package managers... :)


Looks like everything is ok. Those errors might happen if the user building the packages doesn't own the files it's building from. It looks like everything built and installed fine though.

Aneurysm9
December 8th, 2006, 05:14 AM
Now you can start g15daemon (sudo g15daemon) and g15composer (g15composer ~/g15lcd&) and start finding things to do with the lcd. You can get lcdproc, which you'll have to build from source, but it should be easy now that you've done it before. Same thing, download, extract, configure, make, install. The configure step is the only one that really changes. For lcdproc, drop the --enable-ttf and add --enable-drivers=g15 since we want to build the g15 driver. Then start LCDd and lcdproc. Check out http://lcdproc.omnipotent.net/

NZ-Wanderer
December 8th, 2006, 05:19 AM
Ummmm I still got the time displayed on the G15 (withoput starting anything)... does that mean it starting automatically without me telling it to??

will see if I can do the other stuff you mentioned and will check out that web site..

Thanks again for you help and your patience :)


Now you can start g15daemon (sudo g15daemon) and g15composer (g15composer ~/g15lcd&) and start finding things to do with the lcd. You can get lcdproc, which you'll have to build from source, but it should be easy now that you've done it before. Same thing, download, extract, configure, make, install. The configure step is the only one that really changes. For lcdproc, drop the --enable-ttf and add --enable-drivers=g15 since we want to build the g15 driver. Then start LCDd and lcdproc. Check out http://lcdproc.omnipotent.net/

Aneurysm9
December 8th, 2006, 07:35 AM
You can restart g15daemon to be sure you're running the current version.

sudo killall g15daemon && sudo g15daemon

NZ-Wanderer
December 8th, 2006, 11:57 AM
Thanks for that, I had to alter the time in Kubuntu cause something had made it go wrong, and couldn't figure out how to get the time changed on the keyboard, your kill command fixed it perfectly :) :)

I got this when I did it.

john@kubuntu:/$ sudo killall g15daemon && sudo g15daemon
Password:
Process 4805 died: No such process; removing PID file. (/var/run/g15daemon.pid)
john@kubuntu:/$


You can restart g15daemon to be sure you're running the current version.
sudo killall g15daemon && sudo g15daemon

Aneurysm9
December 8th, 2006, 10:10 PM
Looks like g15daemon had died, but was still displaying the clock. That can happen if g15daemon doesn't exit cleanly and with older versions of libg15/g15daemon even when they did exit cleanly. Now, when g15daemon exits, you should see the logitech logo again.

NZ-Wanderer
December 8th, 2006, 11:29 PM
Hmmm, I just did it again to see what happens, and got the following:

john@kubuntu:~$ sudo killall g15daemon && sudo g15daemon
g15daemon: no process killed
john@kubuntu:~$

Does this mean I did something wrong in my instalation yesterday??

I did try to put the clock on that was mentioned a few pages back, but got lots of errors cause I didn't have the right files (I concluded that it had been done for edgy) - could that have maybe stuffed something up?

Hmmm looks like the clock has stopped on the keyboard, might have to reboot the computer...

Soon as I get the clock working properly I want to see if I can get the G keys working, cause I got big plans for those (saving lots of typing in commands into terminal etc :) :)

Ohwell, off to reboot computer to get clock working again...

On a side note: it seems kinda wierd that I get the clock coming up on the keyboard, but I have never actually typed in the commands to get it to auto start or anything, it just appears..

Regards - John...

Update, rebooted computer, and up came the G15 for Linux logo and then the time even before I had a chance to type in my password to login :) :)

Aneurysm9
December 9th, 2006, 05:52 AM
Update, rebooted computer, and up came the G15 for Linux logo and then the time even before I had a chance to type in my password to login

Cool. Does that mean everything's working for you? The G keys probably won't be useful for much except extra keys to bind to window manager functions right now, but mlampard is working on macro support for the new version of g15daemon. Not sure when it'll be out, still got to get all the features in and then some time for bughunting, but it's coming.

NZ-Wanderer
December 9th, 2006, 06:25 AM
Well I took the plunge and updated today to Kubuntu Edgy.. - the first thing I did after rebooting was grab your little clock to see if it would install now...
Thank you very much, the clock looks and works great on my Keyboard :) :)


Hi everyone. My small tribute for g15 packages.
I'm using g15daemon_1.2.1 on Kubuntu 6.10.
This is nice clock client for G15. Please try it and tell...

NZ-Wanderer
December 9th, 2006, 06:41 AM
Yup, everything seems to be great now.. - I rebooted after loading that little clock I mentioned in the previous thread, and it loaded up before I had the chance to type in my password on login (saw the BIG clock for a second before the other clock came up)

I get the sign "g15composer" come up when I load Amarok, but when I start a mp3 the g15 just goes blank, but I not worrying about that at present...

I'll be nice and patient and not ask about the G keys since you say it's on the way sometime :mrgreen:

Thanks for all the help, it's much appreciated..


Cool. Does that mean everything's working for you? The G keys probably won't be useful for much except extra keys to bind to window manager functions right now, but mlampard is working on macro support for the new version of g15daemon. Not sure when it'll be out, still got to get all the features in and then some time for bughunting, but it's coming.

ChadMC
December 11th, 2006, 09:53 PM
I recently reinstalled Ubuntu, and I'm trying to get lcdproc working again. I'm compiling it from source. And I'm doing a ./configure --enable-drivers=g15

But when I try to run LCDd, I get this error:

Could not open driver module server/drivers/g15.so: server/drivers/g15.so: cannot open shared object file: No such file or directory
Driver [g15] binding failed
Could not load driver g15
There is no output driver
Critical error while initializing, abort.

I've tried this multiple times with no luck. I've even tried the CVS nightly build. Same result. What am I doing wrong? There is no g15.so file on my computer.

Aneurysm9
December 11th, 2006, 10:06 PM
Check the driver path in /etc/LCDd.conf (/usr/local/etc/LCDd.conf if you didn't specify --prefix=/usr). I have DriverPath=/usr/local/lib/lcdproc/ because I used the default --prefix of /usr/local.

Giblet5
December 12th, 2006, 07:22 PM
I just got my G15 and I've read through every posting. Ever. Anywhere.

My g15daemon is running (no errors).

My g15composer is running with the default /var/run/g15composer fifo.

I have rebooted (having modified /etc/modules to load uinput).

My g15 lcd displays the Logitech logo and nothing else.

ps -ef | grep g15
shows me that the daemon and composer are running.

Echoing commands out to the fifo causes no errors and doesn't change the LCD display.

It works fine in Vista.

Any ideas?

ChadMC
December 12th, 2006, 08:01 PM
Check the driver path in /etc/LCDd.conf (/usr/local/etc/LCDd.conf if you didn't specify --prefix=/usr). I have DriverPath=/usr/local/lib/lcdproc/ because I used the default --prefix of /usr/local.

It's like it's not creating any drivers folder anywhere. I tried --prefix=/usr this time and there is no /usr/lib/lcdproc folder. Doing a search for g15.so turns up nothing.. I'm not sure what's going on, but it's not installing it correctly. My DriverPath defaults to server/drivers in the LCDd.conf

edit: okay there is a /usr/lib/lcdproc folder but it's empty.

Aneurysm9
December 12th, 2006, 09:09 PM
Do you get anything in your logs that might be helpful? What's /proc/bus/usb/devices have to say for itself?

Aneurysm9
December 12th, 2006, 09:11 PM
ChadMC,

server/drivers won't work for DriverPath, gotta change it to the actual path. try doing "sudo make install" in the lcdproc-5.1/server/drivers directory to see if that installs the driver. If not, check to see if g15.so is even being created in the build dir.

ChadMC
December 12th, 2006, 09:34 PM
ChadMC,

server/drivers won't work for DriverPath, gotta change it to the actual path. try doing "sudo make install" in the lcdproc-5.1/server/drivers directory to see if that installs the driver. If not, check to see if g15.so is even being created in the build dir.

It didn't do anything. I tried doing a --enable-drivers=all and then did a 'sudo make install' inside the server/drivers folder, and it installed a bunch of drivers, but it didn't install the g15.so driver...

EDIT: okay, here's the problem.. I just don't know how to fix it. Check this out..

configure: checking for which drivers to compile...
checking g15daemon_client.h usability... no
checking g15daemon_client.h presence... no
checking for g15daemon_client.h... no
configure: WARNING: The g15 driver needs g15daemon_client.h
checking libg15render.h usability... no
checking libg15render.h presence... no
checking for libg15render.h... no
configure: WARNING: The g15driver needs libg15render.h


ONE MORE EDIT:
I fixed it! I just needed some of the dev packages installed that are included in the first post on here.

Giblet5
December 12th, 2006, 11:25 PM
Do you get anything in your logs that might be helpful? What's /proc/bus/usb/devices have to say for itself?

I dunno if you meant me, or someone else, so I'll reply!

/proc/bus/usb/devices has this on the G15:
T: Bus=05 Lev=03 Prnt=06 Port=00 Cnt=01 Dev#= 8 Spd=1.5 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c221 Rev= 1.70
S: Manufacturer=Logitech
S: Product=Logitech Gaming Keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms

Aneurysm9
December 13th, 2006, 08:28 AM
ChadMC, yeah, sorry. I use Gentoo so I tend to forget that some people need the dev packages to get things to work right.

Giblet, There should be another one with ProdID c222, can you post that segment too?

Giblet5
December 13th, 2006, 02:25 PM
[QUOTE=Giblet, There should be another one with ProdID c222, can you post that segment too?[/QUOTE]

Sure, and I really appreciate the help.

T: Bus=05 Lev=02 Prnt=03 Port=02 Cnt=01 Dev#= 6 Spd=12 MxCh= 4
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c223 Rev= 1.03
S: Manufacturer=Logitech
S: Product=Logitech G15 Keyboard
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=255ms

T: Bus=05 Lev=03 Prnt=06 Port=00 Cnt=01 Dev#= 8 Spd=1.5 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c221 Rev= 1.70
S: Manufacturer=Logitech
S: Product=Logitech Gaming Keyboard
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=01 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms
I: If#= 1 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=00 Prot=00 Driver=usbhid
E: Ad=82(I) Atr=03(Int.) MxPS= 8 Ivl=10ms

T: Bus=05 Lev=03 Prnt=06 Port=03 Cnt=02 Dev#= 9 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c222 Rev= 1.03
S: Manufacturer=G15 Keyboard
S: Product=G15 Keyboard
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=03(HID ) Sub=00 Prot=00 Driver=usbfs
E: Ad=81(I) Atr=03(Int.) MxPS= 32 Ivl=1ms
E: Ad=02(O) Atr=03(Int.) MxPS= 32 Ivl=1ms

T: Bus=05 Lev=02 Prnt=03 Port=03 Cnt=02 Dev#= 7 Spd=1.5 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=046d ProdID=c506 Rev=16.00
S: Manufacturer=Logitech
S: Product=USB Receiver
C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=03(HID ) Sub=01 Prot=02 Driver=usbhid
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=10ms

Aneurysm9
December 13th, 2006, 10:09 PM
Ok, looks good so far. It looks like libg15 has attached to the device. Is there anything in /var/log/messages from g15daemon?

Giblet5
December 14th, 2006, 09:25 PM
Ok, looks good so far. It looks like libg15 has attached to the device. Is there anything in /var/log/messages from g15daemon?

kernel: [17195605.028000] usb 1-3.3.4: usbfs: process 29901 (g15daemon) did not claim interface 0 before use

Hmmm. That would be correct; g15daemon starts long after the interface is in use... And?

(Wish I had time to just learn how the USB subsystem works...)

Aneurysm9
December 14th, 2006, 10:50 PM
I haven't seen that one before. Try asking mlampard over at the g15daemon forums on sf.net. He'll probably know more about why it might do that than me. http://sourceforge.net/forum/?group_id=172261

mlampard
December 15th, 2006, 01:49 AM
"process 29901 (g15daemon) did not claim interface 0 before use" is a bug in g15daemon <=1.2.6a, which has been fixed in the SVN versions. The actual cause is likely that libusb couldnt access the /proc/bus/usb/ mountpoint. If you check the contents of that directory, does it contain anything? If not, you'll have to mount it manually:

mount -t usbfs none /proc/bus/usb

Please let me know if that doesnt fix it for you.
Cheers.

Giblet5
December 15th, 2006, 02:48 PM
"process 29901 (g15daemon) did not claim interface 0 before use" is a bug in g15daemon <=1.2.6a, which has been fixed in the SVN versions. The actual cause is likely that libusb couldnt access the /proc/bus/usb/ mountpoint. If you check the contents of that directory, does it contain anything? If not, you'll have to mount it manually:

mount -t usbfs none /proc/bus/usb

Please let me know if that doesnt fix it for you.
Cheers.

Thanks for the help Aneurism9!

Yes, it does, mlampard:

~$ ls /proc/bus/usb
001 002 003 004 005 devices

Testing whether it exists at the point where g15daemon starts, I verified the mount, ran g15daemon -k and then started g15daemon again. Same message in /var/log/messages and no change to the g15's LCD (Logitech logo).

Is that fix in the svn for g15daemon, or for libg15?

Do you have the subversion urls handy for those newer bits? I'll go ahead and build them anew.

Current:
G15Daemon version 1.2.6a - Loaded & Running
compiled with libg15 version 1.100

Many thanks folks!

mlampard
December 15th, 2006, 04:06 PM
Giblet5:
Use libg15-1.1.1 or libg15 svn version available via
svn co https://g15tools.svn.sourceforge.net/svnroot/g15tools/trunk/libg15 libg15

Current g15daemon 1.2 svn version is available from
svn co https://g15daemon.svn.sourceforge.net/svnroot/g15daemon/trunk/g15daemon g15daemon

Once compiled and installed, run g15daemon with the --debug option, and it should/will tell us what is wrong.

Giblet5
December 15th, 2006, 05:56 PM
Giblet5:
Use libg15-1.1.1 or libg15 svn version available via
svn co https://g15tools.svn.sourceforge.net/svnroot/g15tools/trunk/libg15 libg15

Current g15daemon 1.2 svn version is available from
svn co https://g15daemon.svn.sourceforge.net/svnroot/g15daemon/trunk/g15daemon g15daemon

Once compiled and installed, run g15daemon with the --debug option, and it should/will tell us what is wrong.

Thanks.

G15Daemon version 1.2svn - Loaded & Running
compiled with libg15 version 1.100

I verified that libg15.so was 1.1.1 but the version still shows up as 1.100. Without looking into it too deeply, I suspect this line:
#define LIBG15_VERSION 1100
in libg15.h

I still have the Logitech logo, and commands to the g15composer fifo do nothing. I haven't rebooted yet...

The only message in /var/log/messages was:
kernel: [17193667.408000] input: G15 Extra Keys as /c
lass/input/input8

I'll reboot when I do lunch.

Thanks again!

Update:
No joy. The --debug option doesn't help much; the output is:
root@puddles:/# g15daemon --debug
g15daemon 1.2svn loaded

And it waits for exit/interrupt.

mlampard
December 16th, 2006, 04:20 AM
G15Daemon version 1.2svn - Loaded & Running
compiled with libg15 version 1.100

I verified that libg15.so was 1.1.1 but the version still shows up as 1.100. Without looking into it too deeply, I suspect this line:
#define LIBG15_VERSION 1100
in libg15.h

Yep, that looks likely.

libg15 has debugging as well, the current version needs a define to enable it. Would you uncomment the #define DEBUG at the top of libg15.c in the libg15 directory, and make && make install? Running g15daemon --debug will hopefully have a bit more output, if the problem is there. Generally speaking, both libg15 and g15daemon only display debugging messages if a problem was detected, so little or no output can be regarded as a good thing, in most cases.

What versions of the kernel & libusb are you running?

Giblet5
December 18th, 2006, 02:24 PM
Yep, that looks likely.

libg15 has debugging as well, the current version needs a define to enable it. Would you uncomment the #define DEBUG at the top of libg15.c in the libg15 directory, and make && make install? Running g15daemon --debug will hopefully have a bit more output, if the problem is there. Generally speaking, both libg15 and g15daemon only display debugging messages if a problem was detected, so little or no output can be regarded as a good thing, in most cases.

What versions of the kernel & libusb are you running?

I'm on Edgy (2.6.10-17).

The problem appears to be caused by plugging the USB cable from my KVM into an external hub. I moved the KVM cable to the back of the PC (2nd USB 2.0 controller) and all is well. The KVM is, itself, a USB hub. Apparently, that doesn't work (Port->hub->hub->kbd/hub).

I added a root cron job that restarts the daemon every five minutes. Now, when I switch to another system and switch back, it eventually starts displaying stats again.

That could be corrected in g15daemon if there were some way to detect the usb disconnect notifications. I can see them in dmesg.

Thanks for all the help, mlampard. My laziness(using the hub vs plugging it into an unused USB controller) got the best of me. Again.

mlampard
December 18th, 2006, 02:40 PM
ok, thanks for the info Giblet5. Are your hubs/kvm self-powered? ie, do they have a power brick plugged into them? The g15 as been known to have problems when plugged into kvm switches (even on windows, apparently), and it needs a reasonable amount of power, which may account for some of the weirdness you're seeing :)

Current libg15 & g15daemon svn versions (as of yesterday) have basic support for automatically reconnecting the keyboard on disconnect - perhaps you might find that a better solution than the cron job.

Giblet5
December 18th, 2006, 05:32 PM
ok, thanks for the info Giblet5. Are your hubs/kvm self-powered? ie, do they have a power brick plugged into them? The g15 as been known to have problems when plugged into kvm switches (even on windows, apparently), and it needs a reasonable amount of power, which may account for some of the weirdness you're seeing :)

Current libg15 & g15daemon svn versions (as of yesterday) have basic support for automatically reconnecting the keyboard on disconnect - perhaps you might find that a better solution than the cron job.

Yeah. I have a 2A brick hanging off the KVM. The keyboard won't work at all without it. The hub and the LCD in the G15 appear to be the culprits. The G15, when you enable the hub, draws 400ma, and that isn't even powering the LCD or LEDs yet.

Wait til they release that color LCD model... Yikes.

NZ-Wanderer
December 18th, 2006, 06:55 PM
I have a little problem, I had to reinstall Edgy and therefore everything else...
I followed all the steps I did last time, but when I type sudo g15daemon I get:

john@Kubuntu:~$ sudo g15daemon
Password:
An Error Occurred - 3 : ( Unable to configure the linux kernel UINPUT driver ) received
john@Kubuntu:~$

What have I done wrong please???

mlampard
December 19th, 2006, 10:14 AM
NZ-Wanderer: have you loaded the uinput driver into the kernel? Try running "modprobe uinput" as root, then running g15daemon again.

NZ-Wanderer
December 19th, 2006, 12:23 PM
Thank you, that worked perfectly :) :) - I now have the big clock again....


NZ-Wanderer: have you loaded the uinput driver into the kernel? Try running "modprobe uinput" as root, then running g15daemon again.

gbesso
December 26th, 2006, 04:16 PM
Is it just me or does this not work with the 2.6.19.1 kernel?

mlampard
December 27th, 2006, 04:41 AM
Versions of libg15 prior to 1.1.1 have problems with kernels later than 2.6.17 - are you using an earlier version? If you're running the latest version, please post the output of g15daemon -d to the g15daemon forums at sourceforge.

KClaisse
December 27th, 2006, 06:26 AM
Well my system recently dumped and now I find myself reinstalling this again. ](*,)

Much easier this time though.
I got the scripts to start at boot and g15composer and g15daemon are working just fine.

The only problem I have now, is the amarok script doesn't show the artist, album, or track name. I thought it was supposed to.

This is the script I used (http://g15tools.svn.sourceforge.net/viewvc/*checkout*/g15tools/tags/g15composer-3.0/examples/amarok-g15-dcop_cli.pl?revision=219)

EDIT:
Also, the script gives this error:


Error: syntax error, unexpected T_NUMBER
Error: syntax error, unexpected T_NUMBER, expecting T_STRING or T_NEWLINE

Aneurysm9
December 28th, 2006, 01:04 AM
Kclaisse:

That looks like the script that shipped with g15composer-3.0. it's been updated a bit since then. Pleas try the version from svn head here http://g15tools.svn.sourceforge.net/viewvc/*checkout*/g15tools/trunk/g15composer/examples/amarok-g15-dcop_cli.pl?revision=207. Also, on ubuntu you need to modify the font path by adding "truetype/" between "...fonts/" and "ttf-bitstream..." at line 23. That's probably why it's not showing the artist or album. Not sure about those errors, unfortunately g15composer's error handling isn't very informative right now, I'll look into making it give line numbers or something like that.

Spatulas
January 3rd, 2007, 09:46 AM
Hey, I compiled everything with ttf support (./configure --enable-ttf), but I still can't get ttf fonts to display. Can anyone help?

Aneurysm9
January 3rd, 2007, 01:38 PM
Do you get any error messages when you attempt to print with a ttf font?

Spatulas
January 3rd, 2007, 09:34 PM
Do you get any error messages when you attempt to print with a ttf font?

I'm not sure how I would tell if I got any errors, as the script that's trying to use the fonts automatically starts g15daemon for me, and is a amarok plugin.

Aneurysm9
January 3rd, 2007, 09:41 PM
You can comment out the code that starts g15composer in the script and start g15composer manually in a terminal window before you start the script. That should let you see any errors in the terminal window. Which amarok script are you trying to use?

Spatulas
January 3rd, 2007, 09:49 PM
You can comment out the code that starts g15composer in the script and start g15composer manually in a terminal window before you start the script. That should let you see any errors in the terminal window. Which amarok script are you trying to use?

I'm using an amalgamation of the latest script and revision 158 of the script from here:
http://g15tools.svn.sourceforge.net/viewvc/*checkout*/g15tools/trunk/g15composer/examples/amarok-g15-dcop_cli.pl
Also modified it a bit. Here's the thing though; if I don't start g15composer EXACTLY the way I do in the script (I have it run a custom sh script) it doesn't work with the pipe correctly, so I can't see and errors. I'm playing with it, but no luck so far.

Spatulas
January 3rd, 2007, 09:55 PM
Scratch that, got it working outside of the script. No errors that I could see.

EDIT: Erm, by got it working, I mean I got the g15composer runing outside of the script. Still no fonts.

EDIT2: Oops. It seems that my install has my truetype fonts in a different location than what is specified in the script. Changed the path to thefont, and all worked. Thanks for the help.

PhilippHD
January 9th, 2007, 01:58 PM
My problem sounds pretty similar.
When runnign amarok the lcd shows the track progress, total track length and the progress bar. Everything else is missing. The font-path is specified correctly.
When using g15composer and the echo-command I can write stuff on the display. Clock is working too.

I got, made and (force) installed DCOP::Amarok::Player via cpan as root. Still I'm not sure it's configured correctly. There's nowhere in amarok where i can find and activate it. Also when running test DCOP::Amarok::Player in cpan it tells me it's "NOT OK".
On the other hand, the track-progress can be displayed, so this information has to come from somewhere, too.

Here's the script I'm currently using: (last changed 9. Oct. 2006)


#!/usr/bin/perl -w

use strict;
use threads;
use threads::shared;

my $pipe = "$ENV{HOME}/.g15amaroklcdpipe";

my $mknod = system("mknod $pipe p");

my $G15Cpid : shared = open(G15COMPOSER, "| g15composer $pipe");

my $vol : shared = `dcop amarok player getVolume`;
chomp $vol;
my $tmpStatus = `dcop amarok player status`;
chomp $tmpStatus;
my $status : shared = ( $tmpStatus > 1 ) ? 1 : 0;

open(PIPE, ">>$pipe");
print PIPE "FL 0 10 \"/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf\"\n";

sub volUpdate {
print PIPE "PC 0\n";
print PIPE "TO 0 10 2 1 \"Volume\"\n";
print PIPE "DB 3 27 157 35 2 $vol 100 3\n";
}

while($status == 0) {
$tmpStatus = `dcop amarok player status`;
$status = ( $tmpStatus > 1 ) ? 1 : 0;
sleep 1;
}

my $artist : shared = `dcop amarok player artist`;
my $title : shared = `dcop amarok player title`;
my $album : shared = `dcop amarok player album`;
my $trackTotalSecs : shared = `dcop amarok player trackTotalTime`;
my $trackCurSecs : shared = `dcop amarok player trackCurrentTime`;
my $trackTotalTime : shared = `dcop amarok player totalTime`;
my $trackCurTime : shared = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;

&initScreen();

$SIG{TERM} = \&bye;

my $progressThread = threads->create(\&progress);
$progressThread->detach();

while(1) {
$_ = <STDIN>;
chomp $_;
if ( /trackChange/ ) {
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
} elsif ( /engineStateChange/ ) {
if( /playing/ ) {
$status = 1;
initScreen();
} elsif ( /pause/ ) {
$status = 0;
} else {
$status = 0;
}
} elsif( /volumeChange/ ){
m/: (\d+)/;
$vol = $1;
$status = 0;
&volUpdate();
$status = 1;
}
exit if( /exit/ );
&bye() if( /kill/ );
}

sub initScreen {
print PIPE "PC 0\n";
print PIPE "DR 0 0 159 43 1 1\n";
print PIPE "DR 3 22 157 40 1 0\n";
print PIPE "PB 3 22 157 24 0\n";
print PIPE "FP 0 15 0 0 0 1 \"$artist\"\n";
print PIPE "FP 0 9 0 15 0 1 \"$title\"\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
}

sub progress {
while(1) {
if($status > 0) {
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $trackCurSecs;
chomp $trackCurTime;
print PIPE "PB 5 27 155 35 0 1 1\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
} elsif($status == -1) {
return;
}
sleep 1;
}
}

sub bye {
$status = -1;
sleep 2;
print PIPE "PC 0\n";
system("kill 15 $G15Cpid");
close(PIPE);
close(G15COMPOSER);
$mknod = system("rm $pipe");
exit 0;
}



Hope, you guys can help me out.
Thanks in advance.

sgleo87
January 14th, 2007, 12:20 AM
I installed the g15daemon a few weeks ago and everything is running fine. Now I decided it would be nice if I could get the display to show tracks I play in amarok so I did a search in the forums and arrived at this thread. I followed the instructions on the first page and downloaded the amarok-g15-dcop_cli.ubuntu.amarokscript.tar.gz and installed the script in amarok and ran in. Unfortunately even after an hour or so of playing music nothing shows up in my LCD display besides the clock from the g15daemon. Is there any other way to get it working or did I screw up somewhere? Help! :cry:

Jeff59
January 14th, 2007, 03:08 AM
sgleo87: try this from earlier in the thread


Try it this way instead: g15composer pipe &
so that it will go to the background. You can then echo commands to the pipe, such as: echo 'TL "Hello World"' > pipe.

I also have 2 problems with Amaork

1) I get the progress bar in the LCD screen but no song titles .

2) This is the most madding. I can play MP# and see them no problem but when I put an Audio CD in it won't read it.

Any one who can tell me what I'm doing wrong would make my day. Thanks

Jeff59
January 15th, 2007, 02:02 PM
I also have 2 problems with Amaork and G15

1) I get the progress bar in the LCD screen but no song titles .

2) This is the most madding. I can play MP3 and see them no problem but when I put an Audio CD in it won't read it.


Any one who can tell me what I'm doing wrong would make my day. Thanks

I also have figuered out an easy way of using the G-keys utilizing Xbinding if anyones interested.

drdnl
January 15th, 2007, 02:07 PM
1) You didnt fix truetype, search through this topic with "truetype" and you'll find your answer. Think its also mentioned in the txt that coems with your amarokscript. (sorry, lazy, fixing my own beryl problems right now :))

2) Waaaaaay off topic, no idea, sorry... Try a different thread.

NZ-Wanderer
January 15th, 2007, 10:23 PM
You found a way to use the G keys??????????

Now that would be great to know, I been wanting to setup G keys to automatically put commands into Terminal.. :)
Wish I could help you with your display problems, but alas I still can't get the clock to come up automatically when I load Kubuntu, so I no help to you...


I also have 2 problems with Amaork and G15
1) I get the progress bar in the LCD screen but no song titles .
2) This is the most madding. I can play MP3 and see them no problem but when I put an Audio CD in it won't read it.
Any one who can tell me what I'm doing wrong would make my day. Thanks
I also have figuered out an easy way of using the G-keys utilizing Xbinding if anyones interested.

Jeff59
January 17th, 2007, 12:18 AM
NZ-Wanderer Here is the information you requested on programing the G-keys


How to set up your “G” keys or another Keys you want to bind a command or string to.

1.System >Administration>Synaptic Manage Select (xbindkeys) and (xbindkeys-config) Install

2.System >Preferences>Sessions>Start Programs -Add (xbindkeys) command to startup

3.Create empty file with text editor and name it “.xbindkeysrc” store it in your home /your name folder

4.ctl>Shift>Backspace

5.Open terminal and type “sudo xbindkeys-config”

6.This will open up an editor that will find your keys and build the command, it stores the information in the file we just created. Remember to use Save&Apply&Exit before closing

You now can program your keys to anthing. Good Luck

Now I hope someone can help me with getting the LED showing the text from songs in Amorok. I recompiled with the text option and still all I see is the status bar and song length.

I'm starting to wonder if this really works.

drdnl
January 17th, 2007, 01:18 AM
Ok, assuming you have the latest (http://ubuntuforums.org/showpost.php?p=1858582&postcount=157) version of all the various components installed (follow the howto: for order in which to install)

Assuming you are running Ubuntu,
Assuming you have g15daemon running and g15composer with arguments /usr/bin/g15composer -b /var/run/g15composer
Assuming you see a big clock on your display

This should work:


#!/usr/bin/perl -w

use strict;
use threads;
use threads::shared;

my $pipe = "$ENV{HOME}/.g15amaroklcdpipe";

my $rmmknod = system("rm $pipe");
my $mknod = system("mknod $pipe p");

my $G15Cpid : shared = open(G15COMPOSER, "| g15composer $pipe");

my $vol : shared = `dcop amarok player getVolume`;
chomp $vol;
my $tmpStatus = `dcop amarok player status`;
chomp $tmpStatus;
my $status : shared = ( $tmpStatus > 1 ) ? 1 : 0;

#open(CPIPE, ">>$controlPipe");
#unlink $pipe;
#print CPIPE "SN \"$pipe\"\n";
#close(CPIPE);

open(PIPE, ">>$pipe");
print PIPE "FL 0 10 \"/usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf\"\n";

sub volUpdate {
print PIPE "PC 0\n";
print PIPE "TO 0 10 2 1 \"Volume\"\n";
print PIPE "DB 3 27 157 35 2 $vol 100 3\n";
print PIPE "MC 1\n";
}

while($status == 0) {
$tmpStatus = `dcop amarok player status`;
$status = ( $tmpStatus > 1 ) ? 1 : 0;
sleep 1;
}

my $artist : shared = `dcop amarok player artist`;
my $title : shared = `dcop amarok player title`;
my $album : shared = `dcop amarok player album`;
my $trackTotalSecs : shared = `dcop amarok player trackTotalTime`;
my $trackCurSecs : shared = `dcop amarok player trackCurrentTime`;
my $trackTotalTime : shared = `dcop amarok player totalTime`;
my $trackCurTime : shared = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;

&initScreen();

$SIG{TERM} = \&bye;

my $progressThread = threads->create(\&progress);
$progressThread->detach();

while(1) {
$_ = <STDIN>;
chomp $_;
if ( /trackChange/ ) {
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
$artist = `dcop amarok player artist`;
$title = `dcop amarok player title`;
$album = `dcop amarok player album`;
$trackTotalSecs = `dcop amarok player trackTotalTime`;
$trackTotalTime = `dcop amarok player totalTime`;
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $artist;
chomp $title;
chomp $album;
chomp $trackTotalSecs;
chomp $trackCurSecs;
chomp $trackTotalTime;
chomp $trackCurTime;
initScreen();
bringToFront();
} elsif ( /engineStateChange/ ) {
if( /playing/ ) {
$status = 1;
initScreen();
} elsif ( /pause/ ) {
$status = 0;
} else {
$status = 0;
}
} elsif( /volumeChange/ ){
m/: (\d+)/;
$vol = $1;
$status = 0;
&volUpdate();
$status = 1;
}
exit if( /exit/ );
&bye() if( /kill/ );
}

sub bringToFront {
print PIPE "MP 0\n";
sleep 3;
print PIPE "MP 2\n";
}

sub initScreen {
print PIPE "PC 0\n";
print PIPE "DR 0 0 159 43 1 1\n";
print PIPE "DR 3 22 157 40 0 1\n";
print PIPE "PB 3 22 157 24 0\n";
print PIPE "FP 0 15 0 0 0 1 \"$artist\"\n";
print PIPE "FP 0 9 0 15 0 1 \"$title\"\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
print PIPE "MC 1\n";
}

sub progress {
while(1) {
if($status > 0) {
$trackCurSecs = `dcop amarok player trackCurrentTime`;
$trackCurTime = `dcop amarok player currentTime`;
chomp $trackCurSecs;
chomp $trackCurTime;
print PIPE "PB 5 27 155 35 0 1 1\n";
print PIPE "DB 3 27 157 35 2 $trackCurSecs $trackTotalSecs 3\n";
print PIPE "TO 0 35 0 1 \" $trackCurTime / $trackTotalTime \"\n";
print PIPE "MC 1\n";
} elsif($status == -1) {
return;
}
sleep 1;
}
}

sub bye {
$status = -1;
sleep 2;
print PIPE "SC\n";
close(PIPE);
exit 0;
}


It circumvents the CPIPE which for whatever reason simply would not work on my box and it has the truetype issue pre-fixed.
If does doesn't work, then you need to be clearer on what's wrong.

BTW, here's my Xmodmap that I've been using for a couple months, works perfectly when turning the cube with g keys. Ignore the pointer bit, its for my Logitech MX518

put "xmodmap $HOME/.Xmodmap" without the "" in your sessions (startup)


pointer = 1 2 3 4 5 8 9 6 7

keycode 144 = XF86AudioPrev
keycode 153 = XF86AudioNext
keycode 164 = XF86AudioStop
keycode 162 = XF86AudioPlay
keycode 184 = XF86Launch0
keycode 93 = XF86Launch1
keycode 131 = XF86Launch2
keycode 247 = XF86Launch3
keycode 177 = XF86Launch4
keycode 152 = XF86Launch5
keycode 190 = XF86Launch6
keycode 208 = XF86Launch7
keycode 129 = XF86Launch8
keycode 130 = XF86Launch9
keycode 231 = XF86LaunchA
keycode 209 = XF86LaunchB
keycode 210 = XF86LaunchC
keycode 136 = XF86LaunchD
keycode 220 = XF86LaunchE
keycode 143 = XF86LaunchF
keycode 246 = XF86iTouch
keycode 251 = XF86Calculater
keycode 137 = XF86Support
keycode 138 = XF86Word
keycode 182 = XF86Messenger
keycode 183 = XF86WebCam
keycode 132 = XF86Pictures
keycode 170 = XF86VendorHome
keycode 219 = XF86WWW
keycode 249 = XF86ToDoList
keycode 205 = XF86Calendar

NZ-Wanderer
January 17th, 2007, 03:13 AM
Many thanks for that info, will give it a go once I find out how to exactly add something to the startup (seems even tho I do have a Session Manager under "system Settings/Advanced/" in Kubuntu, I cannot figure out any way to edit it at all...)
Looks like Kubuntiu doesn't have any way of adding or editing startup stuff (which is why I can't get G15daemon to start automatically either)


NZ-Wanderer Here is the information you requested on programing the G-keys

Jeff59
January 17th, 2007, 01:21 PM
Check this link out it should answer your question.

http://suseroot.com/suse-linux-tweaks/load-startup.php

You can also edit the etc/inid.d/rc.local file and add the command at the bottom. Not a big fan of Kubuntu, I ran it for a month then when back to Ubuntu which in my opinion is the best Linux distro going.

Jeff59
January 17th, 2007, 11:11 PM
drdnl, Thanks for the help I have done a complete reinstall of the debs per your directions. Everything runs and I see the clock. A couple of things did not work as directed in the how to:

When I change souder file

user ALL= NOPASSWD: /usr/sbin/g15daemon

and add "System->Preferences->Sessions and add sudo g15daemon to the list" nothing happens at reboot.

I had to put the "g15daemon" in the etc/init.d/rc.local file to get it to auto start. Should I be not concerned about that?

The following is were I think I might be having the problem with the LCD and I'm not sure if I set it up right.


Assuming you have g15daemon running and g15composer with arguments /usr/bin/g15composer -b /var/run/g15composer

I started this in the terminal with the " g15composer usr/bin/g15composer -b /var/run/g15composer" command. I'm not sure if thats what you meant. Also my g15lcd file and pipe are located in my home/user folder is that right?


In something off the subject can you read and play audio CD's from your Amarok install, my says "Could not read Audio CD"?

Thanks again for your help.

drdnl
January 17th, 2007, 11:46 PM
Hmm strange, well, if you have a clock then all is fine, doesn't really matter how you did it :)

check your system monitor, after installing the deb you prob. already have g15composer running, if not run "sudo /etc/init.d/g15composer start". Also, you should have a g15daemon running.

Basically, open the system monitor, sort it by name (alphabetically) and check the g15*'s. Kill any unneeded ones which you might have opened whilst experimenting, just leave the two I mentioned. (g15daemon and g15composer)

Now, install the attached file into Amarok and run it (under scripts manager) and play a mp3, stuff should show up...

About cd's, mine didnt work either, try seraching the 'net for it.

oh, and try deleting ~/.g15amaroklcdpipe

Jeff59
January 18th, 2007, 02:17 AM
drdnl, Still no luck with the LCD and Amaork. I think it might br your first suggestion but I'm not quite sure what I was suppose to fix.


1) You didn't fix truetype, search through this topic with "truetype" and you'll find your answer. Think its also mentioned in the txt that comes with your amarokscript. (sorry, lazy, fixing my own beryl problems right now )

Things I Know.

I know the pipe works, because when I send direct text it shows on the Screen.

I'm sure your script is right because the song progress bars and timer show.

It has to be the truetype problem that I screwed up. Could you be more detailed about this fix. Thanks again. :confused:

drdnl
January 18th, 2007, 02:44 AM
Progress bar and timer is a symptom of no truetype. This is the font you should be using: /usr/share/fonts/truetype/ttf-bitstream-vera/Vera.ttf

The script I just attached has truetype setup properly, but check anyway (amarok -> scripts -> edit)

Thins you can try in order:

1) Check its there/its existance
2) check its permissions (are you allowed to read it?)
3) if not, edit the script (amarok -> scripts -> edit) and try a different font
4) you need to have ttf font support, this should be included in the debs, try uninstalling everything and reinstalling it all (from the archive)
5) I'm running out of ideas, contact one of the devs at sourceforge,

Good luck!

Regards,
D

akshoslaa
January 26th, 2007, 06:55 AM
Quick question... are there any scripts aside from the various tweaks of that amarok script? Is there any decent documentation to get me started with something other than 'Hello World'?

Aneurysm9
January 26th, 2007, 12:57 PM
There doesn't seem to be a whole lot of script development going on. The latest g15composer has a manpage that details all of the commands that can be sent. I'm not sure if I've posted debs of libg15render-1.2 and g15composer-3.1, if I haven't I'll do so this weekend. There's also complete api documentation for libg15render if you prefer to program directly to the library at http://g15tools.sf.net/docs-g15r. There aren't really any programming or script writing tutorials, but looking at the source for the amarok script and the various g15daemon plugins using libg15render should give you an idea of what's needed.

akshoslaa
January 27th, 2007, 06:27 AM
Thanks, I was guessing alot of reverse engeering of the amarok script was probably going to be the way to go - but it was worth asking.

libg15render is probably a bit beyond me for now, haven't touched C in years. stdio.h is about he extent of my abilities there :P but I didn't think of there being a man for g15composer (which is in the version I'm running, so that's all good) so that gives me a really good starting point.

If I come up with anything useful I'll be sure to post it somewhere :)

akshoslaa
January 30th, 2007, 01:45 AM
Aneurysm9 - sorry to bug you, but I'm assuming your the same Aneurysm9 as on the sourceforge page. I've got a couple of questions about g15composer and I'm trying to track down someone to ask without overly hijacking an ubuntu thread that's fairly unrelated to my questions. The sourceforge forums and mailing lists look unused... is there a forum/list specifically for g15 somewhere I could try, or any way I can contact you (or one of the other devs)?

Aneurysm9
January 30th, 2007, 04:02 AM
The g15tools forums on sf.net are pretty well unused, but not unusable, if you want to post there, go ahead. The dev lists are also pretty well zero traffic, but I think both mlampard and myself are subscribed to both dev lists. Otherwise, you can email me at mirabeaj $at$ gmail.com

Jeff59
February 2nd, 2007, 02:38 AM
drdnl, Well I finally got Amarok working with the script and now have the song titles. I'm not sure which of three things I did that fixed it but I will list them in case anyone else is having the same problem. I also was able to get the Audio cd to read and play.

First I reinstalled the G15 tools and daemon using this script that I updated from an earlyer post. saves a lot of time. Thanks Aneurysm9 for the original

Download and unpack the files to a folder then switch to that folder and run this.


sudo for package in libg15-1.2.1 libg15render-1.2 g15daemon-1.2.6a g15composer-3.1
do;
cd $package
./configure --prefix=/usr --enable-ttf
make
sudo make install
cd ..
done


This is what I think did it. I think the permissions were wrong for accessing the font files.


Make sure to replace "myusername" with your user name!

sudo chown -R myusername:myusername /home/myusername/.*

Then I added these in Adept, not sure if this helped or not:
xine-ui
xinetd

To get Audio CD to play go to:


Amarok >Configure>Engine and change default devices to /dev/hdc

and it should work. Hope this helps

drdnl
February 2nd, 2007, 11:21 AM
Congratulations, enjoy your finally functional logitech g15 keyboard, it was my final piece of hardware that needed to be "fixed" before I could fully use linux. Took you a long time though ;)

Good to hear we could help someone out,

Regards,
D

cd1680
February 7th, 2007, 04:00 AM
Im confused on how to change the sudo file.

In the howto it said to Change the user part and add the following to the end of the file:
user ALL= NOPASSWD: /usr/sbin/g15daemon

I don't know exactly what it means by "change the user part"

can someone post the entire visudo file here? thanks!

Aneurysm9
February 7th, 2007, 04:26 AM
Change the part that says "user" in that line to match your UNIX username, i.e.:
cd1680 ALL = NOPASSWD: /usr/sbin/g15daemon

cd1680
February 7th, 2007, 04:49 AM
I got everything to work except that the LCD doesn't display the artist and song name. I tried searching through truetype solutions but it seems that my truetype font directory is correct and I have permission to read it. I followed the steps at http://doc.gwos.org/index.php/G15Tools_support_for_the_Logitech_G15 and used all the files attached there. Can someone help?

Aneurysm9
February 7th, 2007, 05:00 AM
There's an open bug report on SF.net that I've been meaning to address that might be related to some people being unable to use TTF support. It should express itself as a segfault, but I've seen weirder things happen. I'll try to take a closer look at it this weekend. It will probably require an update to both libg15render and g15composer as the libg15render API will likely change.

cd1680
February 7th, 2007, 05:07 AM
thanks alot. I just didn't know what I was doing wrong as it seemed like I was following every direction that the page said.

ps. do the files in the linked page have ttf enabled? could that be the problem?

thomasmayer
February 7th, 2007, 05:35 PM
hi

has anyone tried to get the z-10 speakers display working and succeeded?
i tried to add the device in the libg15.c but it doesn't work.
however i don't know if my setup works generally as i don't have a g15 keyboard to test it.

Aneurysm9
February 8th, 2007, 12:35 AM
The debs that I have built do have TTF support enabled. I can't speak to any others.

As for the z-10, I don't have any to work with so I don't know. There's OS X support for them from http://www.entropy.ch/software/macosx/lcdtool/ which I'm picking through the code for to try to get the G15 working on OS X. Changing the device ID doesn't work there either, so maybe when I figure out the G15 on OS X, the reverse will get the z-10 working on Linux.

Alex74447
February 10th, 2007, 06:02 AM
Does this work on dapper? It wont let me isntall because of some dependency errors, and then when I go to the synaptics it gives me broken files for all the G15 related downloads.

Aneurysm9
February 10th, 2007, 03:58 PM
I don't have a dapper system anymore to build packages on, so you'll have to build it yourself if you want the latest versions of the g15tools, but they do all have the packaging structure in SVN and the release tarballs so you can easily build your own.

zszafran
February 17th, 2007, 02:35 AM
Okay, I have absolutely no idea what I am doing wrong.

First off I am running Edgy Eft.

I have downloaded the sources and run the command...

for package in libg15-1.2.1 libg15render-1.2 g15daemon-1.2.7 g15composer-3.1; do cd $package; ./configure --prefix=/usr --enable-ttf; make; sudo make install; cd ..; done
...without any errors or problems.

I am able to run the command "sudo g15daemon" with no errors.

From what I understand, I should see a clock in my LCD after I run the above command? Well right now I see nothing. I have attempted the guide at http://doc.gwos.org/index.php/G15Tools_support_for_the_Logitech_G15 , which also did not work for me....

Any ideas?

mlampard
February 17th, 2007, 05:17 AM
First, run 'sudo modprobe uinput', then try running g15daemon again. If it still fails
please post the output of 'sudo g15daemon --debug 2'

[edit]
Also, if you have the g15 plugged into a hub, please try plugging it directly into the PC instead - the g15 has known problems when a hub is in the way.

Thanks

zszafran
February 17th, 2007, 11:58 PM
It was my USB Hub that was the problem. Thanks for the help.

klanman8908
February 18th, 2007, 05:14 AM
I recently got a g15 keyboard and would like to use it on Linux. I have installed the g15tools and everything is working great. The clock shows and the g-keys work. I'm using xbindkeys to configure what the keys do. I have figured out if i have 3 config files for xbindkeys, 1 for each m button (1-3) then I can press say m2 button have it rename the current file to xbindkeysrc.m1 then rename xbindkeysrc.m2 to xbindkeysrc and restart xbindkeys. This allows me to have 3 banks of the g1-18 keys like in windows, all with different functions. I hope you were able to follow that. The question I have I hope is simple, how do i light up the orange LEDs for the m keys so that I can tell which config file is being used?

mlampard
February 18th, 2007, 05:56 AM
hi

has anyone tried to get the z-10 speakers display working and succeeded?
i tried to add the device in the libg15.c but it doesn't work.
however i don't know if my setup works generally as i don't have a g15 keyboard to test it.

libg15 in g15tools svn now has z-10 speaker support. I'll create a new release in the next couple of days, but you are welcome to try the svn code until then.

Mike

mlampard
February 18th, 2007, 06:04 AM
I'm using xbindkeys to configure what the keys do. I have figured out if i have 3 config files for xbindkeys, 1 for each m button (1-3) then I can press say m2 button have it rename the current file to xbindkeysrc.m1 then rename xbindkeysrc.m2 to xbindkeysrc and restart xbindkeys. This allows me to have 3 banks of the g1-18 keys like in windows, all with different functions. I hope you were able to follow that. The question I have I hope is simple, how do i light up the orange LEDs for the m keys so that I can tell which config file is being used?

Probably the simplest way to provide the functionality you want is to install g15daemon 1.9, and g15macro from the g15daemon homepage. G15macro is a g15daemon client which allows macro record and playback, and creates three separate 'palettes' of keys selectable via the 'M'keys. You could use xbindkeys to create hotkeys for any of those keys while g15macro is running. Please note, g15macro requires functionality only available in g15daemon 1.9, and wont work with current versions of g15daemon 1.2 series.

Mike