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

    Firebox LCD Driver for LCDProc

    Hardware
    97
    398
    412.4k
    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.
    • F
      fmertz
      last edited by

      @stephenw10:

      I'm not sure you can do that in one step

      Commands:

      
      git clone -b sdec git://github.com/fmertz/sdeclcd.git
      cd sdeclcd/
      ./autogen.sh
      ./configure --enable-drivers=sdeclcd
      make
      
      

      In FreeBSD:

      
      [fcm@BSDDev /usr/home/fcm]$ uname -a
      FreeBSD BSDDev.localdomain 8.2-RELEASE FreeBSD 8.2-RELEASE #0: Fri Feb 18 02:24:46 UTC 2011     root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC  i386
      [fcm@BSDDev /usr/home/fcm]$ git clone -b sdec git://github.com/fmertz/sdeclcd.git
      Cloning into sdeclcd...
      remote: Counting objects: 628, done.
      remote: Compressing objects: 100% (499/499), done.
      remote: Total 628 (delta 90), reused 627 (delta 89)
      Receiving objects: 100% (628/628), 992.04 KiB | 191 KiB/s, done.
      Resolving deltas: 100% (90/90), done.
      [fcm@BSDDev /usr/home/fcm]$ cd sdeclcd/
      [fcm@BSDDev /usr/home/fcm/sdeclcd]$ ./autogen.sh 
      Running aclocal ...
      Running autoheader...
      Running automake  ...
      configure.in:75: installing `./compile'
      configure.in:10: installing `./config.guess'
      configure.in:10: installing `./config.sub'
      configure.in:6: installing `./install-sh'
      configure.in:6: installing `./missing'
      clients/lcdexec/Makefile.am: installing `./depcomp'
      Running autoconf ...
      [fcm@BSDDev /usr/home/fcm/sdeclcd]$ ./configure --enable-drivers=sdeclcd
      checking for a BSD-compatible install... /usr/bin/install -c
      checking whether build environment is sane... yes
      checking for a thread-safe mkdir -p... ./install-sh -c -d
      checking for gawk... no
      checking for mawk... no
      checking for nawk... nawk
      checking whether make sets $(MAKE)... yes
      checking build system type... i386-unknown-freebsd8.2
      checking host system type... i386-unknown-freebsd8.2
      checking whether to enable debugging... no
      checking for gcc... gcc
      checking whether the C compiler works... yes
      checking for C compiler default output file name... a.out
      checking for suffix of executables... 
      checking whether we are cross compiling... no
      checking for suffix of object files... o
      checking whether we are using the GNU C compiler... yes
      checking whether gcc accepts -g... yes
      checking for gcc option to accept ISO C89... none needed
      checking for style of include used by make... GNU
      checking dependency style of gcc... gcc3
      checking how to run the C preprocessor... gcc -E
      checking for ranlib... ranlib
      checking whether gcc and cc understand -c and -o together... yes
      checking for xmlto... no
      checking CFLAGS for gcc -Wno-unused-function... -Wno-unused-function
      checking CFLAGS for gcc -ftrampolines... no, unknown
      checking for gethostbyname... yes
      checking for connect... yes
      checking for inet_aton... yes
      checking for kstat_open in -lkstat... no
      checking for nanosleep in -lposix4... no
      checking for getloadavg... yes
      checking for swapctl... no
      checking for grep that handles long lines and -e... /usr/bin/grep
      checking for egrep... /usr/bin/grep -E
      checking for ANSI C header files... yes
      checking for sys/types.h... yes
      checking for sys/stat.h... yes
      checking for stdlib.h... yes
      checking for string.h... yes
      checking for memory.h... yes
      checking for strings.h... yes
      checking for inttypes.h... yes
      checking for stdint.h... yes
      checking for unistd.h... yes
      checking procfs.h usability... no
      checking procfs.h presence... no
      checking for procfs.h... no
      checking sys/procfs.h usability... yes
      checking sys/procfs.h presence... yes
      checking for sys/procfs.h... yes
      checking sys/loadavg.h usability... no
      checking sys/loadavg.h presence... no
      checking for sys/loadavg.h... no
      checking utmpx.h usability... no
      checking utmpx.h presence... no
      checking for utmpx.h... no
      checking for kvm_open in -lkvm... yes
      checking sched.h usability... yes
      checking sched.h presence... yes
      checking for sched.h... yes
      checking for sys/types.h... (cached) yes
      checking machine/pio.h usability... no
      checking machine/pio.h presence... no
      checking for machine/pio.h... no
      checking machine/sysarch.h usability... yes
      checking machine/sysarch.h presence... yes
      checking for machine/sysarch.h... yes
      checking sys/cpuvar.h usability... no
      checking sys/cpuvar.h presence... no
      checking for sys/cpuvar.h... no
      checking machine/apm_bios.h usability... yes
      checking machine/apm_bios.h presence... yes
      checking for machine/apm_bios.h... yes
      checking for System V IPC headers... yes
      checking for union semun... yes
      checking for machine/cpufunc.h... yes
      checking for sched_setscheduler... yes
      checking for sched_setscheduler in -lposix4... no
      checking for sched_setscheduler in -lrt... yes
      checking for i386_get_ioperm in -li386... no
      checking for i386_get_ioperm in -lc... yes
      checking for iopl... no
      checking for ioperm... no
      checking sys/io.h usability... no
      checking sys/io.h presence... no
      checking for sys/io.h... no
      checking for a parallel port... yes
      checking linux/i2c-dev.h usability... no
      checking linux/i2c-dev.h presence... no
      checking for linux/i2c-dev.h... no
      checking for dirent.h that defines DIR... yes
      checking for library containing opendir... none required
      checking for ANSI C header files... (cached) yes
      checking fcntl.h usability... yes
      checking fcntl.h presence... yes
      checking for fcntl.h... yes
      checking sys/ioctl.h usability... yes
      checking sys/ioctl.h presence... yes
      checking for sys/ioctl.h... yes
      checking sys/time.h usability... yes
      checking sys/time.h presence... yes
      checking for sys/time.h... yes
      checking for unistd.h... (cached) yes
      checking for sys/io.h... (cached) no
      checking errno.h usability... yes
      checking errno.h presence... yes
      checking for errno.h... yes
      checking limits.h usability... yes
      checking limits.h presence... yes
      checking for limits.h... yes
      checking kvm.h usability... yes
      checking kvm.h presence... yes
      checking for kvm.h... yes
      checking sys/param.h usability... yes
      checking sys/param.h presence... yes
      checking for sys/param.h... yes
      checking sys/dkstat.h usability... yes
      checking sys/dkstat.h presence... yes
      checking for sys/dkstat.h... yes
      checking for sys/sysctl.h... yes
      checking for sys/pcpu.h... yes
      checking for SA_RESTART... yes
      checking for an ANSI C-conforming const... yes
      checking for inline... inline
      checking for size_t... yes
      checking whether time.h and sys/time.h may both be included... yes
      checking whether struct tm is in sys/time.h or time.h... time.h
      checking for uid_t in sys/types.h... yes
      checking whether gcc needs -traditional... no
      checking return type of signal handlers... void
      checking for select... yes
      checking for socket... yes
      checking for strdup... yes
      checking for strerror... yes
      checking for strtol... yes
      checking for uname... yes
      checking for cfmakeraw... yes
      checking for snprintf... yes
      checking for getopt... yes
      checking for your mounted filesystem table... /etc/fstab
      checking for fcntl.h... (cached) yes
      checking sys/dustat.h usability... no
      checking sys/dustat.h presence... no
      checking for sys/dustat.h... no
      checking for sys/param.h... (cached) yes
      checking sys/statfs.h usability... no
      checking sys/statfs.h presence... no
      checking for sys/statfs.h... no
      checking sys/fstyp.h usability... no
      checking sys/fstyp.h presence... no
      checking for sys/fstyp.h... no
      checking mnttab.h usability... no
      checking mnttab.h presence... no
      checking for mnttab.h... no
      checking mntent.h usability... no
      checking mntent.h presence... no
      checking for mntent.h... no
      checking utime.h usability... yes
      checking utime.h presence... yes
      checking for utime.h... yes
      checking sys/statvfs.h usability... yes
      checking sys/statvfs.h presence... yes
      checking for sys/statvfs.h... yes
      checking sys/vfs.h usability... no
      checking sys/vfs.h presence... no
      checking for sys/vfs.h... no
      checking sys/filsys.h usability... no
      checking sys/filsys.h presence... no
      checking for sys/filsys.h... no
      checking sys/fs_types.h usability... no
      checking sys/fs_types.h presence... no
      checking for sys/fs_types.h... no
      checking for sys/mount.h... yes
      checking for getmntinfo... yes
      configure: checking how to get filesystem space usage...
      checking for statvfs... yes
      checking module extension... .so
      checking for dlopen in -ldl... no
      checking for shl_load in -ldld... no
      checking if libusb support has been enabled... yes
      checking for pkg-config... /usr/local/bin/pkg-config
      checking pkg-config is at least version 0.9.0... yes
      checking for LIBUSB... no
      checking if libftdi support has been enabled... yes
      checking for LIBFTDI... no
      checking if libhid support has been enabled... yes
      checking for LIBHID... no
      checking if PNG support has been enabled... yes
      checking for libpng-config... /usr/local/bin/libpng-config
      checking whether libpng is present and sane... yes
      checking if freetype support has been enabled... yes
      checking for freetype-config... /usr/local/bin/freetype-config
      checking for FreeType -- version >= 7.0.1... yes
      checking if ethlcd support has been enabled... yes
      checking for doxygen... no
      configure: checking which drivers to compile...
      ---------------------------------------
      LCDd will be compiled with the drivers:
          -  sdeclcd
      ---------------------------------------
      configure: creating ./config.status
      config.status: creating Makefile
      config.status: creating shared/Makefile
      config.status: creating server/Makefile
      config.status: creating server/commands/Makefile
      config.status: creating server/drivers/Makefile
      config.status: creating clients/Makefile
      config.status: creating clients/lcdproc/Makefile
      config.status: creating clients/lcdexec/Makefile
      config.status: creating clients/lcdvc/Makefile
      config.status: creating clients/examples/Makefile
      config.status: creating clients/metar/Makefile
      config.status: creating docs/Makefile
      config.status: creating docs/Doxyfile
      config.status: creating docs/lcdproc-dev/Makefile
      config.status: creating docs/lcdproc-user/Makefile
      config.status: creating docs/lcdproc-user/drivers/Makefile
      config.status: creating scripts/Makefile
      config.status: creating scripts/init-LCDd.LSB
      config.status: creating scripts/init-lcdproc.LSB
      config.status: creating scripts/init-lcdexec.LSB
      config.status: creating scripts/init-lcdvc.LSB
      config.status: creating scripts/init-LCDd.debian
      config.status: creating scripts/init-lcdproc.debian
      config.status: creating scripts/init-lcdexec.debian
      config.status: creating scripts/init-lcdvc.debian
      config.status: creating scripts/init-LCDd.rpm
      config.status: creating scripts/init-lcdproc.rpm
      config.status: creating config.h
      config.status: executing depfiles commands
      [fcm@BSDDev /usr/home/fcm/sdeclcd]$ make
      make  all-recursive
      Making all in shared
      ...
      [fcm@BSDDev /usr/home/fcm/sdeclcd]$ ls -l server/drivers/sdeclcd.so
      -rwxr-xr-x  1 fcm  fcm  13522 Dec  6 21:51 server/drivers/sdeclcd.so
      
      
      1 Reply Last reply Reply Quote 0
      • M
        mmiller
        last edited by

        Does anyone have this in a package yet for pfsense?  I would build it my self except I don't currently have a freebsd VM or test machine to test on.

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

          @fmertz:

          The github repository for the sdeclcd is at https://github.com/fmertz/sdeclcd

          The code was updated. Check the sdec branch of the project:

          https://github.com/fmertz/sdeclcd/tree/sdec

          The changes are:

          • Rewrite of driver code
          • Suppressed user parameter in configuration file to preserve back light
          • Added support for more icon codes
          • Restored heart beat
          • Fixed initialization
          • Updated documentation

          This is based on the 0.5dev version of the lcdproc upstream project.

          The primary purpose of this effort is to submit a working driver to the upstream project. This is why it is a branch off of the latest dev branch.

          In parallel, mdima has packaged lcdproc-dev for pfSense. It is based off of lcdproc-0.5.4. This latest driver code is included in mdima's package (I compiled it separately). The discussion is here: http://forum.pfsense.org/index.php/topic,44034.0.html. Big thanks to Stephenw10 and Spy Alelo for live testing on actual hardware, and confirming that the driver works. Basically, if you install the lcdproc-dev package on your Firebox, you should have a working LCD. As simple as that. Feedback most welcome.

          PS: The button mapping in the LCDd.conf file might need an adjustment, but should be fixed shortly.

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

            @fmertz:

            The code was updated. Check the sdec branch of the project:

            https://github.com/fmertz/sdeclcd/tree/sdec

            The primary purpose of this effort is to submit a working driver to the upstream project.

            The code was updated again: housekeeping and bug fix.

            A little while back, I submitted this code for inclusion into the upstream lcdproc project. I am happy to report that the code was accepted. This means this SDEC driver for Fireboxes is now a part of the official lcdproc project!

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

              The code was updated again for supporting LEDs. Details here:

              http://forum.pfsense.org/index.php/topic,44034.msg276249.html#msg276249

              1 Reply Last reply Reply Quote 0
              • D
                drdyno
                last edited by

                So I installed with the new LCDproc-dev.. All I can get the lcd to do is say "Thanks for using pfSense".
                I have different screens checked on the screens tab but can't get it to do anything… buttons don't work.

                I had this working at one time.. now I am frustrated with it...

                Dyno

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

                  There is a problem with the start sequence. Once your box is up if you go to Status: Services: and restart the lcdproc service it will run correctly.

                  Steve

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

                    I rewrote the startup script that lcdproc.inc outputs and fixed the boot issue on Fireboxes and my own units.

                    You guys will need to check my work and make sure nothing is getting messed up by my changes, but it appears start/stop/restart are working as intended. Something was wrong with the "if X running then kill X" statements. Not sure why the bug was inconsitent with different hardware, but I got it working.

                    I'll post it when I get home, stuck at work. I've been so busy I haven't even been able to test the xCore-e changes.  :-\

                    1 Reply Last reply Reply Quote 0
                    • D
                      drdyno
                      last edited by

                      Steve,

                      Is there anyway to fix this other than having to do that each time it reboots? This is a firebox for my best friend that I am building to help conserve space in his office.

                      Dyno

                      ** Nevermind on reboot it works properly now!

                      Now to find a better and quieter cpu cooler…

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

                        Here is the "fixed" lcdproc.inc

                        Not sure if this will work for everyone or if it isn't working right, but let me know how it could be improved.

                        lcdproc.inc.png

                        1 Reply Last reply Reply Quote 0
                        • D
                          drdyno
                          last edited by

                          Brak,

                          I stumbled upon your ebay listings again today looking for a X-E box  ;D

                          you boxes look nice.

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

                            @drdyno:

                            Brak,

                            I stumbled upon your ebay listings again today looking for a X-E box  ;D

                            you boxes look nice.

                            Thanks bud!

                            I'd probably sell my X-E boxes with pfsense on them, but I'm waiting for 2.1 so the driver is supported properly. So sad that 4 gigabit NICs are basically useless atm! I have 3 fully maxed upgraded ones just looking pretty in a rack :(

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

                              Try the patched driver. I've put a few 10s of Gigs through mine and hasn't crashed yet. Though I still haven't found a reliable way to crash it with the standard driver.  ::)

                              Steve

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

                                how can I disable the backlight timer?

                                I have the backlight set to on, the brightness to 100% and the off-brightness to 100%… tried adding
                                BackLight=yes
                                Backlight_Timer=0

                                to the lcdd.conf and still turns off after 30 seconds or so  ???

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

                                  If you are using the most recent re-written driver there is a hard coded backlight timer which can't be disabled. Fmertz did it deliberately as the the backlight has a finite (and not that long) life and has already been run for many hours on most peoples boxes. We had a number of failure reports.

                                  Steve

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

                                    its an LED backlight… its lifetime would be about the same as the power LED?...

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

                                      well anyway if anyone wants the backlight on all the time regardless of what the driver tells it to do all you have to do is put a bit of solder across J2 right next to the "K" (Cathode) land on the back of the LCD panel

                                      it has a 100k hour MTBF (~11.5 years) so decide if you want to "risk" it

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

                                        Which box do you have?
                                        Some had a cold cathode style backlight with a far shorter life.

                                        Steve

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

                                          I have a firebox X500

                                          yes a CCFL backlight will have about 1/10th the MTBF as an LED backlight…. an EL backlight even worse

                                          interesting (strange?) that they would use a CCFL backlight LCD that is so small, usually you see that on larger graphic displays not tiny text displays?

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

                                            I may have mis-remebered and it was in fact EL. I do remeber being both surprised and alarmed when I read the spec sheet for the display at the expected backlight life. Most of these boxes have seen thousands of hours before they ever have pfSense loaded. This may not be a problem because the Watchguard OS has a backlight timer but without any display driver pfSense will leave it on permanently.

                                            See: http://forum.pfsense.org/index.php/topic,44034.msg234998.html#msg234998

                                            Steve

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