Feature regression in LCDProc for pfSense 2.2?



  • Since upgrading to pfSense 2.2, it appears that the version lcdproc available to the system (either in the package manager of pfSense or added manually via pkg install) no longer honors the configuration item in LCDd.conf for "AutoRotate".

    By default, LCDProc will rotate between all of the available screens upon starting and cycle through them endlessly. This behavior is less than ideal for me, as I prefer to manually cycle through the pages with the keypad on my LCD to view each page. This worked perfectly fine out of the box with minimal configuration on previous releases.

    Historically, I have set AutoRotate=no, restarted LCDd, and everything worked exactly as I would expect. However, since the upgrade to 2.2, the old lcdproc package I was installing on all of my pfSense upgrades (lcdproc-0.5.5.tbz) will no longer install as the package manager facility has changed from pkg_add to pkg because of the FreeBSD 10 switch.

    So I tried both the version from the package manager and via pkg install (lcdproc: 0.5.7_2) and neither one of them pays attention to the AutoRotate configuration line. It always starts up and begins rotating based on the cycle time set in WaitTime=5.

    Is there any way I can restore the old behavior of lcdproc so that my display works the way it used to?



  • I have the lcdproc dev and crystal fontz 735. I can hit the center button which is a check mark and that lets me hold the screen then can cycle with arrows



  • Yep, I've got the CrystalFontz CFA635 (essentially the same thing) and mine works that way too.  The key difference is that when you boot the system or restart LCDProc, it starts it's rotation by default.  There is a configuration line in LCDd.conf called "AutoRotate" that you can set that makes it start up in "hold" mode, and you can press the center button to switch to "rotate" mode, as opposed to the default "rotate" mode that you can press the button to start "hold" mode.

    This config option used to work fine, but seems broken on the latest release. I'm running a custom LCDProc php script that I wrote, and I've set all of the screens to equal priority, then call the "main" screen to the front at the script's startup. It worked great when LCDd would just stay put in it's rotation, but now it insists on cycling through them all unless I physically press the center button to "hold" the screens after each boot.



  • What is the location of the LCDd.conf file you are editing?  On the system I was just working on, there was one in /etc which wasn't being used, and another one that was being used located at /usr/pbi/lcdproc-amd64/local/etc/LCDd.conf.  It shows in the system log which configuration file is used.  I'm guessing you checked that already, but just thought I'd mention it in case.



  • I'm editing the correct file, as it honors all of the other configuration items correctly, it's just that AutoRotate doesn't work anymore. It appears to be an upstream regression, as I can duplicate it on a different distro at exactly the same point release change. I looked at the source code branches to try to write a patch and fix it, but for the life of me I cannot figure out what happened to make it quit working.

    Regardless, I worked around my particular issue by setting WaitTime=99999999 in the config file. It seems that key will take any value up to 8 digits wide, so I set it to the maximum. Technically the screens are still rotating, but they only change every 3.16 years. :) This was good enough for me, as setting this value functionally restored the correct operation and has been working fine ever since.


Log in to reply