Linux操作系统中打印机SDK Sample的测试方法问题

各位好,我是一名卡片打印机的硬件工程师,从未有过任何开发和Linux经验,连命令使用都是现学的,以下的内容都是在一个星期内突击学习的,所以描述可能比较业余。

因为突然遇到需要,所以临时需要我测试一下我们证卡打印机的SDK开发包在麒麟操作系统(Linux)中的适配性,所以我的理解,是不是在这个系统中配置好打印机,然后安装SDK后运行一下Sample就算OK了,因为目前并没有任何客户提供什么具体的需要,只是测试一下我们的SDK 在这个版本的Linux中能不能用。

这是我的问题一,不知道我这么理解对不对,算不算测试了SDK?

问题二,配置完打印机后,运行Sample报错Failed to connect the printer(21) 请问我是不是遗漏了什么正常的流程?
我的具体步骤是

1.安装打印机驱动,添加好打印机至打印机列表,设置成默认打印机,然后打印测试页和使用lp命令打印图片都成功了。
2.安装SDK 到PC ,安装时我赋予了相关所有Install文件的777权限,其中安装时发现usr/local中没有lib64文件夹,我手动创建了。

img

3.安装SDK成功后,Sample文件夹中有一个buildall.sh执行文件,执行后完成了所有Sample的安装,

img


其中第一个Sample “Advanced Settings"的安装如图

img

安装完成所有Sample后,每一个Sample里也都有了资源文件和执行文件

img

img

然后我以第一个Sample为例,直接运行 AdvancedSettings,直接报错

img

请问我是不是缺少了什么应该有的流程?我之前的同事,就成功运行过所有的sample如下图。

img

请各位有时间的指点一下,我实在是对这些东西完全不懂,如有可能还请指点的详细一些,事出紧急实在不想耽误进度,谢谢各位了


  #打印机型号

Order Deny,Allow

Deny From All

Allow From 127.0.0.1

AuthType None


Order Deny,Allow

Deny From All

Allow From 127.0.0.1#允许从本地配置

Browsing On

BrowseProtocols cups

BrowseOrder Deny,Allow

BrowseAllow from @LOCAL

Listen 127.0.0.1:631#打印机监听端口
#rpm –qa |grep cups;rpm -qa|grep foo

cups-libs-1.1.17-13   #CUPS命令集

cups-devel-1.1.17-13 #CUPS开发库

cups-1.1.17-13 #CUPS主程序

foomatic-2.0.2-15 #独立于假脱机打印的数据库

Omni-foomatic-0.7.2-4 #Omni数据库

#redhat-config-printer-tui --Xadd-local options

参考文档:


if [ $# = 0 ]

then

exit -1           /*如果参数为0个,直接退出*/

else       echo "/033[5i"    /*打开这个端口,很什么打印机无关,一般打印机端口都是这个*/

cat $*            /*显示文件名,其实就是在这个端口显示这个文件,打印机就会自动打印了*/

echo "/033[4i"    /*关闭端口*/

exit 0            /*正常退出*/

fi

C程序:比如locp.c  (时间仓促,格式未整理,注释未加,未测试)编译使用: cc -o locp locp.c

#include

#include

#include

int main ( int argc ,char * argv [])

{undefined

FILE *rpt_ptr;

FILE *print_ptr;

char buf[10240];

char v_begin[]= "^[[5i";

char v_end[] = "^[[4i";

int num =0;

if ( argc != 2 )

{undefined

printf("Usage : locp filename /n");

return -1;

}

print_ptr = fopen ( "/dev/tty","wt");

if ( print_ptr == NULL )

{undefined

printf("打开终端失败./n");

exit -1;

}

rpt_ptr = fopen ( argv[1],"rt");

if ( rpt_ptr == NULL )

{undefined

printf("文件 %s 不存在或没有读权限 /n",argv[1]);

fclose(print_ptr);

exit -1;

}

fputs ( v_begin,print_ptr);

while (fgets(buf,10240,rpt_ptr) != NULL)

{undefined

/*

if ( num > 20 )

{undefined

fputs ( v_end,print_ptr);

fflush(print_ptr);

sleep(10);

fputs ( v_begin,print_ptr);

num =0;

}

num ++;

*/

num = strlen ( buf );

/*

if ( buf[num - 1] == '^M' )

{undefined

buf[num-1] = '/0';

}

*/

fputs ( buf,print_ptr);

fflush(print_ptr);

}

// fputs ( "^L",print_ptr);

fputs ( v_end,print_ptr);

fflush(print_ptr);

fclose(rpt_ptr);

fclose(print_ptr);

return 0;

}

memtester 测试 →验证 ddr 的测试
串口内执行:

apt-get update
apt-get install memtester
memtester 100M
拷机 24 小时后手动退出,停掉测试。
stressapptest 测试→thermal test
apt-get update
apt-get install stressapptest
stressapptest -M 1024-s 86400 86400 代表 24H,可自己设置
reboot test
脚本放置路径: etc
rc.local 文件在 etc 目录下:
进入该目录,直接 vim rc.local 文件如下编写 reboot 时间后保存
#!/bin/sh -e
rc.local
This script is executed at the end of each multiuser runlevel.
Make sure that the script will “exit 0” on success or any other
value on error.
In order to enable or disable this script just change the execution
bits.
By default this script does nothing.
sleep 30
reboot -f
exit 0
4) 然后重启 sdk 就可以开始循环开关机测试,拷机 24 小时。
5)要停止 reboot test 操作:
pc 进终端, 给权限进入删除:
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:$ cd /media/ls
bash: cd: /media/ls: 没有那个文件或目录
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:
$ cd /media/
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:media$ lscdcd
P1 P2 rockchip
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:media$ cd rockchip/
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:rockchip$ ls
1CB5-385A 8e442388-f6b2-4d79-a811-d6f3d4b5fa69 zImage瑞芯微电子股份有限公司

4 -
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:rockchip$
cd 8e442388-f6b2-4d79-a811-d6f3d4b5fa69/
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:8e442388-f6b2-4d79-a811-d6f3d4b5fa69$ cd
etc/
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:etc$ sudo vim rc.local 进入修改 rc.local 文件
内容,将 sleep 30 reboot -f 指令删掉,恢复原样,然后 sync 就可以停掉 reboot 测试。
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:etc$ sudo vim rc.local
rockchip@rockchip-HP-Compaq-Elite-8300-CMT:etc$ sync
glmark2 test→图形测试
apt-get update
sudo apt-get install git g++ build-essential pkg-config
sudo apt-get install libx11-dev libgl1-mesa-dev
sudo apt-get install libjpeg-dev libpng-dev git build-essential
cd ~/
git clone https://github.com/glmark2/glmark2.git
cd glmark2/
./waf configure --with-flavors=x11-glesv2
./waf build -j 4
sudo ./waf install
su linaro -c "DISPLAY=:0.0 /usr/local/bin/glmark2-es2"跑 1 次
su linaro -c "DISPLAY=:0.0 glmark2-es2 --benchmark refract --r
Local video Room Temp
用脚本测试,编写脚本 loop.sh:
#!/bin/bash
while true; do
su linaro -c “DISPLAY=:0.0 mpv *”
sleep 1
done
测试注意点:

要拷机的视频不能为中文,符号等,先将其改为英文、数字等;
将拷机视频及视频脚本 loop.sh 放至样机内同个目录下;
安装一个视频播放器(apt-get update, apt-get install mpv)
cd /home/inaro/testvideo
chmod +X loop.sh
./loop.sh
Local video High Temp
跟常温同样方法,放至高温箱,温度调至 50℃, 拷机 24 小时。

Online video
连接网络(以太网或 vpn)
intetnet→chromium web browser
http://www.youtube.com/
视频打开后,页面右边打开自动播放, 拷机 24 小时。

WebGL Aquarium 测试
fish 网页拷机测试
http://webglsamples.org/aquarium/aquarium.html 默认 50fish