Saturday, 20 May 2017

A simple video card upgrade... not so much

I wanted to get a new video card and found a deal on a Sapphire RX580 and thought great, going from a RX390 to a RX580 should be easy. Both are AMD, both are just rehashes of an older card so drivers are established.

But no, seems the Sapphire card is cheap for a reason...

So started up in Linux and it booted to the point where it said switching to amdgpufb, then blank screen.  HDMI was UP (the card has two HDMI ports and one goes to an AV system for sound).  It's all working but you can't see anything. crtrl-alt-delete and try again.

Change kernel line options in grub to include nomodeset and it boots and you can see (apart from about 2 minutes of tearing when it tries to start gdm)

Logs look fine looks amdgpu is starting OK and recognising it as an RX480 which it is based on. Doh, wrong firmware.  OK so update from TONGA to POLARIS10 firmware blobs int he kernel. My kernel doesn't use ramdisk it just boots and includes all the firmware for video, wifi etc.  Not the linux way but it works and it's quick.

Boot again, but still blank screen and now firmware loads and the card looks to be running. Hmmm...

Boot into windows and just make sure and the card is fine.

Run make menuconfig on the kernel and check for options but everything is just amdgpu generic not specific to a model.  Found a firmware option related to EDID and checked the docs on this in /usr/src/linux/Documenation/EDID/Howto.txt.  This talks about video starting but cards not reading EDID from the monitor correctly and stopping at a blank screen when start KMS.  OK sounds promising...

Making a EDID file is as simple as running make in that directory to use the default ones.

Copy 1920x1080.bin to /lib/firmware and add that to the kernel blobs and reboot. Still no good.

Google comes to the rescue to find an Arch Linux article (damn these guys document well) which is similar to Gentoo and it mentions you need to turn on this firmware at boot with a kernel option


and sure enough it boots and video stays on.

So if you have a Sapphire RX580 (pulse in my case) and linux and have blank video issues try this. I'm sorry to sapphire if it's a general RX580 thing but I didn't find any other posts etc on this issue so I'm guessing not.

I can post line by line if anyone comes across this and it doesn't make sense to them.

Saturday, 29 April 2017

Gridseed dual mining on minera

This is something that caught my interest a few years ago and has been sitting in the garage churning out tiny fractions of a bitcoin regularly.

Bitcoin spiked back up to $1700 recently and previously it wasn't worth the power to mine but might be now.  I buy my etc stuff with bitcoin.

My original setup uses a raspberry pi with minera ( to have a simple web based front end for 6 gridseed minis.  These are a unit with 5 gridseed chips together.  The gridseed chip can mine SHA256 (bitcoin etc) and scrypt (litecoin, doge etc) and both at the same time.

These just sat quietly mining scrypt which a site called converts to Bitcoin and adds to your wallet. All very easy.

I could never get them to mine bitcoin or dual mine both and gave up but revisiting it showed it wasn't really that hard with the right mining client. I haven't got the nice front end to work yet.  That's the last step.

To get Bitcoin (SHA256) to work, SSH to your raspberry pi with Minera and you run

screen sudo /var/www/minera/minera-bin/cgminer-dmaxl-zeus --sha256 -o stratum+tcp:// --user nickbrooker.1 --pass x --gridseed-options freq=800 --widescreen

You can use my details if you want to give me some extra BTC :-)

The cunning part is this software sets up local UDP listeners when running on SHA256 to allow a second copy to connect via UDP to the scrypt side.

 cgminer version 4.3.5-scrypt.2 - Started: [2017-04-29 10:44:40]
 (5s):0.000 (1m):0.000 (5m):0.000 (15m):0.000 (avg):0.000h/s
 A:0  R:0  HW:1  WU:883.5/m | ST: 5  SS: 0  NB: 1  LW: 48  GF: 0  RF: 0
 Connected to diff 2.05K with stratum as user nickbrooker.1
 Block: 12519e6d...  Diff:522G  Started: [10:44:40]  Best share: 1.69K
 [U]SB management [P]ool management [S]ettings [D]isplay options [Q]uit
 0: GSD 8D8638654955:  800 MHz  SHA256        | 1.331G / 4.684Gh/s WU:130.9/m
 1: GSD 8D8848665055:  800 MHz  SHA256        | 1.322G / 4.684Gh/s WU:98.2/m
 2: GSD 8D8307735055:  800 MHz  SHA256        | 1.346G / 4.684Gh/s WU:98.2/m
 3: GSD 8D8340625055:  800 MHz  SHA256        | 1.376G / 4.684Gh/s WU:163.6/m
 4: GSD 6D8527885750:  800 MHz  SHA256        | 1.317G / 4.684Gh/s WU:261.8/m
 5: GSD 6D7631994853:  800 MHz  SHA256        | 564.5M / 2.342Gh/s WU:130.9/m
 [2017-04-29 10:44:35] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 8D8307735055
 [2017-04-29 10:44:35] GSD2: System reseting
 [2017-04-29 10:44:35] GSD2: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:36] GridSeed options: 'freq=800'
 [2017-04-29 10:44:36] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 8D8340625055
 [2017-04-29 10:44:36] GSD3: System reseting
 [2017-04-29 10:44:36] GSD3: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:37] GridSeed options: 'freq=800'
 [2017-04-29 10:44:37] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 6D8527885750
 [2017-04-29 10:44:37] GSD4: System reseting
 [2017-04-29 10:44:38] GSD4: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:38] GridSeed options: 'freq=800'
 [2017-04-29 10:44:38] Gridseed device found, firmware v01140113, driver v3.8.5.20140210.02, ID 6D7631994853
 [2017-04-29 10:44:38] GSD5: System reseting
 [2017-04-29 10:44:39] GSD5: Set GC3355 core frequency to 800 MHz
 [2017-04-29 10:44:39] Create scrypt proxy on 3350/UDP for GSD0
 [2017-04-29 10:44:39] GridSeed GSD0 opened on usb:1:11
 [2017-04-29 10:44:39] Create scrypt proxy on 3351/UDP for GSD1
 [2017-04-29 10:44:39] GridSeed GSD1 opened on usb:1:9
 [2017-04-29 10:44:39] Create scrypt proxy on 3352/UDP for GSD2
 [2017-04-29 10:44:39] GridSeed GSD2 opened on usb:1:7
 [2017-04-29 10:44:39] Create scrypt proxy on 3353/UDP for GSD3
 [2017-04-29 10:44:39] GridSeed GSD3 opened on usb:1:12
 [2017-04-29 10:44:39] Create scrypt proxy on 3354/UDP for GSD4
 [2017-04-29 10:44:39] GridSeed GSD4 opened on usb:1:10
 [2017-04-29 10:44:39] Create scrypt proxy on 3355/UDP for GSD5
 [2017-04-29 10:44:39] GridSeed GSD5 opened on usb:1:8
 [2017-04-29 10:44:39] Probing for an alive pool
 [2017-04-29 10:44:40] Pool 0 difficulty changed to 2048

 [2017-04-29 10:44:40] Network diff set to 522G

So disconnect from screen  (Ctrl A, Ctrl D) and start

screen sudo /var/www/minera/minera-bin/cgminer-dmaxl-zeus --scrypt  -o stratum+tcp:// -u nickbrooker.1 -p x --widescreen

It will check local host and connect to the ports automatically.

cgminer version 4.3.5-scrypt.2 - Started: [2017-04-29 10:24:30]
 (5s):883.0K (1m):106.3K (5m):21.89K (15m):7.333K (avg):1.489Mh/s
 A:512  R:0  HW:0  WU:15.3/m | ST: 3  SS: 0  NB: 1  LW: 26  GF: 0  RF: 0
 Connected to diff 512 with stratum as user nickbrooker.1
 Block: 8dd69347...  Diff:146K  Started: [10:24:30]  Best share: 710
 [U]SB management [P]ool management [S]ettings [D]isplay options [Q]uit
 0: GSD 8D8638654955:  800 MHz  DUAL / SCRYPT | 136.8K / 260.8Kh/s WU:0.0/m
 1: GSD 8D8848665055:  800 MHz  DUAL / SCRYPT | 136.8K / 260.9Kh/s WU:0.0/m 
 2: GSD 8D8307735055:  800 MHz  DUAL / SCRYPT | 145.1K / 272.6Kh/s WU:15.3/m
 3: GSD 8D8340625055:  800 MHz  DUAL / SCRYPT | 136.9K / 260.9Kh/s WU: 0.0/m
 4: GSD 6D8527885750:  800 MHz  DUAL / SCRYPT | 136.9K / 261.1Kh/s WU: 0.0/m
 5: GSD 6D7631994853:  800 MHz  DUAL / SCRYPT | 136.8K / 260.8Kh/s WU: 0.0/m
 [2017-04-29 10:24:27] Started cgminer 4.3.5-scrypt.2
 [2017-04-29 10:24:27] Found scrypt proxy on 3350/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3351/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3352/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3353/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3354/UDP
 [2017-04-29 10:24:27] Found scrypt proxy on 3355/UDP
 [2017-04-29 10:24:28] Gridseed GSD0 opened on 3350/UDP
 [2017-04-29 10:24:28] Gridseed GSD1 opened on 3351/UDP
 [2017-04-29 10:24:28] Gridseed GSD2 opened on 3352/UDP
 [2017-04-29 10:24:28] Gridseed GSD3 opened on 3353/UDP
 [2017-04-29 10:24:28] Gridseed GSD4 opened on 3354/UDP
 [2017-04-29 10:24:28] Gridseed GSD5 opened on 3355/UDP
 [2017-04-29 10:24:28] Probing for an alive pool

So now they are happily mining away on both scrypt and SHA256.  You're never really going to make money on this unless you are exceedingly lucky and mine solo and solve a bunch of blocks. It just a fun thing to do.

Update:  seems one thing to be careful of is power supplies. I have 6 of these gridseed minis and they draw 6 watts in scrypt and I read 30 watts in SHA256 but it may be more.  I have a 12V 30A power supply that just expired and was a bit toastie.

Tuesday, 4 April 2017

Windows 8.1 over Windows 7

This one may save someone some time. One of the kid's computers was on windows 7 and I thought it might be nice to try going to 8 as they've put the countdown on windows 7.

I tried the DVD from within Windows 7 and booting the DVD. Booting from the DVD won't let you update and from within Windows it failed after it got to 100%.

I had recently installed an SSD and disabled superfetch and Windows search services. After trying a few other things I re-enabled these and it worked.

Switch your Raspberry Pi 3 to use a hard drive

I have a Pi 3 that is a DNS, web, email etc server and it's gone through a few SD cards and gets bogged down in high wait % in top somet...