Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

G15 driver #208

Open
5h4rk1337 opened this issue Nov 25, 2023 · 1 comment
Open

G15 driver #208

5h4rk1337 opened this issue Nov 25, 2023 · 1 comment

Comments

@5h4rk1337
Copy link

Hi there,
how can I make lcdproc work with my Logitech G15? I would love to see if my G15 would work with lcdproc. My goal is it, to have a system monitor on the LCD. The G15Daemon gives me just a clock.

OS: Pop 22.04 jammy
Kernel: x86_64 Linux 6.5.6-76060506-generic

When I run ./configure --enable-drivers=all it says:
checking for g15daemon_client.h... no configure: WARNING: libg15daemon_client.h not found, the g15 driver will lack g15daemon support checking for libg15render.h... no configure: WARNING: The g15driver needs libg15render.h

Found the Source Code of libg15render somewhere in the internet and uploaded it to GitHub.
https://github.com/5h4rk1337/libg15render/tree/main

Thank you for your support <3

@ancoron
Copy link

ancoron commented Dec 29, 2023

@5h4rk1337 I went through the same issue at first and ended up with the following:

  1. git clone G15 tools from here: https://github.com/mike-petersen/g15tools/
  2. build and install libg15
  3. build and install libg15render (required a small patch for me)
  4. build and install LCDproc

I am on Arch Linux and package for the G15 render library simply misses the required g15font struct and a bunch of other functions used by LCDproc:

...which is based on:

Building the libg15 from g15tools was straight forward for me:

./bootstrap
./configure
make
sudo make install

Building the libg15render from g15tools required a bit more effort. First patch the configure.in:

diff --git a/libg15render/configure.in b/libg15render/configure.in
index 0f55d3b..8a989e6 100644
--- a/libg15render/configure.in
+++ b/libg15render/configure.in
@@ -17,8 +17,8 @@ AC_MSG_CHECKING(whether to enable FreeType2 support)
 AC_ARG_ENABLE(ttf, [  --enable-ttf             enable FreeType2 support],
        if [[[ "$enableval" = "yes" ]]]; then
                AC_DEFINE(TTF_SUPPORT, [1], [Define to 1 to enable FreeType2 support])
-               CFLAGS="$CFLAGS `freetype-config --cflags`"
-               FTLIB="-lfreetype"
+               CFLAGS="$CFLAGS `pkgconf --cflags freetype2`"
+               FTLIB="`pkgconf --libs freetype2`"
                ttf_support="yes"
        else
                ttf_support="no"

...then you can build and install:

./bootstrap
./configure --enable-ttf --prefix=/usr/local
make
sudo make install

Please note that the --prefix here is required even if using the default, since otherwise the fonts directory will be set to NONE.

Now we can build LCDproc:

sh autogen.sh
LDFLAGS="-L/usr/local/lib" ./configure --enable-drivers=g15 --prefix=/usr/local
make
sudo make install

To make it all come together at runtime, we need to start the server like this:

LD_LIBRARY_PATH="/usr/local/lib:/usr/local/lib/lcdproc" /usr/local/sbin/LCDd -c /usr/local/etc/LCDd.conf -f

The main reasons are:

  • libg15render is installed in /usr/local/lib
  • LCDproc libraries are installed in /usr/local/lib/lcdproc

Also make sure to configure the server:

--- LCDd.conf   2023-12-29 10:29:43.548527007 +0100
+++ /usr/local/etc/LCDd.conf    2023-12-29 13:19:55.314250138 +0100
@@ -34,7 +34,7 @@
 #            the driver modules and will thus not be able to
 #            function properly.
 # NOTE: Always place a slash as last character !
-DriverPath=server/drivers/
+DriverPath=
 
 # Tells the server to load the given drivers. Multiple lines can be given.
 # The name of the driver is case sensitive and determines the section
@@ -51,7 +51,7 @@
 #   Olimex_MOD_LCD1x9, picolcd, pyramid, rawserial, sdeclcd, sed1330,
 #   sed1520, serialPOS, serialVFD, shuttleVFD, sli, stv5730, svga, t6963,
 #   text, tyan, ula200, vlsys_m428, xosd, yard2LCD
-Driver=curses
+Driver=g15
 
 # Tells the driver to bind to the given interface. [default: 127.0.0.1]
 Bind=127.0.0.1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants