mieki256's diary



2017/09/02() [n年前の日記]

#1 [ubuntu][python][pi3d] Ubuntu Linux 16.04 LTS に pi3d をインストール

Pythonから OpenGL ES を使える _pi3d は、 Linux や Windows 上でもインストールすることが可能らしい。足元で埃をかぶってる、Ubuntu Linux 16.04 LTS が入ったサブPCを使って、インストールできるのか試してみる。

Ubuntu Linux 上で OpenGL ES が使えるようにする。 :

デスクトップ機で OpenGL ES を使うためには、mesa-utils-extra が必要らしい。仮想的に OpenGL ES を持ってるような状態にしてくれるとかなんとか…。とりあえずインストール。
sudo apt install mesa-utils-extra

実機にディスプレイを繋いで、OpenGL ES の動作確認。
es2gears
ギアがクルクル回るアレが表示されて、FPSも出力された。動いてるっぽい。

pipをインストール。 :

pipをインストール。pip を使えば、Python のモジュールをネット経由でインストールできる。
sudo apt install python-pip python3-pip

バージョン等を確認。
$ pip3 --version
pip 8.1.1 from /usr/lib/python3/dist-packages (python 3.5)

$ sudo -H pip3 search pi3d
pi3d (2.20)  - pi3d OpenGLES2 3D graphics library
You are using pip version 8.1.1, however version 9.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
「pipをアップグレードしろ」と言われてしまった。

pipをアップグレードする。
$ sudo -H pip3 install --upgrade pip

$ sudo -H pip3 --version
pip 9.0.1 from /usr/local/lib/python3.5/dist-packages (python 3.5)
アップグレードできた。

ちなみにUbuntu上では、pip は Python 2.7用。pip3 は Python 3.x 用。自分の環境では、pip のほうは既に 9.0.1 になってた。

pi3dをインストール。 :

pipを使って、pi3dをインストール。
sudo -H pip install pi3d
sudo -H pip3 install pi3d

デモスクリプト群の pi3d_demos も git で取ってくる。
git clone https://github.com/pi3d/pi3d_demos.git

pi3dの動作確認。 :

デモスクリプトを動かしてみる。ディスプレイを繋げた実機上で操作。
cd pi3d_demos
python Earth.py
地球と月がグルグル回るソレが出てきた。たしかに Linux上でも動いた。

他のスクリプトも動かしてみる。
Python ForestWalk.py
Permission denied /dev/input/mice と怒られて終了してしまった…。

/dev/input/mice のパーミッションを確認してみる。
$ ll /dev/input/mice
crw-rw---- 1 root input 13, 63  9月  2 08:51 /dev/input/mice
ユーザがinputグループに入ってないとアクセスできないのだな…。

ユーザをinputグループに所属させる。
sudo gpasswd -a ユーザ名 input
ログアウトして再ログイン。

再度、pi3dのスクリプトを実行。
python ForestWalk.py
今度は動いた。

ということで、Linux上でも pi3d が動作することを確認できた。

自分の手元の環境の問題点。 :

表示はできたけど、描画面積が大きいスクリプトを動かすと、なんだかガクガクしてるな…。

サブPCのCPUとM/Bは、AMD Athlon II X2 250 (3.0GHz, 2コア) + ASRock M3A785GMH/128M (AMD785G + SB710チップセット使用)。このスペックでは重いのかもしれん。というか、AMD785Gチップセットの ATI Radeon HD 4200 が足を引っ張ってるんじゃないかな。たぶん。

VMware + Ubuntu でも試してみた。 :

調子に乗って VMware + Ubuntu 上でも pi3d のインストールを試してみた。

import pi3d で「そんなモジュールはねえよ」と怒られた…。pip じゃなくて pip2 を使ってインストールしないとダメっぽい。pip2 が Python 2.7用。pip3 が Python 3.x用。ということなのかな。
sudo -H pip2 install pi3d

この状態なら、python Earth.py が動いてくれた。

ただ、VMware 上では vsync(垂直同期)を見てくれないというかサポートしてないようで。物凄い速度で、地球と月が回る…。

ググってみたら、.vmx に
mks.vsync = "1"
を追加する、という話を見かけたので試してみたけど効果は無かった。もしかするとMac上で動いてるVMware用の設定、なんだろうか。

#2 [ubuntu][linux] x11vncを使ってみたり

今までは、 てな状態で、VNCでリモート接続 ―― Ubuntu のデスクトップ画面を Windows側で表示して操作する、てなことをたまにしてたのだけど。 *1

しかしこの組み合わせだと、Ubuntu側で OpenGL関係の何かを実行しても、Windows 側の VNC viewer 上では描画結果が表示されないことに気がついて、これはちょっと不便だなと。描画速度が遅くてもいい・紙芝居状態でもいいから、一応結果を VNC viewer上でも確認したい。

ググってたら、tightvncserver は OpenGLの描画結果を表示できない、という話を見かけた。そこで代わりに vnc4server をインストールしてみたり。
sudo aptitude purge tightvncserver
sudo aptitude install vnc4server
しかしコレも、OpenGLの描画結果は表示されなかった。

さらにググってたら、x11vnc というものがあると知り。x11vnc を使うと、Ubuntu がディスプレイに表示してるデスクトップをそのまま VNC で表示できるから OpenGLの結果も表示できる、という話を見かけた。

_linux - How can OpenGL graphics be displayed remotely using VNC? - Server Fault
_x11vnc(1) - Linux man page

試してみたり。
sudo aptitude install x11vnc
x11vnc -display :0
Windows側は今までと同様、 UltraVNC に同梱の VNC viewer を利用。「相手ホスト名:5900」でアクセス。

たしかに、OpenGLの描画結果も表示された。接続を切ると x11vnc も終了する。

ただ、コレをするためには、Ubuntu側であらかじめデスクトップ画面を表示しておかないといけない…。

自動ログインを有効に。 :

Ubuntu は _lightdm というディスプレイマネージャが最初に起動して、そこでユーザを選択してパスワードを入力するとデスクトップ画面に入れるようになってる。この lightdm の設定ファイルを編集すれば自動ログインができるようになる。らしい。

_LightDM - ArchWiki
_LightDM - Ubuntu Wiki

/etc/lightdm/lightdm.conf を編集、というか新規作成して以下を追加。
[Seat:*]
autologin-user=ユーザ名
autologin-user-timeout=0

これで、Ubuntuを起動すると自動ログインしてデスクトップ画面が表示される状態になった。後は ssh でアクセスして x11vnc を起動すれば、Windows側で VNC viewer を起動してデスクトップ画面が出せる。はず。

x11vncのオプション。 :

x11vncのオプションについて、一部をメモ。
  • -repeat はキーリピート有効化。
  • -ncache n は描画の高速化。n は 6〜12 を指定できる。
  • -ncache_cr はウインドウドラッグ時の高速化。
  • -nowf はウインドウドラッグ時のワイヤーフレーム表示の無効化。
  • -nodpms はディスプレイの電源管理無効化。スクリーンセーバが1〜2秒で起動してしまうときは指定するといいらしい。
例えば以下のような感じで指定できる。
x11vnc -display :0 -repeat -ncache 10

*1: あくまで「たまに」で…。普段は PuTTY で ssh接続すれば十分な場合がほとんど。

#3 [ubuntu][linux] Ubuntu 16.04上で x0vncserver の動作確認をしてみたり

TigerVNC に入ってる x0vncserver を使えば x11vnc のようなことができるらしい。TightVNC じゃなくて TigerVNC。なんだか間違えやすい…。

_TigerVNC - ArchWiki

試しに入れてみようかなと思ったけれど、TigerVNC は Ubuntu 16.04の公式リポジトリに入ってない。が、 _Releases - TigerVNC/tigervnc 経由で、 _tigervnc/1.8.0 に .debファイルがあることを知った。Files → ubuntu-16.04LTS → amd64、で、tigervncserver_1.8.0-1ubuntu1_amd64.deb をダウンロード。

あるいは、 _https://dl.bintray.com/tigervnc/stable/ubuntu-16.04LTS/amd64/ から入手することもできる。

今まで入れてた vncserver をアンインストール。
sudo aptitude purge tightvncserver
or
sudo aptitude purge vnc4server

_Ubuntu Xenial Xerus 16.04 で tigervnc server(nightly-build:1.6.8) を使う方法 - Qiita を参考に、.deb をダウンロードしたディレクトリで以下を実行して、TigerVNC をインストール。
sudo apt install ./tigervncserver_1.8.0-1ubuntu1_amd64.deb
aptってローカルにある .deb のインストールもできるのか…! 知らなかった。

VNCでアクセスするためのパスワードを指定。 ~/.vnc/passwd にパスワードファイルが作成される。
vncpasswd

x0vncserver を実行。
x0vncserver -display :0 -passwordfile ~/.vnc/passwd

Windows 側から UltraVNC の VNC viewer を使って「相手先ホスト名:5900」でアクセス。パスワードを尋ねてくるので打ち込む。…デスクトップ画面が出た。

しかし、接続を切っても x11vnc のように自動で終了してくれない。Ctrl + C で無理矢理終了させたけど、本来はどうやって終了させるのやら…。

x0vnc4serverなるものもあるらしい。 :

_Ubuntu - パッケージのファイル一覧: vnc4server/trusty-updates/i386 を眺めた感じでは、vnc4server をインストールすると x0vnc4server というファイルがインストールされるようで。TigerVNC を使わなくても vnc4server を入れれば同じことができたのか…な…。

#4 [pc] HDDレコーダがLANに繋がらない

ふと、Windows10 x64機から、HDDレコーダ RD-BZ710 が見えないことに気がついた。調べてみたら、どうも RD-BZ710 がルータからDHCPでIPアドレスを貰えてないようで。というか、RD-BZ710 からルータが見えてない気配が。

とうとう壊れたのかな…。とりあえず、RD-BZ710 を固定IPアドレスにしてみたり。これならWindowsからアクセスできるから用は済むだろう…。

一応、ルータ側も、RD-BZ710 のMACアドレスに固定IPを割り当てる設定にしておいた。

以上、1 日分です。

過去ログ表示

Prev - 2017/09 -
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project