• 首页
  • Qt文档
  • DTK文档
  • 玲珑文档
  • 外设驱动打包规范

    1、概述

    本文档为打印、扫描外设驱动打包规范。 规范目标在于提高驱动识别效率、提高驱动打包成功率、提高驱动安装推荐算法准确度。 以此来达成用户更方便的使用和管理打印、扫描类外设的目的。

    2、驱动包规范

    UOS 系统当前使⽤ DEB 格式作为标准安装包格式。驱动包中重点字段如下: ● packagename ,包名。软件包唯⼀标识,只能包含⼩写字⺟( a-z ),数字( 0- 9 ),加号( + ),减号( - )和点号( . ),并以⼩写字⺟开头。包名⻓度必须 ⼤于 2 个字符。 ● version ,版本号。只能包含字⺟数字以及 . 、 + 、 - 、 ~ 四种符号。 ● architecture ,⽀持架构。常⻅包括 amd64、arm64、mips64el、loongarch64 等。对于跨平台的驱动包组成部分,⽐如纯数据,架构可以为 all。 包名能够清晰描述驱动包的来源与⽤途,最终的驱动包⽂件推荐命名为 packagename_version_architecture.deb的形式。 除此之外需要注意如下⼏点: ● Depends 字段需要包含完整的依赖。 ● 不得使⽤ preinst 、 prerm 、 postinst 、 postrm 等⾃定义脚本。 ● 不同架构下同⼀型号的驱动包,包名必须⼀致。 ● 驱动包不得随意変更包名,必须変更包名的情况下,需要考虑与原有驱动包的兼容性。

    3、打印机驱动文件规范

    打印机驱动主要⽤来将软件识别的数据格式转换成打印机硬件识别的数据格式。在 UOS 系统中,当前的打印系统遵循 CUPS 标准。CUPS 驱动常⻅的组件包括: ● filter ⽂件,安装到 /usr/lib/cups/filter/ ⽬录下,需要使⽤软链接,链接到驱 动包安装⽬录。推荐⽅式为将 /usr/lib/cups/filter/rastertoXXX 软链接到 /opt/<⼚商>/<驱动包名>/bin/rastertoXXX 。 ● PPD ⽂件,安装到 /usr/share/cups/model/<驱动包名>/ ⽬录,同样需要软链接到 驱动包安装⽬录。推荐软链接到 /opt/<⼚商>/<驱动包名>/ppd/ ⽬录。需要注意此⽬ 录下只能包含 PPD ⽂件。 ● backend ⽂件,如果存在⾃定义 backend,安装到 /usr/lib/cups/backend ⽬录 下,同样需要软链接到驱动包安装⽬录。

    4、扫描仪驱动文件规范

    扫描仪驱动 UOS 系统使⽤ SANE 作为扫描系统标准,扫描仪驱动需要遵循 SANE 标准。SANE 驱动 常⻅组件包括: ● 库⽂件,安装到 /usr/lib/sane/ ⽬录下,同打印机驱动⼀样,通过软 链接⽅式链接到驱动包安装⽬录 /opt/<⼚商>/<驱动包名>/ 。 ● 配置⽂件,安装到 /etc/sane.d/dll.d/ ⽬录中,同样软链接⽅式链接到驱动包安 装⽬录中的配置⽂件。

    5、外设即插即用功能使用规范

    外设即插即用是UOS上针对外设使用提供的增强功能,设备接入UOS后,会自动识别安装驱动。接入此功能的驱动,需要提供 <包名>.json ⽤来描述驱动信息,安装到⽬录 /var/lib/drivers/info/ 下。json ⽂件格式如下: ● ⽂件中最外层是⼀个 json 对象,包含两个键 deviceid 和 driver ,分别⽤来表⽰ 设备 ID 和设备对应的驱动配置。 ● deviceid ⽀持两种类型的设备 ID,分别为 IEEE1284 ID 和 USB ID(PID:VID 的 形式)。其中键为相应的设备 ID,值为可读的设备标识。允许不同的设备 ID 对应到 同⼀设备标识。 ● deviceid 中的设备标识,如果出现在 driver 的中,⽤来描述设备及对应驱动的 配置。 ● 设备及驱动配置中, type 描述设备类型,是⼀个字符串数组,⽀持的类型有 printer 和 scanner 。驱动的配置,以驱动类型作为键,⽬前⽀持的驱动类型包 括: ● cups ,其中 ppd 指定了该打印设备对应的 PPD ⽂件。 ● sane ,其中 conf 指定了扫描仪设备对应的 sane 配置⽂件。 ● 上述所有属性均为可选,只在使⽤到时才需要填写。 提供此信息的驱动包可以更好的⽀持外设设备的即插即⽤,有更好的外设使⽤体验。

    6、PPD文件配置规范(备选方法)

    没有提供前⽂驱动信息的驱动包,可能⽆法良好的⽀持即插即⽤。此方法在打印机设备对应 的 CUPS 驱动中,PPD ⽂件可以缓解这⼀问题,但是⽆法确保设备识别完全正确。且此⽅法只对使⽤ CUPS 驱动的打印设备有效。 PPD ⽂件关键配置: ● Manufacturer 属性需要与打印机设备 IEEE1284 ID 中的 MFG 字段⼀致。 ● ModelName 属性需要与打印机设备 IEEE1284 ID 中的 MDL 字段⼀致。 ● 单个 PPD ⽂件⽀持多个打印机型号的情况,需要在属性 Product 列出, Product 属性允许出现多次。 ⽐如 PPD ⽂件⽀持的打印设备 IEEE1284 ID 包括 MFG:XXX;MDL:DeviceA series 、 MFG:XXX;MDL:DeviceA 100 和 MFG:XXX;MDL:DeviceA 200 ,对应的 PPD 配 置可以为: 既不提供驱动包信息,⼜没有良好编写 PPD ⽂件的驱动包,⽆法提供即插即⽤⽀持,无法提高打印、扫描类外设在UOS上的使用效率,不利于厂商外设的推广与使用。