技巧をUbuntuにインストール (2017/07/21)

第27回世界コンピュータ将棋選手権で3位に入賞した将棋ソフトの技巧をUbuntuにインストールする。

技巧のダウンロード

技巧を「ダウンロード」フォルダーにダウンロードする。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ wget -P ~/ダウンロード https://github.com/gikou-official/Gikou/releases/download/v2.0.2/gikou2_win.zip; \
wget -P ~/ダウンロード https://github.com/gikou-official/Gikou/archive/v2.0.2.zip

v2.0.2が現時点(2017年7月21日)での最新版である。

Windows版とソースコードの両方をダウンロードする。

Windows版の実行ファイルはUbuntuでは使えないのでソースコードからコンパイルする必要がある。定跡などはWindows版のものをそのまま使う。

ダウンロードファイルの解凍

Windows版はデスクトップに、ソースコードは「ダウンロード」フォルダーに解凍する。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ unzip -d ~/デスクトップ/Gikou-2.0.2 ~/ダウンロード/gikou2_win.zip; \
unzip -d ~/ダウンロード ~/ダウンロード/v2.0.2.zip

技巧のコンパイル

技巧をコンパイルし、Windows版にコピーする。

①以下のコマンドを端末に入力して「Enter」キーを押す。

$ cd ~/ダウンロード/Gikou-2.0.2;make release

「release」ファイルが実行ファイルとなる。

②以下のコマンドを端末に入力して「Enter」キーを押す。

cp ~/ダウンロード/Gikou-2.0.2/bin/release ~/デスクトップ/Gikou-2.0.2

技巧をShogiGUIに登録

技巧をShogiGUIに登録するには以下のようにする。

①以下のコマンドを端末に入力して「Enter」キーを押す。

$ mono ~/デスクトップ/ShogiGUIv0.0.6.11/ShogiGUI.exe

②ShogiGUIのメニューバーで「ツール」をクリックする。

③「エンジン設定」をクリックする。

④「エンジン一覧」で「追加」ボタンをクリックする。

⑤「Open」で「~/デスクトップ/Gikou-2.0.2」フォルダーに移動する。

⑥「Files of type:」で「すべてのファイル」を選択する。

⑦「release」ファイルをクリックする。

⑧「Open」ボタンをクリックする。

⑨「エンジン設定」の「BookFile」で「...」ボタンをクリックする。

⑩「Open」で「戦型別定跡ファイル/00_全戦型.bin」を選択する。

このようにすると技巧は全戦型を使う。もちろん、特定の戦型を選択しても構わない。

⑪「Open」ボタンをクリックする。

⑫「エンジン設定」に戻って「DepthLimit」を「1」に設定する。

こうすると最も弱い設定になる。最強は「100」である。

⑬「OK」ボタンをクリックする。

⑭「エンジン一覧」に戻って「OK」ボタンをクリックする。

参考リンク

将棋ソフト「技巧」

elmoをUbuntuにインストール (2017/07/21)

第27回世界コンピュータ将棋選手権で優勝した将棋ソフトelmoをUbuntuにインストールする。

elmoは評価関数と定跡だけなので、将棋エンジンに設置する必要がある。

elmo開発者の瀧澤誠さんご自身が説明している導入方法では将棋エンジンとしてやねうら王を使っている。そこで、ここでもそのようにする。

やねうら王のダウンロード

やねうら王を「ダウンロード」フォルダーにダウンロードする。

①以下のアドレスをクリックする。

https://github.com/yaneurao/YaneuraOu/

②「Clone er download」をクリックする。

③「Clone with HTTPS」で「Download ZIP」をクリックする。

④「YaneuraOu-master.zip を開く」で「ファイルを保存する」を選択する。

⑤「OK」ボタンをクリックする。

elmoのダウンロード

elmoを「ダウンロード」フォルダーにダウンロードする。

①以下のアドレスをクリックする。

https://drive.google.com/file/d/0B0XpI3oPiCmFalVGclpIZjBmdGs

②「elmo.shogi.zip」で「ダウンロード」ボタンをクリックする。

③「Google ドライブではこのファイルのウィルス スキャンを実行することはできません。」で「ダウンロード」ボタンをクリックする。

④「elmo.shogi.zip を開く」で「ファイルを保存する」を選択する。

⑤「OK」ボタンをクリックする。

ダウンロードファイルの解凍

ダウンロードファイルをデスクトップに解凍する。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ unzip -d ~/デスクトップ ~/ダウンロード/YaneuraOu-master.zip; \
unzip -d ~/デスクトップ ~/ダウンロード/elmo.shogi.zip

elmoをやねうら王に設置

elmoをやねうら王に設置する。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ cp ~/デスクトップ/elmo.shogi/eval/*.bin ~/デスクトップ/YaneuraOu-master/exe/eval; \
cp ~/デスクトップ/elmo.shogi/book/yaneura_format/standard_book.db ~/デスクトップ/YaneuraOu-master/exe/book; \
cp -r ~/デスクトップ/YaneuraOu-master/exe/eval ~/デスクトップ/YaneuraOu-master/exe/2017Early; \
cp -r ~/デスクトップ/YaneuraOu-master/exe/book ~/デスクトップ/YaneuraOu-master/exe/2017Early

やねうら王のコンパイル

やねうら王にあるexeファイルはUbuntuでは実行できないようである。そこでソースファイルをコンパイルする。

やねうら王開発者のやねうらおさんによると「make avx2」でコンパイルすればよいらしい。だが、私の環境でははうまくいかなかった。そこで「make sse42」とした。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ cd ~/デスクトップ/YaneuraOu-master/source; \
make sse42; \
cp ~/デスクトップ/YaneuraOu-master/source/YaneuraOu-by-gcc ~/デスクトップ/YaneuraOu-master/exe/2017Early

やねうら王(elmo)をShogiGUIに登録

やねうら王(elmo)をShogiGUIに登録するには以下のようにする。

①以下のコマンドを端末に入力して「Enter」キーを押す。

$ mono ~/デスクトップ/ShogiGUIv0.0.6.11/ShogiGUI.exe

②ShogiGUIのメニューバーで「ツール」をクリックする。

③「エンジン設定」をクリックする。

④「エンジン一覧」で「追加」ボタンをクリックする。

⑤「Open」で「~/デスクトップ/YaneuraOu-master/exe/2017Early」フォルダーに移動する。

⑥「Files of type:」で「すべてのファイル」を選択する。

⑦「YaneuraOu-by-gcc」ファイルをクリックする。

⑧「Open」ボタンをクリックする。

⑨「エンジン設定」の「BookDepthLimit」を「0」に設定する。

⑩「BookMoves」を「200」に設定する。

⑪「Hash」を「16」に設定する。

⑫「MinimumThinkingTime」を「1000」に設定する。

⑬「NetworkDelay」を「0」に設定する。

⑭「NetworkDelay2」を「0」に設定する。

⑮「Threads」を「16」に設定する。

推奨の設定ではCPUコア数の2倍とあり、私のPCは8コアなので、上のように設定した。

⑯「OK」ボタンをクリックする。

⑰「エンジン一覧」に戻って「OK」ボタンをクリックする。

参考リンク

コンピュータ将棋ソフト「elmo」導入方法

やねうら王2016MidのLinux/Mac対応について

ubuntuにelmoを入れて戦う

Ubuntuのトラブル (2017/07/07)

私の環境で時々起きるUbuntuのトラブルとその解決法を備忘録として残す。

「システムプログラムの問題が見つかりました」

Ubuntuを起動すると、「システムプログラムの問題が見つかりました」と表示されることがある。一度、表示されると、以降、起動するたびに表示されるようになるので鬱陶しい。

クラッシュが発生したときに生成されるcrashファイルが原因のようである。これを削除すれば、以降、表示されなくなる。

①以下のコマンドを端末に入力して「Enter」キーを押す。

$ ls /var/crash

crashファイルの名前が表示される。一応、何がクラッシュしたのか確認しておく。

②以下のコマンドを端末に入力して「Enter」キーを押す。

$ sudo rm /var/crash/*

③「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

crashファイルが削除される。

「ファイル“****”を開く際にエラーが発生しました。」

Windowsで作成したテキストファイルをテキストエディターで開こうとすると、「ファイル“****”を開く際にエラーが発生しました。」と表示が出て、開けない場合がある。

「エンコーディング」は「現在のロケール (UTF-8)」となっている。「再試行」ボタンをクリックしても、やはり「ファイル“****”を開く際にエラーが発生しました。」と表示が出て、開けない。

Windowsで作成したテキストファイルはshift-JISで書かれていると思う。そこで、テキストエディターで「エンコーディング」を「日本語 (SHIFT_JIS)」に変更して「再試行」ボタンをクリックしてみる。だが、今度は「ファイル“****”を開けませんでした。」と表示は変わるものの、やはり開けない。

原因ははっきりしないが、テキストエディターで読めるようにするにはとりあえず文字コードをUTF-8に変換するのが手っ取り早い。

例として「ホーム」フォルダーに「file_shift-jis.txt」ファイルがあるとして、これをUTF-8に変換して「file_utf-8.txt」ファイルとする手順を説明する。

○端末に以下のコマンドを入力して「Enter」キーを押す。

$ nkf -w ~/file_shift-jis.txt > ~/file_utf-8.txt

「file_shift-jis.txt」ファイルはそのまま残り、「file_utf-8.txt」ファイルが新たに作成される。「file_utf-8.txt」ファイルをテキストエディターで開くと、無事にファイルの内容を見ることができる。

Ubuntu 16.04 + Chinachu + PT2でテレビ (2017/07/02)

以前書いた記事とほぼ同じ内容である。基本的にリンク切れがないか等をチェックしただけで済ませている。

多分、これで大丈夫だとは思う。もしおかしなところがあったらお知らせ下さい。

準備

①PT2をPCのマザーボードに装着する。

②ICカードリーダーをPCのUSBポートに接続する。

ICカードリーダーにはSCR3310-NTTComを使った。

パッケージのインストール

とりあえず以下のパッケージを入れておけば大丈夫そうである。どれがどれに必要なのかよく分かっていないが。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ sudo apt-get -y install autoconf build-essential curl git-core libccid libpcsc-perl libpcsclite-dev libpcsclite1 libssl-dev libtool linux-headers-`uname -r` mercurial pcsc-tools pcscd pkg-config yasm

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

カードリーダーの動作確認

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ pcsc_scan

最後に

Japanese Chijou Digital B-CAS Card (pay TV)

のように表示されていれば正常に動作している。

②「Ctrl」キーと「C」キーを同時に押し、実行中のコマンドを終了する。

ドライバのインストール

上に続けて実行する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ sudo gedit /etc/modprobe.d/blacklist.conf

テキストエディターで「blacklist.conf」ファイルが開かれる。

②最終行に

blacklist earth-pt1

を追記する。

③テキストエディターの「保存」ボタンをクリックする。

④テキストエディターの「×」ボタンをクリックして閉じる。

⑤端末に以下のコマンドを入力して「Enter」キーを押す。

$ hg clone http://hg.honeyplanet.jp/pt1.oyama/ ~/ダウンロード/pt1_driver_oyama

「~/ダウンロード」フォルダーに「pt1_driver_oyama」フォルダーが保存される。

⑥端末に以下のコマンドを入力して「Enter」キーを押す。

$ cd ~/ダウンロード/pt1_driver_oyama;hg revert -r c44e16dbb0e2 --all;hg revert -r tip --all

⑦端末に以下のコマンドを入力して「Enter」キーを押す。

$ gedit driver/pt1_pci.c

テキストエディターで「pt1_pci.c」ファイルが開かれる。

この手順はカーネル4.2以降で必要になったようである。以下のページを参照。

http://baalzephon.no-ip.org/tech/index.php?Linux%2Fテレビ関連%2FPT2

⑧11行目の

#include <linux/interrupt.h>

の下に

#include <linux/version.h>

を追記する。

⑨14行目(1行ずれたので元は13行目)の

#include <asm/io.h>

の下に

#if LINUX_VERSION_CODE >=KERNEL_VERSION(4,2,0)
#include <linux/vmalloc.h>
#endif

を追記する。

⑩テキストエディターの「保存」をクリックする。

⑪テキストエディターの「×」ボタンをクリックして閉じる。

⑫端末に以下のコマンドを入力して「Enter」キーを押す。

$ cd driver;make clean;make;sudo make install;sudo modprobe pt1_drv

⑬PCを再起動する。

ドライバの動作確認

○端末に以下のコマンドを入力して「Enter」キーを押す。

$ ls -la /dev/pt*video*

下のように表示されていれば正常に動作している。

crw-rw-rw- 1 root video 245, 0 11月 28 09:43 /dev/pt1video0
crw-rw-rw- 1 root video 245, 1 11月 28 09:43 /dev/pt1video1
crw-rw-rw- 1 root video 245, 2 11月 28 09:43 /dev/pt1video2
crw-rw-rw- 1 root video 245, 3 11月 28 09:43 /dev/pt1video3

recpt1のインストール

STZ版のrecpt1をインストールする。recpt1は「/pt1_driver_oyama」フォルダーの中にもある。だが、そのrecpt1は後でインストールするChinachuと相性が悪いらしく、番組表の取得で失敗する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ wget -P ~/ダウンロード https://github.com/stz2012/recpt1/archive/master.zip;unzip ~/ダウンロード/master.zip -d ~/ダウンロード;cd ~/ダウンロード/recpt1-master/recpt1;./autogen.sh;./configure --enable-b25;make clean;make;sudo make install

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

recpt1の動作確認

○端末に以下のコマンドを入力して「Enter」キーを押す。

$ recpt1 --b25 --strip --device /dev/pt1video2 27 30 ~/test.ts

上のコマンドは私の住んでいる地域ではNHK総合を30秒録画するものである。「ホーム」フォルダーに「test.ts」ファイルが生成する。ちゃんと録画できていればrecpt1は正常に動作している。

Chinachuのダウンロード及びインストール

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ git clone git://github.com/kanreisa/Chinachu.git ~/chinachu;cd ~/chinachu/;./chinachu installer

②「what do you install? >」で「1」と入力して「Enter」キーを押す。

Chinachuの設定

上の手順に続けて実行する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ cp config.sample.json config.json;gedit config.json

テキストエディターで「config.json」ファイルが開かれる。

②「config.json」ファイルを以下の内容で上書きする。

{
  "recordedDir" : "./recorded/",
  "temporaryDir": "/tmp/",

  "wuiUsers": [
    "akari:bakuhatsu"
  ],
  "wuiAllowCountries": ["JP"],

  "wuiPort"        : 10772,
  "wuiHost"        : "::",
  "wuiTlsKeyPath"  : null,
  "wuiTlsCertPath" : null,
  "wuiOpenServer"  : false,
  "wuiOpenPort"    : 20772,
  "wuiXFF"         : false,
  "wuiPreviewer"   : true,
  "wuiStreamer"    : true,
  "wuiFiler"       : true,
  "wuiConfigurator": true,

  "recordedFormat": "<date:yyyy年mm月dd日>_<title>.ts",

  "tuners": [
    {
      "name"        : "PT2-S1",
      "isScrambling": false,
      "types"       : [ "BS", "CS" ],
      "command"     : "recpt1 --device /dev/pt1video0 --b25 --strip --sid <sid> <channel> - -"
    },
    {
      "name"        : "PT2-S2",
      "isScrambling": false,
      "types"       : [ "BS", "CS" ],
      "command"     : "recpt1 --device /dev/pt1video1 --b25 --strip --sid <sid> <channel> - -"
    },
    {
      "name"        : "PT2-T1",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "recpt1 --device /dev/pt1video2 --b25 --strip --sid <sid> <channel> - -"
    },
    {
      "name"        : "PT2-T2",
      "isScrambling": false,
      "types"       : [ "GR" ],
      "command"     : "recpt1 --device /dev/pt1video3 --b25 --strip --sid <sid> <channel> - -"
    }
  ],

  "channels": [
    { "type": "GR", "channel": "27" },
    { "type": "GR", "channel": "26" },
    { "type": "GR", "channel": "25" },
    { "type": "GR", "channel": "22" },
    { "type": "GR", "channel": "21" },
    { "type": "GR", "channel": "24" },
    { "type": "GR", "channel": "23" },
    { "type": "GR", "channel": "16" },
    { "type": "GR", "channel": "20" },
    { "type": "GR", "channel": "18" },
    { "type": "GR", "channel": "32" },
    { "type": "GR", "channel": "28" },

    { "type": "BS", "channel": "101" },
    { "type": "BS", "channel": "103" },
    { "type": "BS", "channel": "141" },
    { "type": "BS", "channel": "151" },
    { "type": "BS", "channel": "161" },
    { "type": "BS", "channel": "171" },
    { "type": "BS", "channel": "181" },
    { "type": "BS", "channel": "211" },
    { "type": "BS", "channel": "222" }
  ],

  "operRecCmdSpan": 1000
}

「wuiUsers」の「"akari:bakuhatsu"」は「akari」がユーザ名、「bakuhatsu」がパスワードとなる。サーバーを外部に公開する場合は変更しないと危ない。ここでは公開しないとしてデフォルトのままとする。

「recordedFormat」は録画ファイル名のフォーマットの設定である。私の好みに変更している。

「tuners」の設定はPT2用に修正した。

「channels」の設定は私の環境に合わせている。地デジのチャンネル番号は住んでいる地域によって違う。

チャンネル番号については以下のページを参照。

https://ja.wikipedia.org/wiki/テレビ周波数チャンネル

Chinachuの開発者によると、PT2で使用した場合、「operRecCmdSpan」の設定をしたほうがよいそうなので追加した。

③テキストエディターの「保存」をクリックする。

④テキストエディターの「×」ボタンをクリックして閉じる。

ルール設定ファイルの作成

上に続けて実行する。

○端末に以下のコマンドを入力して「Enter」キーを押す。

$ echo [] > rules.json

動作チェック

上に続けて実行する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ ./chinachu service wui execute

端末に表示されるものを見て、動作しているか確認する。

②「Ctrl」キーと「C」キーを同時に押し、実行中のコマンドを終了する。

③端末に以下のコマンドを入力して「Enter」キーを押す。

$ ./chinachu update -f

これはEPG取得をテストする手順である。

システムへの設定

上に続けて実行する。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ ./chinachu service operator initscript > /tmp/chinachu-operator;./chinachu service wui initscript > /tmp/chinachu-wui;sudo chown root:root /tmp/chinachu-operator /tmp/chinachu-wui;sudo chmod +x /tmp/chinachu-operator /tmp/chinachu-wui;sudo mv /tmp/chinachu-operator /tmp/chinachu-wui /etc/init.d/

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

③端末に以下のコマンドを入力して「Enter」キーを押す。

$ sudo ln -s /usr/lib/insserv/insserv /sbin/insserv;sudo insserv chinachu-operator;sudo insserv chinachu-wui

「sudo ln -s /usr/lib/insserv/insserv /sbin/insserv」がないとエラーになる。以下のページを参照。

http://pcok.jp/?p=1731

サービスの開始

上に続けて実行する。

○端末に以下のコマンドを入力して「Enter」キーを押す。

$ sudo systemctl unmask chinachu-operator;sudo systemctl unmask chinachu-wui;sudo service chinachu-operator start;sudo service chinachu-wui start

「sudo systemctl unmask chinachu-operator」、「sudo systemctl unmask chinachu-wui」がないとエラーになる。以下のページを参照。

http://d.hatena.ne.jp/ore_de_work/touch/20151018/1445167890

番組表の表示

①Firefoxのアドレスバーに「http://localhost:10772」と入力して「Enter」キーを押す。

②「ユーザ名とパスワードを入力してください」で「ユーザ名」に「akari」、「パスワード」に「bakuhatsu」と入力する。

「wuiUsers」の設定を変更した場合はもちろん、それに合わせる。入力するのは初回だけで、2回目以降は初めから入力されている。

③「OK」をクリックする。

地デジの番組表だけを見たい場合は番組表で「GR」のみにチェックを入れ、BSの番組表だけを見たい場合は「BS」のみにチェックを入れる。

録画予約

①番組表で録画予約したい番組を右クリックする。

②「予約」をクリックする。

③「手動予約」で「予約」をクリックする。

④「成功」で「OK」をクリックする。

録画ファイルはデフォルトの設定のままなら「~/chinachu/recorded」フォルダーに保存される。

ドライバの再インストール

カーネルの更新があった場合(パスワードを要求されるアップデートがあった場合、大抵カーネルの更新がある)、再起動後ではドライバが使えなくなるので、再インストールする必要がある。

録画予約をする場合、ドライバが正常に動作しているか確認したほうが無難である。

①端末に以下のコマンドを入力して「Enter」キーを押す。

$ ls -la /dev/pt*video*

もし

ls: '/dev/pt*video*' にアクセスできません: そのようなファイルやディレクトリはありません

と表示された場合、ドライバを再インストールする必要がある。

②端末に以下のコマンドを入力して「Enter」キーを押す。

$ cd ダウンロード/pt1_driver_oyama/driver;make clean;make;sudo make install

③パスワードを入力して「Enter」キーを押す。

④PCを再起動する。

⑤端末に以下のコマンドを入力して「Enter」キーを押す。

$ ls -la /dev/pt*video*

ドライバが正常に動作しているか確認する。

参考サイト

Mercurial > pt1.oyama

http://hg.honeyplanet.jp/pt1.oyama

stz2012

https://github.com/stz2012

kanreisa/Chinachu

https://github.com/kanreisa/Chinachu

ShogiGUIをUbuntuにインストール (2017/07/21)

ShogiGUIをUbuntuにインストールする。

monoのインストール

Ubuntuで使うにはmonoが必要なのでインストールする。

①以下のコマンドを端末に入力して「Enter」キーを押す。

$ sudo apt-get install -y mono-complete

②「[sudo] **** のパスワード:」でパスワードを入力して「Enter」キーを押す。

ShogiGUIのダウンロード

現時点(2017年7月21日)での最新版である「ShogiGUIv0.0.6.11」を「ダウンロード」フォルダーにダウンロードする。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ wget -P ~/ダウンロード http://shogigui.siganus.com/shogigui/ShogiGUIv0.0.6.11.zip

ダウンロードファイルの解凍

ダウンロードファイルをデスクトップに解凍する。

○以下のコマンドを端末に入力して「Enter」キーを押す。

$ unzip -d ~/デスクトップ ~/ダウンロード/ShogiGUIv0.0.6.11.zip

ShogiGUIの起動

ShogiGUIを起動するときは以下のようにする。

$ mono ~/デスクトップ/ShogiGUIv0.0.6.11/ShogiGUI.exe

参考リンク

ShogiGUI