Comments and help on web development.
08 2011

Bitcoin miner died

After three days of debugging and endless frustration I’m sure that my mainboard died. I’ll get a 1:1 replacement, but I’m losing about 8 BTC until I get it.

In the debugging process I put one card on top of another, but didn’t unplug the power cables. Turns out graphics cards turn on the fans to 100% when you switch the power on. And the tiny screws on the back of the one card cut itself a piece of the others fan:

On a related note: I found out that AMDOverdriveCtrl crashes with a segfault when I start it automatically, that’s why I have to set the fan-speeds manually. When I do sudo AMDOverdriveCtrl it works. I don’t know why it doesn’t work in my script, though. It should have root rights.

2 Responses to “Bitcoin miner died”

  1. The fan had 9 blades total.
    If you break off two more, so every third blade is gone, the fan will be in balance again.
    I’ve done it before with a smaller 9-bladed fan, works fine (and quiet).

    Btw, all scripts are now unable to set root rights in linux, it was too much of a security issue.
    You have to set root rights and execute the command from a C-program (or other compileable program language). Compile it, then call/execute that program from the script.
    I ran into that issue when doing some PHP code, that needed root rights to execute some commands (replicating new zones from a primary DNS server to a secondary/slave DNS server), and discovered setting root rights for scripts had been disabled in the linux kernel, and will probably never be enabled again.

  2. Good idea with breaking the other blades. Right now it runs pretty quiet with 40% and one blade missing. I’ll probably break the other blades when this changes.

    I think I solved the root problem:
    A script in /etc/init/ starts another script in /usr/local/bin/ with the following statements:

    description "Start BTC Mining"
    start on runlevel [2345]
    stop on runlevel [!2345]
    kill timeout 30
    #Wait 30 seconds to make sure X is started.
    sleep 30
    exec /usr/bin/screen -h 0 -dmS gpu0 su -c '/usr/local/bin/ 1 13' ${LOGINUSER}
    end script

    If I set “LOGINUSER” to “root” AMDOverdriveCtrl (which is started in doesn’t crash with a segfault anymore.
    But it exits after it set the profile for the specified interface. So no further fan-control and I can’t explain why.

    Thanks for your very helpful comment, greylion!

Leave a Reply