FreeRDP - プリンターのリダイレクト

Windows7 を稼働させるにはスペック不足の PC を再利用するため、 水銀室 Linuxで作るUSBブートのXenAppクライアント を参考にして RDP クライアントを作ろうとしている。 (リンク先の記事では XenApp だが、ここでは Windows 2012 の Remote Desktop Services に 接続することを考える)

要件

  • サーバー: Windows 2012
  • クライアント: Ubuntu (今回は 14.04 Server)
  • プリンターのリダイレクトができること
  • リダイレクトしたプリンターをデフォルトプリンターとする

最初は、remmina を使用したが、プリンターのリダイレクトが Windows 2012 への接続ではできなかった。 (Windows 2008 の場合は OK だったが...) そのため、FreeRDP を試してみたが、Ubuntu の apt-get でインストールされるバイナリー(1.0系)では 同じくリダイレクトは行えなかった。 そこで、開発元のページより、より新しいバージョンのソースコードをダウンロードして ビルドすることにした。

ビルド

cmake

master ブランチ の場合

cmake -DCMAKE_BUILD_TYPE=Debug -DCHANNEL_PRINTER=ON -DWITH_SSE2=ON -DMONOLITHIC_BUILD=ON -DBUILD_SHARED_LIBS=OFF -DWITH_CUPS=ON .

stable-1.1 ブランチの場合

cmake -DCMAKE_BUILD_TYPE=Debug -DCHANNEL_PRINTER=ON -DWITH_SSE2=ON -DMONOLITHIC_BUILD=ON -DBUILD_SHARED_LIBS=OFF -DWITH_CUPS=ON .

実行

./xfreerdp -sec-nla /v:xx.xx.xx.xx /kbd:Japanese +fonts +menu-anims +clipboard +window-drag +aero +decorations /printer

とりあえずいろいろ試して上記で Windows 2012 でもプリンターのリダイレクトができた。 何故 -DMONOLITHIC_BUILD=ON -DBUILD_SHARED_LIBS=OFF が必要なのかはわかっていない。 (共有ライブラリを使用するようビルドすると、実行時に printer-client.so が無い旨のエラーが出る)