Firebox LCD Driver for LCDProc



  • I have the LCD working no issues.  The backlight is not working.  I know that it works when I put the orginal boot flash card in.  Any thoughts on why it is not working?
    RC


  • Netgate Administrator

    No ideas at the moment. Is it a clean install?
    The backlight is controlled directly by a single bit on one of the parallel port registers. Have you changed any of the bios settings? Perhaps the way FreeBSD accesses the hardware is slightly different to Linux (the Watchguard OS).
    Some body else here who's backlight had broken suggested using a usb powered internal LED. It should work but will require some modification to the panel to allow the light in.

    Steve



  • It is not a clean installation.  It is the one I have been running.  It was installed in 1.2.3 before I did the upgrade.
    RC



  • dfwbt,
    I would be very interested in you script for the functions of the buttons.  That seems to put the finishing touches on what everyone has done here.  I have been very busy testing with my x500 prior to my x6000 getting here.  I am really looking forward to the upgrade.  I just got a ide hard drive and I am going to order a adapter adapter so I can use the carrier in the x6000 to do a full install.  I been making notes so I can replicate the lcd installation and the arm light change.

    I love to add you reboot script to that list of things that I have got planned for the x6000.  I did get my bridging working with all ports on the x500.  I retired a switch I was using to eliminate the extra power used here at home.  I added all the ports to the bridge and set the source to any under each port and everything just started working.  I test and only see about a 5% increase in CPU utilization.  My x500 runs at 2-5% utilization so 5-7% utilization is no big deal.  I have a total of 12 devices on my home network right now, and that is the smallest it has been in 15 years.
    RC


  • Netgate Administrator

    I just re-read my own write up on the led and found where I referenced the backlight.
    It's controlled directly by the parallel I/O registers as I said: IO address 0x379 bit 1.
    You can try turning it on and off manually using this program I wrote. This program has no error/sanity checking so use it carefully!  ::)
    Upload it to your box. chmod it to 0755. Kill lcdd so it's not trying to write to same address then:

    ./writeio 0x379 0x01
    

    This should turn it on.

    ./writeio 0x379 0x00
    

    Should turn it off again.

    It's probably a problem with the upgrade though. You would be better to do a clean install.
    Do the buttons work at all?

    Steve



  • I can't get the writeio to execute.  I guess I need to execute the sudo command, is that right?
    RC


  • Netgate Administrator

    Did you chmod it?

    chmod 0755 writeio
    

    Are you logged in as root?

    There is no sudo command.

    Steve



  • Whch Driver do I need to use for the LCD on the x6000?  LCDPROC or the one stephenw10 has written.  I did a upgrade to the latest version last night and realized that the LCD stopped working after the upgrade was done.

    I am having to use the 2GB nano version because the 4GB nano release will not fit on my flash drive.

    RC


  • Netgate Administrator

    Use the firebox script, lcdd4. Unfortunately because it isn't a proper pfSense package, yet, it doesn't survive an update.

    2GB image is fine, I'm using the 1GB image on a 4GB card.

    Steve



  • Hey Steve! It's been awhile hope your well.

    Got a question for you, I made the mistake of finding the lcdd3.tar file before I noticed this post with lcdd4.tar, is the file system mounting restored on reboot or should I reinstall after using lcdd3? I noticed after reboot it's writable and not sure if it should be. lcdd3.tar is what I used and on a X700

    Thanks a bunch!


  • Netgate Administrator

    Which version of pfSense are you running?

    There is a bug in current 2.0 snapshots (unless it's been fixed while I wasn't looking!) that leaves the filesystem mounted read-write. It's not really a problem or anything to worry about.

    The lcdd3 script used the mount command directly which is not the correct way to do it in recent versions. This combined with the bug can leave the filesystem mounted read-only with no way to remount it RW. This means that you can't save changes, add packages etc.

    If you used lcdd3 and you're running 2.0Beta5 or newer you may have a problem.

    Steve



  • @stephenw10:

    Which version of pfSense are you running?

    There is a bug in current 2.0 snapshots (unless it's been fixed while I wasn't looking!) that leaves the filesystem mounted read-write. It's not really a problem or anything to worry about.

    The lcdd3 script used the mount command directly which is not the correct way to do it in recent versions. This combined with the bug can leave the filesystem mounted read-only with no way to remount it RW. This means that you can't save changes, add packages etc.

    If you used lcdd3 and you're running 2.0Beta5 or newer you may have a problem.

    Steve

    Thank you for the reply Steve! You're always a big help.

    I installed lcdd3 on a 2.0-RC1 system and just updated yesterday with a current snapshot. It would not be a problem for this system to be reinstalled because it's not live yet and I have a backup config. I just need to make sure this system is stable so it would definetely be worth the extra work to re-do it and install the lcdd4 instead. What do you think?

    This script is terrific, thank you for this and to everyone else who worked on it


  • Netgate Administrator

    Hmm, well that's the exact set of things that I would expect to cause a problem. Perhaps the bug has been fixed?
    Anyway if it's not a problem I would reflash and use lcdd4 to be sure.

    Steve

    Edit: Doesn't seem to have been fixed, not deliberately anyway! http://redmine.pfsense.org/issues/1279



  • @stephenw10:

    Hmm, well that's the exact set of things that I would expect to cause a problem. Perhaps the bug has been fixed?
    Anyway if it's not a problem I would reflash and use lcdd4 to be sure.

    Steve

    Edit: Doesn't seem to have been fixed, not deliberately anyway! http://redmine.pfsense.org/issues/1279

    After all of my config experiments yesterday, I got the reflashing process down fast! no problem at all. Thanks for the help Steve and enjoy your weekend.



  • @stephenw10:

    Hmm, well that's the exact set of things that I would expect to cause a problem. Perhaps the bug has been fixed?
    Anyway if it's not a problem I would reflash and use lcdd4 to be sure.

    Steve

    Edit: Doesn't seem to have been fixed, not deliberately anyway! http://redmine.pfsense.org/issues/1279

    Slightly off topic a bit but do you know anything about the serial console menu not showing up on a watchguard. last message is "Bootup complete".


  • Netgate Administrator

    It seems to be an issue only with the X-Core, or at least I haven't had that problem with either the X-peak or X-e boxes. It may be a symptom of the file system being mounted incorrectly. It seemed to start showing up around the same time the lcdd3 script broke.

    Steve



  • @stephenw10:

    It seems to be an issue only with the X-Core, or at least I haven't had that problem with either the X-peak or X-e boxes. It may be a symptom of the file system being mounted incorrectly. It seemed to start showing up around the same time the lcdd3 script broke.

    Steve

    That's what I am using the xcore. It seams as though the BIOS for the watchguard also has control of the LCD because I noticed without any CF card in there you can boot it and change the port speed from the LCD/keypad. Maybe something is conflicting, not sure will have to play around with it more but it's wierd that it works for the rest of the boot and stops at Bootup complete.


  • Netgate Administrator

    Hello Firebox users!  :)
    I am still working on getting the LCD driver into a proper pfSense package. It's proving to be far beyond my usual level of tinkering but it's all good fun.
    Anyway as, jjgoessens said when he wrote it, there isn't enough memory in the LCD to hold all the special characters required for vertical graphs, big clock and the heartbeat graphic. His latest driver doesn't support the heatbeat as a result.
    Personally I would rather see the heartbeat working as I don't use big clock or vertical graphs.
    Is anybody out there actually using these features?

    Steve



  • when i try to install the tar package and give ./ command it say's permission denied . logged in via ssh as root


  • Netgate Administrator

    You mean when you try to run this?

    ./install-embed2.lcdd.sh
    

    Seems odd. It usually untars with the correct permissions.
    You can reset the permissions with:

    chmod 0755 install-embed2.lcddd.sh
    

    What version of pfSense are you using?

    Steve



  • Thanks for reply.

    I'm runing 2.0 Rc3 its a full hd install on x700. when i try to do chmod it say's command not found?


  • Netgate Administrator

    Hmm, well that seems very weird.
    I don't have a full install to test right now but I can't believe that there's no chmod in it. It's certainly present in the nanoBSD install of RC3.
    Are you experiencing any other problems?
    The script is intended for embedded installs and may cause a problem with mounting the filesystem RO on a full install. However as you haven't managed to run it yet it can't be that.  ???

    Steve



  • Hey

    just like to confirm that it work's with full HDD install aswell

    this is what i did

    $ chmod 0755 ./install-embed2.lcdd.sh
    $  /usr/local/etc/rc.d/lcdd.sh

    VOLA it works :)

    Thanks again for your help …



  • Hello stephenw10,

    thank you for lcdd4.tar, it work quit well on my Firebox X700.

    It is possible to disable/enable/blink the "Arm/Disarm"-LED in the BIOS (permanent).

    One think could be enhanced: to extend the lcd-driver to set the "Arm/Disarm"-LED to green on init and to red on exit.
    I don't have the source code, but I think it should be simple and would be the icing on the cake.

    xleox


  • Netgate Administrator

    It wasn't at all simple!  ::)
    Read the entire thread to discover just how not simple or go straight to this post to get the resulting program to set the led.

    Steve



  • I'm currently in the proces of migrating to pfSense 2.0. I installed a full 2.0RC3 version on a HD and installed Steve's LCD and LED packages on a WG Firebox X700. Just like on 1.2.3 it looks like it is running fine. I once encounterd a problem with the LCD driver only displaying "LCDproc Server" but couldn't reproduce.

    Today I booted my Firebox for configuring and directly after bootup the LCD is "locked up" (see picture).
    Arrow up shows "next", down shows "prev", right does nothing, left enters the menu with: options, screens, test menu. There is no system data like uptime, mem usage etc.

    • version: 2.0-RC3 (i386) built on Sun Jul 24 19:17:15 EDT 2011

    • did not install the package LCDproc via packages, only Steve's tarball

    • Serial console shows a normal startup of the lcdd script

    
    Starting CRON... done.
     Starting /usr/local/etc/rc.d/WGXepc.sh...done.
     Starting /usr/local/etc/rc.d/lcdd.sh...done.
    Bootup complete
    
    

    What is going on here? Strange thing is it doesn't happen every time I boot or reboot the firewall…
    I have little knowledge of FreeBSD, but is it possible to restart the lcdd service via the terminal? How?

    Thanks for your info and help!





  • Netgate Administrator

    LCDproc is in two parts. lcdd is the server half that talks to the screen. lcdprocc is the client that tells lcdd what to put on the screen. If you only have the server half running you get what you are seeing.
    Got to the console and run 'top' you should see both lcdd and lcdproc:

    
    [2.0-RC3][root@pfsense.fire.box]/root(1): top
    last pid:  8157;  load averages:  0.01,  0.01,  0.00   up 35+01:07:41  15:50:32
    44 processes:  1 running, 43 sleeping
    CPU:  4.8% user,  0.0% nice,  0.0% system,  0.0% interrupt, 95.2% idle
    Mem: 52M Active, 20M Inact, 62M Wired, 128K Cache, 59M Buf, 352M Free
    Swap:
    
      PID USERNAME  THR PRI NICE   SIZE    RES STATE    TIME   WCPU COMMAND
    18701 nobody      1  64   20  3364K  1424K nanslp  51:51  0.00% LCDd
    19029 root        1  64   20  3352K  1216K nanslp  28:42  0.00% lcdproc
    
    

    q to stop.

    You can start lcdproc manually by running:

    /usr/local/etc/rc.d/lcdd.sh
    
    

    Though it will try to start both server and client. It's hard to say why it stopped working reliably, disk errors?  :-\

    Steve



  • I issued "/usr/local/etc/rc.d/lcdd.sh" earlier and indeed, now it is working.
    Top shows LCDd and lcdproc.

    My /usr/local/etc/rc.d/lcdd.sh contains:

    
    #!/bin/sh
    #
    /usr/bin/nice -20 /usr/local/share/lcdd/LCDd -r 0 -c /usr/local/share/lcdd/LCDd.conf > /dev/null 2>&1 &
    /usr/bin/nice -20 /usr/local/share/lcdd/lcdproc C T U &
    
    

    Thanks for our explanation: now I understand the server (lcdd) and the client (lcdprocc) both need to be running.
    What I don't understand is why the client part wasn't running after boot, even though the lcdd.sh script was executed.

    <edit>Didn't see your edit before posting. Hmm, diskerrors, don't know. Didn't see any other errors.
    Is there a sort of "chkdsk" tool/command for freebsd?
    I will keep an eye on this…

    <edit2>I booted in single user mode (i guess?) and issued fsck -y /dev/ad2s1a. It gave no errors.</edit2></edit>


  • Netgate Administrator

    As part of my effort to produce a package for the Watchguard lcd I recompiled the driver. Until I get a proper package out anyone installing fresh might as well use this new set of programs. This for 2.0 only, it won't work on 1.2.x. Installation is as before.
    Download the attached file and remove the .png extension.
    Upload lcdd5.tar via the web GUI, Diagnostics: Command Prompt: Upload, this puts it in /tmp.
    Then open a command line via serial or SSH or whatever and:

    
    [2.0-RC3][root@pfSense.localdomain]/root/tmp(3): cd /tmp
    [2.0-RC3][root@pfSense.localdomain]/tmp(4): tar xvf lcdd5.tar
    x install3.sh
    x lcdd/
    x lcdd/LCDd.conf
    x lcdd/lcdd.sh
    x lcdd/lcdproc
    x lcdd/LCDd
    x lcdd/drivers/
    x lcdd/drivers/sdeclcd.so
    [2.0-RC3][root@pfSense.localdomain]/tmp(5): ./install3.sh
    [2.0-RC3][root@pfSense.localdomain]/tmp(6): /usr/local/etc/rc.d/lcdd.sh
    
    

    And your display should be working.  :)

    Changelog:
    Renamed the install script to make it easier to type!
    The programs, lcdproc and LCDd, are now V0.53 compiled against FreeBSD 8.1-Release.
    The driver, sdecldec, was giving a lot of warnings when I tried to compile it. These have been corrected.

    The new version seems to obey the LCDd.conf file better such that the option heartbeat=no now works removing the ugly error on the right hand side of the display.

    The key mapping is still incorrect for X-e boxes.  :(

    I had no response to my question as to whether anyone uses the big clock or vertical histogram functions. Personally I would rather have the heartbeat functioning but it's a choice in the driver. Any opinions?

    Steve

    lcdd5.tar.png



  • Hi Steve,

    I am in the middle of setting up a X500 got it today :) and just used your script for the LCD and it worked flawless the instructions are bang on no problems at all!!
    Many Thanks for all your hard work put into this I'm sure it wasn't a easy time and time consuming to say the least so thank you.


  • Netgate Administrator

    Thanks for that!  :)

    Most of the hard work was done by others before me though.
    Coding by ridnhard19 and jjgoessens.

    Steve


  • Netgate Administrator

    Since it's now a very long thread and the code is somewhat spread out here are the source files for the sdeclcd driver.

    Producing a driver file from these is not simply a matter of invoking gcc! I hope I have noted all the steps I took to do it here.

    Steve

    sdeclcd.c.png
    sdeclcd.h.png


  • Netgate Administrator

    Thanks to fmertz the driver now correctly supports the front panel buttons on the X-E boxes.  ;D

    Attached to this post is v1.05 sdeclcd driver with reworked keyboard code.

    the sdeclcd.so file should be 13522 Bytes.

    There is no advantage to X-Core or X-Peak box users so you can continue using the old version in the tarball. Of course if you want to test that this new version doesn't break your box that would be great.  ;)
    I have tested it on the X-E and X-Peak boxes.

    Please report any problems.

    Steve

    sdeclcd.c.png
    sdeclcd.so.png



  • @stephenw10:

    Thanks to fmertz the driver now correctly supports the front panel buttons on the X-E boxes.  ;D

    In the spirit of facilitating getting folks involved in contributing to this driver, I decided it was time to put all this code in one place. The long term plan would certainly be to merge this driver with the upstream lcdproc project. For now, I gathered everyone's contributions and put them in public version controlled project on github.

    The setup is as follows: The master branch contains the code from upstream lcdproc. It is the 0.5dev version, the current development area. I created the sdec branch to capture all the changes necessary for the Watchguard Firebox LCD driver. There are various commits on that branch, one for each contribution, attributed by author as best as I could. The branch captures changes to the sources, makefiles and documentation. The idea is that someone wanting to build this driver from source would be a few commands away from doing so by using this repo.

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

    To build this driver from source:

    
    to be updated...
    git clone ...
    cd ...
    ./autogen.sh --enable-drivers=sdeclcd
    make
    
    

    Feedback welcome.


  • Netgate Administrator

    I'm not sure you can do that in one step, I certainly didn't.

    
    ./autogen.sh
    ./configure --enable-drivers=sdeclcd
    make
    
    

    The requirements for getting the code into lcdproc upstream seemed tough to meet to me.

    Steve



  • @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
    
    


  • 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.



  • @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.



  • @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!



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

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


Log in to reply