如果你用的打印机foo2zjs已支持,可以不使用cups,直接用foo2zjs将pbm文件转换成打印机支持的流,传入打印机即可打印。
以惠普的hp1020为例,交叉编译步骤如下:
#! /bin/sh
#
# foo2zjs: Linux环境下的打印机驱动
#
# 1.下载源码
wget http://foo2zjs.rkkda.com/foo2zjs.tar.gz &&
# 2.解压源码
tar zxvf foo2zjs.tar.gz &&
# 3.分别拷贝为PC版本和ARM版本
cp foo2zjs foo2zjs-arm -r &&
mv foo2zjs foo2zjs-x86 &&
# 4.编译PC版本
cd foo2zjs-x86 &&
make &&
cd ../ &&
# 5.编译ARM版本
cd foo2zjs-arm &&
make CC=arm-linux-gnueabihf-gcc &&
# 6.使用编译出来的getweb程序, 得到对应打印机的固件程序: sihp1020.img
./getweb 1020 &&
# 7.用x86 gcc编译的arm2hpdl工具将sihp1020.img转化为sihp1020.dl
cd ../foo2zjs-x86 &&
./arm2hpdl ../foo2zjs-arm/sihp1020.img > ../foo2zjs-arm/sihp1020.dl &&
cd ../ &&
# 8.将生成的sihp1020.dl和foo2zjs拷贝至目标板的文件系统中
cp foo2zjs-arm/sihp1020.dl /rootfs/usr/share/cups/sihp1020.dl &&
cp foo2zjs-arm/foo2zjs /rootfs/usr/share/cups/foo2zjs &&
# 9.完成
echo "build ok!"
echo
echo
启动目标板,将固件写入打印机, 打印pbm格式文件:
cat sihp1020.dl /dev/usb/lp0
./foo2zjs -z1 -p9 -r600x600 test.pbm > /dev/usb/lp0
如果是HP LaserJet Professional P1606dn,因固件已经固化在机器的FlashROM中,直接写入pbm文件即可打印:
./foo2zjs -P -z2 -L0 -p9 -r600x600 test.pbm >/dev/usb/lp0
#EOF