Comments (7)
I hacked it to at least start. the bus id that gets returned is 0. I have the system key off of that to return a false if the bus id is 0. to skip that miner in the main loop. I will put together a pull request to show it, but my python skills are no where near as good as yours.
from hiveos-exporter.
@snoby - thanks for the JSON files. I’ll take a look at this either tonight or tomorrow. I don’t have an FPGA card, so this is a case I hadn’t written code for yet
from hiveos-exporter.
@snoby - I'm digging around in the various HiveOS bash scripts to figure out how an FPGA is reported to Hive. A few requests for you:
- Is the FPGA reported in the HiveOS UI? If so, can you provide a screenshot of it as listed with the rest of the GPUs in the rig? I'm curious to see how the device address is reported with it being a USB device.
- If the FPGA is NOT reported in the HiveOS UI, how are you configuring teamredminer in your flight sheet to use the FPGA?
- Please provide the output of the command
usb-devices
I have yet to find anything that looks FPGA specific in the various HiveOS detection scripts that look for hardware. Everything I'm finding is GPU specific. What I'm aiming for is some way to properly detect the FPGA from the monitoring script and provide all the labels that are also provided for the GPUs.
from hiveos-exporter.
It's not listed nor detected in Hive. Only teamredminer sees it. It is a USB device that teamredminer knows about. What's interesting is that HiveOS is more than happy to let teamredminer start and run and report hashrate.
Output of usb-devices
root@AMD:~# usb-devices
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=05.10
S: Manufacturer=Linux 5.10.0-hiveos ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1a.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 4
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=8087 ProdID=0024 Rev=00.00
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=174c ProdID=1153 Rev=00.01
S: Manufacturer=ASMedia
S: Product=AS2115
S: SerialNumber=00000000000000000000
C: #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0403 ProdID=6011 Rev=08.00
S: Manufacturer=Xilinx
S: Product=A-U55N
S: SerialNumber=XFL1XB5NUZGS
C: #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=usbfs
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
I: If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1d6b ProdID=0002 Rev=05.10
S: Manufacturer=Linux 5.10.0-hiveos ehci_hcd
S: Product=EHCI Host Controller
S: SerialNumber=0000:00:1d.0
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 6
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=8087 ProdID=0024 Rev=00.00
C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
root@AMD:~#
It's an odd / complete corner case.
This is the card:
https://www.xilinx.com/products/accelerators/varium/c1100.html
Teamredminer config info for the fpga.
https://github.com/todxx/teamredminer/blob/master/doc/FPGA_GUIDE.txt
I will add that the 0 that is the bus id, seems to be a default, as the usb bus id from the above output is actually "01"
Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0403 ProdID=6011 Rev=08.00
S: Manufacturer=Xilinx
S: Product=A-U55N
S: SerialNumber=XFL1XB5NUZGS
from hiveos-exporter.
@snoby - I put in a minimal change that is likely similar to what you mentioned you had tried previously. In this case, the script still reports hashrate for the FPGA, but many of the labels are filled with "unknown". The card number is also just reported as the bus number from the last_stat.json (which in this case is "0").
I don't know for sure that is the correct approach, but can you test out #4 for me and validate that it works for you? If it does, I'll get it merged and then you can at least get monitoring you need without crashes.
As for proper FPGA support, I likely would need to have that type of hardware to really dive into how to detect it. I don't foresee getting that kind of hardware any time soon.
from hiveos-exporter.
I've been digging further and could use one last bit of information from you. On your rig with the FPGA, can you give me the output of echo '{"command":"summary+devs"}' | nc -w 10 localhost 65078 | jq
? The last_stat.json
output you gave me had zeroes for the hashrate. I'm curious to see what teamredminer itself reports via it's API.
I'm suspicious that HiveOS doesn't even properly pull out the stats from the miner for an FPGA device.
from hiveos-exporter.
root@AMD:~# echo '{"command":"summary+devs"}' | nc -w 10 localhost 65078 | jq
{
"summary": {
"STATUS": [
{
"STATUS": "S",
"When": 1657792952,
"Code": 11,
"Msg": "Summary",
"Description": "TeamRedMiner 0.10.2"
}
],
"SUMMARY": [
{
"Elapsed": 71233,
"MHS av": 70.59,
"MHS 30s": 70.63,
"KHS av": 70590,
"KHS 30s": 70630,
"Found Blocks": 0,
"Getworks": 25774,
"Accepted": 1163,
"Rejected": 0,
"Hardware Errors": 0,
"Utility": 0.9796,
"Discarded": 0,
"Stale": 2,
"Get Failures": 0,
"Local Work": 0,
"Remote Failures": 0,
"Network Blocks": 25561,
"Total MH": 5028024042527,
"Work Utility": 0.9123,
"Difficulty Accepted": 1083.11162715,
"Difficulty Rejected": 0,
"Difficulty Stale": 0,
"Best Share": 0,
"Device Hardware%": 0,
"Device Rejected%": 0,
"Pool Rejected%": 0,
"Pool Stale%": 0,
"Last getwork": 0
}
],
"id": 1
},
"devs": {
"STATUS": [
{
"STATUS": "S",
"When": 1657792952,
"Code": 9,
"Msg": "0 GPU(s) - 1 PGA(s)",
"Description": "TeamRedMiner 0.10.2"
}
],
"DEVS": [
{
"PGA": 0,
"Name": "C1100",
"ID": 0,
"Enabled": "Y",
"Status": "Alive",
"Temperature": 63.09,
"MHS av": 70.59,
"MHS 30s": 70.63,
"KHS av": 70590,
"KHS 30s": 70630,
"Accepted": 1163,
"Rejected": 0,
"Hardware Errors": 0,
"Utility": 0.9796,
"Last Share Pool": 1,
"Last Share Time": 0,
"Total MH": 5028024042527,
"Frequency": 578,
"Diff1 Work": 1121.908951,
"Difficulty Accepted": 1083.11162715,
"Difficulty Rejected": 0,
"Last Share Difficulty": 0,
"Last Valid Work": 0,
"Device Hardware%": 0,
"Device Rejected%": 0,
"Device Elapsed": 71233,
"Memory Temperature": 80,
"Fan Speed": 0,
"Fan Percent": 0,
"Memory Clock": 1250,
"Core Voltage": 0.749,
"BRAM Voltage": 0.854,
"Memory Voltage": 1.197,
"FPGA Power": 80.894976,
"FPGA Activity": 0
}
],
"id": 1
},
"id": 1
}
from hiveos-exporter.
Related Issues (2)
- Congratulations HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hiveos-exporter.