Firebox LCD Driver for LCDProc
-
I had a few free hours to try again to get a working startup script for the lcdproc-dev package, and again failed. :(
Since it doesn't seem to be easily fixable (by me anyway) I have devised a method for running the new driver using the default lcdproc client. Because it's outside the package system it doesn't fall foul of the rapid start-stop sequence at boot. Anyway I have tested this on all the Watchguard boxes I have here, X-Core, X-Peak, X-e and XTM5 and it works fine.It has a number or advantages over the lcdd5.tar package:
It uses fmertz's excellent rewritten driver with keyboard support for all models.
It runs on 2.1.
It survives a firmware update (I tested 2.0.2 > 2.0.3 and 2.1 snapshot update).
It integrates with the Status: Services: screen.Unlike the lcdproc-dev package it doesn't crash every few hours but you don't get the choice of screens offered by the php client.
Anyway I'd welcome any other testers:
1. Install the lcdproc-dev package.
2. In the Services: LCDproc: Server: screen select:
'Enable LCDproc at startup' yes
Com port - Parallel Port 1
Display Size - 2x20
Driver - Watchguard Firebox with SDEC
Hit the save button at the bottom.
3. Doing the above generates the lcdd.conf file we need but it is only temporary so we need to copy it somewhere more permanent.
Go to Diagnostics: Command Prompt and run:cp /usr/local/etc/LCDd.conf /conf
You could also run that at the CLI but via the webgui takes care of remounting the filesystem for you.
4. No go back to Services: LCDproc: Server: , uncheck 'Enable LCDproc at startup' and set Com Port to 'none'. You must set the com port as none, that's what the lcdproc-dev config script looks for before it removes the RC start-stop scripts.
5. Install the Shellcmd package if you haven't already.
6. Add the following shell commands to start the lcdproc server and client:/usr/bin/nice -20 /usr/local/sbin/LCDd -r 0 -c /conf/LCDd.conf > /dev/null &
/usr/bin/nice -20 /usr/local/bin/lcdproc C T U &
Both are type 'shellcmd'. You can choose which screens to display, C T U works for me. See my attached screenshot from an X-e box.
7. Reboot. Or run those two commands manually.Steve
-
I am a bit confused. I've installed the LCDProc package through the PFSense 2.0.3 web interface and tried to follow the above instructions, but I couldn't find the "Driver - Watchguard Firebox with SDEC" option.
Should I manually install a specific driver for Firebox, in order to appear in the driver options? -
You need the lcdproc-dev package not the original lcdproc package. Only the dev version has the newer drivers.
Steve
-
You need the lcdproc-dev package not the original lcdproc package. Only the dev version has the newer drivers.
Steve
I see..thanks :)
-
1. Install the lcdproc-dev package.
2. In the Services: LCDproc: Server: screen select:
'Enable LCDproc at startup' yes
Com port - Parallel Port 1
Display Size - 2x20
Driver - Watchguard Firebox with SDEC
Hit the save button at the bottom.
3. Doing the above generates the lcdd.conf file we need but it is only temporary so we need to copy it somewhere more permanent.
Go to Diagnostics: Command Prompt and run:cp /usr/local/etc/LCDd.conf /conf
You could also run that at the CLI but via the webgui takes care of remounting the filesystem for you.
4. No go back to Services: LCDproc: Server: , uncheck 'Enable LCDproc at startup' and set Com Port to 'none'. You must set the com port as none, that's what the lcdproc-dev config script looks for before it removes the RC start-stop scripts.
5. Install the Shellcmd package if you haven't already.
6. Add the following shell commands to start the lcdproc server and client:/usr/bin/nice -20 /usr/local/sbin/LCDd -r 0 -c /conf/LCDd.conf > /dev/null &
/usr/bin/nice -20 /usr/local/bin/lcdproc C T U &
Both are type 'shellcmd'. You can choose which screens to display, C T U works for me. See my attached screenshot from an X-e box.
7. Reboot. Or run those two commands manually.Steve
Thanks for this, I've been fighting problems with lcdproc for a while. For reference for anyone that is curious as to what other screen flags you can use (from lcdproc doc)
lcdproc - LCDproc system status information viewerCopyright 1999-2006 Selene Scriven, William Ferrell, and misc. contributors.
This program is released under the terms of the GNU General Public License.Usage: lcdproc [<options>] [ <screens>…]
where <options>are
-s <host> connect to LCDd daemon on <host>-p <port> connect to LCDd daemon using <port>-f run in foreground
-e <delay> slow down initial announcement of screens (in 1/100s)
-c <config> use a configuration file other than /etc/lcdproc/lcdproc.conf
-h show this help screen
-v display program version
and <screens>are
C CPU detailed CPU usage
P SMP-CPU CPU usage overview (one line per CPU)
G CPUGraph CPU usage histogram
L Load load histogram
M Memory memory & swap usage
S ProcSize biggest processes size
D Disk filling level of mounted file systems
I Iface network interface usage
B Battery battery status
T TimeDate time & date information
O OldTime old time screen
U Uptime uptime screen
K BigClock big clock
N MiniClock minimal clock
A About credits pageExample:
lcdproc -s my.lcdproc.server.com -p 13666 C M X</screens></config></delay></port></port></host></host></options></screens></options> -
Ah intersting, are you using a server on a different machine? What does X show? Is that just the example from the help file? ::)
Steve
-
I installed pfSense 2.1.1 to fix other issues I was having and was following the instructions to get the LCD working and it seems to hang when installing lcdproc-0.5.6-i386.pbi. It has downloaded the filed and it just sits there extracting. I went to the command line and noticed bsdtar is in the state biowr (writing) and consumes about 1% constantly (seems odd).
I had no issues installing this package on 2.1. Not sure it is just my environment or not; thought I would put this out there.
EDIT:
I decided to let this run for some time. It took very long > 15mins (went for a bite to eat), is this normal?
-
Writing to the CF card can be exceptionally slow! I have experienced long delays re-installing packages though I'm not sure it was 15mins. Upgrading my test box from 2.1 to 2.1.1 took a while reload packages, including lcdproc-dev, but I'm unsure how long since I shot myself in the foot with a bad config.
Steve
-
Thanks for the info. I know they can be slow; it was not this slow when I was using 2.1 - I will chalk it up to an outlier condition ;D.
-
Hi.
If you set the "Refresh frequency" before you copy the conf file this value will also be used by the new driver.
May someone needs more time per screen…. -
Yes it should do. That's part of the standard lcdproc configuration independent of the driver so it'd not hard coded or anything.
Steve
-
Hello,
i've just installed the lcdproc-dev package. I works so far, but after 30sek the backlight turned off.
In the webgui Services > LCDproc > Backlight > On
In the LCDd.conf is a line "Backlight=on" So it should work, but it doesn't.Any ideas?
Thanks.
-
That's the normal behaviour.
The backlight is hardcoded to turn off. The decision to do that was based on datasheets for the LCD module in the orginal X-Core box which stated the backlight life as limited number of hours (a few years) and that many of those boxes alreday had a dead backlight. Several people have requested it be allowed to stay on, which seems reasonable given the more recent modules have led backlights with a very long life, but that hasn't made it into the code.Steve
-
Hello Steve,
thanks for your fast answer.
Too bad. I hoped, to let the backlight always on.
If i didn't use the LCDproc the backlight is always on, but it shows this annoying "Booting OS…"pyro
ps. runnung pfsense on a X1250e
-
You could try something horrible like adding a cronjob to set the backlight on every 20s. No idea how it might interfer with the LCD driver though. :-
Or you could fork the driver and remove the code that turns it off. ;)Steve
-
Wow… This is crazy to see how my original proof of concept driver has taken off to a regular package and driver. I guess I lost track of all of this after mine died. It's nice to see people still using this hardware and the neat enhancements made. It's great for us as these devices are useless to many once they don't renew the licenses.
-
Hey, great to hear from you. Thank you so much for your original work. :)
Steve
-
@pyroblast:
Hello Steve,
thanks for your fast answer.
Too bad. I hoped, to let the backlight always on.
If i didn't use the LCDproc the backlight is always on, but it shows this annoying "Booting OS…"pyro
ps. runnung pfsense on a X1250e
I've rebuilt the code from github to force the backlight always on.
You can grab the file from https://www.dropbox.com/s/6ilykwt1p6zn4rm/sdeclcd.so, sadly Dropbox doesn't work nicely with fetch…
You'll need to drop this in /usr/pbi/lcdproc-i386/lib/lcdproc/ and chmod 555 the file. Don't forget to back up your original! Once you reboot the backlight should be on.
-
Nice. Good to have options. :)
Steve
-
@cii:
I've rebuilt the code from github to force the backlight always on.
You can grab the file from https://www.dropbox.com/s/6ilykwt1p6zn4rm/sdeclcd.so, sadly Dropbox doesn't work nicely with fetch…
You'll need to drop this in /usr/pbi/lcdproc-i386/lib/lcdproc/ and chmod 555 the file. Don't forget to back up your original! Once you reboot the backlight should be on.
Hi cii,
thx for your work… but dropbox send your sdeclcd.so as HTML-Text, not as a binary file... could you please zip your file and upload it again ?
@cii:
I've rebuilt the code from github
Can someone give me a direct link to the github sources… i searched myself but didn't find the sources :'(
cu gunther