0x00 背景

最近chia挖矿可太火了,可惜我运气太差,一个币都没挖到,算了还是直接加入矿池吧。可是硬盘容量已经p完了,用台式机挂机的话,怕是电费都不够亏吧。
之前在chia的wiki上面,我看到了一个用Rock PI4b组装的矿机,很是心动。可惜Rock pi的生态比Raspberry pi逊色很多,而我又不使用官方软件进行耕种,到时各种适配起来可是个麻烦事。所以,在对比之下我还是选择了Raspberry Pi4B。

0x01 硬件准备

1. 一块树莓派Raspberry Pi4B

2. sata转usb3.0的易驱线(带12v供电端口的)我选择的是绿巨能的,便宜好用

3. ATX电源一个(根据你硬盘的数量来选择功率)我这里用的是家里闲置的200W 长城电源

4. 大4Pin接口转3.5mm 12V DC接口 转接线若干条

0x02 兜兜转转(仅记录过程 解决方案可以直接看下一节)

将可执行文件上传到树莓派上面,直接运行的时候 会提示Exec Format Error,因为树莓派是ARM架构的,而可执行文件是AMD64架构的。
可执行文件的信息可以使用file 可执行文件查看,如hpool-miner-chia这个可执行文件的信息就是:

ubuntu@ubuntu:~/linux$ file ./hpool-miner-chia 
./hpool-miner-chia: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), statically linked, Go BuildID=or4EJC7edY1jm53BAfGR/s_m3PpAuyo9gsjpS3x4h/Eg54hBo5Pfw4tHBF5qZ0/g1_NAK8AbL3R_FIeKSr6, stripped

也可以使用readelf命令查看,如readelf -h python,得到的是ELF Header中的项Magic,第五个数 02时为64位,01时为32位。

1. box86方案

第一次尝试是在raspberry os上面安装box86,但是运行的时候发现box86并不支持64位可执行文件,遂作罢。

2. exagear方案

这个方案并未尝试,因为exagear 跟box86一样,只支持32位的可执行文件。

3. qemu方案

使用sudo apt-get install qemu-user命令安装qemu-user,这个命令会自动安装qemu-user和binfmt,binfmt会通过判断可执行文件的类型,自动选择是否通过qemu来执行该文件。

这个方案虽然是可行的,但是探索的过程也是十分曲折:

环境: 32位raspios + qemu-user + hpool-miner-chia v1.0.5
启动的时候提示:dlopen err: Dynamic loading not supported
然后就是不认plot文件,报open fail 和 Invalid file的错误,但是连接矿池正常,只是没认到plot文件,没有算力,hpool上面也不显示矿机在线。

环境: 32位raspios + qemu-user + hpool-miner-chia v1.0.4.1
启动的时候不提示dlopen err: Dynamic loading not supported了
但仍然不认plot文件,报open fail 和 Invalid file的错误,但是连接矿池正常,只是没认到plot文件,没有算力,hpool上面也不显示矿机在线。

环境: 64位raspios + qemu-user + hpool-miner-chia v1.0.4.1
启动的时候提示qemu: uncaught target signal 11 (Segmentation fault) - core dumped 直接罢工了

在28号下午,hpool 发布了 1.1.0 版本的 hpool-miner-chia,由于官方说下一个版本会支持arm,但是实测并没有,没有就没有吧,试一下能不能用qemu运行

环境: 32位raspios + qemu-user + hpool-miner-chia v1.1.0
启动的时候不提示dlopen err: Dynamic loading not supported了
但仍然不认plot文件,报open fail 和 Invalid file的错误,但是连接矿池正常,只是没认到plot文件,没有算力,hpool上面也不显示矿机在线。

0x04 最终方案

我曾一度想着是不是 usb3.0转sata 转接线坏了,就在虚拟机上面开了ubuntu,连上了硬盘,运行一切正常。

那么问题应该就是出在树莓派上面了,由于之前下载了ubuntu arm64的系统,但是那晚上挂着测试树莓派稳定性的时候,把TF卡烧了,就没有用过这个ubuntu系统。然后我就想,会不会跟系统有关呢,试了那么多个版本的可执行文件都是一个结果。于是拆下TF卡,烧录ubuntu arm64的系统,挂硬盘

# 查看待挂载设备列表
sudo fdisk -l

# 挂载硬盘 我在这里是将/dev/sda1挂载到当前目录的ploted文件夹 
sudo mount /dev/sda1 ./ploted

# 解除挂载
sudo umount /dev/sda1

硬盘挂载好后,把hpool-miner-chia v1.1.0 版本的执行文件上传上去,sudo apt-get install qemu-user安装qemu-user。

qemu-x86_64 ./hpool-miner-chia运行。竟然好了!!

虽然不报错,也能认plot文件了,但是挂了一晚上测试发现,这个软件会自己退出。

这好办,上supervisor就好了,具体步骤请参考这篇博客自行配置。

最后附上ubuntu的版本: ubuntu-20.04.2-preinstalled-server-arm64+raspi.img.xz

聪明的彦祖们应该知道怎么下载的。