This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

LCD Display for UTM v9 Software Home Licence?

Hello,

i read that in earlier UTM versions there was lcd4linux included so it was possible to add a HD44780 compatible LCD display to a homebrew box.
However i cannot find lcd4linux on v9, does anybody know if it's still possible to add a LCD display to v9?

Cheers,
Olaf


This thread was automatically locked due to age.
  • We removed the lcd4linux and wrote a new LCD program from scratch, called lcm-162,
    which is the LCD type of the appliances.

    What LCD do you like to run? Probably the easiest is to just install the lcd4linux RPM from an v8 ISO.

    Cheers
     Ulrich
  • FWIW, the new lcm-162 app will work with "other" lcm-162 displays, just some functions will not work on the software license, such as cpu usage, etc. but a basic dispaly with name and version, and the ability to reboot, shutdown, or change the IP of the system does work.  We sell / sold custom hardware for special situations  where an Astaro / Sophos appliance wasn't a "fit" (say, 50Mb/s of bandwidth for 8 hosts, for instance) with these types of displays...

    CTO, Convergent Information Security Solutions, LLC

    https://www.convergesecurity.com

    Sophos Platinum Partner

    --------------------------------------

    Advice given as posted on this forum does not construe a support relationship or other relationship with Convergent Information Security Solutions, LLC or its subsidiaries.  Use the advice given at your own risk.

  • Actually i was planning to use a HD44780 compatible display type. So the hint with using the lcd4linux from a v8 iso might be the best idea. Thanks for that tip, Ulrich!

    So the limitation of what can be shown on the display is a question of the license? Or is there a special hardware - other than the display - built in the appliances?
  • Its just optimization, we dont write LCD display data on non appliances. Never thought that some guys will build there custom hardware with LCD displays [;)]

    LCD4Linux gets the reporting data directly from the interfaces, while lcm-162 gets the data from the dashboard reporting.

    lcm-162 is a special HD44780 type. I think most of the LCD stuff is the same except for the wiring.
  • OK, i understand, thanks for clearing.
    So far i got the rpm (lcd4linux-0.10.1-10.g30326a2.i686.rpm) from the v8 iso installed, but it doesn't install a default lcd4linux.conf in /etc. Could anyone provide me a working lcd4linux.conf file?

  • ### DisplaysA
    #####################
    Display LCM-162 {
        Driver 'HD44780'
        Model 'LCM-162'
    #    Bus 'parport'
        Port '/dev/parport0'
        Size '16x2'
        UseBusy 1
        asc255bug 0
        Icons 1
    }

    Display Curses {
        Driver 'Curses'
        Size '16x2'
    }

    Display XWindow {
        Driver 'X11'
        Size   '96x16'
        Font   '6x8'
        Pixel  '4+1'
        Gap    '-1x-1'
        Border 20
        Foreground '#000000'
        Background '#80d000'
        Halfground '#70c000'
    }


    ### Widgets
    #####################
    Widget OS {
        class 'Text'
        expression '*** '.uname('sysname').' '.uname('release').' ***'
        width 20
        align 'M'
        speed 100
        update tick
    }

    Widget CPU {
        class  'Text'
        expression  uname('machine')
        prefix 'CPU '
        width  9
        align  'L'
        update tick
    }

    Widget RAM {
        class  'Text'
        expression meminfo('MemTotal')/1024
        postfix ' MB RAM'
        width  11
        precision 0
        align  'R'
        update tick
    }

    Widget Busy {
        class 'Text'
        expression proc_stat::cpu('busy', 500)
        prefix 'Busy'
        postfix '%'
        width 10
        precision 1
        align 'R'
        update tick
    }

    Widget BusyBar {
        class 'Bar'
        expression  proc_stat::cpu('busy',   500)
        expression2 proc_stat::cpu('system', 500)
        length 10
        direction 'E'
        update tack
    }

    Widget Load {
        class 'Text'
        expression loadavg(1)
        prefix 'Load'
        postfix loadavg(1)>1.0?'!':' '
        width 10
        precision 1
        align 'R'
        update tick
    }

    Widget LoadBar {
        class 'Bar'
        expression  loadavg(1)
        max 2.0
        length 10
        direction 'E'
        update tack
    }

    Widget Disk {
        class 'Text'
        # disk.[rw]blk return blocks, we assume a blocksize of 512
        # to get the number in kB/s we would do blk*512/1024, which is blk/2 
        # expression (proc_stat:[:D]isk('.*', 'rblk', 500)+proc_stat:[:D]isk('.*', 'wblk', 500))/2
        # with kernel 2.6, disk_io disappeared from /proc/stat but moved to /proc/diskstat
        # therefore you have to use another function called 'diskstats':
        expression diskstats('.*', 'read_sectors', 500) + diskstats('.*', 'write_sectors', 500)
        prefix 'disk'
        postfix ' '
        width 10
        precision 0
        align 'R'
        update tick
    }

    Widget DiskBar {
        class 'Bar'
        #expression  proc_stat:[:D]isk('.*', 'rblk', 500)
        #expression2 proc_stat:[:D]isk('.*', 'wblk', 500)
        # for kernel 2.6:
        expression  diskstats('.*', 'read_sectors',  500)
        expression2 diskstats('.*', 'write_sectors', 500)
        length 14
        direction 'E'
        update tack
    }

    Widget Eth0 {
        class 'Text'
        expression (netdev('eth0', 'Rx_bytes', 500)+netdev('eth0', 'Tx_bytes', 500))/1024
        prefix 'eth0'
        postfix ' '
        width 10
        precision 0
        align 'R'
        update tick
    }

    Widget Eth0Bar {
        class 'Bar'
        expression  netdev('eth0', 'Rx_bytes', 500)
        expression2 netdev('eth0', 'Tx_bytes', 500)
        length 14
        direction 'E'
        update tack
    }

    Widget PPP {
        class 'Text'
        expression (ppp('Rx:0', 500)+ppp('Tx:0', 500))
        prefix 'PPP'
        width 9
        precision 0
        align 'R'
        update tick
    }

    Widget Temp {
        class 'Text'
        expression i2c_sensors('temp_input3')*1.0324-67
        prefix 'Temp'
        width 9
        precision 1
        align 'R'
        update tick
    }

    Widget TempBar {
        class 'Bar'
        expression  i2c_sensors('temp_input3')*1.0324-67
        min 40
        max 80
        length 10
        direction 'E'
        update tack
    }

    Widget Uptime {
        class 'Text'
        expression uptime('%d days %H:%M:%S')
        width 16
        align 'R'
    #    prefix 'Up '
        update 1000
    }

    Widget ASG_version {
       class 'Text'
       prefix '   ASG v'
       width 16
       expression aslversion()
       update 5000
    }

    Widget ASG_Cluster_status {
       class 'Text'
       width 16
       expression asgcluster::status()
       update 5000
    }

    Widget ASG_Cluster_role {
       class 'Text'
       width 16
       expression asgcluster::role()
       update 5000
    }

    Widget ASG_text {
       class 'Text'
       prefix '     ASTARO'
       width 16
       update 5000
    }

    Widget SAI_text {
       class 'Text'
       prefix 'Installation'
       width 16
       update 5000
    }

    Widget SAI_progress {
       class 'Text'
       width 16
       expression asginstaller()
       update 5000
    }



    ### Layouts
    #####################
    Layout Default {
        Row1 {
            Col1  'ASG_text'
        }
        Row2 {
    Col1  'CPU'
    Col10 'RAM'
        }
        Row3 {
            Col1  'ASG_version'
        }
        Row4 {
            Col1  'Uptime'
        }
        Row5 {
    Col1  'Busy'
    Col11 'BusyBar'
        }
        Row6 {
    Col1  'Eth0'
    Col11 'Eth0Bar'
        }
        Row7 {
    Col1  'ASG_Cluster_role'
        }
        Row8 {
    Col1  'ASG_Cluster_status'
        }
    }

    Layout SAI {
        Row1 {
    Col1  'SAI_text'
        }
        Row2 {
    Col1  'SAI_progress'
        }
        Row3 {
            Col1  'SAI_text'
        }
        Row4 {
            Col1  'SAI_progress'
        }
        Row5 {
            Col1  'SAI_text'
        }
        Row6 {
            Col1  'SAI_progress'
        }
        Row7 {
            Col1  'SAI_text'
        }
        Row8 {
            Col1  'SAI_progress'
        }
    }


    ### MAIN
    #####################
    Display 'LCM-162'
    #Display 'XWindow'
    #Display 'Curses'

    Layout  'Default'
    #Layout 'SAI'

    Variables {
       tick 500
       tack 100
       minute 60000
    }

    # Additional options
    #Quiet 1
    Tick.Text 500
    Tick.bar 100
    Tick.icon 100
    Tick.gpo 100
  • +1 

    ol@fson, if you get something working please post here your results and a "how to" guide. I'am super interested in adding a display to my customer hardware too.
  • I will .. as soon as I find the LCD that has to be somewhere in my mess [:(]
  • OK .. Got a new display and did a quick wiring. It works so far [:)]
    One problem is, when i'm displaying for example just a simple text for testing it will display it for some seconds and then switch to a display full of the same character - then displays the text and messes up again  .. guess it's a diplay related problem, i played around with the timing settings a bit but with no success .. Anyone got this problem before?
  • I had a problem with a serial (RS232) display from CrystalFontz that needed a delay between initialization and use... I had to modify the sourcecode for lcd4linux, but I did email the developers and they probably added it to their codebase.

    I'm not sure if that's the same problem though.

    Regardless, you could post a message to the lcd4linux mailinglist.

    Barry