15.4. 访问串行设备和 USB 打印机

15.4.1. 设备链接
15.4.2. 设备节点
15.4.3. 设备节点所有权
15.4.4. 漫游办公和设备节点所有权
15.4.5. 设置串行设备
15.4.6. 设置 USB 打印机

此部分提供有关如何管理连接到客户端的串行设备和 USB 打印机的信息。

15.4.1. 设备链接

设备链接创建于 dev 目录下。到每个串行节点的链接在 dev/term 下创建,到每个本地连接的打印机的链接在 dev/printers 下创建。

典型的设备链接为:

/tmp/SUNWut/units/IEEE802.080020cf428a/dev/term/manufacturer_name-67a
/tmp/SUNWut/units/IEEE802.080020cf428a/dev/printers/1608b-64

第一个示例的设备链接为 manufacturer_name-serial_numberindex,其中 index 是一个从 a 开始不断增加的字母字符。如果无法获得制造商名,则将提供商和产品 ID 号用作设备链接名。

下面是具有板载串行端口的 Sun Ray 3 Client 的 dev 目录的示例。

# cd $UTDEVROOT/dev
# pwd
/tmp/SUNWut/units/IEEE802.002128587259/dev
# ls     
term 
# cd $UTDEVROOT/dev/term
# pwd
/tmp/SUNWut/units/IEEE802.002128587259/dev/term
# ls -l
lrwxrwxrwx   1 root     root          22 Jul 28 17:23 a -> ../../devices/serial:a       

15.4.2. 设备节点

注意

USB 转串行适配器无法通过 Oracle Solaris 或 Oracle Linux 会话中生成的设备节点进行访问。必须使用 Windows 会话中的 USB 重定向访问通过 USB 转串行适配器连接的串行设备。

devices 目录中,为连接的 USB 设备上的每个串行端口或打印机端口创建了设备节点。设备节点创建于 hub 目录下,与它们连接的集线器对应。节点名称如下:

manufacturer_name,model_name@upstream_hub_port

如果 USB 设备有多个相同的端口(例如,两个串行端口),则名称后接 :n,其中 n 为数字索引,从 1 开始。

下面是一个典型的设备节点示例:

/tmp/SUNWut/units/IEEE802.MACID/devices/usb@1/hub@1/manufacturer_name,model_name@3:1

以下是命名约定的定义。

术语

定义

physical-topology

physical-topologyhub@port/hub@port 等。port 指设备或子集线器插入的父集线器上的端口。

printer-name-1, terminal-name-1

Sun Ray devices 目录内的打印机和终端名称为 manufacturer,model@port,当以上描述的字符串在目录内不唯一时,用冒号分隔数字索引。

printer-name-2, terminal-name-2

Sun Ray dev目录内的打印机和终端名称是制造商和序列号,当序列号不唯一时,后接字母索引。

15.4.3. 设备节点所有权

某些设备节点属于在该客户端上具有活动会话的用户,而另一些可能属于 root 用户或那些曾在该客户端上有过活动会话的用户。设备权限、访问控制和所有权规则取决于设备的类别。对于串行设备,只有在该客户端上具有活动会话的用户或超级用户才有权限使用连接的设备。如果不存在有活动会话的用户,超级用户将拥有这些串行设备节点。此规则可能不适用于连接到该客户端的其他类型的 USB 设备。

15.4.4. 漫游办公和设备节点所有权

下面说明了当会话连接到客户端和断开与客户端的连接时 USB 设备的行为,此说明只适用于串行设备。其他设备类别可能在所有权和设备租用时间上具有不同的语义。

更改客户端上的活动会话可将设备节点的所有者更改为那些与新会话相关联的用户。每当用户向客户端中插入智能卡或从客户端中移除智能卡时,或者当用户登录到会话时,即会发生会话更改。

在故障转移环境中,可以使用 utselectutswitch 命令更改会话。会话更改将使当前所有由非 root 用户打开的会话在 15 秒内关闭。向受影响的设备输入或从受影响的设备输出都会导致错误。对于串行设备节点,如果在 15 秒钟内恢复原始会话,则所有权不会被放弃,且输入和输出将继续,不会中断。

当前由超级用户打开的设备(包括常规的打印设备)不受会话更改的影响。

15.4.5. 设置串行设备

要对客户端使用串行连接设备,则必须将其连接到内部串行端口或使用 USB 转串行适配器进行连接。必须使用 Windows 会话中的 USB 重定向访问通过 USB 转串行适配器连接的串行设备。

指向串行端口设备节点的符号链接位于 $UTDEVROOT/dev/term 下。内置端口命名为 "a" 或 "b"。

在漫游办公过程中,串行端口会变为无属主状态,因此在移除智能卡或重置客户端之前,应确保所有串行端口活动都已停止。

注意

Sun Ray 170 上的所有串行端口(端口 A 除外)都支持完全握手 (full handshaking) 和标准 UNIX 语义。Sun Ray 170 上的端口 A 没有硬件握手管脚,因此当需要进行硬件握手时不能使用该端口。

15.4.6. 设置 USB 打印机

本部分说明如何设置连接到 Sun Ray Client 的 PostScript 打印机和非 PostScript 打印机。有关如何在使用 Windows 连接器时通过 Windows 进行打印的详细信息,请参见第 17 章 Windows 连接器

15.4.6.1. 如何设置连接的 PostScript 打印机 (Oracle Solaris)

Sun Ray Software 可以与直接连接到 Sun Ray Client 上 USB 端口的 PostScript 打印机配合使用。有关对非 PostScript 打印机的支持情况,请参阅第 15.4.6.3 节 “如何设置连接的非 PostScript 打印机”

注意

Sun Ray Software 的打印机命名约定与 Oracle Solaris 操作环境中的不同。

注意

lp 子系统以超级用户身份为每个打印请求打开设备节点,所以打印作业不受漫游办公的影响。

在连接到 Sun Ray Client 的打印机(直接连接或通过适配器连接)上启动打印队列的过程与在 Oracle Solaris 中启动打印队列的过程相同。

  1. 在连接打印机的 Sun Ray Client 上,以超级用户(root 用户)身份登录到新会话。

  2. 要确定客户端的 MAC 地址,可按下位于键盘右上角的电源键左边的三个音频选项键。

    连接图标下方显示的字母数字串即为 MAC 地址。

  3. 要定位 Sun Ray Client,请键入:

    # cd /tmp/SUNWut/units/*MAC_address
    # pwd
    /tmp/SUNWut/units/IEEE802.MACID
    

    此时会显示指向特定 Sun Ray Client 的扩展 MAC 地址的路径。

  4. 键入以下命令,定位打印机的端口:

    # cd dev/printers
    # pwd
    /tmp/SUNWut/units/IEEE802.MACID/dev/printers
    # ls
    printer-node-name
    
  5. 在目录内,定位打印机节点。

  6. 添加新打印机。

    1. 启动 Oracle Solaris 打印管理器。

      # /usr/sbin/printmgr &
    2. 单击 "OK"(确定)选择文件作为系统信息库。

    3. 转到 Printer(打印机)> New Attached Printer(新连接的打印机)

    4. 键入以下信息:

      • 打印机名称:printername

      • 描述(可选)

      • 打印机端口

      • 打印机制造商

      • 打印机型号

        选择 "Other"(其他)以键入打印机端口路径名。要定位打印机端口,请参阅步骤 4。

  7. 检验是否已正确设置打印机。

    # lpstat -d printername
    

15.4.6.2. 如何设置连接的 PostScript 打印机 (Oracle Linux)

Sun Ray Software 可以与直接连接到 Sun Ray Client 上 USB 端口的 PostScript 打印机配合使用。有关对非 PostScript 打印机的支持情况,请参阅第 15.4.6.3 节 “如何设置连接的非 PostScript 打印机”

注意

lp 子系统以超级用户身份为每个打印请求打开设备节点,所以打印作业不受漫游办公的影响。

以下一般性说明对不同的操作系统实现可能稍有差异,但是它所提供的信息可确保管理员进行基本的打印服务设置。

  1. 在连接打印机的 Sun Ray Client 上,以超级用户(root 用户)身份登录到新会话。

  2. 要确定客户端的 MAC 地址,可按下位于键盘右上角的电源键左边的三个音频选项键。

    连接图标下方显示的字母数字串即为 MAC 地址。

  3. 定位 Sun Ray Client。

    # cd /tmp/SUNWut/units/*MAC_address
    # pwd
    /tmp/SUNWut/units/IEEE802.MACID
    

    此时会显示指向特定 Sun Ray Client 的扩展 MAC 地址的路径。

  4. 定位打印机的端口。

    # cd dev/printers
    # pwd
    /tmp/SUNWut/units/IEEE802.MACID/dev/printers
    # ls
    printer-node-name
    
  5. 在目录内,定位打印机节点。

  6. 使用 Oracle Linux 管理工具设置打印机。

    请选择 "Other"(其他)以便可以从步骤 4 提供设备节点。

  7. 检验是否已正确设置打印机。

    # lpstat -d printername
    
  8. /dev/usb 中创建一个指向 Sun Ray 打印机节点的软链接

    例如,如果设备节点是

    /tmp/SUNWut/units/IEEE802.mac-address/dev/printers/device_node,

    则应使用以下命令:

    # ln -s /tmp/SUNWut/units/IEEE802.mac-address/dev/printers/device_node /dev/usb/sunray-printer
    

    创建打印队列时,请将此软链接 (/dev/usb/sunray-printer) 用作设备 URI。

  9. 更新 /etc/cups/cupsd.conf 以将 RunAsUser 属性设置为 "No"。

  10. 重新启动 cups 守护进程。

    # /etc/init.d/cups restart

15.4.6.3. 如何设置连接的非 PostScript 打印机

不使用 PostScript 的打印机(如工程绘图仪)可通过第三方软件获得良好支持。低成本的喷墨打印机需要第三方软件支持,例如:

请与供应商联系,以获取价格信息和所支持的打印机的准确型号。