diff options
author | volker <volker@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2009-09-25 12:57:51 +0000 |
---|---|---|
committer | volker <volker@3ae390bd-cb1e-0410-b409-cd5a39f66f1f> | 2009-09-25 12:57:51 +0000 |
commit | f848e286bd8dac72e6bdebf97333c4ad3a3a4891 (patch) | |
tree | 80fb85aff3fe8d7a4db85dd668b8dca30f2da39c | |
parent | a50e7c8b4e39f0b11bebe70b43e2a39e72a3fb71 (diff) | |
download | lcd4linux-f848e286bd8dac72e6bdebf97333c4ad3a3a4891.tar.gz |
additional debug output
git-svn-id: https://ssl.bulix.org/svn/lcd4linux/trunk@1045 3ae390bd-cb1e-0410-b409-cd5a39f66f1f
Diffstat (limited to '')
-rw-r--r-- | drv_G15.c | 37 | ||||
-rw-r--r-- | lcd4linux.c | 9 | ||||
-rw-r--r-- | svn_version.h | 2 |
3 files changed, 39 insertions, 9 deletions
@@ -45,6 +45,9 @@ #include <linux/input.h> #include <linux/uinput.h> +#include <unistd.h> +#include <sys/types.h> + #include "debug.h" #include "cfg.h" #include "qprintf.h" @@ -315,7 +318,7 @@ static int drv_G15_open() g15_lcd = NULL; - info("%s: Scanning USB for G-15 keyboard...", Name); + info("%s: Scanning USB for G-15 keyboard or Z-10 speaker ...", Name); usb_init(); usb_set_debug(0); // 0: no, 1 error, 2 warn, 3 info @@ -332,7 +335,7 @@ static int drv_G15_open() case G15_DEVICE2: case M1730_DEVICE: { - info("%s: Found Logitech G-15 Keyboard", Name); + info("%s: Found Logitech G-15 or Dell M1730 Keyboard", Name); interf = 0; config = 1; usb_endpoint = 0x02; @@ -352,22 +355,44 @@ static int drv_G15_open() if (interf >= 0) { debug("%s: Vendor 0x%x Product 0x%x found", Name, dev->descriptor.idVendor, dev->descriptor.idProduct); - //if (dev->descriptor.bNumConfigurations > 1) { + /* detach from the kernel if we need to */ retval = usb_get_driver_np(g15_lcd, interf, dname, 31); debug("%s: Ret %i from usb_get_driver_np(interf.%d), Drivername %s", Name, retval, interf, dname); + switch (retval) { + case -EPERM: + error("%s: Permission denied! eUID of this process is %i %s", + Name, geteuid(), geteuid() != 0 ? "(not root)" : ""); + return -1; + break; + case -ENODATA: + error("%s: No data available! Device switched off?", Name); + return -1; + break; + } if (retval == 0 && strcmp(dname, "usbhid") == 0) { debug("%s: detaching...", Name); usb_detach_kernel_driver_np(g15_lcd, interf); } + retval = usb_set_configuration(g15_lcd, config); debug("%s: Ret %d from usb_set_configuration(%d)", Name, retval, config); + switch (retval) { + case -EPERM: + error("%s: Permission denied! eUID of this process is %i %s", + Name, geteuid(), geteuid() != 0 ? "(not root)" : ""); + return -1; + break; + case -EBUSY: + error("%s: Device or resource busy! Device switched off?", Name); + return -1; + break; + } usleep(100); - //} retval = usb_claim_interface(g15_lcd, interf); debug("%s: Ret %i from usb_claim_interface(%d)", Name, retval, interf); - return 0; + return retval; } } @@ -548,7 +573,7 @@ static int drv_G15_start(const char *section) /* list models */ int drv_G15_list(void) { - printf("Logitech G-15 / Dell M1730"); + printf("Logitech G-15 or Z-10 / Dell M1730"); return 0; } diff --git a/lcd4linux.c b/lcd4linux.c index dda62cf..79941ca 100644 --- a/lcd4linux.c +++ b/lcd4linux.c @@ -289,11 +289,15 @@ int main(int argc, char *argv[]) info("invoked without full path; restart may not work!"); } - if (cfg_init(cfg) == -1) + if (cfg_init(cfg) == -1) { + error("Error reading configuration. Exit!"); exit(1); + } - if (plugin_init() == -1) + if (plugin_init() == -1) { + error("Error initializing plugins. Exit!"); exit(1); + } display = cfg_get(NULL, "Display", NULL); if (display == NULL || *display == '\0') { @@ -344,6 +348,7 @@ int main(int argc, char *argv[]) debug("initializing driver %s", driver); if (drv_init(section, driver, quiet) == -1) { + error("Error initializing driver %s: Exit!", driver); pid_exit(pidfile); exit(1); } diff --git a/svn_version.h b/svn_version.h index ece5771..8194786 100644 --- a/svn_version.h +++ b/svn_version.h @@ -1 +1 @@ -#define SVN_VERSION "965" +#define SVN_VERSION "1044" |