仮想通貨マイニング/機械学習用のPCを自作してみた(おまけ)

今回は、構築したPC環境に、CUI及びGUI双方で手元のWindows PCからリモートアクセスするための設定方法を紹介します。

また、リモート接続を切断しても、マイニング処理や機械学習処理を継続するための方法についても、併せて紹介します。

<スポンサーリンク>

CUIリモート接続設定方法

具体的にはsshで接続するための、自作PC側の設定を行います。

始めにIPアドレスを固定化します。なお、本記事では、PCが内部LAN上に接続されており、ローカルIPアドレスが割り振られている場合を前提に説明します。グローバルIPアドレスが割り振られている場合は、お使いのプロバイダが提供している情報を確認の上、必要な設定を行う必要があります。

まず、以下コマンドを実行して、使用されているインターフェース名を調べましょう。

$ ifconfig
enp1s0    Link encap:イーサネット  ハードウェアアドレス 00:0c:29:33:39:d4  
          inetアドレス:192.168.128.131  ブロードキャスト:192.168.128.255  マスク:255.255.255.0
~以下省略~

今回の例では、インターフェース名は「enp1s0」です。なお、IPアドレス等の情報は、現状、DHCPにて自動的に取得されています。

これを踏まえて、IP固定化を行います。Ubuntuでは、IPアドレス周りの設定は/etc/network/interfacesで行いますので、適当なエディタでこのファイルを特権ユーザで開きます。そして、以下のように「auto enp1s0」以降の6行を追加します。

auto lo
iface lo inet loopback
auto enp1s0
iface enp1s0 inet static
    address 192.168.128.100
    netmask 255.255.255.0
    gateway 192.168.128.1
    dns-nameservers 192.168.128.1

addressからdns-nameserversの値はお使いの環境により異なりますので、適宜変更下さい。

設定が終わりましたら、システムをリブートすると、IPアドレスが設定したものに固定化されます。

続いて、自作PC側に、sshサーバソフトウェアを導入します。

$ sudo apt-get install openssh-server

これで、普段お使いのPCからSSHクライアントを使って、自作PCに接続できるようになりました。

GUIリモート接続設定方法

個人的な趣味で恐縮ですが、デスクトップ環境として、Ubuntu 16.04標準のUnityではなく、Ubuntu Meta Desktopというものを前提に紹介したいと思います。ちなみに、Unityと比較して、シンプルで軽量という特徴があります。

Ubuntu Meta Desktopの導入

非常に簡単で、パッケージを導入するだけです。

$ sudo apt-get install ubuntu-mate-core ubuntu-mate-desktop

これで、自作PCに直接アクセスした際、ログイン画面の右上で「MATE」を選択するとUbuntu Meta Desktopを使うことができます。

サーバソフトウェアの導入

続いて、この環境にリモートデスクトップでアクセスできるようにするための、リモートデスクトップサーバとしての環境構築を行います。

具体的には、xrdpとxorgxrdpという2つのパッケージを導入する必要があります。

これらは、普通にapt-getでインストールできるのですが、Ubuntu 16.04では現状、古いバージョンがインストールされてしまうため、本記事ではソースからコンパイルし、最新版を導入する方法を紹介します。

なお、手順は、公式サイトの説明を参考にしています。

まずは、依存パッケージを導入します。

$ sudo apt-get install build-essential devscripts git autoconf libtool pkg-config gcc g++ make libssl-dev libpam0g-dev libjpeg-dev libx11-dev libxfixes-dev libxrandr-dev flex bison libxml2-dev intltool xsltproc xutils-dev python-libxml2 g++ xutils libfuse-dev libmp3lame-dev nasm libpixman-1-dev xserver-xorg-dev

続いて、xrdpの導入に移ります。

始めに、GitHubから必要なファイルをダウンロードしましょう。

$ git clone https://github.com/neutrinolabs/xrdp.git xrdp

次に、ダウンロードしたディレクトリに入り、ビルドやインストール等必要な作業を行います。

$ cd xrdp
$ ./bootstrap
$ ./configure --enable-fuse
$ make
$ sudo make install
$ sudo ln -s /usr/local/sbin/xrdp{,-sesman} /usr/sbin
$ cd ..

これで、xorgが導入できました。

引き続き、xorgxrdpを導入していきますが、まずはGitHubからファイルを落とします。

$ git clone https://github.com/neutrinolabs/xorgxrdp.git xorgxrdp

次に、xorgと同様に、ダウンロードしたディレクトリに移って、ビルト~インストールを行います。

$ cd xorgxrdp
$ ./bootstrap
$ ./configure
$ make
$ sudo make install

サーバソフトウェアの導入は以上です。

接続設定

最後に、実際にリモートデスクトップで適切に接続できるよう、各種設定を行っていきます。

まず、Ubuntu Meta Desktop環境にリモート接続し、かつ、日本語が使えるように設定を行います。

ホームディレクトリに「.xsession」というファイルを作成し、その中に以下の設定内容を書き込んで下さい。

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
/usr/local/bin/mozc start
mate-session

続いて、特権ユーザで、「/etc/X11/Xwrapper.config」を開き、「allowed_users」の値を「anybody」とします。

allowed_users=anybody

最後に、xrdpを立ち上げるとともに、以降、システム起動時にxrdpが自動的に立ち上がるようにします。

$ sudo systemctl start xrdp
$ sudo systemctl enable xrdp

これで、リモートデスクトップにより、自作PCに接続できるようになりました。

なお、実際に接続を行う際、画面の描画に結構なネットワーク帯域を使いますので、お使いのネットワーク環境によっては処理が重くなることがあります。

その場合、接続時に画面解像度と色を落とすことにより、描画を高速化することができます。

セッション接続時の継続処理設定

リモートから接続して、機械学習等の処理を走らせた場合、リモートセッションを切断した段階で処理が終了してしまいます。

これを防ぐためには処理を開始する際、標準出力と標準エラー出力を適当なファイルにリダイレクトするとともに、標準入力を/dev/nullからリダイレクトします。また、&を付けて、処理をバックグラウンド実行させます。

$ 実行するプログラム > out.log 2> err.log < /dev/null &

バックグラウンド実行した処理を終了させるためには、psコマンドで対象プロセスのPIDを調べ、そのプロセスをkillします。

$ps ax
PID   TTY      STAT TIME  COMMAND
22966 pts/x    Sl+  xx:xx xxx
・・・
$kill -KILL 22966

終わりに

今回紹介させて頂いたリモート接続周りの対応を行うことにより、仮想通貨マイニング、機械学習のいずれも、作業が捗るようになると思います。

さて、本シリーズは今回の記事で最後ですが、本シリーズの記事が、ご覧頂いている方の仮想通貨マイニングや機械学習実施のために少しでも役に立つと、大変ありがたいと考えています。

また、今後も気になることや面白そうなことがあれば、記事化していきたいと思いますので、ご愛読、よろしくお願いします。

<スポンサーリンク>

シェアする

フォローする