これまでに Raspberry Pi は、色々な Model が発売されました。私も色々持っているのですが、よくどの Raspbery Pi がどの Model だったか分からなくなることがあります。そんな時にコマンドでModel 名が確認できると便利です。
「Raspbian」タグアーカイブ
Raspberry Pi の lscpu
lscpu コマンド
lscpu コマンドで CPU 情報を表示することができます。
Raspberry Pi での lscpu コマンドの実行結果を以下に示します。
Raspberry Pi2 model B+
Architecture: armv7l Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 Model name: ARMv7 Processor rev 5 (v7l) CPU max MHz: 900.0000 CPU min MHz: 600.0000
Raspberry Pi model B+
Architecture: armv6l Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1
Raspberry Pi 公式キーボード
Raspberry Pi のファームウェアのアップデート
Raspberry Pi の最新ファームウェアは、Raspbian から rpi-update コマンドでアップデートすることができます。
ただし、最新版にアップデートしたい場合のみ使用してください。rpi-update を使わなくても通常の Raspbian のパッケージ更新で安定版にアップデートできます。
公式には rpi-update で最新のファームウェアのアップデートは推奨されていません。最新版が必ずしも良いというわけではないのでご注意ください。(安定版じゃないから)
Raspberry Pi のインストール済みパッケージ一覧
Raspberry Pi の標準的な OS である Raspbian は Debian がベースになっています。
なので、Debian 同様に Raspberry Pi (Raspbian) にインストール済みのパッケージの一覧は dpkg コマンドで調べることができます。
$ dpkg -l
複数の Raspberry Pi を管理していて、全ての Raspberry Pi にインストールしているパッケージを揃えたいといった場合には役立つことでしょう。
あるは、OS のクリーンインストールを行う前にリストを作成しておいて、クリーンインストール後にリストにあるパッケージをインストールすることで前の環境に近づけるのにも使えます。
私は Wheezy から Jessie にバージョンアップする際にクリーンインストールを行ったので、Wheezy 環境でインストールしたパッケージのリストを取っておいて、Jessie 環境にリストのパッケージをインストールし直しました。もちろん、ユーザファイルや設定ファイル等は別にバックアップが必要ですのでその点はご注意ください。
Raspberry Pi の Debian ディストリビューションのバージョン
Raspberry Pi の標準 OS である Raspbian は Debian を元に作られています。その元になっている Debian のディストリビューションのバージョンは /etc/debian_versionというファイルに書かれています。
Jessie の場合:
$ cat /etc/debian_version 8.0
Wheezy の場合:
$ cat /etc/debian_version 7.8
lsb_release コマンドに -a オプションを付けて実行するとより詳しい情報が表示されます。
インストール方法:
$ sudo apt-get install lsb-release
Jessie の場合:
$ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie
Wheezy の場合:
$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 7.8 (wheezy) Release: 7.8 Codename: wheezy
Raspberry Pi で rdesktop
rdesktop
rdesktop は、リモートデスクトップクライアントソフトウェアです。Raspberry Pi から Windows にリモートデスクトップ接続することができます。(リモートデスクトップ接続可能な Windows に限ります。)
この例では、Windows Server 2012 の Hyper-V の仮想マシンで動かしている Windows 8.1 Enterprise に Raspberry Pi から接続したものです。(RemoteFX 環境)
インストール方法:
apt-get で rdesktop をインストールします。
$ sudo apt-get install rdesktop
使用方法:
$ rdesktop [options] server
主なオプション:
以下に主なオプションを示します。その他のオプションはオンラインマニュアルをご覧ください。
-u <USER>
ユーザ名の指定
-d <DOMAIN>
ドメインの指定
-p <PASSWD>
パスワードの指定
-g <GEOMETORY>
デスクトップサイズの指定。<width>x<height> または “xx%” で指定
-f
デスクトップサイズをフルスクリーンで指定
備考:
rdesktop がサポートする RDP のバージョンは、RDP 5 (デフォルト) と RDP 4 です。(ですが、クライアント側だからか、RemoteFX の GPU アクセラレーションは有効になっているようです。)
Raspberry Pi で atlantis
atlantis を Raspberry Pi に移植しました。
atlantis は、OpenGL の初期の頃のデモアプリケーションで、母クジラ、子クジラ、イルカ、サメ4匹が泳ぎまわります。
オリジナルのソースコードは、以下からダウンロードできます。(GLUT のソースにも含まれます。)
https://www.opengl.org/archives/resources/code/samples/glut_examples/demos/demos.html
ソースのコピーライトを見ると 1993, 1994 となっているので、もう 20 年以上前ですね。
Windows 用の実行ファイルも含まれていますが、Cosmo 3D (SGI の Windows 用 OpenGL) の DLL が必要なので、動かせる環境はもうないでしょうね。そのため、Windows でも自前でビルドする必要がありそうです。
また、X のスクリーンセーバの xscreensaver-gl-extra にも改良版の atlantis が含まれています。たぶん、O2 が発売された頃にプロジェクションマッピングに対応したものがベースとなっていると思います。
オリジナルは GLUT + OpenGL ですが、Raspberry Pi で動かすために、SDL2 + OpenGL ES 1.1 に書き換えました。Raspberry Pi2 なら、そこそこ動きます。
よく見るとクジラのポリゴンが裏返っているようです。
ということで、クジラのポリゴンをキー入力で裏返す機能も付けました。
以下は、クジラのポリゴンを裏返して正しい表示にしたものです。
Raspberry Pi で TightVNC サーバ
TightVNC サーバ
Raspberry Pi 本体のデスクトップ(Xサーバ)とは別にクライアント用のデスクトップ(Xサーバ)を使用することができる VNC サーバです。
Raspberry Pi 本体のデスクトップ(Xサーバ)は通常ディスプレイ番号0番で、HDMI 等で接続したディスプレイに表示されるデスクトップを指します。
TightVNC の VNC サーバは、それとは別のデスクトップ(ディスプレイ番号が異なる)でリモートで表示/操作することができます。VNCサーバを複数起動することで、異なるデスクトップを複数作成することができます。(それらはそれぞれディスプレイ番号が異なります。)また、それぞれのデスクトップのユーザは異なっても構いません。
※ 実は TightVNC には x0vncserver という本体のデスクトップをリモート操作するための VNC サーバもありますが、Raspberry Pi には apt-get でインストールすることはできません。(Raspberry Pi 用の x0vncserver をソースからビルドできるかどうかは不明です)
インストール方法:
apt-get で tightvncserver をインストールします。(必須ではありませんが、tightvncserver で使用する X11/75dpi, 100dpi フォントもインストールします。)
$ sudo apt-get install tightvncserver xfonts-75dpi xfonts-100dpi
使用方法:
$ vncserver You will require a password to access your desktops. Password:******** Verify:******** Would you like to enter a view-only password (y/n)? n New 'X' desktop is raspberrypi:1
パスワードの設定が行われた後、(vncserver を起動したユーザで)新しい X サーバが起動します。
‘raspberrypi:1′ の部分は、’VNC サーバのホスト名:ディスプレイ番号’ のことであり、また、5900 + ディスプレイ番号のポートを使用することを示しています。
VNC クライアントから 5900 + ディスプレイ番号 のポートに接続すると、ユーザパスワードを求められるので、先のパスワードを入力することでリモートデスクトップを開くことができます。
VNC クライアントとしては、Windows なら RealVNC Viewer(32bit版, 64bit版)、Mac なら画面共有、iPhone なら VNC Viewer、Android なら RealViewer、Raspberry Pi なら TightVNC viewer 等があります。
例えば Windows で RealVNC (VNC Viewer) を使う場合、Raspberry Pi で vncserver を起動した状態で、Windows から VNC クライアントを起動します。
「VNC Server」に ’Raspberry Pi のホスト名:ディスプレイ番号’ を指定します。ディスプレイ番号が1(ポート番号が 5901) の場合は、’ホスト名:1′ と指定します。(ホスト名は IPアドレスでも可)
VNCサーバが暗号化に対応していないという警告がでます。
指定した VNC サーバのパスワードを入力します。
Raspberry Pi のデスクトップが開きます。
Usage:
vncserver のコマンドライン引数は以下の通りです。
Usage: vncserver [<OPTIONS>] [:<DISPLAY#>] vncserver -kill :<DISPLAY#> <OPTIONS> are Xtightvnc options, or: -name <DESKTOP-NAME> -depth <DEPTH> -geometry <WIDTH>x<HEIGHT> -httpport number -basehttpport number -alwaysshared -nevershared -pixelformat rgb<NNN> -pixelformat bgr<NNN>
vncserver の主なオプション:
-kill :<DISPLAY#>
例) -kill :1
- ディスプレイ番号を指定して vncserver を終了します。(この例では、ディスプレイ番号1の vncserver を終了)
-geometry <WIDTH>x<HEIGHT>
例) -geometry 1280x800
- デスクトップサイズを指定します。(この例では 1280×800)
-depth <DEPTH>
例) -depth 24
- デスクトップの色深度を指定します。(この例では 24bit Color)
VNC サーバの終了:
-kill オプションを使用して vncserver を終了します。
例) $ vncserver -kill :1
- vncserver をディスプレイ番号を指定して終了します。(この例では、ディスプレイ番号1 の vncserver を終了)
パスワードの変更:
パスワードを変更する場合は、変更したユーザにログインした上で、vncpasswd コマンドで変更します。
$ vncpasswd Using password file /root/.vnc/passwd Password:******** Verify:******** Would you like to enter a view-only password (y/n)? n
自動起動設定:
vncserver を手動でいちいち立ち上げるのが面倒という場合には、Raspberry Pi の起動時に自動で vncserver を立ち上げるようにも設定できます。
ユーザ root で 1280×800 24bit Color の vncserver を自動起動するスクリプトです。(必要に応じて vncserver の引数やユーザを変更しましょう。)
#! /bin/sh # /etc/init.d/vncboot ### BEGIN INIT INFO # Provides: vncboot # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start VNC Server at boot time # Description: Start VNC Server at boot time. ### END INIT INFO USER=root HOME=/root export USER HOME case "$1" in start) /usr/bin/vncserver :1 -geometry 1280x800 -depth 24 echo "Starting VNC Server." ;; stop) /usr/bin/vncserver -kill :1 echo "VNC Server Has been stoped." ;; *) echo "Usage: /etc/init.d/vncboot {start|stop}" exit 1 ;; esac exit 0
$ cd /etc/init.d $ sudo chown root.root vncboot $ sudo chmod +x vncboot $ sudo update-rc.d vncboot defaults
これで、Raspberry Pi の起動時に vncserver が自動起動します。
$ cd /etc/init.d $ sudo update-rc.d vncboot remove
参考:
TightVNC の X サーバの xdpyinfo の出力結果です。(この例では、デスクトップは 1024×768 24bitColor です。)
$ xdpyinfo name of display: :1.0 version number: 11.0 vendor string: AT&T Laboratories Cambridge vendor release number: 3332 maximum request size: 4194300 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 2 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 keycode range: minimum 8, maximum 255 focus: window 0x2c00007, revert to Parent number of extensions: 7 BIG-REQUESTS MIT-SHM MIT-SUNDRY-NONSTANDARD SHAPE SYNC XC-MISC XTEST default screen number: 0 number of screens: 1 screen #0: dimensions: 1024x768 pixels (347x260 millimeters) resolution: 75x75 dots per inch depths (1): 24 root window id: 0x25 depth of root window: 24 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x21 default number of colormap cells: 256 preallocated pixels: black 0, white 16777215 options: backing-store YES, save-unders YES largest cursor: 1024x768 current input event mask: 0x7a003c ButtonPressMask ButtonReleaseMask EnterWindowMask LeaveWindowMask StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask FocusChangeMask PropertyChangeMask number of visuals: 1 default visual id: 0x22 visual: visual id: 0x22 class: TrueColor depth: 24 planes available colormap entries: 256 per subfield red, green, blue masks: 0xff0000, 0xff00, 0xff significant bits in color specification: 8 bits
Raspberry Pi で x11vnc
x11vnc
インストール方法:
x11vnc は、apt-get でインストールできます。
$ sudo apt-get install x11vnc
次に x11vnc に -storepasswd を指定して起動し、そのユーザのパスワードを設定して VNC サーバのパスワードを保存します。
$ x11vnc -storepasswd
自動起動の設定:
startx 実行時 (X サーバ起動時) に自動的に x11vnc を起動するには、以下の内容で ~/.config/autostart/x11vnc.desktop ファイルを作成する必要があります。(Raspbian 起動時に X サーバが自動起動するようになっている場合は、更に VNC サーバも自動起動します。)
[Desktop Entry] Encoding=UTF-8 Type=Application Name=X11VNC Comment=X11VNC Exec=x11vnc -usepw -forever StartupNortify=false Terminal=false Hidden=false
注意:
VNC サーバのパスワードと x11vnc.desktop ファイルは、X サーバを起動するユーザに対して設定する必要があります。
使用方法:
自動起動の設定を行っている場合は、デフォルトの X サーバ(通常、ディスプレイ番号0番)が起動している状態で、ポート 5900 に VNC クライアントで接続します。
接続時のパスワードは、先で保存したパスワードになります。
クライアント側には、Raspberry Pi 本体のデスクトップが表示されます。(デスクトップのサイズはもちろん本体のデスクトップのサイズとなります。)
なお、x11vnc のデスクトップのサイズを変更するには、本体のデスクトップのサイズごと変更する必要があります。(/boot/config.txt の framebuffer_width, framebuffer_height で指定することが可能です。)
デフォルトのXサーバは GLX 対応(ただしソフトウェアレンダラ)なので、別マシンの OpenGL アプリケーションをリモート表示することも可能です。
参考:
x11vnc の X サーバ(デフォルトの X サーバ)の xdpyinfo 出力結果です。(この例では、1280×800 サイズ)
$ xdpyinfo name of display: :0.0 version number: 11.0 vendor string: The X.Org Foundation vendor release number: 11204000 X.Org version: 1.12.4 maximum request size: 16777212 bytes motion buffer size: 256 bitmap unit, bit order, padding: 32, LSBFirst, 32 image byte order: LSBFirst number of supported pixmap formats: 7 supported pixmap formats: depth 1, bits_per_pixel 1, scanline_pad 32 depth 4, bits_per_pixel 8, scanline_pad 32 depth 8, bits_per_pixel 8, scanline_pad 32 depth 15, bits_per_pixel 16, scanline_pad 32 depth 16, bits_per_pixel 16, scanline_pad 32 depth 24, bits_per_pixel 32, scanline_pad 32 depth 32, bits_per_pixel 32, scanline_pad 32 keycode range: minimum 8, maximum 255 focus: window 0x2200005, revert to Parent number of extensions: 27 BIG-REQUESTS Composite DAMAGE DOUBLE-BUFFER DPMS DRI2 GLX Generic Event Extension MIT-SCREEN-SAVER MIT-SHM RANDR RECORD RENDER SECURITY SGI-GLX SHAPE SYNC X-Resource XC-MISC XFIXES XFree86-DGA XFree86-VidModeExtension XINERAMA XInputExtension XKEYBOARD XTEST XVideo default screen number: 0 number of screens: 1 screen #0: dimensions: 1280x800 pixels (339x212 millimeters) resolution: 96x96 dots per inch depths (7): 16, 1, 4, 8, 15, 24, 32 root window id: 0xe2 depth of root window: 16 planes number of colormaps: minimum 1, maximum 1 default colormap: 0x20 default number of colormap cells: 64 preallocated pixels: black 0, white 65535 options: backing-store NO, save-unders NO largest cursor: 1280x800 current input event mask: 0x7a003c ButtonPressMask ButtonReleaseMask EnterWindowMask LeaveWindowMask StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask FocusChangeMask PropertyChangeMask number of visuals: 33 default visual id: 0x21 visual: visual id: 0x21 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 8 bits visual: visual id: 0xc2 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc3 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc4 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc5 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc6 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc7 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc8 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xc9 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xca class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xcb class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xcc class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xcd class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xce class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xcf class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd0 class: TrueColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd1 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd2 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd3 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd4 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd5 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd6 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd7 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd8 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xd9 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xda class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xdb class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xdc class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xdd class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xde class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xdf class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0xe0 class: DirectColor depth: 16 planes available colormap entries: 64 per subfield red, green, blue masks: 0xf800, 0x7e0, 0x1f significant bits in color specification: 6 bits visual: visual id: 0x41 class: TrueColor depth: 32 planes available colormap entries: 256 per subfield red, green, blue masks: 0xff0000, 0xff00, 0xff significant bits in color specification: 8 bits
Raspberry Pi で VNC
はじめに
VNC(Virtual Network Computing) は、サーバ/クライアントモデルのシステムで、サーバ側のデスクトップをクライアント側で表示/操作することができるリモートデスクトップシステムです。
例えば、Raspberry Pi で VNC サーバを動かし、Windows や Mac、Linux、スマホ等で VNC クライアントを使うことで、 Raspberry Pi のデスクトップを表示/操作することができます。(MacOS X の場合、画面共有は vnc プロトコルを使用しますので、特別な VNC クライアントを使わなくても Raspberry Pi の VNC サーバに接続することができます。)
VNC は音声をサポートしていないため、サーバ側のサウンドをクライアント側で聞くことはできません。
VNC サーバ
Raspberry Pi で多く利用されている VNC サーバは次の2種類です。
- TightVNC サーバ
- x11vnc
TightVNC サーバ
TightVNC サーバは、Raspberry Pi 本体のデスクトップとは別にクライアント用のデスクトップを使用することができる VNC サーバです。
Raspberry Pi 本体のデスクトップとは別の X サーバを使用し、解像度も本体側のデスクトップに影響されません。
x11vnc
x11vnc は、Raspberry Pi 本体のデスクトップをそのままリモートで操作することができる VNC サーバです。
Raspberry Pi 本体のデスクトップをそのままリモートで操作するため、リモートデスクトップのサイズは Raspberry Pi 本体のデスクトップのサイズと同じになります。
Dispmanx VNC Server
特殊な VNC サーバで、Raspberry Pi 本体コンソールをリモートで操作することができる VNC サーバです。
/dev/fb0 の画面だけではなく、Raspberry Pi 本体コンソールに表示される GPU 画面(OpenGL ES, OpenVG アプリケーション)も VNC クライアント側に表示することができます。もちろん、Raspberry Pi 本体のデスクトップの解像度と同じになります。
VNC クライアント
VNC サーバに接続して、接続先のデスクトップを表示/操作するためのソフトウェアです。
Windows や Mac、Linux 等で VNC サーバを動かし、Raspberry Pi で VNC クライアントを動かせば、Raspberry Pi で Windows や Mac、Linux 等の画面表示/操作ができます。
以下は、Raspberry Pi で動く VNC クライアントソフトウェアです。
TightVNC viewer
TightVNC viewer は、一般的な VNC クライアントソフトウェアです。TighgVNC Server に接続する場合には、独自の転送方式の Tight Encoding が使用できます。
krdc
krdc は、Raspberry Pi から Windows や Mac、Linux 等の VNC サーバに接続して、画面表示/操作が可能となる VNC クライアントソフトウェアです。
krdc は、vnc プロトコル以外にも rdp プロトコルに対応していています。そのため、Windows のリモートデスクトップクライアントソフトウェアでもあります。
この画面は、Raspberry Pi の krdc で自身の VNC サーバに接続したものです。(ただし、VNC サーバは krdc を実行したデスクトップとは異なるデスクトップを使用しています。)
Raspberry Pi をWi-Fi子機で無線化 -その2-
Raspberry Pi をWi-Fi子機で無線化 -その1- では、WRH-300BK2-Sを紹介しましたが、それより上位の WRH-583BK2-S を購入しました。
WRH-300BK2-Sと比べると、5GHz 11ac 433Mbps に対応しているのと、中継モードに対応しているのが大きな違いでしょうか。(Raspberry Pi で使うには WRH-300BK2-S で十分でしょう。他目的のためにこちらを購入しました。)有線LANポートが付いていることもあって、サイズは倍ほど大きいですし、価格も随分高いですが。
WRH-584xx2-S シリーズは、BK(ブラック)、BU(ブルー )、GN(グリーン)、RD(レッド)、WH(ホワイト)、YL(イエロー)の 6色発売されていますが、私は無難に BK にしました。
WRH-583BK2-S は、付属の USB ケーブルを PC 等の USB ポートに繋いで電源を供給します。
AC アダプタが付属したバージョンの WRH-583BK2(ブラック), WRH-483WH2(ホワイト) も発売されています。
WRH-583BK2-S の子機モードの設定は Mac に繋いで行いました。ただし、Raspberry Pi からでも可能ですので、Mac の部分を Raspberry Pi に置き換えても当てはまります。もちろん Windows でも同じです。(ただし、電源は Raspberry Pi から取らない方が安全です。)
- WRH-583BK2-S の有線LANポートに LAN ケーブルを繋ぎ、もう一方を Mac の LAN ポートに繋ぎます。
- WRH-583BK2-S の USB ポートに付属の USB ケーブルを繋ぎ、もう一方を Mac の USB ポートに繋ぎます。(こちらは電源用)
- 初期状態ではルーターモードで、IP アドレスは 192.168.2.1 になっています。DHCP サーバも動いているため、Mac には 192.168.2.XXX が割り当てられます。
- 192.168.2.1 を Web ブラウザで開き、管理者のユーザ名とパスワードでログインします。
- 「設定メニュー」「動作モード設定」で、「子機モード」を選択して、「適応」ボタンを押します。すると、モード変更のため再起動します。再起動には 70 秒ほどかかります。
- 再起動後、子機モードになっており、IP アドレスは 192.168.2.251 に変わっているので、192.168.2.251 を Web ブラウザで開き、ログインします。
- Mac 側の IP アドレスは、ルーターモードで起動した時に割り当てられた IP アドレスのままなら、子機モードになった WRH-583BK2-S にアクセスできるはずです。何らかの理由で Mac 側の IP アドレスが変わってしまってアクセスできない場合には、手動で固定IPアドレス(192.168.2.XXX)を設定することでアクセスできるようになるでしょう。(子機モードの場合は DHCP サーバは動いていないため)
- 続いて「無線設定」で無線LANのアクセスポイントの情報を入力して「適用」ボタンを押します。しばらく待つと「親機と無線接続できています。」と表示されるはずです。親機と接続できない場合は、「無線設定」で設定した内容を再確認しましょう。
- 自分のネットワークが 192.168.2.XXX でない場合は、「LAN設定」「LAN設定」で WRH-583BK2-S の IP アドレスを変更できるので、ここを自分のネットワークで空いている IP アドレスに変更します。「適用」ボタンを押して再起動するのを待ちましょう。
- LAN 内に DHCP サーバがあるなら、WRH-583BK2-S を経由して Mac に IP アドレスを割り当てられるので、先にMac に固定IPを設定した場合は、DHCP サーバから取得するように変更します。LAN 内に DHCP サーバがない場合は、自分のネットワークで空いている IP アドレスを Mac に設定します。
- WRH-583BK2-S の電源を一度入れ直す必要があるかもしれませんが、Mac はこの状態で WRH-583BK2-S を経由して LAN にアクセスできるようになっているはずです。(更にルーターを経由して、インターネットにもアクセスできるはずです。)
- もう一度、Web ブラウザで WRH-583BK2-S に設定した IP アドレスを開き、管理者でログインします。
- 「システム設定」「パスワード設定」で管理者のユーザ名とパスワードを変更しておきましょう。
子機モードの設定ができれば、WRH-583BK2-S を Raspberry Pi に LAN ケーブルで繋ぎ変えるだけで、Raspberry Pi が無線化されます。(Raspberry Pi が有線LAN接続で、ネットワークに接続できていた場合)
なお、WRH-583BK2-S の設定の詳細は User’s Manual をご覧ください。
関連ページ:
Raspberry Pi の仮想キーボード
はじめに
matchbox-keyboard は、Raspberry Pi で使用可能な仮想キーボードのひとつです。(X用の仮想キーボードなのでコンソールでは使えません。)
タッチパネルで文字入力するには必須ですね。
VNCやリモートデスクトップで、入力できない記号があったりしますが、そのような場合に仮想キーボードを補助的に使うことができます。あれば便利。
インストール方法
$ sudo apt-get install matchbox-keyboard
実行方法
メニューから起動することができます。
コマンドラインからの実行方法は次の通り。
$ matchbox-keyboard &
キー配列
標準, us, ru, fi, dvorak, extended, numpad の7種類用意されています。
extended
拡張101英語キーボードです。(ちょっと違うけど)
標準状態
Shift ロック状態
キー配列変更
キー配列は設定ファイル(xml) で変更可能です。
extended-jis
せっかくなので、JISキーボード風のキー配列の設定ファイルを作ってみました。
https://raspberrypi.akaneiro.jp/src/matchbox/matchbox-keyboard-extended-jis.tar.gz
インストール方法
$ wget https://raspberrypi.akaneiro.jp/src/matchbox/matchbox-keyboard-extended-jis.tar.gz $ tar xvzf matchbox-keyboard-extended-jis.tar.gz $ sudo cp keyboard-extended-jis.tar.gz /usr/share/matchbox
起動方法
$ matchbox-keyboard extended-jis &
標準状態
Shift ロック状態
Raspberry Pi のシリアルナンバー
Raspberry Pi のシリアルナンバーは、コマンドラインから調べることができます。
$ cat /proc/cpuinfo processor : 0 model name : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 2.00 Features : half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7 Hardware : BCM2708 Revision : 0010 Serial : 0000000012345678
シリアルナンバーは、MPEG-2, VC-1 コーデックのライセンスを購入する場合に必要になります。
また、複数の Raspberry Pi で同じ SD カードを使い回す場合に、シリアルナンバーフィルタ機能を使って、/boot/config.txt に個別設定を記述する時にも使います。
[0x12345678] # settings here are applied only to the Pi with this serial [all] # settings here are applied to all hardware
Raspberry Pi をWi-Fi子機で無線化 -その1-
Raspberry Pi を無線LANに接続するためには、USB の無線LANアダプタ(Wi-Fiアダプタ)を使用するのが一般的ですが、LANケーブルで接続した無線LANルーターを子機にして使うという方法もあります。
実はRaspberry Pi 2 と Windows 10 ではじめるIoTプログラミングという本の受け売りですが、無線LANドライバ不要で無線化できるので簡単でいいかもしれません。(Windows 10 IoT に対応した技適を通った無線LANアダプタはまだなさそうですし。)
Model A, A+ には USB ポートが1つしかありませんので、無線LANのために USB 無線LANアダプタを使ってしまうと、USB ポートが塞がってしまいます。無線LANで接続する場合は、LANポートは使わない場合が多いので、そちらを有効利用することで USB ポートは他の用途のために空けるといったことができます。
[スペック]
- 無線LAN
- IEEE802.11n/g/b
- 11n : 最大300Mbps (40MHz時)
- 2.4GHz
- 有線LAN
- IEEE802.3u (100BASE-TX) / IEEE802.3 (10BASE-T)
- 電源
- USB(microB)コネクタ
USB 無線LANアダプタと比較すると割高かもしれませんが、それほど高いものでもありませんので、気楽に導入できそうです。
子機モードの設定方法はこちら。Raspberry Pi に繋いで設定できるはずですが、まずは Windows で繋いで設定し、正常動作することを確認した方がトラブルは少ないでしょう。(先で簡単に繋がると書いてはいますが、子機モードの設定は必要ですのでお間違いなく。それができているなら Raspberry Pi 側は有線LANで繋ぐのと変わりないので簡単だということです。)
もっともいくらコンパクトとはいえ、小さな Raspberry Pi に繋いで使うとなると、十分邪魔な大きさかもしれませんが、無線LANの選択肢のひとつにはなるのではないでしょうか。
ただ、残念ながら LAN ポートのない Raspberry Pi Zero では使えません。(USB 有線LAN アダプタを追加すれば使えなくもないですが、あまりメリットがないのでオススメできません。)
関連ページ
Raspberry Pi で 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 に接続します。
接続後、xrdp のダイアログが表示され、ドロップダウンボックスで、モジュールを選択します。(通常、「sesman-Xvnc」か「console」を使うことになるかと思います。)
sesman-Xvnc
sesman-Xvnc モジュールを選択する場合は、VNC のユーザー名とパスワードを入力します。VNC サーバが起動していない場合には、TightVNC サーバが起動します。TightVNC サーバに新規で接続する場合は、リモートデスクトップのサイズは、クライアント側指定のサイズ (通常、クライアントのデスクトップサイズ) になります。
console
console モジュールを選択する場合は、ポート 5900 番の VNC サーバに接続します。ポート 5900 番の VNC サーバのパスワードを入力します。(ポート 5900 番の VNC サーバが x11vnc の場合は、Raspberry Pi 本体のデスクトップを表示することができます。その場合、デスクトップのサイズは Raspberry Pi 本体のデスクトップのサイズとなります。)
vnc-any
vnc-any を選択した場合は、ホスト名、ポート番号、パスワードを指定して VNC サーバに接続します。(xrdp が動いている Raspberry Pi 以外の別マシンを指定することも可能です。)
sesman-any
sesman-any を選択した場合は、ホスト名、ユーザ名、パスワードを指定して VNC サーバに接続します。
rdp-any
rdp-any を選択した場合は、ホスト名を指定して RDP サーバに接続します。
sesman-X11rdp
備考:
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 の画面も。
公式サイト
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
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
コメントを投稿するにはログインしてください。