为什么80%的码农都做不了架构师?>>>
初始设置 & 预览
如果你还不清楚比特币是啥, 请先看 这里.
完成本文的设置后, 你的树莓派将成为USB比特币挖矿设备的控制器及状态显示器. 本文集成了一块LCD屏到树莓派上来显示散列率, 错误率, share数据, 网络难度, 当然还有总挖矿速率.
配备:
一块树莓派+ 装好Raspbian的SD卡并配好网络接入
Adafruit 16x2 LCD屏幕 + 键盘套装
I2C, & Adafruit 树莓派代码库
USB比特币挖矿设备
带电源USB Hub (因为USB供电的挖矿设备的需要)
矿池账号
PC电脑(只用来配置)
在开始教程之前你需要确认树莓派完好无损, 能够连接网络, 并且组装上了Adafruit的LCD屏.
下面列出了些基础的教程:
L1. 为树莓派准备一张SD卡
L2. 首次配置
L3. 网络设置
L4. GPIO设置
Adafruit 16x2 LCD屏 + 键盘
你确定配好了以上内容, 再接着往下看!
USB挖矿设备在写本文的时候, 专用的比特币挖矿硬件可能有点难找, 但是下一代基于ASIC的设备的出现会改变这一情况. 一些开源项目及相关信息可以在BitcoinTalk论坛上找到. 在本文里我将通过BitMit来调用ASICMiner USB矿机刀片. 虽然本教程使用这一型号的USB矿机刀片, 其他刀片也只需要做一些小修改就可以与cgminer v3.1.1兼容. |
软件安装
cgminer
Cgminer是一个支持 SHA-256和 scrypt算法的跨平台挖矿程序, 能够驱动大部分挖矿硬件.
要想在树莓派上安装cgminer, 我们首先需要通过ssh或者远程桌面连接树莓派.
在登录后, 输入以下命令将预装软件全部更新到最新版本:
sudo apt-get update
在更新结束之后, 输入以下命令安装 cgminer的依赖库:
sudo apt-get install libusb-1.0-0-dev libusb-1.0-0 libcurl4-openssl-dev libncurses5-dev libudev-dev
在安装好依赖之后, 输入以下命令下载cgminer软件:
wget http://ck.kolivas.org/apps/cgminer/3.1/cgminer-3.1.1.tar.bz2
提示: 这不是最新版本的cgminer, 当前版本 (3.2.2)在 Raspbian上与USB矿机刀片通讯有问题.
在下载完成之后, 输入以下命令解压缩:
tar xvf cgminer-3.1.1.tar.bz2
跳转到刚解压缩的cgminer目录下:
cd cgminer-3.1.1
配置程序使用USB矿机刀片:
./configure --enable-icarus
提示: 其他类型的设备需要特定的"--enable"参数, 更多信息请查看cgminer的README.
最后, 编译程序:
make
… 到此cgminer安装结束.
PiMiner
PiMiner软件会持续收集挖矿设备的信息, 格式化要显示的信息, 并响应16x2 LCD屏上的按键.
输入以下命令进行安装:
git clone https://github.com/adafruit/PiMiner.git
在下载完成后, 我们要先设置矿机.
配置设置
现在我们来创建一个配置文件来储存 cgminer使用的设置.
输入以下命令创建并编辑文件:
sudo nano cgminer.conf
使用你自己的矿池账号替换掉下面模板里的"PoolAddress:Port", "UserName.WorkerName", 和"Password", 然后复制粘贴到 nano编辑器中:
{ "pools" : [ { "url" : "PoolAddress:Port", "user" : "UserName.WorkerName", "pass" : "Password" } ] , "api-listen" : true, "api-port" : "4028", "expiry" : "120", "failover-only" : true, "log" : "5", "no-pool-disable" : true, "queue" : "2", "scan-time" : "60", "worktime" : true, "shares" : "0", "kernel-path" : "/usr/local/bin", "api-allow" : "0/0", "icarus-options" : "115200:1:1", "icarus-timing" : "3.0=100" }
上面包含了"icarus"的行指定了USB矿机刀片, 如果你用其他不同的挖矿设备请更改数值!
例如, 你使用 Slush's pool来挖矿, 就需要将 "PoolAddress:Port"替换为:
"http://stratum.bitcoin.cz:3333",
在修改好配置文件后:
按ctl+x退出编辑
按y键确认更改
按回车键保存文件
现在设置就保存好了. 我们在等会启动 cgminer时会用到这些.
开始挖矿
现在你可以把你的USB挖矿设备脸上树莓派了.
如果挖矿设备是靠USB供电的(例如USB挖矿刀片, 或者Klondike1), 你需要将其通过有源hub链接, 再将hub与树莓派连接. 挖矿设备如果有外部电源就最好不过了,可以直接连接或者通过hub连接都行.
运行cgminer
所有设备都连好之后, 我们需要找到每个设备的地址. 输入以下命令可列出所有USB设备序列号:
ls /dev/*USB*
执行结果如下:
上面显示了两个USB序列号地址: /dev/ttyUSB0和 /dev/ttyUSB1
通过"-S"参数传给cgminer.
输入以下命令将cgminer作为后台进程执行:
把"/dev/ttyUSB0"和"/dev/ttyUSB1"参数换成你连接设备的地址 -例如, "-S /your/deviceAddress"
sudo nohup ./cgminer-3.1.1/cgminer --config /home/pi/cgminer.conf -S /dev/ttyUSB0 -S /dev/ttyUSB1 &
对于其他USB挖矿设备, 用下列命令, 请先查看cgminer的README文件以确定要用哪个参数 (并移除尖括号):
sudo nohup ./cgminer-3.1.1/cgminer --config /home/pi/cgminer.conf &
(在这里你可能需要点击回车来恢复命令行提示符)
运行PiMiner
输入以下命令把PiMiner作为后台进程启动:
sudo python PiMiner/PiMiner.py &
这时LCD屏应该亮起并且会显示你的矿机信息:
控制
LCD屏板上的按钮可以用来切换显示信息
上/下键
按上下键会循环切换不通的有效信息:
屏1:
• 接收到的share, 拒绝的share, 硬件错误
• 平均每秒散列率
屏2:
• 使用矿池地址 & 端口
• 当前帐号名称
屏3:
• 持续运行时间
• 当前网络难度
屏4:
• 挖矿设备数量
• 总计错误率
左/右键
当一行超过16个字符时可以使用左右键来调节文字位置. 通常用在查看矿池信息时 (看屏2)
几秒后文字位置会自动重置到初始位置.
选择键
在使用单色显示时按下选择键会切换显示器背光开关, 在使用RGB显示时会切换颜色.
如何停止?
Cgminer 3.1.1不支持 USB热插拔. 所以在添加或移除USB挖矿设备, 你需要先关闭挖矿操作.
选择 1: 使用选择键关机
(来自 Raspberry Pi WiFi Radio project)
最简单的方法按住选择键三秒钟就停了. 按了之后, 在LCD背光关闭茜会显示如下信息:
树莓派会通过关机程序来结束所有进程. 你需要在拔下或重启树莓派茜等待30秒.
选择 2: 不关机停止挖矿
如果你希望在不关闭树莓派的情况下停止挖矿, 用ssh或者远程桌面树莓派, 输入以下命令.
首先, 要停止运行在后台的PiMiner脚本, 我们需要输入下列命令来查找其进程ID:
ps aux | grep PiMiner
输入命令获取列表:
上面列表可以得到 PiMiner的进程ID (在这里是4097).
输入命令来停止PiMiner:
sudo kill 4097
输入以下命令来查找cgminer的进程ID:
ps aux | grep cgminer
现在使用上面列出的进程ID来停止cgminer:
sudo kill 10343
到此 - 采矿停止!