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

    EZIO Driver for LCDproc

    Scheduled Pinned Locked Moved Hardware
    144 Posts 22 Posters 43.3k 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.
    • F
      fmertz
      last edited by fmertz

      In the recent past, a number of folks have expressed interest in installing pfSense onto a number of older firewall appliances fitted with a Portwell EZIO LCDs. Unfortunately, no (complete) driver implementation for the EZIO devices were available as part of the LCDproc package.

      Fortunately, Portwell published a technical specification suitable as a base for a software driver implementation.

      http://drivers.portwell.com/CA_Manual/EZIO/EZIO-FINAL.PDF

      I recently managed to acquire the device itself (stand alone, presumably out of some appliance), went to my junk drawer for cables and adapters, and found some time for coding a proper driver. My version of the code is shared in my repo, but will soon be merged upstream with the LCDproc project so everyone can get it through normal package installation.

      https://github.com/fmertz/hd44780-ezio/tree/hd44780-ezio

      In the meantime, feedback from running this in the original hardware appliance would be most welcome. I attached a set of archives with the driver in compiled form:

      • HD44780_EZIO_Driver_pfSense2_3_32bit.zip contains hd44780.so for pfSense 2.3 (current) 32bit x86

      • HD44780_EZIO_Driver_pfSense2_3_64bit.zip contains hd44780.so for pfSense 2.3 (current) 64bit AMD64

      • HD44780_EZIO_Driver_pfSense2_4_64bit.zip contains hd44780.so for pfSense 2.4 (future) 64bit AMD64

      So:

      • Extract hd44780.so from the attached archive and copy it to /usr/local/lib/lcdproc/

      • Check LCDd.conf and make sure you merge in what follows

      • Start LCDd and see what happens. The server alone shows basic stuff and allows for keypad interaction. Start with ESC and navigate

      
      [server]
      Driver=hd44780
      
      [hd44780]
      ConnectionType=ezio
      Device=/dev/cuau1
      Keypad=yes
      Size=16x2
      KeyMatrix_4_1=Enter
      KeyMatrix_4_2=Up
      KeyMatrix_4_3=Down
      KeyMatrix_4_4=Escape
      
      

      Attachments were removed as the code is now part of the official lcdproc package.

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

        This post is reserved for updated status, in an effort to provide a quick summary of the status of this thread. At this point:

        • The EZIO driver code has been merged with the upstream lcdproc project, and became part of the 0.5.9 version.
        • EZIO-100 and EZIO-300 models are supported
        • EZIO-500 model is not supported for lack of documentation
        • The implementation is done trough a new "ezio" connection type for the existing HD44780 driver
        • At this point, this new "ezio" connection type has not been added to the pfSense lcdproc GUI package
        1 Reply Last reply Reply Quote 0
        • stephenw10S
          stephenw10 Netgate Administrator
          last edited by

          Removed and reseated all the connections to mine. Still nothing coming back from the keypad.

          I should note I have the EZIO-300 model but the specs are the same from what I can see.

          Steve

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

            http://drivers.portwell.com/CA_Manual/EZIO/EZIO-300.pdf

            Seems like the keypad codes coming back are different. Easy to code this in, though.

            Still does not explain why your does not respond when spoken to.

            Do you have this unit stand alone, or is it part of an appliance?

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

              It's built into a Portwell appliance but the connections are simple enough. It's connected to the com2 header on the motherboard. I could try connecting to it with something else directly.

              Let me see what I can hook up….

              Steve

              1 Reply Last reply Reply Quote 0
              • Y
                yshakhov
                last edited by

                Looks like version 2.3.4 64bit can't upload hd44780.so or any other files from "Diagnostics/Command Prompt". Will try to use SSH.

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

                  The 64bit driver is compiled against FreeBSD11 (pfSense 2.4) so you may be out of luck there.

                  But if you can test it that would help. I haven't had time to do a direct test yet.

                  Steve

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

                    Let me try and build a 10.3 AMD64 version…

                    1 Reply Last reply Reply Quote 0
                    • Y
                      yshakhov
                      last edited by

                      May 10 01:16:00 LCDd Could not open driver module /usr/local/lib/lcdproc/hd44780.so: Shared object "libkvm.so.7" not found, required by "hd44780.so"
                      That is what I got.

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

                        Right that's because libkvm.so.7 doesn't exist in 2.3.4.

                        If you can try that module in 2.4 or wait for a module built against 2.3.X.

                        Steve

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

                          OK, I updated the attachments to the first post. I separated the drivers by pfSense release. At this moment, only HD44780_EZIO_Driver_pfSense2_3_64bit.zip has been compiled with EZIO-300 keypad support. I will update the other archives later.

                          yshakhov, you probably want HD44780_EZIO_Driver_pfSense2_3_64bit.zip

                          PS: These files are the result of compiling code in virtual machines. I do not own an actual appliance, much less one with all combinations of operating systems, so it is best effort. Thanks for any help in testing.

                          1 Reply Last reply Reply Quote 0
                          • Y
                            yshakhov
                            last edited by

                            Hi fmertz,
                            Where is link to download you archive HD44780_EZIO_Driver_pfSense2_3_64bit.zip?
                            Thanks.

                            1 Reply Last reply Reply Quote 0
                            • Y
                              yshakhov
                              last edited by

                              Sorry,
                              now is available

                              1 Reply Last reply Reply Quote 0
                              • U
                                uknownme123
                                last edited by

                                Hmm am I missing something. I'm on pfSense 2.3.4

                                1. install lcdproc
                                2. extract HD44780_EZIO_Driver_pfSense2_4_64bit.zip, then put hd44780.so in /usr/local/lib/lcdproc/
                                3. nano /usr/local/etc/LCD.conf, and paste code

                                
                                [server]
                                Driver=hd44780
                                
                                [hd44780]
                                ConnectionType=ezio
                                Device=/dev/cuau1
                                Keypad=yes
                                Size=16x2
                                KeyMatrix_4_1=Enter
                                KeyMatrix_4_2=Up
                                KeyMatrix_4_3=Down
                                KeyMatrix_4_4=Escape
                                
                                

                                I run below command and get error
                                [2.3.4-RELEASE][root@pfSense.localdomain]/root: /usr/bin/nice -20 /usr/local/sbin/LCDd -r 0 -c /usr/local/etc/LCD.conf > /dev/null &
                                [1] 90321
                                [2.3.4-RELEASE][root@pfSense.localdomain]/root: Critical error while initializing, abort.

                                4. reboot and go under services> lcdproc
                                Display size = Serial Com port 2 alternate (/dev/cuau1)
                                Display size = 2 x 16
                                Driver = HD44780 and compatible
                                Connection type = ?

                                I do not see ezio. Did I do something wrong?

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

                                  @uknownme123:

                                  I'm on pfSense 2.3.4

                                  2. extract HD44780_EZIO_Driver_pfSense2_4_64bit.zip, then put hd44780.so in /usr/local/lib/lcdproc/
                                  I run below command and get error
                                  [2.3.4-RELEASE][root@pfSense.localdomain]/root: /usr/bin/nice -20 /usr/local/sbin/LCDd -r 0 -c /usr/local/etc/LCD.conf > /dev/null &
                                  [1] 90321
                                  [2.3.4-RELEASE][root@pfSense.localdomain]/root: Critical error while initializing, abort.

                                  If you are running pfSense 2.3.4, you need to get the driver from one of the 2.3 archive (32 or 64 bit). You are using the driver for 2.4, which will not work.

                                  To test, you can run something more direct:

                                  /usr/local/sbin/LCDd -r 3 -c /usr/local/etc/LCD.conf -f
                                  

                                  This raises the reporting level, and runs the program in the foreground.

                                  Thanks for helping with the testing.

                                  PS: This effort is to add EZIO support to the HD44780 driver of the lcdproc project. As of now, there is no addition to the pfSense integration package, so there is no option in the menu, yet.

                                  1 Reply Last reply Reply Quote 0
                                  • U
                                    uknownme123
                                    last edited by

                                    Under  services> lcdproc, unchecked "start lcdproc at boot"
                                    Rebooted, then attempted to start LCDproc from command

                                    [2.3.4-RELEASE][admin@pfSense.localdomain]/root: /usr/local/sbin/LCDd -r 3 -c /u                                                                                                          sr/local/etc/LCD.conf -f
                                    LCDd version 0.5.7 starting
                                    Using Configuration File: /usr/local/etc/LCD.conf
                                    LCDd 0.5.7, LCDproc Protocol 0.3
                                    Part of the LCDproc suite
                                    Copyright (C) 1998-2014 William Ferrell, Selene Scriven
                                                            and many other contributors

                                    This program is free software; you can redistribute it and/or
                                    modify it under the terms of the GNU General Public License
                                    as published by the Free Software Foundation; either version 2
                                    of the License, or (at your option) any later version.

                                    This program is distributed in the hope that it will be useful,
                                    but WITHOUT ANY WARRANTY; without even the implied warranty of
                                    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
                                    GNU General Public License for more details.

                                    You should have received a copy of the GNU General Public License
                                    along with this program; if not, write to the Free Software Foundation,
                                    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

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

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

                                      For a better test, make sure only one copy of LCDd is running. For the time being, turn off the pfSense instance of the daemon. What is happening is that the pfSense LCDd is taking possession of port 13666. The LCD started manually therefore cannot have access to it anymore.

                                      The other option is to start the manual LCDd with instruction to use another port:

                                      /usr/local/sbin/LCDd -r 3 -c /usr/local/etc/LCD.conf -f -p 13667
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • U
                                        uknownme123
                                        last edited by

                                        Sorry you are having to walk me step by step.

                                        2. extract HD44780_EZIO_Driver_pfSense2_4_64bit.zip, then put hd44780.so in /usr/local/lib/lcdproc/

                                        This was a typo, I did download the correct driver (HD44780_EZIO_Driver_pfSense2_3_64bit).

                                        So /usr/local/sbin/LCDd -r 3 -c /usr/local/etc/LCD.conf -f -p 13667 gives the below error

                                        Listening for queries on 127.0.0.1:13667
                                        Could not open driver module hd44780.so: Shared object "hd44780.so" not found, required by "LCDd"
                                        Driver [hd44780] binding failed
                                        Could not load driver hd44780
                                        There is no output driver
                                        Critical error while initializing, abort.

                                        ezio.jpg
                                        ezio.jpg_thumb

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

                                          The server needs to be told where to find the drivers.

                                          Add this to LCDd.conf:

                                          [server]
                                          DriverPath= /usr/local/lib/lcdproc/
                                          

                                          Make sure there is a slash at the end..

                                          1 Reply Last reply Reply Quote 0
                                          • U
                                            uknownme123
                                            last edited by

                                            Alright, now it's : Listening for queries on 127.0.0.1:13667,
                                            and just waiting here.

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