2025年2月24日月曜日

AwesomeMiner+zpoolでマイニングをやってみる

SBIの株主優待で仮想通貨をもらった。暗号資産の口座ができてしまったので、試しにマイニングをしてみようと思った。

メインで使用しているPCは9年前に買ったMSIのノートPC。一応GPUも乗っているゲーム用ノートPCだったが、windows 11も入らない、かなり時代遅れの代物。

こんなものでどうにかなるのか分からないが、まあとりあえずやってみた。まずNiceHashというのをやってみようとして無理だったので、AwesomeMinerというのをやってみた。

NiceHash

とりあえず検索して目に入ったNiceHashをやってみようとした。ユーザ登録してログインすると、身分証明書を送らされそうになる。

いったん保留して、まずアプリを入れてみる。どっちでもよさそうだが、とりあえず両方ダウンロードする。


firefoxが警告を出してきたが、検索すると、web経由でマイニングさせるツール?と誤検知?しているといったようなことだったので、一応信用して入れてみる。

ところが、実行してみたところ、GPUを認識していないようであった。ソースはgithub公開されているようだったので見てみようかと思ったが、たぶん以下のあたりで、この9年前のPCは対象外なんだろう。

Easy one-click GPU mining for NVIDIA GPUs using microarchitecture (compute capability) SM 5.3+.

 ということでNiceHashはあきらめた。身分証明書を送る前でよかった。

AwesomeMiner+zpool

次に調べたのはAwesomeMinerというもの。いろいろ試行錯誤したが、要は以下を設定しておけばよさそうだった。

インストールしてAdd Newminerで、Managed Profit Miner=>Profit ProfileでnVidia GPUを選ぶ。あとはとりあえずOKにしてFinish。

よくわかっていなかったが、どうやらマイニングをするプログラムとその結果をためておくところ?(pool)は別物のようだ。今どきは個人でマイニングしても太刀打ちできないので、みんなでpoolして、収益を分け合おうという事らしい。

このpoolにもいろいろ有り、どれに参加するかで利益が変わるということのようだ。とりあえずビットコインのアドレスがあれば使える(何の登録も必要なさそう)zpoolというのを使ってみることにした。zergpoolというのも同じやり方で使えるようだ。

OptionsのProfit Switchingでビットコインアドレスを入れておく。zpoolとかzergpoolはいろいろなアルゴリズムでマイニングした結果を、この入力したビットコインアドレスに換金してくれるという事だと思われる。

とりあえずstartしてみる

 

図はいろいろやった後だが、どう考えても電気代の方が高い。やればやるだけマイナスである。こんな時代遅れPCでやるほうが間違っていたという事だ。

マイニング結果はzpoolのwalletで、bitcoinアドレスを検索すると出てくる。

zpool以外にもいろいろ設定できるようだが、分散してしまうので、どれか一つに絞ったほうが良さそうだ。半日~1日くらい動かして、0.00000011BTC、Minimum payoutが0.00075000BTCとあるので、払い出せるほど溜まるまで3500~7000日くらいかかる計算だ。空き時間に小銭でも稼げたらと思ったが、どう考えてもやらないほうがいい。

調整内容

最初は一日0.2円とかだった。いろいろやって改善されてこれである。無意味だったが、一応何をやったか記録しておく。

やったのはベンチマークをとること。

Tools->Benchmarkで計算アルゴリズムの一覧が出てくる。(設定してあるpoolが対応しているもの?)

 

Currentの列がこのPCの計算能力だが、最初は入ってないか、一般的な値?が入れられていたりする。ここで一通り計算して結果を保存しておく。

マイニング中はProfit Switchingのところに、どのアルゴリズムをどういう基準で選んでいるか表示されるようだ。poolとアルゴリズムxPCの計算能力で最も収益が高いものが選ばれて計算されていると思われる。

 

benchmarkをやらずにstartした場合、この指標がなくて、このPCで計算できないアルゴリズムが選ばれたりしており、収益0.02円とかになっていた。(そういう時は計算を実行しているコンソールログにはやれGPUのメモリが足りないだのなんだのとエラーが出ており、まともに計算できてないようであった。)

一応benchmarkを一通り実行することで、計算できないものが選ばれなくなった。ただ、この結果、選ばれるのはCPUアルゴリズムばかりである。GPUが載っている意味なし。NiceHashに対象外されるのも道理だな。 

2025年2月23日日曜日

podcast & mp4ファイルプレイヤー

おーい!クラウド聞けよー!ということでTBSラジオ「ハライチのターン!」をradikoプレミアム(を録音したやつ)とpodcastで聴いている。テレワークや通勤中に聞いているが、問題がいくつかある。

  • できれば交互に放送回とアフタートークを聞きたいが切り替えが面倒
  • 録音ファイルとpodcastのボリュームが合ってない
  • テレワーク中電話がかかってきたりしたらすぐに止めたい(マウスカーソルをボタンに合わせたり、Fnキーを押しながら~とかは煩わしい)
  • pauseした後、次に起動したら続きから聞きたい
  • 車の中で通勤中に聞きたい(androidで動いてほしい)

これを解決できるちょうどいいアプリがあるか探してみたが、当然というかこんなニッチなものは見つからない。

仕方ないので、windowsとandroidの両対応が将来的に計画されていたtauriで(当時 tauri1.0)ハライチのターン!用プレイヤーを作ってみようとした。

  https://github.com/tthogehoge/TurnPlayerTauri

 


podcastのURLの取得方法はよくわからないが、https://note.com/toru_a/n/nbc260312bdfbを参考にやってみたら取得できた。

 ファイルとpodcastでpodcastの方がボリュームが小さい問題は、とりあえず右下のボリュームで、ファイルの方のボリュームを下げることにした。本当はreplaygainみたいなことをやってボリュームを均一化したかったができなかった。

 F1キーですぐに停止、F2キーで再生する。とにかくF1を押せば止まるようにしたかった。逆にwindows全体でF1/F2キーが効かなくなるが、これを動かすためだけのPCで動かしているので問題ない。

tauri2.0に移行してandroid用にもビルドできるようにはなったが、webviewの問題なのか、androidだとm4aファイルがどうしても再生できなかった(再生できるファイルもある。録音ソフトの問題かもしれない)。mp4ファイルをいろいろいじったりすれば何とかwebviewでも再生できそうだったが、ファイルアクセスの権限が分からな過ぎて断念。 android用は別で作ることにした。(書けたら書く)

 android用はさておき、とりあえず自分が使う分には問題ないものができた。細かい部分は結構苦労したが、割とすぐ使えるものができて最近のweb技術はすごいなーと思ったりした。ただ、作法が分からな過ぎて専門でやっている人から見ると内部は無茶苦茶になっている気がする。

2018年3月22日木曜日

Tカード

クレジット付きTカードが期限切れになって、新しいカードが送られてきた。
日ごろから同じIDにポイントがたまるTカードが2枚あればいいのになーと思ってたんで、古いクレジットカードを2枚目のTカードとして使えるか試してみた。
何食わぬ顔でコンビニで出してみたんだがダメだった。
Tカードにも期限が設定されていたようだ。残念。

2017年2月26日日曜日

ハードディスク換装 ubuntu

ハードディスクがなんかエラーを吐きはじめた


[ 1641.504719] ata1.00: exception Emask 0x0 SAct 0x7fff SErr 0x0 action 0x0
[ 1641.504722] ata1.00: irq_stat 0x40000008
[ 1641.504724] ata1.00: failed command: READ FPDMA QUEUED
[ 1641.504727] ata1.00: cmd 60/08:08:30:50:65/00:00:5c:00:00/40 tag 1 ncq 4096 in
                        res 41/40:08:30:50:65/00:00:5c:00:00/00 Emask 0x409 (media error)
[ 1641.504728] ata1.00: status: { DRDY ERR }
[ 1641.504729] ata1.00: error: { UNC }
[ 1641.538356] ata1.00: configured for UDMA/133
[ 1641.538375] sd 0:0:0:0: [sda] tag#1 FAILED Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
[ 1641.538378] sd 0:0:0:0: [sda] tag#1 Sense Key : Medium Error [current] [descriptor]
[ 1641.538380] sd 0:0:0:0: [sda] tag#1 Add. Sense: Unrecovered read error - auto reallocate failed
[ 1641.538382] sd 0:0:0:0: [sda] tag#1 CDB: Read(10) 28 00 5c 65 50 30 00 00 08 00
[ 1641.538384] blk_update_request: I/O error, dev sda, sector 1550143536
[ 1641.538396] ata1: EH complete
ta

再起動したらinitramfsで止まる。
とりあえずここを参考にfsckでbadblockを避けるようにする。(sda6がroot)

(initramfs)$ fsck -t -y -f -c /dev/sda6
(initramfs)$ reboot

とりあえず起動はするようになったが寿命だろう。
(seagate2TBだ。もっと前に買ったHGSTのはまだ大丈夫そう。新しい奴もHGSTのやつにしたかったが大容量のものは売ってなかった。仕方ないのでWD)
動いているうちに何とかしたい。再インストールしようかとも思ったが、いろいろカスタマイズしているので、もう一度やるのはめんどくさい。
新しいハードディスクをつなげてパーティション分けてコピーする。
/bootと/を分けてないので分けている人は注意。

パーティションを分ける


fdisk /dev/sdb

g create a new empty GPT partition table
DOSパーティションタイプは古いらしい。GPTとかいうやつにしてみる。
n add a new partition
swapとrootを作る
→間違いだった。UEFIでブートできるようにgrub用領域とかESP領域とかを作る必要があったようだ。(参照リンク
t change a partition type
swapはタイプを変更しておく
w write table to disk and exit
書き込む

フォーマット

mkswap /dev/sdb1
mkfs.ext4 /dev/sdb2

適当にマウントしてコピーする。


tar cSpf - . | tar xpf - -C /mnt/dst/

(linuxを2つ入れていたので壊れてない方から実行した。
ない場合はCD起動とかrsyncで--one-file-systemでコピーとかしたらいいはず)

rootのマウント先を変えておく


UUIDをチェック

$ ls -l /dev/disk/by-uuid/
合計 0
lrwxrwxrwx 1 root root 10  2月 26 02:35 6b0b30e8-略 -> ../../sda1
lrwxrwxrwx 1 root root 10  2月 26 03:53 8e7422d4-略 -> ../../sdb1
lrwxrwxrwx 1 root root 10  2月 26 02:35 97ecc96f-略 -> ../../sdb2
lrwxrwxrwx 1 root root 10  2月 26 02:35 d227743f-略 -> ../../sda6

コピー先のfstabを編集してチェックしたUUIDを置き換えたい先のUUIDに書き換える
# / was on /dev/sda6 during installation
UUID=d227743f-略 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=6b0b30e8-略 none            swap    sw              0       0
↓みたいに変える
# / was on /dev/sda6 during installation
UUID=97ecc96f-略 /               ext4    errors=remount-ro 0       1
# swap was on /dev/sda1 during installation
UUID=8e7422d4-略 none            swap    sw              0       0

次はgrubをなんとかしたい


新しい方で起動させ、そっちの方からgrubを入れる方針
update-grub2を実行すると自動的に他にインストールされているディストリを探してセットしてくれる

$ sudo update-grub2
Generating grub configuration file ...
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-64-generic
Found initrd image: /boot/initrd.img-4.4.0-64-generic
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-63-generic
Found initrd image: /boot/initrd.img-4.4.0-63-generic
Linux イメージを見つけました: /boot/vmlinuz-4.4.0-53-generic
Found initrd image: /boot/initrd.img-4.4.0-53-generic
Found memtest86+ image: /boot/memtest86+.elf
Found memtest86+ image: /boot/memtest86+.bin
Found Ubuntu 16.04.1 LTS (16.04) on /dev/sda5
Found Ubuntu 16.04.1 LTS (16.04) on /dev/sdb2  <== 新しいやつ

再起動して新しいやつから起動
起動したかと思ったが、root=UUID=のところが新しいUUIDに変わってなかった。
ただのコピーである/boot/grub/grub.cfgから拾ってきているからだろう。
eキーを押して手作業でUUIDのところを変更してctrl-xで起動する。

linux   /boot/vmlinuz-4.4.0-53-generic root=UUID=d227743f-略 ro  quiet splash $vt_handoff
起動したらそっちでgrubをインストールする。

$ sudo grub-install /dev/sdb
grub-install: warning: this GPT partition label contains no BIOS Boot Partition; embedding won't be possible.
grub-install: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
grub-install: エラー: will not proceed with blocklists.

エラーがでてインストールできなかった。まずい。
以下回復作業を色々試行錯誤。

どうやらGPTにしたのでUEFI用の何かをやらないといけなかったようだ。
UEFIでブートできるようにESP領域とやらを作る必要があるらしい。
また、grub用の領域も必要らしい。

いったん旧OSで起動し、ここを参考にgdiskでswapを削除、grub用の領域とESP領域とを作成。

1: サイズ2M, タイプ EF02(BIOS boot partition)
2: サイズ+512M, タイプ EF00(EFI System)
6: サイズは残りを割り当てる, タイプ Linux swap

パーティションIDがずれるのでsを押してsort
sdb2とかの番号が変わるので、うっかり防止のため再起動
mkswapをやり直し、UUIDが変わるのでfdiskを再編集した。

$ sudo grub-install /dev/sdb 

で、BIOSの設定を変えて再起動し確認する。
一度パーティションIDをsortする前にgrub-installしてその後sortしたら
grubのrescueで止まってしまったが、もう一度grub-installしたらOKだった。
最後、ここを参考にして、壊れているパッケージをチェックした。

$ sudo debsums_init
$ sudo debsums -cs
見つかったパッケージを
$ sudo apt install --reinstall 見つかったパッケージ

一応これでOKのはず。

2016年9月10日土曜日

flash player 23 beta for linux

今はpipelightを使ってflashの最新を使っている。
http://tthhfugapiyo.blogspot.jp/2015/07/pipelight.html

どうやらversion23からlinux版が復活しそうなようだ。(2ch情報)
pipelightは結構クラッシュするし起動が遅いので、早速移行してみる。

1.ダウンロード

http://labs.adobe.com/downloads/flashplayer.html
linux版64bitを取ってくる。

libflashplayer.so

2.有効化

pipelightを無効にして、~/.mozilla/pluginsに置いたが、古い方を優先してしまっている模様。
firefoxの設定で片方無効化しようとしても、両方無効化されてしまう。(同じプラグイン名だから?)
しょうが無いので以下にaptで入れたもの(というかaptで入れたinstallerが取ってきたもの?)
が置いてあるので、置き換えた。

/usr/lib/flashplugin-installer
動かしてみたら意外と普通に動いている。

3.デュアルディスプレイの問題

デュアルディスプレイの片面でフルスクリーンにしておき、もう片面で作業しようとすると、
フルスクリーンが解除されてしまう。
対応方法を探した。 ↓
http://www.webupd8.org/2012/10/ubuntu-multi-monitor-tweaks-full-screen.html

とりあえず読んでみて簡単そうなのは、libflashplugin.soをバイナリエディタで編集し、
_NET_ACTIVE_WINDOWを別の文字に置き換える
(_AET_ACTIVE_WINDOWとか)という方法。
やってみたらうまく行った。

付録:vimでバイナリエディタ

簡単なバイナリ編集くらいはvimでやりたいので調べてみた。↓
http://d.hatena.ne.jp/rdera/20081022/1224682665

やってみたが、エラーコードみたいなの(bash  command not found endifみたいな感じ)
で置き換えられてデータが飛んでしまう。うまく動いてないようだ。

とりあえず:help hex-editingを読んでちょっと修正。

augroup BinaryXXD
  autocmd!
  autocmd BufReadPre  *.bin let &binary =1
  autocmd BufReadPost * if &binary | silent %!xxd -g 1
  autocmd BufReadPost * set ft=xxd | endif
  autocmd BufWritePre * if &binary | %!xxd -r
  autocmd BufWritePre * endif
  autocmd BufWritePost * if &binary | silent %!xxd -g 1
  autocmd BufWritePost * set nomod | endif
augroup END