クリプト

macOSでもVIVO(neoscrypt)を掘りたい!xhyveでUbuntuを入れてCPUマイニング!

eito's icon'
  • eito
  • 2018/05/26 13:02
Content image

こんにちは。

皆さん草コイン掘ってますか?

世の中にある草コインのマイニングって何故かOSX(macOS)に対応していない事が多いですよね。面白そうな草コインを見つけても発掘するにはWindowsかLinuxを利用しないといけないことが多いです。

macOSでもVirtualBoxなどの準仮想化環境を使うことでそれなりの効率でLinux上からのマイニングができます。ただ少しだけ重厚長大気味のためセットアップが大変で、mac使いとしては日頃から気軽に掘れないのが悩みどころでした。

そこで今回は xhyve というOSX向けの仮想化ハイパーバイザーを使って、macOS上で簡単にUbuntuの環境を構築していきたいと思います。

(ubuntu on xhyve on macOS になるイメージです)


xhyveセットアップ

xhyve のビルドはすごく簡単です。リポジトリをcloneしておもむろにmakeするだけです。(もちろん事前にCommand Line Toolはインストールしておいてください)

$ git clone https://github.com/mist64/xhyve

$ cd xhyve

$ make

$ sudo cp build/xhyve /usr/local/bin

これだけ!すごく簡単です。

-v でバージョンが見れるので下記のように表示されれば問題ありません

$ xhyve -v

xhyve: v0.2.0-40-g1f1dbe

xhyve is a port of FreeBSD's bhyve hypervisor to OS X that

works entirely in userspace and has no other dependencies.

Homepage: https://github.com/mist64/xhyve

License: BSD

ubuntuインストール

今回使うLinuxのディストリビューションはubuntuにしました。各種ビルドする手順だったり apt-get でインストール手間が省けるためにこれにしています。

起動イメージのダウンロード

インストーラより最小のイメージ(initrd, vmlinuz, mini.iso)を落としてきます

$ mkdir vm

$ cd vm/

$ curl -O http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/initrd.gz

$ curl -O http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/ubuntu-installer/amd64/linux

$ curl -O http://archive.ubuntu.com/ubuntu/dists/trusty-updates/main/installer-amd64/current/images/netboot/mini.iso

仮想ディスクの作成

今回は16GBの仮想ディスクを用意します。(8GBとかでも問題ありませんが、今後色々入れていくのである程度大きいほうがいいかもしれません)

先程の mini.iso イメージをダウンロードしたディレクトリにて

$ dd if=/dev/zero of=storage.img bs=1g count=0 seek=16

これでstorage.imgというファイルが出来上がっていると思います。

Content image
16Gよりも少し大きくなりますがこれで成功です

ubuntuの初期インストール

下記コマンドを入力しubuntuのインストールを行いましょう

なお、xhyve経由でubuntuのインストールをするのでmacOSには影響はありませんが、腕に自信のない方はParallels DesktopだったりVirtualBoxなどを使うほうがいいかもしれません。

$ sudo xhyve \

  -c 1 \

  -m 512M \

  -s 0:0,hostbridge \

  -s 2:0,virtio-net \

  -s 3,ahci-cd,mini.iso \

  -s 4,virtio-blk,storage.img \

  -s 31,lpc\

  -l com1,stdio \

  -f "kexec,linux,initrd.gz,earlyprintk=serial console=ttyS0 acpi=off root=/dev/vda1 ro"

インストーラが起動すると10年近く前に見たようなCUIのインストール画面が出ますので、これを使ってインストールを進めていきます

Content image
1990年頃だったらよく見たおなじみの画面

ここからまだ長いですがインストールを続けていきます。

"Choose Laungage" は English で言語を選択し、インストールを続行していきます。

暫くインストールを進めていくと、"Input your hostname" のように入力を求められることがありますので、適宜入力してください。

私は hostname を macubuntu に、username/password を vivo/vivo で設定しました。(home directoryの暗号化はしていませんがお好みで設定するといいでしょう)

"Configure the clock" でタイムゾーンの設定を行います。"Asia/Tokyo" で良いか?のように聞かれると思いますので、正しければそのまま進めましょう。

Partition disks の設定は少し悩むかもしれませんが、今回作成した16GBのイメージが選択されていれば問題ないので、Guidedのまま進めて、パーティションを仮想ディスクに書き込みましょう。

Content image

"Update install" や "Software selection" を聞かれるので、時間に余裕があるときはアップデートして、必要なソフトウェアを選択しましょう。

私の場合は "Basic Ubuntu server" と "OpenSSH server" を選択してインストールを開始しました。

しばらくインストールが進むと、 "Install the GRUB boot loader to the master boot record?" と聞かれるので "<Yes>" 選択して進みます。

"Finish the installation." をいくつか進めると下記画面のように "Installation complete" が表示されるので、ここでいったん <Go Back> を選択します。

Content image
Installation completeが目印

こうすることでインストールを中断してメニュー画面を表示することができます。

Content image
CUIなメニューです

この画面で、"Execute a shell" を選択し、xhyveの仮想マシン上のコンソールから下記を入力します

# ip addr show dev eth0 | grep 'inet ' | cut -d" " -f6 | cut -d/ -f1

こうすることで、この仮想マシンのipアドレスが取得できたと思います。この後にmacから操作するので、このipアドレスはメモ帳などに残しておきます。

私の場合は 192.168.64.3 でした

次に、initrd, vmlinuxの送信するため、下記のようにします

# cd /target

# tar cf - boot/initrd.img-* boot/vmlinuz-* | nc -l -p 1234

こうすることで、受信待機中となります。

この間に、母艦となるmac側から下記コマンドを入れて受け取ります。

$ nc 192.168.64.3 1234 | tar xf -

無事転送が終わったら、インストーラを起動している xhyve の方に戻り

# exit

として抜け、"Finish the installation" を選択してubuntuのインストールを終わらせましょう

ubuntuの起動と初回セットアップ

次に mac から 下記スクリプトを用意します。ここでは "start.sh" としておきましょう

#!/bin/sh

cd "$(dirname $0)"

MEM="-m 1024M"

SMP="-c 1"

KERNEL="$(ls boot/vmlinuz-* | sort -u | tail -1)"

INITRD="$(ls boot/initrd.img-* | sort -u | tail -1)"

CMDLINE="earlyprintk=serial console=ttyS0 acpi=off root=/dev/vda1 ro"

NET="-s 2:0,virtio-net"

IMG_HDD="-s 4,virtio-blk,./storage.img"

PCI_DEV="-s 0:0,hostbridge -s 31,lpc"

LPC_DEV="-l com1,stdio"

sudo xhyve ${MEM} ${SMP} ${PCI_DEV} ${LPC_DEV} ${NET} ${IMG_HDD} -f "kexec,${KERNEL},${INITRD},${CMDLINE}"

このスクリプトを用意したら、ubuntuの起動になります。

$ chmod +x ./start.sh

$ ./start.sh

start.sh を起動すると次のような画面が流れ、ubuntuのログイン画面になると思います。

Content image
CUIな起動画面
Content image
init 3 なログイン画面は懐かしい方も多いのでは

インストール時にvivo/vivoで作っているため、ログインを行い、初期セットアップを行っていきます。

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get dist-upgrade

$ sudo apt-get install vim

$ sudo update-alternatives --set editor /usr/bin/vim.basic

sudo を打つ時にいちいちパスワードを入れるのも面倒なため

$ sudo visudo

では、下記のように入力しておくと便利です

vivo ALL=NOPASSWD: ALL

avahi-daemon も入れていきましょう。母艦から "vivo@macubuntu.local" のように入れるように。

$ sudo apt-get install avahi-daemon

後はお好みでいくつかインストールを行い、一度シャットダウンしておきます。

$ sudo apt-get install -y xterm

$ echo "export TERM=xterm-256color" >> $HOME/.bashrc

$ sudo shutdown -h now

その後、start.shより起動させ mac から下記コマンドで入れれば成功です

$ ssh vivo@macubuntu.local

cpuminer-neoscryptのビルド

今回も前回に引き続き、VIVOのビルドを行いたいので、cpuminer-neoscrypt を使っていきます。

(ちなみに、vivoって響きがいいですよね。viva のような響きがあって。)

先にライブラリのインストール

いつも同じライブラリを入れていますが、今回も忘れずに入れていきます。

$ sudo apt-get install -y git openssl

$ sudo apt-get install -y g++ make automake autoconf m4

$ sudo apt-get install -y autotools-dev

$ sudo apt-get install -y pkg-config build-essential

$ sudo apt-get install -y python-software-properties

$ sudo apt-get install -y libssl-dev libcurl4-openssl-dev

$ sudo apt-get install -y libjson0 libjson0-dev libjansson-dev

$ sudo apt-get install -y libgmp-dev libgmp3-dev

minerdのビルド

macOSだとマクロの除去だったりパスの設定が面倒なのですが、macで動いているubuntuなため、すんなりビルドできます。(これすごく感動します)

$ mkdir vivo

$ cd vivo

$ git clone https://github.com/ghostlander/cpuminer-neoscrypt

$ cd cpuminer-neoscrypt/

$ ./autogen.sh

$ ./nomacro.pl

$ ./configure CFLAGS="-O2 -fomit-frame-pointer -DASM -DOPT -DMINER_4WAY -DSHA256"

$ make

minerd が生成されていれば成功です。

マイニング開始

前回と同じく zergpool を利用します。

なお、start.sh で SMP の数を -c 1 のままにしていると、CPUが全然使われないため、お使いのマシンに合わせて -c の数を調整してください。

Content image
-c 1の結果3スレッドにしていますが、1 threadあたりの性能が低いです...。

私の場合は macmini late 2014 の Core i5 を使っているため、-c は 3 としました(-c 4でも良いのですが、3のほうが結果が良かったため)

start.sh の

SMP="-c 1"

SMP="-c 3"

にして再起動します。

気になる性能は

モノが違うので比べるものではないのですが、前回のNanoPi Neo が、0.780KH/sに対して

Content image
-c 3で3 cpuを使うようにしたもの

平均して 10.1423 KH/s も出る結果となりました。

想像はしていましたが、約12倍強 も性能がでるようです。(CortexとCore i5を比べるのもアレゲですが...)

まとめ

MacBookProやMac miniをお持ちの方で、草コインを掘りたいんだけど、windowsかlinuxでしかビルド方法が提供されていなくて、泣く泣くマイニングを諦めていた方はこの方法でビルドするのはいかがでしょうか?

なお、ビルドが大変な cpuminer-opt もこの方法ですんなりビルドできます。

それでは

Have a Fun!




ちなみに 私の VIVO アドレスはこちらです

VQb2BFHbML5B29XiFBD3ArEKCJBnFG92mh

(vivo:VQb2BFHbML5B29XiFBD3ArEKCJBnFG92mh)

ちなみに 過去記事はこちら → https://alis.to/users/eito

公開日:2018/05/26
獲得ALIS:14.30
eito's icon'
  • eito
  • @eito
エイトーです。仮想通貨中心に為になる記事が書けたらいいなと思ってます。草コイン大好き。本業はプログラマ/エンジニア

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

Like token Tip token
46.60 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

Like token Tip token
38.31 ALIS
Eye catch
クリプト

Eth2.0のステークによるDeFiへの影響を考える。

Like token Tip token
44.10 ALIS
Eye catch
クリプト

NFT解体新書・デジタルデータをNFTで販売するときのすべて【実証実験・共有レポート】

Like token Tip token
120.79 ALIS
Eye catch
クリプト

【初心者向け】JPYCを購入して使ってみました!

Like token Tip token
30.03 ALIS
Eye catch
クリプト

コインチェックに上場が決まったEnjin Coin(エンジンコイン)コインを解説

Like token Tip token
21.49 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

Like token Tip token
61.20 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

Like token Tip token
947.13 ALIS
Eye catch
クリプト

バイナンスの信用取引(マージン取引)を徹底解説~アカウントの開設方法から証拠金計算例まで~

Like token Tip token
3.50 ALIS
Eye catch
クリプト

Uniswap(ユニスワップ)で$ALISのイールドファーミング(流動性提供)してみた

Like token Tip token
59.99 ALIS
Eye catch
クリプト

Uniswap v3を完全に理解した

Like token Tip token
18.92 ALIS
Eye catch
クリプト

【DeFi】複利でトークンを運用してくれるサイト

Like token Tip token
54.01 ALIS