Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    LCDProc 0.5.4-dev

    Scheduled Pinned Locked Moved pfSense Packages
    587 Posts 68 Posters 651.0k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stephenw10S
      stephenw10 Netgate Administrator
      last edited by

      I have replicated some of my previous testing for reference.
      Editing lcdproc.inc so that the resulting lcdproc.sh is:

      
      #!/bin/sh
      # This file was automatically generated
      # by the pfSense service handler.
      
      rc_start() {
      
      	ps auxw |awk '/lcdproc_client.ph[p]/ {print $2}'|xargs kill
      	ps auxw |awk '/LCD[d]/ {print $2}'|xargs kill
      	/usr/bin/nice -20 /usr/local/sbin/LCDd -u nobody -c /usr/local/etc/LCDd.conf
      	/usr/bin/nice -20 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php &
      
      }
      
      rc_stop() {
      
      	ps auxw |awk '/lcdproc_client.ph[p]/ {print $2}'|xargs kill
      	ps auxw |awk '/LCD[d]/ {print $2}'|xargs kill
      }
      
      case $1 in
      	start)
      		rc_start
      		;;
      	stop)
      		rc_stop
      		;;
      	restart)
      		rc_stop
      		rc_start
      		;;
      esac
      
      

      Results in after boot:

      [2.0.1-RELEASE][root@x-core.localdomain]/root(1): ps aux|grep lcd
      root   16096  3.0  6.9 36188 16980  ??  SN    1:41PM   0:00.27 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php
      root   16748  3.0  6.9 36188 16980  ??  SN    1:41PM   0:00.27 /usr/local/bin/php -f /usr/local/pkg/lcdproc_client.php
      [2.0.1-RELEASE][root@x-core.localdomain]/root(2): ps aux | grep LCD
      
      

      And in the system log:

      
      Feb 23 13:41:31 	LCDd: Critical error while initializing, abort.
      Feb 23 13:41:31 	LCDd: sock_init: error creating socket - Address already in use
      Feb 23 13:41:31 	LCDd: sock_create_inet_socket: cannot bind to port 13666 at address 127.0.0.1 - Address already in use
      

      Which implies this wasn't happening before.

      Steve

      1 Reply Last reply Reply Quote 0
      • M
        mdima
        last edited by

        mmhhh… Steve, stupid question.

        Are you sure that somewhere there is a script that runs the package at the startup, as a surplus of the times where you had to run LCDproc manually because it was not compatible with the sdelcd driver?

        Did you start from scratch with this test box?

        Thanks,
        Michele

        1 Reply Last reply Reply Quote 0
        • M
          mdima
          last edited by

          Hello everybody,
              any update on this package? None is using it or it's considered running and stable?

          Thanks for any feedback,
          Michele

          1 Reply Last reply Reply Quote 0
          • stephenw10S
            stephenw10 Netgate Administrator
            last edited by

            Sorry, not much spare time for testing.
            As it stands, although it doesn't start cleanly, it is fully functional on the X-Core. The additional LCDd hardly uses much by way of resources and it sorts itself out the first time one of the interfaces changes. So if you are using a ppp WAN then when the address changes all packages are restarted and it come up clean.

            My test box is a new install of 2.0.1 with no changes other than adding lcdproc-dev and some firewall rules so I can access it via the WAN interface for convenience.

            Steve

            1 Reply Last reply Reply Quote 0
            • B
              Brak
              last edited by

              I can only get lcdproc-dev to not crash-loop on my Firebox X Core when I spam the left arrow button and hope I can get the lcdproc menu to open up. I do this right after I restart/start the service. If I get the menu open, everything then works fine when I exit the menu.

              I also have the issue of if an interface goes down, lcdproc crashes and attempts to restart.

              1 Reply Last reply Reply Quote 0
              • M
                mdima
                last edited by

                mmhhh… what about all the people with non watchguard products?

                eventually, do anybody has a firebox to lend me? I promise I send back after I check/fix/give it up...

                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Hmm, expensive shipping to Milan. Might be cheaper to just buy you one from Ebay!  ::)

                  Steve

                  1 Reply Last reply Reply Quote 0
                  • M
                    mdima
                    last edited by

                    Well, yes, but the shipping would be expensive anyway, plus I get a firebox I don't need… :D

                    really, this for me is a kind of hobby, and spending (the cheapest I found from Australia) 250 Euro to fix this is really a challenge... :D

                    Do you think we could involve watchguard for this? Or someone to share the send/return shipping costs...

                    1 Reply Last reply Reply Quote 0
                    • stephenw10S
                      stephenw10 Netgate Administrator
                      last edited by

                      We can definitely get one cheaper than that. The X-Core box I have here has become a bit temperamental. I'll keep a look out for another one.

                      Steve

                      1 Reply Last reply Reply Quote 0
                      • stephenw10S
                        stephenw10 Netgate Administrator
                        last edited by

                        Here's a suggestion, while reading through some other bootup scripts I found this:

                        
                        // Do not process while booting
                        if($g['booting']) 
                        	exit;
                        

                        Perhaps we could use this somehow to limit the number of reloads? Of course it could easily stop it loading at all.  ::)

                        Steve

                        1 Reply Last reply Reply Quote 0
                        • M
                          mdima
                          last edited by

                          Good hint, thanks!! I will make some experiments with it and let you know…

                          Ciao,
                          Michele

                          1 Reply Last reply Reply Quote 0
                          • marcellocM
                            marcelloc
                            last edited by

                            @stephenw10:

                            Here's a suggestion, while reading through some other bootup scripts I found this:

                            
                            // Do not process while booting
                            if($g['booting']) 
                            	exit;
                            

                            Perhaps we could use this somehow to limit the number of reloads? Of course it could easily stop it loading at all.  ::)

                            Steve

                            It's on dansguardian as well but I did not saw changes on bootup time or times it tries to restart daemon.

                            What I did was changing reload option to stop and start.

                            I'm not sure about That but it looks like pfsense bootup script calls sync_package function for every xml file on package. Dansguardian has about 20 XML files and It's boot takes more then a minute in start / stop calls.

                            Something I'll try is to do not stop/start daemon if uptime is less then 01 minute for example or check if last stop/start call has less then x seconds.

                            Treinamentos de Elite: http://sys-squad.com

                            Help a community developer! ;D

                            1 Reply Last reply Reply Quote 0
                            • F
                              fmertz
                              last edited by

                              I have a test driver with LED support. It's been tested some on X-Peak and X-Core-e models, but there is code for X-Core as well. The updated FreeBSD driver is here:

                              https://github.com/downloads/fmertz/sdeclcd/sdeclcd.so

                              Once up and running, telnet to lcdproc (pretend to be a client) and type

                              telnet localhost 13666
                              hello
                              connect LCDproc 0.5.5 protocol 0.3 lcd wid 20 hgt 2 cellwid 5 cellhgt 8
                              output 1 <—Short red blink about every 4 seconds
                              success
                              output 2 <—Short green blink about every 4 seconds
                              success

                              The output logic is this: we have 32 bit to work with, and we need 3 states (Red, Green and off). This is 2 bits. So, in 32 bits, I have 16 time slots to work with. So, basically, code in the LED sequence of colors you want to see (Red, Green or off) and keep filling in the groups of 2 bits by shifting. the sequence just repeats indefinitely.

                              Worksheet:
                              XXXX XXXX XXXX XXXX, X is 0,1, or 2, and represents 2 bits

                              0000 0000 0000 0001 is slow short blink red
                              0101 0101 0101 0101 is fast short blink red
                              0011 0011 0011 0011 is medium medium blink red
                              0000 1111 0000 1111 is slow long blink red
                              0000 2222 0000 1111 is slow blink alternating between red and green, and off in between

                              The representation above needs to be made decimal for the “output” command. Sequence is about 4 seconds.

                              Thanks for letting me know if this works out for everyone. Would be nice to work this out into the PHP client, too.

                              1 Reply Last reply Reply Quote 0
                              • E
                                easyhugo
                                last edited by

                                @easyhugo:

                                @mdima:

                                @easyhugo:

                                Hi Guys

                                Is it possible to ad this Lcd to

                                http://allnet.de/1577.html?&tx_mmallnetproductplugin_pi1[showUid]=421433&cHash=949c8a38a8
                                ftp://212.18.29.48/ftp/pub/allnet/utility-server/fw8888/lcm_server_1.0.tar.bz2

                                i,m trying this for some time but with no success, see other posts from me

                                thx max

                                Hi Max (easyhugo),
                                it's impossible to know for me which driver this LCD panel uses… do you know the chipset? Can it use one of the drivers already made or you need another driver?

                                Ciao,
                                Michele

                                Hi
                                sorry but no driver work with this display, it does not work without these lcm server.

                                @stephenw10:

                                My German is very bad!  :-[ (Only beaten by my non-existant Italian!  ::))

                                However, according to [url=http://www.ipcop-forum.de/forum/viewtopic.php?f=22&t=26948#p231301]this post by IPCop ledgend Wintermute the display in the FW8888 is an LCM-162.

                                This doesn't appear to be supported directly by LCDproc but this blog post seems to show it is possible. That's quite old now so support maybe better integrated.

                                What drivers/versions have you tried?

                                Steve

                                Edit: This post confirms this.

                                and yes wintermute is an excellent ipcop programmer, but ipcop is not an freebsd os so i cant copy the files .
                                i have tried to copy the lcm to the pfsense and change the config files but with no success.
                                my test with these lcm if i tried the dev version was not born  :D so at now i will connect the guys from allnet how this lcm will work
                                the answer i would then post

                                thx

                                edit:
                                from the lcm pckage:

                                Make commands:
                                     Static binary:
                                          gcc –static -o lcm_server lcm_server.c
                                       
                                     Dynamic linked binary:
                                          gcc -o lcm_server lcm_server.c

                                Execution command:
                                     lcm_server /dev/ttyS1 "Banner"

                                Command FIFO:
                                    /var/run/lcm_cmd

                                Available commands:
                                          Clear -- Clear the LCM display
                                      Home -- Set the cursor back to row 0, column 0
                                      Display {on/off/nocur} -- Turn display on, off and on without cursor
                                      BKLight {on/off}      -- Turn LCM backlight on and off
                                      Setpos {0~1} {0~15}    -- Set the cursor position to row and column
                                      Write {text}      -- Write the text to LCM start from
                                                current cursor position
                                    Examples:
                                echo "Display oncur" > /var/run/lcm_cmd
                                echo "Setpos 0 0" > /var/run/lcm_cmd
                                echo "Write test message" > /var/run/lcm_cmd

                                Key FIFO:
                                    /var/run/lcm_key

                                Available keys: UP, DOWN, RET, ESC

                                Example:
                                cat /var/run/lcm_key

                                Note: There is no key de-bounce mechanism on LCM.
                                      Multiple key response may happen while receiving keys.

                                hi

                                the guys from allnet are not the fastest, no response to my mail from 18.2.2012
                                so google is now my friend angain to my problem with these lcm server on fw8888

                                in found an interesting site http://www.tecnowledge.net/2009/06/getting-lcdproc-to-work-with-an-lcm-162-freebsd/
                                how the managed these lcm server in freebsd
                                this description are from 2009 with an lcdproc version 0.5.2 but now im not sure if these changes are now included

                                thx max

                                max

                                1 Reply Last reply Reply Quote 0
                                • stephenw10S
                                  stephenw10 Netgate Administrator
                                  last edited by

                                  In a parallel discussion we have established that the lcm-162 is in fact almost identical to the firebox lcd (or at least the nexcom display is).
                                  Try using the firebox sdeclcd driver and see if you get anything at all.

                                  Steve

                                  1 Reply Last reply Reply Quote 0
                                  • F
                                    fmertz
                                    last edited by

                                    Execution command:
                                        lcm_server /dev/ttyS1 "Banner"

                                    This tells me the interface is serial, not parallel. Good old RS-232. My SDEC LCD driver will not work.

                                    Looking through the code here:```
                                    ftp://212.18.29.48/ftp/pub/allnet/utility-server/fw8888/lcm_server_1.0.tar.bz2

                                    
                                    It seems like the commands for the LCD are the "usual" set (same as SDEC LCD, and possibly HD44780). Being serial interface, you can give a shot to the HD44780, part of lcdproc. You will have to read the documentation for the driver to properly configure it for your display. The reward is that, once working (if it does), then clients like lcdproc itself, or the pfSense PHP client will work, too. Good luck, and keep us posted.
                                    
                                    PS: [http://www.tecnowledge.net/2009/06/getting-lcdproc-to-work-with-an-lcm-162-freebsd/](http://www.tecnowledge.net/2009/06/getting-lcdproc-to-work-with-an-lcm-162-freebsd/) is for a parallel port interface, not serial.
                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      mdima
                                      last edited by

                                      Hi fmertz,
                                        well, if the command/behavior is the same, maybe the sdec driver could accept the port as parameter from the client (there are already serial and parallel ports). Just an idea…

                                      Ciao,
                                      Michele

                                      1 Reply Last reply Reply Quote 0
                                      • F
                                        fmertz
                                        last edited by

                                        This would require new code. The parallel interface is driven directly with in/out machine language commands. Serial ports are typically coded with more abstraction, i.e. treated like files. At this point, let's see if the HD driver will do…

                                        1 Reply Last reply Reply Quote 0
                                        • E
                                          easyhugo
                                          last edited by

                                          hi guys

                                          thx for the answers
                                          the parallel discussion i know i have read it
                                          i tried the hd44780,nexcom and watchgard driver bevor my post but with no succes

                                          so at now i am setting up a 2nd fw8888 to test these driver on testing machine

                                          thx max

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            mdima
                                            last edited by

                                            @stephenw10:

                                            Here's a suggestion, while reading through some other bootup scripts I found this:

                                            
                                            // Do not process while booting
                                            if($g['booting']) 
                                            	exit;
                                            

                                            Perhaps we could use this somehow to limit the number of reloads? Of course it could easily stop it loading at all.  ::)

                                            Steve

                                            Hi Steve,
                                                I did this change, but I didn't notice any difference on my system (verified from the system.log file), the service is synced 2 times but run only one.

                                            Btw, can you apply this change to your "lcdproc.inc" file:
                                            Line 525 becomes:
                                            if(is_service_running(LCDPROC_SERVICE_NAME) && ! $g['booting'] ) {

                                            if this works for you I will release a new version with this change!

                                            Thanks,
                                            Michele

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.