LCD4LINUX - PicoLCD
Has anyone had the picolcd 256X64 work with the current version of pfsense?
Looks like it should be supported in lcdproc via the glcd driver:
glcd: generic driver for graphical LCDs with FreeType rendering support. This driver supports the following sub-drivers (a.k.a. connection types): picolcdgfx picoLCD 256x64 Sideshow graphic LCD (Mini-Box.com)
It's not in the gui package though so you would have to invoke it manually to use that driver.
I've never tried though.
@stephenw10 thank you! So will I need to remove the lcd4linux package? Not ever had to call anything from the CLI is there a guide for that and make it run on boot etc...?
You definitely don't want to have both daemons running so if you installed lcd4linux somehow then disable it at least.
You can start the lcddproc client and server from Shellcmds:
If you install the lcdproc package you will need to leave it disabled to prevent it trying to run automatically.
Then call the sever pointing to your custom lcdd.conf file with the driver configured. And call the client with whatever options you want. There are not as many available as via the php client in the package but it will get you up and running.
Okay i have added the glcd driver name in LCDd.conf (see below) But do i need to change the dimensions? and in shellcmd what is the command i need to add to call the server and make it start up?
i tried to manually run LCDd.conf with ./LCDd.conf but i get premission denied then i tried to sudo and its not installed or freebsd doesnt have sudo....?
[server] DriverPath=/usr/local/lib/lcdproc/ Driver=glcd Bind=127.0.0.1 Port=13666 ReportLevel=3 ReportToSyslog=yes User=nobody Foreground=no ServerScreen=no GoodBye="Thanks for using" GoodBye=" pfSense " WaitTime=1 ToggleRotateKey=Enter PrevScreenKey=Left NextScreenKey=Right ScrollUpKey=Up ScrollDownKey=Down [menu] MenuKey=Escape EnterKey=Enter UpKey=Up DownKey=Down [picolcd] driverpath=/usr/local/lib/lcdproc/ Device=/dev/ugen0.2 Size=20x4 KeyTimeout=500 Contrast=1000 Brightness=1000 OffBrightness=0 Blacklight_Timer=60 Keylights=on Key0Light=on Key1Light=off Key2Light=off Key3Light=off Key4Light=off Key5Light=off
just tried /usr/local/etc/rc.d/lcdproc.sh restart
didnt work, i know the LCD is sitting on /dev/ugen0.2
Looks like this is in the logs
Aug 28 09:11:46 php lcdproc: Start client procedure. Error counter: (0) Aug 28 09:11:45 LCDd Critical error while initializing, abort. Aug 28 09:11:45 LCDd There is no output driver Aug 28 09:11:45 LCDd Could not load driver glcd Aug 28 09:11:45 LCDd Driver [glcd] init failed, return code -1 Aug 28 09:11:45 LCDd glcd: normal_font missing in configuration Aug 28 09:11:45 LCDd Listening for queries on 127.0.0.1:13666 Aug 28 09:11:45 LCDd Waittime should be at least 2 (seconds). Set to 2 seconds. Aug 28 09:11:45 LCDd Using Configuration File: /usr/local/etc/LCDd.conf Aug 28 09:11:45 LCDd LCDd version 0.5.7 starting
This is my new Config still not working, i took the glcd from the sample and added them
[server] DriverPath=/usr/local/lib/lcdproc/ Driver=glcd Bind=127.0.0.1 Port=13666 ReportLevel=3 ReportToSyslog=yes User=nobody Foreground=no ServerScreen=no GoodBye="Thanks for using" GoodBye=" pfSense " WaitTime=1 ToggleRotateKey=Enter PrevScreenKey=Left NextScreenKey=Right ScrollUpKey=Up ScrollDownKey=Down [menu] MenuKey=Escape EnterKey=Enter UpKey=Up DownKey=Down ## glcd generic graphical display driver [glcd] # Select what type of connection. See documentation for types. ConnectionType=t6963 # Width and height of the display in pixel. The supported sizes may depend on # the ConnectionType. [default: 128x64; legal: 1x1 - 640x480] Size=128x64 # Width and height of a character cell in pixels. This value is only used if # the driver has been compiled with FreeType and it is enabled. Otherwise the # default 6x8 cell is used. CellSize=12x16 # If LCDproc has been compiled with FreeType 2 support this option can be used # to turn if off intentionally. [default: yes; legal: yes, no] useFT2=no # Path to font file to use for FreeType rendering. This font must be monospace # and should contain some special Unicode characters like arrows (Andale Mono # is recommended and can be fetched at http://corefonts.sf.net). #normal_font=/usr/local/lib/X11/fonts/TTF/andalemo.ttf # Some fonts miss the Unicode characters used to represent icons. In this case # the built-in 5x8 font can used if this option is turned off. [default: yes; # legal: yes, no] fontHasIcons=no # Set the initial contrast if supported by connection type. # [default: 600; legal: 0 - 1000] Contrast=600 # Set brightness of the backlight if the backlight is switched 'on'. # [default: 800; legal: 0 - 1000] Brightness=1000 # Set brightness of the backlight if the backlight is switched 'off'. Set this # to zero to completely turn off the backlight. [default: 100; legal: 0 - 1000] OffBrightness=0 # Time (ms) from first key report to first repeat. Set to 0 to disable repeated # key reports. [default: 500; legal: 0 - 3000] KeyRepeatDelay=500 # Time (ms) between repeated key reports. Ignored if KeyRepeatDelay is disabled # (set to zero). [default: 300; legal: 0 - 3000] KeyRepeatInterval=300 # Assign key strings to keys. There may be up to 16 keys numbered 'A' to 'Z'. # By default keys 'A' to 'F' are assigned Up, Down, Left, Right, Enter, Escape. KeyMap_A=Up KeyMap_B=Down KeyMap_C=Enter KeyMap_D=Escape
Looks like the issue is the normal_font location since pfsense remove all of that
glcd: Creation of font '/usr/local/lib/X11/fonts/TTF/andalemo.ttf' failed
Ok, you want to copy the generated LCDd.conf file to somewhere permanent like /root. Then you can edit it without it being overwritten accidentally.
Then you can start LCDd referencing it:
/usr/local/sbin/LCDd -c /root/LCDd.conf
You can put that in a Shellcmd to make it run at boot. Somewhat like I described here.
The conf file needs to be configured correctly so looking at this:
You need to set the connection type to
The size to
If you have useFT2 set to no I don't expect it to require a font path. But some fonts are available in /usr/local/www/css/fonts/
I've never tried using that though.
Running from the command line should give more useful errors. Setting the report level setting differently might give better output.
Setting any settings like size and wait time in LCDd.con doesnt work or change things but im starting it manually without a lcd.conf file which may be why the text is small with not many screens. but the hello and goodbye screens work when i change them in lcdd.conf
it seems that even starting it with the -c option running it like this /usr/local/etc/rc.d/lcdproc.sh -c /root/LCDd.conf it doesnt use the .conf file and reverts back to the original in /usr/local/etc/LCDd.conf and it ignores the wait time and size, and useFT2 doesnt work the LCD will only work with that option set to no
Isnt there a lcd.conf somewhere that needs to have some settings? i did find a lcd-sample.conf or lcdproc-sample
Okay so after testing a few things I found out
When starting lcdproc via /usr/local/etc/rc.d/lcdproc.sh start it ignores most if LCDd.conf variables like wait time and most of the screens dont show.
When I run
Those commands sepretly it uses the variables in the LCDd.conf and shows way more screens. I just need to figure out the best text and icon size as it looks horrible and unreadable at the moment.
I will have to add those into shellcmd this seems like the way you need to start it manually.
Yes, exactly you can't use the shell script to start it as that just calls the standard files created by the package. You need to call the binary directly as I wrote above.
Be sure to check the post I linked above too. The actual commands you want to use in the shellcmd are:
/usr/bin/nice -20 /usr/local/sbin/LCDd -c /root/LCDd.conf > /dev/null &
/usr/bin/nice -20 /usr/local/bin/lcdproc C T U &
Assuming your customised LCDd.conf file is in /root.