「ソフトウェア」カテゴリーアーカイブ

Raspberry Pi で xrdp

xrdp

xrdp は、Remote Desktop Protocol (RDP) のサーバソフトウェアです。Windowsのリモートデスクトップ接続で Raspberry Pi に接続できるようになります。(バックエンドで VNC サーバを使用するため、TigerVNC サーバが必要です。)
xrdp
xrdp

インストール方法:

apt-get を使って xrdp をインストールします。

$ sudo apt-get install xrdp

次に日本語キーボードに対応するため、キーマップファイルをインストールします。(0.6.0 より前のバージョンの場合)

$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
$ sudo service xrdp restart

 

使用方法:

Windows の「リモートデスクトップ接続」で、Raspberry Pi に接続します。

Remote Desktop

接続後、xrdp のダイアログが表示され、ドロップダウンボックスで、モジュールを選択します。(通常、「sesman-Xvnc」か「console」を使うことになるかと思います。)

sesman-Xvnc

WS000031

sesman-Xvnc モジュールを選択する場合は、VNC のユーザー名とパスワードを入力します。VNC サーバが起動していない場合には、TightVNC サーバが起動します。TightVNC サーバに新規で接続する場合は、リモートデスクトップのサイズは、クライアント側指定のサイズ (通常、クライアントのデスクトップサイズ) になります。

console

WS000033

console モジュールを選択する場合は、ポート 5900 番の VNC サーバに接続します。ポート 5900 番の VNC サーバのパスワードを入力します。(ポート 5900 番の VNC サーバが x11vnc の場合は、Raspberry Pi 本体のデスクトップを表示することができます。その場合、デスクトップのサイズは Raspberry Pi 本体のデスクトップのサイズとなります。)

vnc-any

WS000035

vnc-any を選択した場合は、ホスト名、ポート番号、パスワードを指定して VNC サーバに接続します。(xrdp が動いている Raspberry Pi 以外の別マシンを指定することも可能です。)

sesman-any

WS000038

sesman-any を選択した場合は、ホスト名、ユーザ名、パスワードを指定して VNC サーバに接続します。

rdp-any

WS000040

rdp-any を選択した場合は、ホスト名を指定して RDP サーバに接続します。

sesman-X11rdp

WS000045

備考:

xrdp の依存関係を示します。(バックエンドとして使用するため、TightVNC サーバを必要とします。)

$ apt-cache depends xrdp
xrdp
  依存: libc6
  依存: libpam0g
  依存: libssl1.0.0
  依存: libx11-6
  依存: libxfixes3
  依存: adduser
 |推奨: <vnc4server>
 |推奨: tightvncserver
  推奨: <vnc-server>
    tightvncserver

 

Raspberry Pi でスクリーンショット

はじめに

Raspberry Pi でスクリーンショット(画面のスナップショット)を撮るツールはいろいろありますが、raspi2png は、起動画面の他、OpenGL ES, OpenVG 等の GPU 描画画面のスクリーンショットも撮ることができます。もちろん X の画面も。

snapshot
起動画面のスクリーンショット
OpenVG のスクリーンショット
OpenVG のスクリーンショット

公式サイト

raspi2png

raspi2png

raspi2png の公式サイトです。ここから raspi2png のソースを取得することができます。

インストール方法

$ sudo apt-get install libpng12-dev
$ wget https://github.com/AndrewFromMelbourne/raspi2png/archive/master.zip
$ unzip master.zip
$ cd raspi2png-master
$ make
$ sudo cp raspi2png /usr/local/bin

 

  • raspi2png はソースからビルドする必要があります。
  • raspi2png は libpng12-dev に依存するため、予めインストールしておく必要があります。
  • make install には対応していないため、ビルドしてできた raspi2png は手動で /usr/local/bin にコピーします。

 

実行方法

Usage: raspi2png [--pngname name] [--width <width>] [--height <height>] [--compression <level>] [--delay <delay>] [--display <number>] [--stdout] [--help]

    --pngname,-p - name of png file to create (default is snapshot.png)
    --height,-h - image height (default is screen height)
    --width,-w - image width (default is screen width)
    --compression,-c - PNG compression level (0 - 9)
    --delay,-d - delay in seconds (default 0)
    --display,-D - Raspberry Pi display number (default 0)
    --stdout,-s - write file to stdout
    --help,-H - print this usage information

 

実行例

$ raspi2png

スクリーンショットを snapshot.png というファイル名でカレントディレクトに保存します。

$ raspi2png --pngname filename.png

–pngname オプションで保存するファイル名を指定します。

$ raspi2png --delay 5

–delay オプションでコマンド実行後、5 秒後にスクリーンショットを撮ります。

 

Raspberry Pi の CPU 温度

Raspberry Pi の CPU 温度は vcgencmd を使って取得できます。

$ sudo vcgencmd measure_temp
temp=42.2'C

または cat コマンドを使って取得することもできます。

$ cat /sys/class/thermal/thermal_zone0/temp
42236

ただし、こちらの場合は1000倍した値になっています。

$ echo "scale=3; `cat /sys/class/thermal/thermal_zone0/temp` / 1000" | bc
42.236

bc を使えば1000分の1に変換することも可能です。

 

なお、Raspberry Pi3 では、CPUのコア温度が 80度を超えると画面右上に Yellow square という黄色四角が表示されます。85度を越えると600MHzに強制的にクロックを落とします。これを避けるにはヒートシンクを付ける等の熱対策が必要になります。

Raspberry Pi のサンプル

サンプル

Raspberry Pi のサンプル プログラムのソースコードは、/opt/vc/src/hello_pi/ に入っています。

これらのサンプルは、VideoCore を使ったもので、コンソールで動作します。(X11 アプリケーションではありません。)

ビルド方法

# cd /opt/vc/src/hello_pi
# sh rebuild.sh

 

サンプルの中からいくつか紹介します。

 

hello_triangle

OpenGL ES 1.1 のサンプル。

実行方法

# cd /opt/vc/src/hello_pi/hello_triangle
# ./hello_triangle.bin

 

 

hello_triangle2

triange2

OpenGL ES 2.0 のマンデルブローのサンプル。

実行方法

# cd /opt/vc/src/hello_pi/hello_triangle2
# ./hello_triangle2.bin

hello_teapot

OpenGL ES 1.1 のサンプル。

実行方法

# cd /opt/vc/src/hello_pi/hello_teapot
# ./hello_teapot.bin

 

hello_videocube

OpenGL ES 1.1 のサンプル。

実行方法

# cd /opt/vc/src/hello_pi/hello_videocube
# ./hello_videocube.bin

 

hello_tiger

OpenVG のサンプルです。

実行方法

# cd /opt/vc/src/hello_pi/hello_tiger
# ./hello_tiger.bin