转载【2017-05-20】OpenWrt 打印机共享专用固件 (trunk, r47249)
[2017-05-20 更新]
经过研究发现,Windows 共享打印机使用 RAW 数据(不是 RAW 协议)传输,因此 CUPS 可以去掉所有的过滤器和 PPD 文件。
因此重新编译了 8M 的 ar71xx 固件,只包含了CUPS和后端程序,并附带上未包含进固件的过滤器和PPD文件。
另外提供 ramips 和 x86_64 的相关软件包。
ar71xx 和 ramips 都使用 musl 库。x86_64 使用 glibc 库。
此固件使用 CUPS 来共享打印机,因此兼容性比 p910nd 更好,但是对路由的硬件配置要求也会更高。
固件包含了主流打印机的 CUPS 支持,可以在 http://www.openprinting.org/printers 里面查询支持的打印机。
http://www.openprinting.org/drivers 此页面里显示为 CUPS Raster 类型的驱动本固件都支持。
通过外部存储扩展以及安装 ipk,可以获得更多的打印机支持。
包含的功能如下:
CUPS 打印服务(含串口、并口的后端程序)
带虚拟多用户支持的 vsftpd (第二版)
EXT4、exFAT、FAT 挂载支持
hd-idle
额外软件包提供的功能:
Python2.7
UFSD(NTFS)挂载支持,仅 ar71xx
SAMBA 共享,仅 ar71xx
路由配置要求:
Flash: 8MB
RAM: 最低 64MB,推荐 128MB 或以上
(内存过低会导致 CUPS 耗尽内存)
另外建议使用外接存储器,将 /tmp 重定向到外部存储,以保证 CUPS 的 spool 功能不会耗尽内存
一些简要说明:
CUPS backend: CUPS 后端程序,可以理解为打印机的接口驱动(USB、串口、LPT并口、网络等)
CUPS filter: CUPS 过滤器,将打印数据转换为打印机可以识别的数据,并传递给 CUPS 后端程序,可以理解为打印机的型号支持驱动
PPD 文件: PostScript Printer Description,即打印机描述文件,一个 PPD 文件对应一个或一个型号系列的打印机,它描述了打印机的各种参数,以及该使用何种 CUPS 过滤器。
CUPS 打印的基本流程:
打印数据 -> CUPS 后台进程 -> 打印机 PPD 文件 -> CUPS filter 程序 -> CUPS backend 程序 -> 硬件接口 -> 打印机
对于如何配置 CUPS 以支持打印机共享,请自行搜索 Google、百度等。
添加打印机时在选择 Manufacturer(Make)/Model 时请选择 RAW
软件包说明:
网盘中带有固件的软件源,可以安装一些附加的包(内核模块、luci、打印机相关的软件等)。
固件中包含 ghostscript,但是不包含其 ppd 文件,若要使用,需要自行寻找。
软件包中有 gutenprint,也不包含 ppd 文件。
此外软件包还有 openprinting-cups-filters,它因为需要的依赖项太多太大,因此没有集成在固件中。
软件包:
软件包名
|
固件中是否包含
|
说明
|
cups | 是 | CUPS 主程序 |
cups-filters | 否 | CUPS 自带的 Raster 过滤器 |
foomatic-filters | 否 | Foomatic 通用打印机过滤器,独立 PPD 文件。依赖 GhostScript |
foomatic-db-ppds | 否 | Foomatic 通用打印机过滤器,PPD 文件 |
brlaser | 否 | Brother 激光打印机,过滤器,包含 PPD 文件。支持型号查阅 https://github.com/pdewacht/brlaser |
c2esp | 否 | Kodak ESP 与 Hero 一体机,过滤器,包含 PPD 文件。支持型号查阅 https://sourceforge.net/projects/cupsdriverkodak/ |
carps-cups | 否 | Canon CARPS 激光打印机,过滤器,包含 PPD 文件。支持型号查阅 https://github.com/ondrej-zary/carps-cups |
cndrvcups-common | 否 | Canon 打印机过滤器 |
cndrvcups-capt-backend | 否 | Canon CAPT 激光打印机,后端程序。支持型号查阅 http://software.canon-europe.com/software/0028622.asp |
cndrvcups-capt-filters | 否 | Canon CAPT 激光打印机,过滤器,独立 PPD 文件。不确定是否能用。支持型号查阅 http://software.canon-europe.com/software/0028622.asp |
cndrvcups-capt-ppds | 否 | Canon CAPT 激光打印机,PPD 文件 |
cndrvcups-lb | 否 | Canon UFR II/UFRII LT 打印机,过滤器,独立 PPD 文件。不确定是否能用。支持型号查阅 http://software.canon-europe.com/software/0043689_0011161.asp |
cndrvcups-lb-ppds | 否 | Canon UFR II/UFRII LT 打印机,PPD 文件 |
cups-bjnp | 是 | Canon BJNP 协议网络打印机,后端程序。项目主页 https://sourceforge.net/projects/cups-bjnp/ |
epson-alc1100-filter | 否 | Epson ALC1100 打印机,PPD 文件,依赖 foomatic-filters 过滤器 |
epson-alcx11-filter | 否 | Epson ALCX11 打印机,PPD 文件,依赖 foomatic-filters 过滤器 |
epson-inkjet-printer-escpr | 否 | Epson ESC/P-R打印机,过滤器,包含 PPD 文件。支持型号查阅 http://www.openprinting.org/driver/epson-escpr/ |
epson-inkjet-printer-filters | 否 | Epson InkJet 打印机,过滤器,独立 PPD 文件。支持型号查阅 http://www.openprinting.org/drivers 里面 epson 开头的 CUPS Raster 驱动 |
epson-inkjet-printer-ppds | 否 | Epson InkJet 打印机,PPD 文件 |
foo2zjs | 否 | foo 系列 (foo2zjs、foo2xqx等) 第三方打印机,过滤器,含 PPD 文件。依赖 GhostScript。支持型号查阅 http://foo2zjs.rkkda.com/ |
fxlinuxprint | 否 | Fuji Xerox 打印机,过滤器,含 PPD 文件。依赖 GhostScript。支持型号查阅 http://www.fujixerox.co.jp/downl ... s/linux_module.html |
gutenprint | 否 | Gutenprint (原 gimp-print) 通用打印机驱动,不含 PPD 文件。项目主页 http://gimp-print.sourceforge.net/ |
hplip-cups | 否 | HP 打印机和一体机,后端程序和过滤器,独立 PPD 文件。依赖 Python。支持型号查阅 http://hplipopensource.com/hplip-web/supported_devices/ |
hplip-ppds | 否 | HP 打印机和一体机,PPD 文件 |
openprinting-cups-backends | 是 | OpenPrinting 托管的 CUPS 不再开发的后端程序。项目描述 http://www.linuxfoundation.org/c ... inting/cups-filters |
openprinting-cups-filters | 否 | OpenPrinting 托管的 CUPS 不再开发的过滤器,独立 PPD 文件。项目描述 http://www.linuxfoundation.org/c ... inting/cups-filters |
openprinting-ppds | 否 | 基于 foomatic-filters 的 PPD 文件 |
splix | 否 | Samsung、Dell、Lexmark、Toshiba、Xerox 使用 SPL (Samsung Printer Language)的打印机,过滤器,包含 PPD 文件。支持型号查阅 http://splix.ap2c.org/ |
ppdb | 是 | PPD Driver 文件解包工具 |
其它软件包 | ||
python | 否 | Python 2.7,含 python-light |
hplip-sane | 否 | HP 一体机和扫描仪的 SANE 驱动 |
ar71xx 特有的额外软件包(部分列出) | ||
kmod-fs-hfs | 否 | |
kmod-fs-hfsplus | 否 | |
kmod-fs-ufsd | 否 | |
kmod-fuse | 否 | |
kmod-nls-iso8859-1 | 否 | |
kmod-nls-utf8 | 否 | |
kmod-usbip | 否 | |
kmod-usbip-client | 否 | |
kmod-usbip-server | 否 | |
kmod-video-uvc | 否 | |
pyopenssl | 否 | |
luci-app-ddns | 否 | |
luci-app-qos | 否 | |
luci-app-samba | 否 | |
luci-app-transmission | 否 | |
luci-app-upnp | 否 | |
luci-app-wol | 否 | |
luci-theme-bootstrap | 否 | |
luci-proto-3g | 否 | |
luci-proto-relay | 否 | |
mjpg-streamer | 否 | |
parted | 否 | |
uboot-envtools | 否 | |
usb-modeswitch | 否 |
请使用 U 盘扩充路由器存储空间后再安装剩余的软件包。
如果路由内存只有 64M,请不要向路由装任何较大的 PPD 文件包!否则会导致 CUPS 耗尽内存而无法正常工作。
网盘地址及文件说明:
http://www.hackpascal.net/OpenWrt/Printer_Support/
挽尊
packages 文件夹对应的软件源。
<ignore_js_op>
<ignore_js_op>
<ignore_js_op>
转载【2017-05-20】OpenWrt 打印机共享专用固件 (trunk, r47249)的更多相关文章
- 2017/05/20 java 基础 随笔
static 关键字的特点 1.随着类的加载而加载 2.优先于对象存在 3.被类的所有对象共享 如果某个成员变量是被所有对象共享的,那么他就应该定义为静态的 4.可以通过类名调用 其实它本身也可以通过 ...
- Win10共享打印机所需要的设置(无需密码访问实现打印机共享,共享不要密码)
原文:https://m.baidu.com/from=1086k/bd_page_type=1/ssid=0/uid=0/pu=usm@0,sz@1320_1002,ta@iphone_2_5.1_ ...
- centOS 7 安装 CUPS 打印服务器,安装映美 FP-730K打印机共享
centOS 7 安装 CUPS 打印服务器,安装映美 FP-730K打印机共享 2017-09-13 16:27:02 mostone 阅读数 3698 版权声明:本文为博主原创文章,遵循CC ...
- windows7实现打印机共享的方法
windows7实现打印机共享的方法和windows xp差不多,就是在下图当中的设置: 具体方法请参照:http://jingyan.baidu.com/article/6d704a13e00a21 ...
- Lodop不要把客户端的打印机共享到服务器上 再在客户端打印
客户端打印需要每个客户端都安装,Lodop插件方式和C-Lodop方式,都是安装一次后,无需再次安装,c-lodop默认也是开机自启动的.集中打印方式,可以打印到某台电脑(作为云主机)上,但是不能打印 ...
- 文件和打印机共享 win7 and xp
Win7 摘自:https://www.xp510.com/article/4249.html 首先开启服务 方法:开始---所有程序---附件---运行---输入services.msc----确定 ...
- 解决win7打印机共享出现“无法保存打印机设置(错误0x000006d9)的问题
最新解决win7打印机共享出现“无法保存打印机设置(错误0x000006d9)的问题,由系统下载吧率先分享: 有些用户在使用Windows7系统过程中,碰到到win7打印机共享出现“无法保存打印机设置 ...
- 设置打印机共享,适用Win7、Vista、xp,不用密码
此处以HP M1213nf为例,其他型号大同小异. 1.设置打印机共享: "开始"→ "控制面板"→ "设备和打印机" 2.找到&quo ...
- 刷CM7固件 乐padA1-07专用固件
-------------------------------------------------------------------------------- 前几天在版 ...
随机推荐
- 学习python的日常3
python的一些高级特性: 切片(跟名字一样,把一个完整的东西选取一部分自己想要的去切下来):通过切片可以快速的去除一些元素,只要确定好索引位置,避免的循环导致的多写代码 数组,元组,字符串都可以用 ...
- 基于335X平台Linux交换芯片驱动开发
基于335X平台Linux交换芯片驱动开发 一.软硬件平台资料 1.开发板:创龙AM3359核心板,网口采用RMII形式. 2.Kernel版本:4.4.12,采用FDT 3.交换芯片MARVEL ...
- LAMP环境源码编译安装过程
LAMP环境源码编译安装过程 一.Apache的安装 1.1.apache软件包及依赖包准备 httpd-2.4.29.tar.bz2 apr-1.6.3.tar.gz apr- ...
- 2013.6.21 - OpenNER第一天
下午去实验室继续写实验报告,跟伟杰要了一个实验报告,然后大师兄叫我,我们在走廊唠了一会儿. 大 师兄想做Open NE,他说这个会比较难,目前没有人做,因为还没有发现相关的文章,大家研究的都是指定了哪 ...
- html相对字体
文章:使用 rem 设置文字大小 使用rem作为字体单位.
- ET·ci — 全自动软件测试调度(持续集成)平台
ET·ci 提供了编译-测试-发布解决方案,包括:自动提取配置库代码进行自动构建, 自动调度静态测试工具(如QAC)进行静态测试,自动调度单元测试工具(如Tessy)开展动态测试,自动 ...
- 给定数字N,输出小于10^N的所有整数
讲起来比较简单,从0到N遍历输出就行了,但是如果N非常大,就涉及整数溢出问题,很明显是一个全排列问题,也就是输出N,代表N位上所有的数字取值是0-9,做一个全排列,还需要考虑的就是对于0001,006 ...
- 移动App性能评测与优化-Android内存测试 ,DVM原理
常见的测试方法包括Monkey/UIAutomator类的常规压力测试,大数据/操作的峰值压力测试,长时间运行的稳定性测试等. 前提: 测试准备:版本是纯净版本,不应该附加多余的log和调试用组件. ...
- 'CSRFCheck' object has no attribute 'process_request' 报错
环境:Python3.5 way 1: way 2: 在项目的setting.py中设置
- django 时间格式(全局修改,不用过滤器)
百度了一圈,很没创意的用过滤器,前端每次显示时间表格都要用过滤器,这种挺烦的.隐约记得以前见过没有用过滤器的.换google https://stackoverflow.com/questions/5 ...