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

    LCDProc package update

    Scheduled Pinned Locked Moved General pfSense Questions
    40 Posts 3 Posters 13.9k 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 Offline
      stephenw10 Netgate Administrator
      last edited by

      Mostly to remind myself how I did it here are the steps I took to compile a new driver for LCDproc for the package under 2.0.

      I started with an install of FreeBSD 8.1_release.
      First install the FreeBSD port of LCDproc. Goto /usr/ports/sysutils/lcdproc and type make. This will download all the sources and dependencies for LCDproc 0.5.3 and build them.
      Then follow the instructions from the LCDproc site, here, to add your new driver. There are some parts of these that are unclear.  ;)
      The driver I'm adding is specific to the Watchguard Firebox, which causes problems later, named sdeclcd.
      Editing acinclude.m4 is as per the instructions, as long as you don't make a typo! Editing Makefile.am was more involved.
      For step 2 I needed:```
      sdeclcd_LDADD =      libLCD.a libbignum.a

      And for step 3 I needed:```
       sdeclcd_SOURCES =    lcd.h lcd_lib.h sdeclcd.c sdeclcd.h report.h 
      

      Next you need to run autogen.sh but that's not included in the FreeBSD port so download it from here to  /usr/ports/sysutils/lcdproc/work/lcdproc-0.5.3.
      Then you can run ./configure –enable-drivers=sdeclcd (or whatever your driver is or all to build every driver) and then make to build the driver. sdeclcd.ko in my case.

      You then need to edit the files from the lcdproc package to allow the new driver to be selected and loaded. This is still a work in progress for me as the driver is a special case.

      Steve

      1 Reply Last reply Reply Quote 0
      • C Offline
        Cino
        last edited by

        i copied the package files over and it worked for me. I did leave the libusb in the /usr/local/lib directory tho.

        reading steve's post, i believe that was the same thing i did when i trying to get the driver i needed.

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

          @Cino:

          i copied the package files over and it worked for me. I did leave the libusb in the /usr/local/lib directory tho.

          ok, I updated the files in my git clone… today I will mail Jim and ask how to do that... I keep you updated!

          Ciao,
          Michele

          1 Reply Last reply Reply Quote 0
          • C Offline
            Cino
            last edited by

            Thanks Michele!

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

              Assides from having to add your driver are either of having problems with the lcdproc package?

              Because I intended to modify the package I first setup my own local repo as detailed here.
              I have had a lot of trouble getting the package up and running. A lot of my problems were caused by the fact that, despite putting the .htaccess file in every directory I could, the php files from the package are being executed by my server rather than served.   >:(
              However even having moved the php file manually I am getting errors. The lcdproc_client.php file will not run such that I just see the output of LCDd on the LCD. Running /tmp/lcdclient.sh manually gives:

              Fatal error: Cannot redeclare array_combine() in /usr/local/pkg/lcdproc_client.php on line 84
              

              Commenting out the array_combine function and the CPU usage function which depends on it allows it to run.
              I have no idea why this won't run for me yet other people aren't complaining.  ???

              Steve

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

                @stephenw10: this is a bug I fixed on my version of LCDProc… you can use my version of LCDProc (in this thread in a previous post there's the link) or wait that I try to merge the changes I made in the main repository...

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

                  Ok thanks, not just me then!  ::)

                  Solved the php parsing problem. By default Apache ignores .htaccess files unless you allow it. I added the following to httpd.conf:

                  
                   <directory "="" usr="" local="" www="" apache22="" data="" packages"="">AllowOverride All</directory> 
                  
                  

                  Allowing 'all' is more than what is required but solves the problem.

                  Steve

                  Edit: I see you commented out the function but left it in CPU Usage. Do you have a list of changes?

                  Edit: If you're merging stuff then there should be a description line in the service section of lcdproc.xml like so:

                  
                   <service><name>lcdproc</name>
                  		<description>LCD Driver</description>
                  		<rcfile>lcdproc.sh</rcfile>
                  		<executable>LCDd</executable></service> 
                  

                  This fills in the empty box on Status: Services:

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

                    @Cino:

                    Thanks Michele!

                    ok, I committed all the changed in the new repository… I hope that soon all this changed will be torned in production, in the real distributed package!

                    Ciao,
                    Michele

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

                      @stephenw10: well, I made so many changes from may that I lost the track… the most important I remember are: added mbuf screen, added support for panels 4x20 and 4x16, also now the screen size is considered by the application (before was anyway fixed 16x2), added some comports, added a parameter for the refresh frequency, added the states screen (think I did, not sure about that), added the cpu frequency screen. After 1 month I made also some optimizations to all the above code.

                      I committed my changed with my clone on rcs.pfsense.org only a couple of times, but I think that if you need to make some changes it worths to start from my files...

                      I just added the description to the LCDProc service and I committed it... ;)

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

                        Com 1 seems to have vanished from lcdproc.xml  ;)

                        Steve

                        Edit: Ah so com1 is default if you don't select anything?

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

                          @stephenw10:

                          Com 1 seems to have vanished from lcdproc.xml  ;)

                          Steve

                          Edit: Ah so com1 is default if you don't select anything?

                          mmmhhhh… I didn't change that, but it's not so nice if "none" means com1... :S

                          btw, if you reinstall the package now you download the last version!! :) Thanks to Jim and Luiz!!

                          1 Reply Last reply Reply Quote 0
                          • C Offline
                            Cino
                            last edited by

                            looks like the merge request when thru, https://github.com/bsdperimeter/pfsense-packages/commit/c587fd97b5baaec9358b50f303326350d1c23088.

                            A couple of things tho:
                            1: Please remove libkvm.so.5 from the package, pfsense has it built-in already
                            2: libusb.so.2 should be located at /usr/local/lib
                            3: This maybe your next step, are your going to update to 0.5.4?

                            I removed everything including manual files… installed the package and it started after clicking start under services. I have to verify that the screen is working but that will be later tonight... Swamp at work to prepare for the Hurricane and I'm on stand-by with the army national guard. Should be a fun weekend in NYC... Glad I live an hour+ away from the city.

                            If the screen is displaying correctly, then issue 2 wouldn't be an issue :-)

                            On another note, have either of you messed around with using lcdproc client that comes with LCDproc? I've enabled it on my build because I like the load graphical screen. Works pretty good. You have to copy lcdproc.conf.sample to lcdproc.conf and edit some of the settings. then you can run lcdproc from the command line or within a start-up script.

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

                              Hi Cino,
                              about your points:

                              @Cino:

                              1: Please remove libkvm.so.5 from the package, pfsense has it built-in already

                              I did it. For this:

                              @Cino:

                              2: libusb.so.2 should be located at /usr/local/lib

                              I am a bit afraid to mess up some other package or part that use that file… it should be better to leave the file in his own directory, so if someone uninstalls LCDProc does not remove a lib from a "common directory" that maybe is needed by some other package or similar, what do you think about that? Tell me when you're back home, if it works I would leave this file where it is, if it does not work I move it, ok? Just let me know...

                              About the update of LCDProc to 5.4, the changelog reports only a couple of drivers more and a small bugfix, I am not sure it worths it... anyway, now I am trying to manage a x64 virtual machine, + I have your files for both versions, let me think about it...

                              As for the graphical screens, no I didn't try anything... but consider that this package is done for a lot of different devices and panels, I am a bit scared about introducing features that could not be compatible with this devices...

                              It is very honorable of you being ready to serve your Country in case of need... I wish you the best for the Hurricane in NY...

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

                                @mdima:

                                About the update of LCDProc to 5.4, the changelog reports only a couple of drivers more and a small bugfix, I am not sure it worths it… anyway, now I am trying to manage a x64 virtual machine, + I have your files for both versions, let me think about it...

                                Actually, for this, I was investigating a bit and I found out that LCDProc 0.5.4 is already present in http://files.pfsense.org/packages/8/All/ and http://files.pfsense.org/packages/amd64/8/All/ and in both files "lcdproc-0.5.4.tbz" there is both the Surelect then the picolcd driver… the only missing file would be libusb.so.2 that I can't find in the package...

                                So the update to 0.5.4 looks less painful than I thought...

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

                                  @Cino:

                                  Please remove libkvm.so.5 from the package, pfsense has it built-in already

                                  But only on 2.0. As far as I can see this package will still appear under 1.2.3 and won't work. Need to change pkg_config.7.xml? Or fork?
                                  @Cino:

                                  2: libusb.so.2 should be located at /usr/local/lib

                                  You've confirmed that you definitely need this?

                                  @Cino:

                                  Swamp at work to prepare for the Hurricane and I'm on stand-by with the army national guard

                                  :o I was nailing some plastic over a window I didn't finish painting before it started raining earlier. I was cursing the weather. Then I watched the news and it put it into perspective! Good luck.

                                  @Cino:

                                  On another note, have either of you messed around with using lcdproc client that comes with LCDproc?

                                  Until now that's the only client I had used. A forum user had written the driver for LCDproc 0.52 sometime ago and released a tarball with LCDd and lcdproc included. The lcdproc package client is far more flexible it's relatively easy to add extra screens but it doesn't look anywhere near as good as the standard lcdproc client. I think my screen has a slow update time. It's hard to read a lot of the scrolling info, especially as it goes in both directions. See the thread here. The second post is about making a package. Three and half years later it still hasn't happened!  ::)

                                  Maybe we should include the Watchguard driver in this package to give people more choice?

                                  Steve

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

                                    @lcdproc:

                                    TitleSpeed = SPEED
                                    Set the speed how fast over-long title lines shall scroll. Legal values are 0 to 10, where 0 means that no scrolling takes place and 10 stands for fastest scrolling. Default is 10, where no artificial delay is inserted.

                                    Hmm, defaults to the highest speed. Room for adjustment there then.

                                    Steve

                                    1 Reply Last reply Reply Quote 0
                                    • C Offline
                                      Cino
                                      last edited by

                                      @stephenw10:

                                      @Cino:

                                      Please remove libkvm.so.5 from the package, pfsense has it built-in already

                                      But only on 2.0. As far as I can see this package will still appear under 1.2.3 and won't work. Need to change pkg_config.7.xml? Or fork?

                                      The picolcd.so driver wont work on 1.2.3. There is some usb hack that needs to be applied. I dont have the link but it was covered under the freebsd.org board somewhere. http://forum.pfsense.org/index.php/topic,13697.msg123473.html#msg123473

                                      @stephenw10:

                                      @Cino:

                                      2: libusb.so.2 should be located at /usr/local/lib

                                      You've confirmed that you definitely need this?

                                      Don't need it seems :-) It's already located '/usr/lib'

                                      I really need to learn the program.. I wanted to create a tab to the lcdproc package to add the different screens from lcdproc.

                                      @mdima thank you so much for adding updating the package. When you get a chance, please remove libusb.so.2 from the package. It doesn't need to be part of since its built-in into the pfsense snapshot. Never noticed it before back when i first added the driver to 2.0-Beta4

                                      i made a mistake saying that it adding a graphical screen, its really just a character based screen that looks like a bar graph… Its already part of the LCDproc package..

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

                                        @Cino:

                                        @mdima thank you so much for adding updating the package. When you get a chance, please remove libusb.so.2 from the package. It doesn't need to be part of since its built-in into the pfsense snapshot. Never noticed it before back when i first added the driver to 2.0-Beta4

                                        you are welcome, it was the 1st time I dealed with pfSense packages, for me it is still all new…
                                        now I am thinking about the update to version 0.5.4, which will solve the problem of "binaries in the package repository"...

                                        @Cino:

                                        i made a mistake saying that it adding a graphical screen, its really just a character based screen that looks like a bar graph… Its already part of the LCDproc package..

                                        what you mean with this?

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

                                          The standard lcdproc client, confusingly called lcdproc, uses custom characters to display either vertical or horisontal bars to indicate values. Like this:


                                          That picture doesn't really show it to full effect though. All idle!

                                          Because of the way lcdproc works you can have more than one client program running so it should be possible to use both lcdproc_client.php and the standard lcdproc and have them both displayed.

                                          Steve

                                          Edit: This thread should be in packages don't you think?

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

                                            @stephenw10:

                                            The standard lcdproc client, confusingly called lcdproc, uses custom characters to display either vertical or horisontal bars to indicate values. Like this:


                                            That picture doesn't really show it full effect though. All idle!

                                            Because of the way lcdproc works you can have more than one client program running so it should be possible to use both lcdproc_client.php and the standard lcdproc and have them both displayed.

                                            Steve

                                            Edit: This thread should be in packages don't you think?

                                            that's great! I was also finding this one: http://www.youtube.com/watch?v=Vqo7ZTxlxyE
                                            How do you do that?

                                            anyway, now yes, we start to be a little ot in this forum… or this changes apply only to the version 2.0?
                                            I don't know, I don't have a pfsense 1.2.3 anymore...

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