Package: lcd4linux Version: 0.11.0~svn1203-1 Severity: important Tags: patch
Dear Maintainer, Using driver 'picoLCDGraphic' in lcd4linux.conf, backlight can only be set to 0 or 1 (off/on). While the backlight of the picolcd is on at boot, the moment lcd4linux starts, the backlight turns off with either setting. Looking at the source for the driver, I found that somewhere along the line, the function to set the backlight had been changed to use an 8 bit value from 0 - 255, effectively making this a brightness setting: static int drv_pLG_backlight(int backlight) { unsigned char cmd[2] = { 0x91 }; /* set backlight */ if (backlight < 0) backlight = 0; if (backlight > 255) backlight = 255; cmd[1] = backlight; drv_pLG_send(cmd, 2); return backlight; } ... but the config option for backlight was still limited to only accepting a 0 or 1: if (cfg_number(section, "Backlight", 0, 0, 1, &value) > 0) { info("Setting backlight to %d", value); drv_pLG_backlight(value); } I've patched that if statement above to accept values between 0 and 255. Now, setting the config option for backlight to 255 in lcd4linux.conf does result in the backlight being turned on at full brightness. -- System Information: Debian Release: 9.0 APT prefers testing APT policy: (500, 'testing') Architecture: amd64 (x86_64) Kernel: Linux 4.9.0-2-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages lcd4linux depends on: ii init-system-helpers 1.47 ii libc6 2.24-10 ii libdbus-1-3 1.10.18-1 ii libftdi1 0.20-4 ii libgd3 2.2.4-2 ii libjpeg62-turbo 1:1.5.1-2 ii libmariadbclient18 10.1.22-3 ii libmpdclient2 2.9-1 ii libncurses5 6.0+20161126-1 ii libpython2.7 2.7.13-2 ii libsqlite3-0 3.16.2-3 ii libtinfo5 6.0+20161126-1 ii libusb-0.1-4 2:0.1.12-30 ii libvncserver1 0.9.11+dfsg-1 ii libx11-6 2:1.6.4-3 ii lsb-base 9.20161125 lcd4linux recommends no packages. lcd4linux suggests no packages. -- Configuration Files: /etc/lcd4linux.conf [Errno 13] Permission denied: '/etc/lcd4linux.conf' Relevant lines from lcd4linux.conf: Display picoLCD { Driver 'picoLCDGraphic' Size '256x64' #Contrast 230 Contrast 235 Backlight 255 Brightness 100 Inverted 0 Icons 1 } -- no debconf information
diff --git a/drv_picoLCDGraphic.c b/drv_picoLCDGraphic.c index 244cc5b..3f2e957 100644 --- a/drv_picoLCDGraphic.c +++ b/drv_picoLCDGraphic.c @@ -539,7 +539,7 @@ static int drv_pLG_start(const char *section, const int quiet) drv_pLG_contrast(value); } - if (cfg_number(section, "Backlight", 0, 0, 1, &value) > 0) { + if (cfg_number(section, "Backlight", 0, 0, 255, &value) > 0) { info("Setting backlight to %d", value); drv_pLG_backlight(value); }