13.1. 管理桌面客户端

13.1.1. Oracle Virtual Desktop Client 和 Sun Ray Client 之间客户端 ID 的区别
13.1.2. 动态会话大小调整
13.1.3. 如何列出可用的 Sun Ray 服务器
13.1.4. 如何列出可用的客户端
13.1.5. 如何显示 Sun Ray Client 信息
13.1.6. 如何配置客户端的位置和信息
13.1.7. 音频输出故障排除(Oracle Solaris 10 和 Oracle Linux 5)
13.1.8. 音频输出故障排除(Oracle Solaris 11 和 Oracle Linux 6)

此部分提供 Sun Ray Client 和 Oracle Virtual Desktop Client 的常见管理任务列表或功能信息。有关特定于每种客户端的信息,请参见第 13.2 节 “Sun Ray Client”第 13.3 节 “Oracle Virtual Desktop Client”

13.1.1. Oracle Virtual Desktop Client 和 Sun Ray Client 之间客户端 ID 的区别

如果您拥有现有的使用 Sun Ray Software 命令的脚本,或者您计划创建脚本,则必须了解 Oracle Virtual Desktop Client 和 Sun Ray Client 之间客户端 ID 的区别。

在 Sun Ray Software 管理工具中,所有客户端都以客户端 ID 表示,客户端 ID 又称 CID、终端 CID 或客户端标识符。客户端 ID 有完整 ID 和短 ID 两个版本:

  • 完整客户端 ID:namespace.id-part

  • 短客户端 ID:id-part

namespace 值为决定 id-part 值格式的标记。通常使用和接受短客户端 ID,因为当前的名称空间(一个用于 Sun Ray Client,一个用于 Oracle Virtual Desktop Client)使用不同的 id-part 格式。完整客户端 ID 用于帮助更轻松地区分这些不同类型的客户端。

有关客户端 ID 的详细信息,请参见表 13.1 “Oracle Virtual Desktop Client ID 详细信息”

表 13.1. Oracle Virtual Desktop Client ID 详细信息

客户端

namespace

id-part 含义

id-part 格式

Sun Ray Client

IEEE802

Sun Ray Client 的 MAC 地址

12 位十六进制数字

Oracle Virtual Desktop Client

MD5

客户端密钥的 MD5 散列

32 位十六进制数字


注意

客户端密钥是 Oracle Virtual Desktop Client 配置文件的一部分,因此每个 Oracle Virtual Desktop Client 配置文件都有其自己的客户端 ID。

有关客户端 ID 的示例,请参见表 13.2 “Sun Ray Client ID 示例”表 13.3 “Oracle Virtual Desktop Client ID 示例”

表 13.2. Sun Ray Client ID 示例

短 ID

完整 CID

0003badc1b9d

IEEE802.0003badc1b9d

00144f85f52f

IEEE802.00144f85f52f

080020b5ca55

IEEE802.080020b5ca55


表 13.3. Oracle Virtual Desktop Client ID 示例

短 ID

完整 CID

1bd97b44ea9458fac256a7a778a282fe

MD5.1bd97b44ea9458fac256a7a778a282fe

d8b3a4eb29497e0c6fbb0f2a810267f5

MD5.d8b3a4eb29497e0c6fbb0f2a810267f5


13.1.1.1. 如何显示客户端 ID 信息

Oracle Virtual Desktop Client 的客户端 ID 格式与 Sun Ray Client 的客户端 ID 格式不同。有关更多信息,请参见第 13.1.1 节 “Oracle Virtual Desktop Client 和 Sun Ray Client 之间客户端 ID 的区别”

可以通过以下方式显示 Sun Ray Client 的短 ID:

  • Oracle 键盘-Stop-N

  • 非 Oracle 键盘-Ctrl-Pause-N

可以通过以下方式显示 Oracle Virtual Desktop Client 的短 ID:

  • 键盘-Host-N(默认情况下,Host 为右侧的 Ctrl 键。)

  • 命令-使用 ovdc 命令的 -i--clientid 命令选项。

13.1.2. 动态会话大小调整

动态会话大小调整允许对远程桌面自动进行大小调整以适合本地桌面客户端会话的最佳大小。当漫游办公到不同设备的会话时,或使用平板电脑等可旋转客户端设备时,会检测新屏幕的配置并相应地调整会话屏幕尺寸。有关使用动态会话大小调整的情景列表,请参见第 13.1.2.1 节 “大小调整情景”

使用动态会话大小调整,可以检测到桌面客户端屏幕配置的任何更改,然后相应地自动对远程桌面进行更改。桌面客户端屏幕配置的更改可以包括监视器的数量、监视器分辨率、监视器方向、平板电脑旋转或屏幕模式(例如窗口模式或全屏模式)。这些更改可以在会话期间随时发生,例如,在平板电脑的方向从横向变为纵向时。

要对 Sun Ray 会话启用动态会话大小调整,必须使用以下方法之一调用 utscreenresize 命令的 -l 选项,它在会话的后台运行 utscreenresize

对于 Oracle Virtual Desktop Client,用户还可以在客户端通过配置设置启用或禁用该功能,而默认情况下启用该功能。

如果对会话启用了动态会话大小调整,则会忽略所有其他显示大小调整操作,例如 utxconfig -rxrandr 命令。如果用户想要配置自己的特定屏幕配置或桌面分辨率,则必须针对这些用户禁用动态会话大小调整,以便他们可以使用其他命令和工具管理其屏幕或桌面配置。或者,如果是通过 GNOME 自动启动配置启用的,则用户可以自行禁用。

动态会话大小调整适用于所有 Sun Ray Client、Oracle Virtual Desktop Client、Oracle Virtual Desktop Client for iPad 1.2 或更高版本和 Oracle Virtual Desktop Client for Android 1.2 或更高版本。要在以窗口模式调整窗口大小时向用户提供最佳显示,必须具有 Oracle Virtual Desktop Client 3.2 或更高版本。

注意

如果启用了 Xinerama 扩展,动态会话大小调整则不起作用。有关更多详细信息,请参见第 12.2.9 节 “如何启用和禁用 Xinerama”

13.1.2.1. 大小调整情景

动态会话大小调整将在以下情况中自动调整远程桌面的大小:

  • 从一个 Sun Ray Client 漫游办公到具有不同监视器配置、监视器分辨率或监视器方向的另一 Sun Ray Client。

  • 从 Sun Ray Client 漫游办公到客户端计算机上运行的 Oracle Virtual Desktop Client,反之亦然。

  • 在窗口模式下运行 Oracle Virtual Desktop Client 时调整窗口大小。会话的显示自动调整为新的窗口大小。如果在未启用桌面会话大小调整时缩小窗口的大小,则必须使用滚动条查看整个显示,因为会话的显示不会自动调整大小,因此太大而无法在较小的窗口中全部显示。

  • 运行 Oracle Virtual Desktop Client 应用程序时将平板电脑从横向旋转为纵向,反之亦然。远程桌面自动随平板电脑一起旋转。

13.1.2.2. 如何使用 GNOME 自动启动启用动态会话大小调整

此过程说明如何为所有用户在其 GNOME 桌面启动时启用动态会话大小调整。此方法最适合常规 Oracle Solaris 和 Oracle Linux 会话。

  1. 在 Sun Ray 服务器上成为超级用户。

  2. (仅限 Sun Ray Client)如果任何 Sun Ray Client 的监视器采用非标准方向,请使用连接监视器的有效方向值(orient1orient2)设置 Sun Ray Client 的固件。

    使用 utfwadm 命令的 -e 选项更新特定 Sun Ray Client 的固件。有关详细信息,请参见第 13.2.1 节 “如何集中更新 Sun Ray Client 配置 (.parms)”

  3. 将带有 -s all -l 选项的 utscreenresize 命令添加到 GNOME 自动启动目录。

    对于 Oracle Solaris 11、Oracle Linux 6 和 Oracle Linux 5

    将下面名为 utscreen.desktop 的文件添加到 /usr/share/gnome/autostart 目录。

    [Desktop Entry]
    Type=Application
    Exec=/opt/SUNWut/bin/utscreenresize -s all -l
    Hidden=false
    X-GNOME-Autostart-enabled=true
    Name[en_US]=Sun Ray Session Screen Resize
    Name=Sun Ray Session Screen Resize
    Comment[en_US]=Start utscreenresize on login.
    Comment=Start utscreenresize on login.

    此文件部署到位后,所有用户都将默认启用动态会话大小调整。各个用户可以通过选择 System(系统)> Preferences(首选项)> Startup Applications(启动应用程序)并取消选中 Sun Ray Screen Resize(Sun Ray 屏幕大小调整)应用程序来禁用此功能。用户必须注销并重新登录来使更改生效。

    如果动态会话大小调整未通过 /usr/share/gnome/autostart 为所有用户启用,则各个用户仍可以通过为 utscreenresize -s all -l 命令创建启动应用程序来启用此功能。他们可以选择 System(系统)> Preferences(首选项)> Startup Applications(启动应用程序)并单击 "Startup Applications Properties" 窗口中的 Add(添加)

    对于 Oracle Solaris 10

    要启用动态会话大小调整,各个用户必须为 utscreenresize -s all -l 命令创建启动程序。单击 Launch(启动)> Preferences(首选项)> Desktop Preferences(桌面首选项)> Sessions(会话),单击 Startup Programs(启动程序)选项卡,然后单击 Add(添加)

13.1.2.3. 如何使用会话初始化脚本启用动态会话大小调整

此过程说明如何在用户会话初始化时启用动态会话大小调整。非常规会话(例如 kiosk 会话)需要使用此方法。

  1. 在 Sun Ray 服务器上成为超级用户。

  2. (仅限 Sun Ray Client)如果任何 Sun Ray Client 的监视器采用非标准方向,请使用连接监视器的有效方向值(orient1orient2)设置 Sun Ray Client 的固件。

    使用 utfwadm 命令的 -e 选项更新特定 Sun Ray Client 的固件。有关详细信息,请参见第 13.2.1 节 “如何集中更新 Sun Ray Client 配置 (.parms)”

  3. 将目录转到会话初始化目录。

    • Oracle Solaris 10:

      # cd /usr/dt/config/Xsession.d
    • Oracle Linux 或 Oracle Solaris 11:

      # cd /etc/X11/xinit/xinitrc.d
  4. 创建以下定制脚本以启用动态会话大小调整(在此过程中脚本名为 0050.desktopresize.sh)。

    #!/bin/sh
    
    # Enable dynamic session resizing each time a user hotdesks  
    /opt/SUNWut/bin/utscreenresize -s all -l & 
    注意

    脚本名应具有 0050. 前缀以确保在正确的时间运行。对于 Oracle Linux 和 Oracle Solaris 11,脚本名必须具有 .sh 扩展名,否则将无法调用脚本。

  5. 保存脚本并允许所有人执行该脚本。

    # chmod 775 0050.desktopresize.sh
  6. 启动新的会话,以便调用脚本。

13.1.3. 如何列出可用的 Sun Ray 服务器

  • 在客户端的 shell 窗口中,键入以下命令:

    % utswitch -l

随即显示当前服务器组中可用于客户端的 Sun Ray 服务器。

13.1.4. 如何列出可用的客户端

此过程介绍如何在 Sun Ray 服务器上列出所有可用的 Sun Ray Client 和 Oracle Virtual Desktop Client。

命令行步骤

  1. 在 Sun Ray 服务器上成为超级用户。

  2. 显示所有可用的客户端。

    # utdesktop -l

管理 GUI 步骤

  1. 启动管理 GUI。

  2. 单击 "Desktop Units"(桌面单元)选项卡。

    将显示可用客户端列表。您可以使用下拉菜单和 "Search"(搜索)字段显示您想要查看的特定客户端。

13.1.5. 如何显示 Sun Ray Client 信息

此过程说明如何查看有关注册桌面客户端的详细信息,包括其客户端 ID。如果您具有物理 Sun Ray Client 的访问权限,那么您可以按 Stop-V 查看客户端的当前信息。

命令行步骤

  1. 在 Sun Ray 服务器上成为超级用户。

  2. 显示有关客户端的信息。

    # utdesktop -p clientID
    

    其中 clientID 是客户端的短 ID(如第 13.1.1 节 “Oracle Virtual Desktop Client 和 Sun Ray Client 之间客户端 ID 的区别”中所述)。您可以使用 utdesktop -l 命令列出所有的桌面客户端及其客户端 ID。

管理 GUI 步骤

注意

为了简化搜索过程,可以使用管理 GUI 编辑桌面客户端属性。单击 DTU 标识符,再单击 "edit"(编辑)。然后可以提供位置或其他信息。

  1. 启动管理 GUI。

  2. 单击 "Desktop Units"(桌面单元)选项卡。

  3. 从 "Desktop Units"(桌面单元)选项卡中,选择要显示的信息:

    • 要显示有关特定桌面客户端的信息,请单击 DTU 标识符(MAC 地址)或在文本字段中输入搜索字符串。

    • 要显示有关一组桌面客户端的信息,请从下拉式菜单中选择一个选项("All Connected Desktop Units"(所有连接的桌面单元)、"Token Readers"(令牌读取器)或 "Multihead Groups"(多显示端组)),并且/或者在文本字段中输入搜索字符串以缩小搜索范围。

13.1.6. 如何配置客户端的位置和信息

此过程允许添加有关桌面客户端的位置和其他信息。这对于各种应用程序(例如位置识别功能)非常有用。

命令行步骤

  • 编辑 Sun Ray Client 的客户端位置和其他客户端信息:

    # utdesktop -e "client_id,location,[other_info]"
    
  • 编辑一批 Sun Ray Client 的客户端位置和其他客户端信息:

    # utdesktop -e -f filename
    

    filename 必须为逗号分隔格式 (CSV) 文件。

  • 列出所有 Sun Ray Client 的已配置客户端位置和其他客户端信息:

    # utdesktop -l

管理 GUI 步骤

  1. 单击 "Desktop Units"(桌面单元)选项卡。

  2. 选择一个客户端 ID 以显示其 "Desktop Unit Properties"(桌面单元属性)屏幕。

  3. 单击 "Edit"(编辑)以显示 "Edit Desktop Unit Properties"(编辑桌面单元属性)屏幕。

  4. 输入有关客户端的位置和其他信息。

  5. 单击 "Save"(保存)。

13.1.7. 音频输出故障排除(Oracle Solaris 10 和 Oracle Linux 5)

此部分提供运行 Oracle Solaris 10 或 Oracle Linux 5 会话的 Sun Ray Client 和 Oracle Virtual Desktop Client 的音频输出故障排除信息。

13.1.7.1. 应用程序使用的音频频率

桌面客户端可以使用应用程序需要的任何音频频率,这样您可以配置应用程序音频要求以帮助减少带宽和提高可伸缩性。例如,如果 VoIP 应用程序请求 8kHz 单声道,那么桌面客户端将仅传输 8kHz 单声道。

13.1.7.2. 跟踪音频会话

用户每次登录到桌面客户端时,脚本都会自动将 $AUDIODEV 环境变量分配给会话。系统会为每个会话分配一个 utaudio 进程。有关更多信息,请参阅 utaudioaudio 手册页。

13.1.7.3. 漫游办公期间的音频设备仿真

漫游办公期间,仿真音频设备会跟随用户至新会话。仿真设备名称包含在环境变量 $AUDIODEV 中。检查 $AUDIODEV 并将其输出定向到该设备是音频应用程序的职责。

仿真音频设备会被创建为 /tmp/SUNWut/dev/utaudio 目录中的设备节点。此目录树会在引导时重建。

注意

请勿删除 /tmp/SUNWut/dev/utaudio 目录。如果删除该目录,则具有 utaudio 会话的用户将无法使用自己的音频伪设备节点。

13.1.7.4. 问题:音频不工作

  • 使用 Oracle 键盘音频键(位于键盘的右上方)并检查音量和静音按钮。

  • 显示 Sun Ray 会话的音频设置:

    $ utsettings

    然后检验是否正确选择了音频输出,例如耳机或扬声器。

  • 确保在桌面会话中音量未设为静音。

  • 试一下插入到 Sun Ray Client 的音频输出或耳机端口的一组外部扬声器是否可用。如果可用,则 Sun Ray Client 的扬声器可能已损坏。

  • 要测试音频是否工作,请键入以下内容:

    $ cat audiofile > $AUDIODEV
    

    Oracle Solaris 在 /usr/share/audio/samples/au 中提供了合适的样例 PCM 编码音频文件,因此举例而言,此命令:

    $ cat /usr/share/audio/samples/au/gong.au > $AUDIODEV

    应能产生锣声。

    Linux 一般不提供 PCM 编码的音频文件。如果找不到适合的文件,则此命令可用来生成连续的声音:

    $ perl -e 'foreach(-8..8){push(@v,pack("n",4*$_))} while(1){print @v}' > $AUDIODEV

    如果 catperl 命令挂起,则可能需要退出当前试图播放音频的任何其他应用程序(例如浏览器)。

13.1.7.5. 问题:音频在 Firefox 中不工作

  • 检查 Flash 插件的当前发行版本,确保它是 9.0.r125 版或更高版本。要检查 Flash 插件的版本,请在浏览器中键入 about:plugins 作为 URL。

  • 尝试退出 Firefox 并在终端窗口中显式重新启动。

  • 如果所有其他尝试都失败,请退出 Firefox,转至 .mozilla 目录,并将 "firefox" 目录重命名为其他内容,例如 firefox.jan09。然后,重新启动 Firefox,查看音频在全新配置下是否工作。

    如果音频在全新配置下正常工作,则说明浏览器的先前配置存在错误。

13.1.7.6. 问题:音频在最新版本的 Firefox 或 Adobe Flash Player 中不工作 (Oracle Linux 5)

此问题有可能会发生,因为您使用的是最新版本的 Firefox 或 Adobe Flash Player,它仅提供 ALSA 声音支持。Oracle Linux 5 仅提供 OSS 声音支持。有关此问题的解决方法,请参见知识库文章 1464502.1

13.1.7.7. 问题:一个应用程序忽略了 $AUDIODEV 环境变量

某些应用程序无法使用 $AUDIODEV,并会无条件地使用特定音频设备节点,例如 /dev/audio/dev/dsp。为解决此不足,Sun Ray Software 提供可预先载入的共享库 libc_ut.so,该库可用于介入应用程序并将其活动重定向到 $AUDIODEV 所指定的设备中。要使此重定向生效:

  1. 导航至从中启动音频播放器的 shell 或包装。

  2. 设置播放器应用程序环境中的环境变量 LD_PRELOAD 以引用 libc_ut.so 介入库:

    $ LD_PRELOAD=libc_ut.so
    $ export LD_PRELOAD
  3. 重新启动应用程序。

13.1.7.8. xmms 播放器配置 (Oracle Linux)

要配置 xmms 播放器以播放 mp3 文件,请执行以下步骤:

  1. 更改 xmms 输出插件的首选项以添加更多的缓冲。

  2. 将缓冲区大小更改为 10000 ms,并将预缓冲百分比更改为 90。

    从命令行或菜单中运行 xmms 时,单击面板左侧的 O(字母 O)以显示 Preferences(首选项)菜单。

  3. Audio I/O Plugins(音频 I/O 插件)按钮下,选择 Output Plugin OSS Driver(输出插件 OSS 驱动程序)并单击 Configure(配置)

  4. 选择 "Buffering"(缓冲)。

    1. 默认缓冲区大小为 3000 ms。将该值更改为 10000 ms。

    2. 默认预缓冲百分比为 25。将该值更改为 90。

  5. 单击 OK(确定),然后单击 Preferences(首选项)面板上的 OK(确定)

  6. 退出 xmms 并重新启动。

13.1.8. 音频输出故障排除(Oracle Solaris 11 和 Oracle Linux 6)

此部分提供运行 Oracle Solaris 11 或 Oracle Linux 6 会话的 Sun Ray Client 和 Oracle Virtual Desktop Client 的音频输出故障排除信息。

PulseAudio 声音服务器用于在使用这些平台时为桌面客户端会话提供音频输出。系统针对每个会话创建一个在 PulseAudio 模式下运行的 utaudio 实例,以便从 PulseAudio 服务器提供音频。

在此环境中,应用程序不使用 $AUDIODEV 将音频发送到 PulseAudio 声音服务器。$AUDIODEV 仅适用于需要打开音频设备文件的情况,例如 /dev/audio/dev/dsp

13.1.8.1. 其他说明

这里提供了 Oracle Solaris 11 和 Oracle Linux 6 的音频输出的一些其他注意事项和限制。

  • 使用 Oracle Solaris 11 时,根据需要自动开放 Oracle Solaris 10 SADA 音频接口以实现兼容性。系统针对每个会话启动一个附加的特定于 SADA 的 utaudio 进程。有关更多详细信息,请参见第 13.1.7 节 “音频输出故障排除(Oracle Solaris 10 和 Oracle Linux 5)”

  • 对于 Oracle Solaris 11,Adobe Flash Player 是使用 $AUDIODEV 接口的 SADA 应用程序。如果多个 SADA 应用程序共享相同的 $AUDIODEV,则可能会发生设备锁定。要解决此问题,请针对每个 SADA 应用程序启动单独的 utaudio 命令。

  • 对于 Oracle Solaris 11 Trusted Extensions,设备分配管理器中应显示两种音频设备,一种对应于 SADA 接口设备,而另一种对应于 PulseAudio。确保同时分配两种音频设备。

13.1.8.2. 问题:音频输出不工作 (PulseAudio)

  • 使用 Oracle 键盘音频键检查音量和静音按钮。

  • 显示 Sun Ray 会话的音频设置:

    $ utsettings

    然后检验是否正确选择了音频输出,例如耳机或扬声器。

  • 确保在桌面会话中音量未设为静音。

  • 试一下插入到 Sun Ray Client 的音频输出或耳机端口的一组外部扬声器是否可用。如果可用,则 Sun Ray Client 的扬声器可能已损坏。

  • 确保 pulseaudio 进程正在运行。如果用户会话没有启动该进程,则删除 $HOME/.pulse 目录并退出会话,然后重新启动会话。

  • 确保存在通过 -p 选项运行的 utaudio 进程,以接受来自 PulseAudio 声音服务器的流。如果该进程不存在,则检查 /var/opt/SUNWut/log/messages 日志文件以查看是否有任何来自 pulseaudioutaudio 命令的错误消息。

  • 如果使用基于 GStreamer 的程序(例如 Totem 或 Rhythmbox)时音频不工作,则确保通过运行 gstreamer-properties 来将 GStreamer 配置为使用 PulseAudio。必须为音频输入和输出选择 PulseAudio 声音服务器设置。

  • 对于 Oracle Linux 6,确保将 ALSA 配置为使用 PulseAudio。要验证配置,请确保 /etc/asound.conf(服务器首选项)或 $HOME/.asoundrc 文件(用户首选项)包括以下内容:

    pcm.pulse {
         type pulse
    }
    ctl.pulse {
         type pulse
    }
    pcm.!default {
         type pulse
    }
    ctl.!default {
         type pulse
    }      

    如果两个文件都存在,则 $HOME/.asoundrc 文件优先。

  • 如果音频在 Oracle Linux 6 上的 OSS 应用程序中不工作,则确保将 $AUDIODEV 环境变量设置为 utaudio 的实例。对于 Oracle Linux 6,默认情况下不定义 $AUDIODEV 环境变量。下面是设置 $AUDIODEV 的示例:

    $ export AUDIODEV=`/opt/SUNWut/bin/utaudio`
  • Oracle Linux 6 上的 OSS 应用程序也可以通过 OSS 包装 (padsp) 使用 PulseAudio:

    $ padsp OSS_program