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

    Lcdproc with Sure Electronics LCD

    Scheduled Pinned Locked Moved General pfSense Questions
    18 Posts 2 Posters 8.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
      stephenw10 Netgate Administrator
      last edited by

      There is a pfSense package for lcdproc in case you weren't aware.
      You probably need to point LCDd at the generated serial port, probably /dev/cuaU0.1. The uppper case 'U' indicates a usb connected serial port. Look in /dev before and after you plug it in to see what appears.

      Steve

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

        This what i have

        $ ls /dev
        ad0
        ad0s1
        ad0s1a
        ad0s2
        ad0s2a
        ad0s3
        ata
        bpf
        bpf0
        console
        crypto
        ctty
        cuau0
        cuau0.init
        cuau0.lock
        cuau1
        cuau1.init
        cuau1.lock
        devctl
        devstat
        fd
        fido
        geom.ctl
        io
        klog
        kmem
        led
        md0
        md1
        mdctl
        mem
        nfslock
        null
        pci
        pf
        ptmx
        random
        speaker
        stderr
        stdin
        stdout
        ttyu0
        ttyu0.init
        ttyu0.lock
        ttyu1
        ttyu1.init
        ttyu1.lock
        ufs
        ufsid
        ugen0.1
        ugen0.2
        ugen1.1
        urandom
        usb
        usbctl
        xpt0
        zero
        

        There is no cuaU0 with capital 'U'

        and this what i have if use ugen0.2

        May 16 20:23:46 	LCDd: LCDd version 0.5.3 starting
        May 16 20:23:46 	LCDd: Using Configuration File: /usr/local/etc/LCDd.conf
        May 16 20:23:46 	LCDd: Listening for queries on 127.0.0.1:13666
        May 16 20:23:46 	LCDd: SureElec: cannot write to port
        May 16 20:23:46 	LCDd: Driver [SureElec] init failed, return code -1
        May 16 20:23:46 	LCDd: Could not load driver SureElec
        May 16 20:23:46 	LCDd: There is no output driver
        May 16 20:23:46 	LCDd: Critical error while initializing, abort.
        May 16 20:23:52 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:23:57 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:24:09 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:24:21 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:24:33 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:24:44 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:24:56 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:25:08 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:25:20 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:25:32 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        May 16 20:25:44 	php: lcdproc: Failed to connect to LCDd process Operation timed out (60)
        
        1 Reply Last reply Reply Quote 0
        • stephenw10S
          stephenw10 Netgate Administrator
          last edited by

          Hmm, ok. Those serial devices are just the seemingly omnipresent com1 and com2.
          Any of those disappear when you unplug it?

          Clearly your screen is being recognised and attached to the uslcom(4) driver.

          Steve

          Edit: Try looking in /dev/usb

          Edit2: I see that your display is 'edition 3' and there is a driver option for that:
          http://lcdproc.sourceforge.net/docs/current-user.html#SureElec

          Edit3: Your device is on usbus1 so try ugen1.1      <– try this first! Hmm unsure about this now. It should definitely appear as ugen1.x though as it's on usbus1. ugen1.1 is probably the hub though.

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

            There is no ugen0.2 when i unplugged the LCD but i am still getting same error:

            LCDd: Driver [SureElec] init failed, return code -1
            

            I have tried /dev/usb/0.2.0 and /dev/usb/0.2.1 but same got this error:

            LCDd: SureElec: failed to configure port (Inappropriate ioctl for device)
            
            1 Reply Last reply Reply Quote 0
            • stephenw10S
              stephenw10 Netgate Administrator
              last edited by

              Ok so assume ugen0.2, have you tried 'edition=3'?

              Steve

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

                Tried and no success. Here is my LCDd.conf

                [server]
                DriverPath=/usr/local/lib/lcdproc/
                Driver=SureElec
                Bind=127.0.0.1
                Port=13666
                ReportLevel=3
                ReportToSyslog=yes
                User=nobody
                Foreground=no
                ServerScreen=no
                GoodBye="Thanks for using"
                GoodBye="    pfSense     "
                WaitTime=5
                ToggleRotateKey=Enter
                PrevScreenKey=Left
                NextScreenKey=Right
                ScrollUpKey=Up
                ScrollDownKey=Down
                [menu]
                MenuKey=Escape
                EnterKey=Enter
                UpKey=Up
                DownKey=Down
                [SureElec]
                driverpath =/usr/local/lib/lcdproc/
                Device=/dev/ugen0.2
                Size=20x4
                Edition=3
                Contrast=200
                Brightness=480
                
                

                with this error logs:

                
                May 16 23:40:15 	LCDd: LCDd version 0.5.5 starting
                May 16 23:40:15 	LCDd: Using Configuration File: /usr/local/etc/LCDd.conf
                May 16 23:40:15 	LCDd: Listening for queries on 127.0.0.1:13666
                May 16 23:40:15 	LCDd: SureElec: failed to configure port (Inappropriate ioctl for device)
                May 16 23:40:15 	LCDd: Driver [SureElec] init failed, return code -1
                May 16 23:40:15 	LCDd: Could not load driver SureElec
                May 16 23:40:15 	LCDd: There is no output driver
                May 16 23:40:15 	LCDd: Critical error while initializing, abort.
                May 16 23:40:16 	php: lcdproc: Start client procedure. Error counter: (0)
                
                1 Reply Last reply Reply Quote 0
                • stephenw10S
                  stephenw10 Netgate Administrator
                  last edited by

                  Reading through the source code for the Sure Elec driver it expects to see a serial port not a usb device.

                  Surprising that the uslcom driver does not generate a new serial device.  ???

                  You should ask in the lcdproc-dev package thread. The new maintainer, mdima, is using a SureElec LCD.

                  Steve

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

                    It looks like the device should appear as ucom0.
                    You need to have the ucom(4) driver loaded. Is it in the kernel?
                    The uslcom driver has been updated quite a bit since 8.1 was released, though it seems to recognise your device.

                    You could try adding the ucom driver from here:
                    http://files.pfsense.org/jimp/ko-8.1/i386/ucom.ko
                    Add it to /boot/modules.
                    Load it from the command line:

                    kld_load ucom.ko
                    

                    Or add ucom_load="YES" to /boot/loader.conf.local and reboot.

                    Steve

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

                      How to upload ko file to my router? is it allowed?

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

                        Yes you can upload it. I usually use WinSCP uploading from windows.
                        Alternatively you can fetch it directly from the machine:

                        
                        [2.0.1-RELEASE][root@pfsense.fire.box]/root(1): cd /boot/modules
                        [2.0.1-RELEASE][root@pfsense.fire.box]/boot/modules(2): /etc/rc.conf_mount_rw
                        [2.0.1-RELEASE][root@pfsense.fire.box]/boot/modules(3): fetch http://files.pfsense.org/jimp/ko-8.1/i386/ucom.ko
                        ucom.ko                                       100% of   20 kB  429 kBps
                        [2.0.1-RELEASE][root@pfsense.fire.box]/boot/modules(4): kldload ucom
                        kldload: can't load ucom: File exists
                        [2.0.1-RELEASE][root@pfsense.fire.box]/boot/modules(5): /etc/rc.conf_mount_ro 
                        
                        

                        However as you can see on my machine ucom is already present in the kernel.

                        The only other thing is to check that the USB product and vendor IDs are in the source code correctly.
                        Enter: usbconfig dump_device_desc
                        Paste the output here.

                        Steve

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

                          This what i have now:

                          $ usbconfig dump_device_desc
                          ugen0.1: <ohci root="" hub="" amd="">at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
                          
                            bLength = 0x0012 
                            bDescriptorType = 0x0001 
                            bcdUSB = 0x0100 
                            bDeviceClass = 0x0009 
                            bDeviceSubClass = 0x0000 
                            bDeviceProtocol = 0x0000 
                            bMaxPacketSize0 = 0x0040 
                            idVendor = 0x0000 
                            idProduct = 0x0000 
                            bcdDevice = 0x0100 
                            iManufacturer = 0x0001  <amd>iProduct = 0x0002  <ohci root="" hub="">iSerialNumber = 0x0000  <no string="">bNumConfigurations = 0x0001 
                          
                          ugen1.1: <ehci root="" hub="" amd="">at usbus1, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON
                          
                            bLength = 0x0012 
                            bDescriptorType = 0x0001 
                            bcdUSB = 0x0200 
                            bDeviceClass = 0x0009 
                            bDeviceSubClass = 0x0000 
                            bDeviceProtocol = 0x0001 
                            bMaxPacketSize0 = 0x0040 
                            idVendor = 0x0000 
                            idProduct = 0x0000 
                            bcdDevice = 0x0100 
                            iManufacturer = 0x0001  <amd>iProduct = 0x0002  <ehci root="" hub="">iSerialNumber = 0x0000  <no string="">bNumConfigurations = 0x0001 
                          
                          ugen0.2: <cp2102 usb="" to="" uart="" bridge="" controller="" silicon="" labs="">at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON
                          
                            bLength = 0x0012 
                            bDescriptorType = 0x0001 
                            bcdUSB = 0x0110 
                            bDeviceClass = 0x0000 
                            bDeviceSubClass = 0x0000 
                            bDeviceProtocol = 0x0000 
                            bMaxPacketSize0 = 0x0040 
                            idVendor = 0x10c4 
                            idProduct = 0xea60 
                            bcdDevice = 0x0100 
                            iManufacturer = 0x0001  <silicon labs="">iProduct = 0x0002  <cp2102 usb="" to="" uart="" bridge="" controller="">iSerialNumber = 0x0003  <0001>
                            bNumConfigurations = 0x0001</cp2102></silicon></cp2102></no></ehci></amd></ehci></no></ohci></amd></ohci> 
                          
                          $ ls /dev
                          ad0
                          ad0s1
                          ad0s1a
                          ad0s2
                          ad0s2a
                          ad0s3
                          ata
                          bpf
                          bpf0
                          console
                          crypto
                          ctty
                          cuau0
                          cuau0.init
                          cuau0.lock
                          cuau1
                          cuau1.init
                          cuau1.lock
                          devctl
                          devstat
                          fd
                          fido
                          geom.ctl
                          io
                          klog
                          kmem
                          led
                          md0
                          md1
                          mdctl
                          mem
                          nfslock
                          null
                          pci
                          pf
                          ptmx
                          random
                          speaker
                          stderr
                          stdin
                          stdout
                          ttyu0
                          ttyu0.init
                          ttyu0.lock
                          ttyu1
                          ttyu1.init
                          ttyu1.lock
                          ufs
                          ufsid
                          ugen0.1
                          ugen0.2
                          ugen1.1
                          urandom
                          usb
                          usbctl
                          xpt0
                          zero
                          

                          NOTE: This LCD works properly under FreeBSD 9-STABLE but not under pfSense 2.0.1-RELEASE (i386)

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

                            In that case it's almost certainly due to the usb ids not in the source.
                            Have you tried one of the pfSense 2.1 snapshots? Based on FreeBSD 8.3.

                            Under FreeBSD 9 does it generate a new serial port?

                            Looking at the 8.1 source it is in the usbdevs file.
                            The ucom functionality has been changed from 8.2 up so it's hard to see how to update.

                            Steve

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

                              It generates ugen1.2

                              I will try 2.1 tonight and will let you know asap.

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

                                It worse now, even my ntpd won't start with 2.1

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

                                  Well 2.1 is a work in progress so some things may not work. I take it LCDd won't start then? The lcdproc-dev package won't work because it's compiled for 8.1 you have to use the FreeBSD pkg.

                                  Steve

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

                                    Yeap. i just re-installed 2.0.1 and finding new LCD that compatible with my Alix board and pfSense 2.0.1. Do you have any recommendation?

                                    Thanks.

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

                                      All my experience is with the Firebox LCD which is built into the appliance so not much use to you.
                                      Probably best to ask in the lcdproc-dev thread. Although I note that the only reference to the LCD you have is in reply to a similar suggestion.  ::)

                                      Steve

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