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 であり、ここでの indexa から始まる値がしだいに大きくなるアルファベット文字です。製造元名が使用できない場合は、デバイスリンクの名前にベンダーおよび製品 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. デバイスノード

注記

Oracle Solaris または Oracle Linux セッションでは、生成されたデバイスノードを介して USB-シリアル変換アダプタにはアクセスできません。Windows セッションで USB リダイレクションを使用して、USB-シリアル変換アダプタで接続されたシリアルデバイスにアクセスする必要があります。

devices ディレクトリには、接続されている USB デバイス上のシリアルポートまたはプリンタポートごとに、デバイスノードが作成されます。デバイスノードは、デバイスが接続しているハブに対応するハブディレクトリ内に作成されます。ノードは次のように名前が付けられます。

manufacturer_name,model_name@upstream_hub_port

その USB デバイスに同じポートが複数ある (たとえば、シリアルポートが 2 つある) 場合、名前の後ろに「:n」が付きます (ここで n は、1 から始まる索引番号です)。

次の例は、代表的なデバイスノードです。

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

命名規則の定義を次に示します。

用語

定義

physical-topology

physical-topology (物理トポロジ) は、hub@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 デバイスの動作は、シリアルデバイスのみに適用されます。その他のデバイスクラスでは、所有権およびデバイスリース時間の意味が異なります。

クライアント上のアクティブなセッションを変更すると、そのデバイスノードの所有権は、新しいセッションに関連付けられているユーザーに移ります。ユーザーがクライアントでスマートカードを出し入れしたり、セッションにログインしたりすると、セッションが変更されます。

フェイルオーバー環境では、utselect コマンドまたは utswitch コマンドでセッションを変更できます。セッションの変更により、非 root ユーザーが現在オープンしているすべてのデバイスが、15 秒後にクローズされます。影響を受けるデバイスとの入出力はすべてエラーとなります。シリアルデバイスノードでは、元のセッションを 15 秒以内に復元させれば、所有権が破棄されることはなく、入出力も中断されずに継続します。

通常の印刷など、スーパーユーザーが現在オープンしているデバイスは、セッション変更の影響を受けません。

15.4.5. シリアルデバイスの設定

クライアントでシリアル接続されたデバイスを使用するには、それらを内蔵シリアルポートに接続するか、USB-シリアル変換アダプタを介して接続する必要があります。Windows セッションで USB リダイレクションを使用して、USB-シリアル変換アダプタで接続されたシリアルデバイスにアクセスする必要があります。

シリアルポートデバイスノードへのシンボリックリンクは、$UTDEVROOT/dev/term にあります。組み込みポートには「a」または「b」の名前が付いています。

シリアルポートはホットデスクの間は所有できなくなるので、スマートカードを取り出すかクライアントをリセットする前に、シリアルポートの動作がすべて停止していることを確認してください。

注記

Sun Ray 170 上のポート A 以外のシリアルポートはすべて、フルハンドシェークと標準の UNIX セマンティクスをサポートしています。Sun Ray 170 のポート A にはハードウェアハンドシェークのピンがないので、ハードウェアハンドシェークが必要な場合には使用できません。

15.4.6. USB プリンタの設定

このセクションでは、Sun Ray クライアントに接続されている PostScript プリンタ、および接続されている非 PostScript プリンタをセットアップする方法の手順について説明します。Windows Connector を使用している場合に Windows から印刷する方法の詳細は、17章Windows Connectorを参照してください。

15.4.6.1. 接続されている PostScript プリンタを設定する方法 (Oracle Solaris)

Sun Ray Software は Sun Ray クライアントの USB ポートに直接接続されている PostScript プリンタを使用できます。非 PostScript プリンタのサポートについては、「接続されている非 PostScript プリンタの設定方法」を参照してください。

注記

Sun Ray Software でのプリンタの命名規則は、Oracle Solaris オペレーティング環境での規則とは異なります。

注記

各印刷要求に対して、lp サブシステムはスーパーユーザーとしてデバイスノードをオープンするので、印刷ジョブはホットデスク処理の影響を受けません。

Sun Ray クライアントに直接またはアダプタ経由で接続されたプリンタの印刷待ち行列の開始は、Oracle Solaris での印刷待ち行列の開始プロセスと同じです。

  1. プリンタが接続されている Sun Ray クライアントで、スーパーユーザー (root) として新しいセッションにログインします。

  2. クライアントの MAC アドレスを決定するため、キーボード右上端にある電源キーの左側の 3 つのオーディオオプションキーを押します。

    接続アイコンの下に表示される英数文字列が MAC アドレスです。

  3. Sun Ray クライアントの位置を検索するには、次のように入力します。

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

    使用している特定の Sun Ray クライアントの拡張 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. 「了解」をクリックしてリポジトリ用のファイルを選択します。

    3. 「プリンタ」 > 「新規接続プリンタ」に移動します。

    4. 次の情報を入力します。

      • プリンタ名: printername

      • 備考欄 (任意)

      • プリンタのポート

      • プリンタのメーカー

      • プリンタのモデル

        「その他」を選択してプリンタポートのパス名を入力します。プリンタポートを検索するには、手順 4 を参照してください。

  7. プリンタが正しく設定されたことを確認します。

    # lpstat -d printername
    

15.4.6.2. 接続されている PostScript プリンタを設定する方法 (Oracle Linux)

Sun Ray Software は Sun Ray クライアントの USB ポートに直接接続されている PostScript プリンタを使用できます。非 PostScript プリンタのサポートについては、「接続されている非 PostScript プリンタの設定方法」を参照してください。

注記

各印刷要求に対して、lp サブシステムはスーパーユーザーとしてデバイスノードをオープンするので、印刷ジョブはホットデスク処理の影響を受けません。

次の汎用的な命令は、オペレーティングシステムの実装によって少し異なる場合がありますが、管理者が基本的な印刷サービスを設定できるために十分な情報を提供しています。

  1. プリンタが接続されている Sun Ray クライアントで、スーパーユーザー (root) として新しいセッションにログインします。

  2. クライアントの MAC アドレスを決定するため、キーボード右上端にある電源キーの左側の 3 つのオーディオオプションキーを押します。

    接続アイコンの下に表示される英数文字列が MAC アドレスです。

  3. Sun Ray クライアントを検索します。

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

    使用している特定の Sun Ray クライアントの拡張 MAC アドレスへのパスが表示されます。

  4. プリンタのポートを検索します。

    # cd dev/printers
    # pwd
    /tmp/SUNWut/units/IEEE802.MACID/dev/printers
    # ls
    printer-node-name
    
  5. このディレクトリで、プリンタノードを検索します。

  6. Oracle Linux 管理ツールを使用してプリンタを設定します。

    「その他」を選択して、手順 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 を使用しないプリンタは、サードパーティーのソフトウェアでサポートされます。低価格のインクジェットプリンタの場合、次のようなサードパーティーのソフトウェアが必要です。

価格およびサポートされているプリンタの正確なモデルについては、各ベンダーにご確認ください。