Linux下支持AX206 LCD FOR AIDA64 Business

OS: ubuntu20.04或者原生Raspberry Pi系统

程序下载

这里不推荐使用 apt-get install lcd4linux 直接安装lcd4linux程序或者 git clone git@github.com:jmccrohan/lcd4linux.git 下载此仓库的代码进行编译,这两个途径获取到的lcd4linux可执行程序和源码不支持显示图片到AX206 LCD。

推荐使用此仓库源码,添加了AX206 LCD显示图片的功能:

git clone git@github.com:ukoda/lcd4linux-ax206.git

或者使用 apt source lcd4linux 获取debian-src的lcd4linux源码。

程序编译

1. apt-get install libtool-bin gettext libusb-dev libncurses-dev libgd-dev libmariadb-dev-compat libusb-1.0-0-dev 

2. ./bootstrap 

3.  ./configure --with-drivers=DPF 

4. touch lcd4linux.c; make 

编译完成后会在lcd4linux-ax206目录下生成可执行程序lcd4linux

备注:如果是在debianOnRpi aarch64系统上编译,如果执行第3步时遇到 “configure: error: cannot guess build type; you must specify one” 这样的错误, 解决办法:

 ./configure --with-drivers=DPF --build=aarch64-linux-gnu

或者试下:

 ./configure --with-drivers=DPF --build=arm

或者带上"--with-plugins=exec":

./configure --with-drivers=DPF --with-plugins=exec

程序执行

由于上述程序编译步骤3使用的驱动程序是DPF(数码相框),所以lcd4linux程序执行要指定对应的配置文件才行。

相应的配置文件下载:

1. 到https://sourceforge.net/p/dpf-ax/code/HEAD/tree/trunk/页面点击“Download Snapshot”下载程序压缩包,解压后找到dpf_320x240.conf文件,拷贝到和lcd4linux同一目录下(任意目录都可以,执行时加上绝对路径)。

或者

2.  svn checkout https://svn.code.sf.net/p/dpf-ax/code/trunk dpf-ax-code ,在dpf-ax-code目录下找到dpf_320x240.conf文件,拷贝到和lcd4linux同一目录下(任意目录都可以,执行时加上绝对路径)。

执行:

./lcd4linux -f dpf_320x240.conf -vv -F

这时可能会遇到以下错误:

security error: group or other have access to 'dpf_320x240.conf'

解决办法:

chmod 0600 dpf_320x240.conf

重新执行 ./lcd4linux -f dpf_320x240.conf -vv -F ,实际显示结果如下:

 

如何显示图片

修改dpf_320x240.conf配置文件,修改后内容如下:

Display dpf {
    Driver     'DPF'
    Port       'usb0'
    Font       '6x8'
    Foreground 'ffffff'
    Background '000000'
    Basecolor  '000000'
    Orientation 0          # 0 = landscape, 1 = portrait
                           # 2 = reverse landscape, 3 = reverse portrait
    Backlight  backlight   # Backlight variable control, 0..7 (0=off, 7=max)
}

Widget OS {
    class 'Text'
    expression '*** '.uname('sysname').' '.uname('release').' - dpf-ax driver by hackfin & superelchi ***'
    width 53
    align 'M'
    update tick
    Background '008000'
    Foreground 'ffffff'
}

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


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

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

Widget System {
    class 'Text'
    expression proc_stat::cpu('system', 500)
    prefix 'Sys'
    postfix '%'
    width 10
    precision 1
    align 'R'
    update tick
    Foreground 'ffffff'
    Background 'FFFFFF00'
}

Widget User {
    class 'Text'
    expression proc_stat::cpu('user', 500)
    prefix 'User'
    postfix '%'
    width 10
    precision 1
    align 'R'
    update tick
    Foreground 'ffffff'
    Background 'FFFFFF00'
}

Widget BusyBar {
    class 'Bar'
    expression  proc_stat::cpu('busy',   500)
    expression2 proc_stat::cpu('system', 500)
    length 53
    direction 'E'
    update tack
    Foreground 'ffffff'
    Background '00000080'
    BarColor0 '5f5fff'
    BarColor1 'ff5f5f'
}

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

Widget LoadBar {
    class 'Bar'
    expression  loadavg(1)
    max 2.0
    length 53
    direction 'E'
    update tack
    Foreground 'ffffff'
    Background '00000080'
    BarColor0 '5f5fff'
    BarColor1 'ff5f5f'
}


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::disk('.*', 'rblk', 500)+proc_stat::disk('.*', '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('hd.', 'read_sectors', 500) + diskstats('hd.', 'write_sectors', 500)
    prefix 'disk'
    postfix ' '
    width 10
    precision 0
    align 'R'
    update tick
    Foreground 'ffffff'
    Background 'FFFFFF00'
}

Widget DiskBar {
    class 'Bar'
    #expression  proc_stat::disk('.*', 'rblk', 500)
    #expression2 proc_stat::disk('.*', 'wblk', 500)
    # for kernel 2.6:
    expression  diskstats('sd.', 'read_sectors',  500)
    expression2 diskstats('sd.', 'write_sectors', 500)
    length 53
    direction 'E'
    update tack
    Foreground 'ffffff'
    Background '00000080'
    BarColor0 '5f5fff'
    BarColor1 'ff5f5f'
}

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

Widget Eth0Bar {
    class 'Bar'
    expression  netdev('eth0', 'Rx_bytes', 500)
    expression2 netdev('eth0', 'Tx_bytes', 500)
    length 53
    direction 'E'
    update tack
    Foreground 'ffffff'
    Background '00000080'
    BarColor0 '5f5fff'
    BarColor1 'ff5f5f'
}

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

Widget Bgnd {
    class 'Image'
    file 'lcd4linux_example.png'
    reload 1
    update 2000
    inverted 0
    visible 1
}

Display 'DPF'

Layout layout_320x240 {
    Row01.Col01 'OS'
    Row03.Col01 'CPU'
    Row03.Col14 'RAM'
    Row06.Col01 'Busy'
    Row06.Col20 'System'
    Row06.Col40 'User'
    Row07.Col01 'BusyBar'
    Row08.Col01 'Load'
    Row09.Col01 'LoadBar'
    Row10.Col01 'Disk'
    Row11.Col01 'DiskBar'
    Row12.Col01 'Eth0'
    Row13.Col01 'Eth0Bar'
    Row29.Col01 'Uptime'
    #Layer 2 {
        #X1.Y1 'Bgnd'
    #}
}

Layout layout_480x320_Image {
    Layer 2 {
        X1.Y1 'Bgnd'
    }
}


#Layout 'layout_320x240'
Layout 'layout_480x320_Image'

Variables {
    backlight 7
    tick 500
    tack 200
    minute 60000
}

然后再执行 ./lcd4linux -f dpf_320x240.conf -vv -F ,显示结果如下:

 

posted @ 2024-02-29 16:15  闹闹爸爸  阅读(118)  评论(0编辑  收藏  举报