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 ,显示结果如下:
本文来自博客园,作者:闹闹爸爸,转载请注明原文链接:https://www.cnblogs.com/wanglouxiaozi/p/18044525