sgminer-dev / sgminer

Scrypt GPU miner
GNU General Public License v3.0
629 stars 825 forks source link

No ncurses interface with HD 5970 #15

Closed ghost closed 10 years ago

ghost commented 10 years ago

Ncurses interface is just blank with HD 5970 card. You have to revert to text-based interface only with -T. Happens with cgminer 3.72 too.

veox commented 10 years ago

Start sgminer with your regular commands and add -D -T --verbose and provide the full startup output and a summary of your hardware, operating system, AMD driver version and AMD APP SDK version (if installed separately).

ghost commented 10 years ago

Hardware: Pentium 4, 1,5G RAM OS: pxe-booted debian sid i386 AMD Catalyst driver installed from debian repo (apt-get install fglrx-driver fglrx-modules-dkms amd-opencl-icd amd-opencl-dev). Which are repackaged from amd release version 13.12.

Note that the same sgminer binary display ncureses interface just fine with R9 290X card. Only when HD5970 presents the interfaces gone blank.

m@miner1 ~/l/s/sgminer> aptitude show amd-opencl-dev
Package: amd-opencl-dev                  
New: yes
State: installed
Automatically installed: no
Multi-Arch: same
Version: 1:13.12-3
Priority: extra
Section: non-free/x11
Maintainer: Fglrx packaging team 
Architecture: i386
Uncompressed Size: 92.2 k
Depends: amd-libopencl1 (= 1:13.12-3), opencl-headers (>= 1.2)
Recommends: libgl1-mesa-dev | libgl-dev
Conflicts: opencl-dev
Replaces: amd-libopencl1 (< 1:13.4-4~), opencl-dev
Provides: opencl-dev
Description: AMD OpenCL development files
 OpenCL (Open Computing Language) is a multi-vendor open standard for general-purpose parallel programming
 of heterogeneous systems that include CPUs, GPUs and other processors. 

 This metapackage provides the development files: headers and libraries.
Homepage: http://support.amd.com/en-us/download/desktop?os=Linux%20x86
m@miner1 ~/l/s/sgminer> aptitude show fglrx-driver
Package: fglrx-driver                    
New: yes
State: installed
Automatically installed: no
Version: 1:13.12-3
Priority: extra
Section: non-free/x11
Maintainer: Fglrx packaging team 
Architecture: i386
Uncompressed Size: 24.2 M
Depends: libfglrx (= 1:13.12-3), xorg-video-abi-14 | xorg-video-abi-13 | xorg-video-abi-12 |
         xorg-video-abi-11 | xorg-video-abi-10 | xorg-video-abi-8 | xorg-video-abi-6.0, xserver-xorg-core,
         libgl1-fglrx-glx (= 1:13.12-3), glx-alternative-fglrx (>= 0.4.1~), libc6 (>= 2.3.6-6~),
         libgl1-mesa-glx | libgl1, libx11-6, libxext6, libxrandr2, libxrender1, debconf (>= 0.5) |
         debconf-2.0
Recommends: fglrx-modules-dkms (= 1:13.12-3) | fglrx-kernel-13.12, fglrx-atieventsd
Suggests: fglrx-control, xvba-va-driver, amd-opencl-icd
Conflicts: xserver-xorg-video-fglrx
Replaces: xserver-xorg-video-fglrx
Provides: xorg-driver-video, xserver-xorg-video-fglrx
Description: non-free ATI/AMD RadeonHD display driver
 FGLRX / AMD Catalyst is the non-free proprietary display driver for the ATI/AMD RadeonHD and FireGL
 graphics cards. As an alternative, you may try the newest free driver xserver-xorg-video-radeon. 

 This driver release supports the following graphics adapter families: AMD Radeon HD 7000, AMD Radeon HD
 6000, and AMD Radeon HD 5000. 

 For older models try the fglrx-legacy-driver package. 

 This package provides display drivers and hardware accelerated OpenGL for X.Org. For 3D acceleration to
 work, you will need to compile the fglrx kernel module for your kernel: see the fglrx-modules-dkms
 package. Note that the driver will work without the kernel module, but 3D acceleration will be disabled. 

 The driver can work with plain MESA libGL, but some applications may require the proprietary libGL. This
 library is shipped in the libgl1-fglrx-glx package.
Homepage: http://support.amd.com/en-us/download/desktop?os=Linux%20x86

Here is the log with -D -T --verbose:

[16:24:44] Global quota greatest common denominator set to 1                    
[16:24:44] Global quota greatest common denominator set to 1                    
[16:24:44] Started sgminer 4.0.0                    
[16:24:44] Loaded configuration file /home/m/.sgminer/sgminer.conf                    
[16:24:48] CL Platform 0 vendor: Advanced Micro Devices, Inc.                    
[16:24:48] CL Platform 0 name: AMD Accelerated Parallel Processing                    
[16:24:48] CL Platform 0 version: OpenCL 1.2 AMD-APP (1348.5)                    
[16:24:48] Platform 0 devices: 2                    
[16:24:48]      0       Cypress                    
[16:24:48]      1       Cypress                    
[16:24:48] GPU 0 iAdapterIndex 0 strUDID 1280:26780:4098:9538:4098 iBusNumber 5 iDeviceNumber 0 iFunctionNumber 0 iVendorID 4098 strAdapterName  ATI Radeon HD 5900 Series                     
[16:24:48] GPU 1 iAdapterIndex 3 strUDID 1024:26780:4098:8258:4098 iBusNumber 4 iDeviceNumber 0 iFunctionNumber 0 iVendorID 4098 strAdapterName  ATI Radeon HD 5900 Series                     
[16:24:48] GPU 0 ATI Radeon HD 5900 Series hardware monitoring enabled                    
[16:24:48] GPU 0 BIOS partno.: 113-C00001-102, version: 012.013.000.002.034996, date: 10/23/09 10:49                    
[16:24:48] Setting GPU 0 engine clock to 844                    
[16:24:48] Setting GPU 0 memory clock to 1250                    
[16:24:48] GPU 1 ATI Radeon HD 5900 Series hardware monitoring enabled                    
[16:24:48] GPU 1 BIOS partno.: 113-C00001-103, version: 012.013.000.002.034996, date: 10/23/09 10:51                    
[16:24:48] Setting GPU 1 engine clock to 800                    
[16:24:48] Setting GPU 1 memory clock to 1000                    
[16:24:48] Failed to ADL_Overdrive5_FanSpeed_Get for default value                    
[16:24:48] GPU 1 doesn't support rpm or percent write                    
[16:24:48] GPU 1 doesn't support rpm or percent write                    
[16:24:48] Init GPU thread 0 GPU 0 virtual GPU 0                    
[16:24:48] CL Platform vendor: Advanced Micro Devices, Inc.                    
[16:24:48] CL Platform name: AMD Accelerated Parallel Processing                    
[16:24:48] CL Platform version: OpenCL 1.2 AMD-APP (1348.5)                    
[16:24:48] List of devices:                    
[16:24:48]      0       Cypress                    
[16:24:48]      1       Cypress                    
[16:24:48] Selected 0: Cypress                    
[16:24:48] Preferred vector width reported 4                    
[16:24:48] Max work group size reported 256                    
[16:24:48] Max mem alloc size is 536870912                    
[16:24:48] Selecting scrypt kernel                    
[16:24:48] Loaded binary image scrypt130511Cypressglg2tc8000w128l4.bin                    
[16:24:48] Initialising kernel scrypt130511.cl with bitalign, 1 vectors and worksize 128                    
[16:24:48] Creating scrypt buffer sized 524288000                    
[16:24:48] initCl() finished. Found Cypress                    
[16:24:48] Pushing sem post to thread 0                    
[16:24:48] Init GPU thread 1 GPU 1 virtual GPU 1                    
[16:24:48] CL Platform vendor: Advanced Micro Devices, Inc.                    
[16:24:48] CL Platform name: AMD Accelerated Parallel Processing                    
[16:24:48] CL Platform version: OpenCL 1.2 AMD-APP (1348.5)                    
[16:24:48] List of devices:                    
[16:24:48]      0       Cypress                    
[16:24:48]      1       Cypress                    
[16:24:48] Selected 1: Cypress                    
[16:24:48] Waiting on sem in miner thread                    
[16:24:48] Popping work from get queue to get work                    
[16:24:48] Preferred vector width reported 4                    
[16:24:48] Max work group size reported 256                    
[16:24:48] Max mem alloc size is 536870912                    
[16:24:48] Selecting scrypt kernel                    
[16:24:48] Loaded binary image scrypt130511Cypressglg2tc5632w128l4.bin                    
[16:24:48] Initialising kernel scrypt130511.cl with bitalign, 1 vectors and worksize 128                    
[16:24:48] Creating scrypt buffer sized 369098752                    
[16:24:48] initCl() finished. Found Cypress                    
[16:24:48] Pushing sem post to thread 1                    
[16:24:48] Probing for an alive pool                    
[16:24:48] Testing pool stratum+tcp://gigahash.wemineltc.com:3335                    
[16:24:48] Testing pool stratum+tcp://middlecoin.com:3333                    
[16:24:48] Waiting on sem in miner thread                    
[16:24:48] Popping work from get queue to get work                    
[16:24:49] Succeeded delayed connect                    
[16:24:49] Succeeded delayed connect                    
[16:24:49] Failed to get sessionid in initiate_stratum                    
[16:24:49] Pool 0 difficulty changed to 1024                    
[16:24:49] Stratum authorisation success for pool 0                    
[16:24:49] Pool 0 stratum+tcp://middlecoin.com:3333 alive                    
[16:24:49] Work update message received                    
[16:24:49] Selecting pool 0 for work                    
[16:24:49] Generated stratum merkle 5a645193e19defe0b87d924827b24afb45af5094d953cb29362061a86422a460                    
[16:24:49] Generated stratum header 00000001b929eb8545fa97fc354ee39901527674ec1df57ed57200f3dc6510ebc0d137d65a645193e19defe0b87d924827b24afb45af5094d953cb29362061a86422a46052d8f6da1c0089bf000000000000008000000000000000000000000000000000000000000000000000000000000000                    
[16:24:49] Work job_id 10323bd nonce2 0 ntime 52d8f6da                    
[16:24:49] Generated target 0000000000000000000000000000000000000000000000000000c0ff3f000000                    
[16:24:49] Generated stratum work                    
[16:24:49] Pushing work from pool 0 to hash queue                    
[16:24:49] Network diff set to 31.2M                    
[16:24:49] New block: c0d137d6dc6510ebd57200f3ec1df57e01527674354ee39945fa97fcb929eb85... diff 31.2M                    
[16:24:49] Selecting pool 0 for work                    
[16:24:49] Got work from get queue to get work for thread 0                    
[16:24:49] Generated stratum merkle 4f6dcf59be89f8f011f3a5cd56d574b555a86ed4df095798d3cc47647ba90e22                    
[16:24:49] Generated target 00000000000000000000000000000000000000000000000000000000ffff0000                    
[16:24:49] Generated stratum header 00000001b929eb8545fa97fc354ee39901527674ec1df57ed57200f3dc6510ebc0d137d64f6dcf59be89f8f011f3a5cd56d574b555a86ed4df095798d3cc47647ba90e2252d8f6da1c0089bf000000000000008000000000000000000000000000000000000000000000000000000000000000                    
[16:24:49] Work job_id 10323bd nonce2 1 ntime 52d8f6da                    
[16:24:49] Generated target 0000000000000000000000000000000000000000000000000000c0ff3f000000                    
[16:24:49] Generated stratum work                    
[16:24:49] Pushing work from pool 0 to hash queue                    
[16:24:49] Selecting pool 0 for work                    
[16:24:49] Generated stratum merkle 188b3b6ce526cf3dc8a2c274602a8e89f8a870cd62498574b0e5899d49f10c4f                    
[16:24:49] Generated stratum header 00000001b929eb8545fa97fc354ee39901527674ec1df57ed57200f3dc6510ebc0d137d6188b3b6ce526cf3dc8a2c274602a8e89f8a870cd62498574b0e5899d49f10c4f52d8f6da1c0089bf000000000000008000000000000000000000000000000000000000000000000000000000000000                    
[16:24:49] Work job_id 10323bd nonce2 2 ntime 52d8f6da                    
[16:24:49] Generated target 0000000000000000000000000000000000000000000000000000c0ff3f000000                    
[16:24:49] Generated stratum work                    
[16:24:49] Pushing work from pool 0 to hash queue                    
[16:24:49] Selecting pool 0 for work                    
[16:24:49] Generated stratum merkle b3f953277c8d30ffbdbf6f8fe085858b17d88605b1ac175b9fa7e8a94a0559b6                    
[16:24:49] Generated stratum header 00000001b929eb8545fa97fc354ee39901527674ec1df57ed57200f3dc6510ebc0d137d6b3f953277c8d30ffbdbf6f8fe085858b17d88605b1ac175b9fa7e8a94a0559b652d8f6da1c0089bf000000000000008000000000000000000000000000000000000000000000000000000000000000                    
[16:24:49] Work job_id 10323bd nonce2 3 ntime 52d8f6da                    

Any idea what causes the problem? Since everything else runs OK I suppose it's a straight-forward fix if one knows where to look.

veox commented 10 years ago

Chmm, is your ADL SDK version 5 or 6?

ghost commented 10 years ago

version 6. Does it make any difference? should i try with version 5?

veox commented 10 years ago

No, not really. I'm using version 6, too. I was making sure you're not using version 4.

veox commented 10 years ago

The BIOS timestamps on your cards are a little different. Also this:

[16:24:48] Failed to ADL_Overdrive5_FanSpeed_Get for default value
[16:24:48] GPU 1 doesn't support rpm or percent write
[16:24:48] GPU 1 doesn't support rpm or percent write

This is not necessarily an issue with your hardware, but it could be.

Could you also post the output of ./configure? Preferably on gist.github.com, not directly here. :)

ghost commented 10 years ago

Not sure if it's relevant to the issue but i bought the used card few days ago with the fan in very bad shape. So I throw the fan away and replace it with a double external fan; ugliest fan mod known to men but it keeps the card cool enough to mine, sacrificing controlling the speed of course. Anyway here is the ./configure output.

I've also found some people posting about the same problem with the same card.

veox commented 10 years ago

Yes, that is relevant.

This use case warrants changing --no-adl to allow per-card settings, or some similar solution.

Try running two instances of sgminer:

sgminer --device 0
sgminer --device 1 --no-adl
olejr commented 10 years ago

Also having trouble getting cgminer displaying anything with my two 5970 (powercolor) cards. On my cards only one of the gpu's have control the fan (for both gpu's). So adding --compact did the trick instead of -T and then no curses at all.. Only thing missing is the display of stats for each gpu at the "main" screen.

Also had a look through the source, and found that there have to be a bug somewhere in adl.c Seems it fail to set ga->has_fanspeed to FALSE, and the result is that the fanspeed_twin() function fails.

Also did a quick/dirty test:

After:

if (ADL_Overdrive5_FanSpeedInfo_Get(iAdapterIndex, 0, &ga->lpFanSpeedInfo) != ADL_OK)
    applog(LOG_INFO, "Failed to ADL_Overdrive5_FanSpeedInfo_Get");
else
    ga->has_fanspeed = true;

I added:

if(!(ga->lpFanSpeedInfo.iFlags & (ADL_DL_FANCTRL_SUPPORTS_RPM_WRITE | ADL_DL_FANCTRL_SUPPORTS_PERCENT_WRITE)))
    ga->has_fanspeed = false;

This seem to "fix" the black ncurses screen without the --compact parameter, and got the display of each gpu on the "main" screen.

If there's other unwated side effects i don't know. Have disabled the above "fix" myself, and running with --comact instead..

veox commented 10 years ago

Here's how it's done in bfgminer: https://github.com/luke-jr/bfgminer/commit/b888ed984511d867e04b63f92b75c39c9ba285d7, the reason why it's failing, and a solution. I'll go ahead and commit this.

veox commented 10 years ago

Please test git master.

olejr commented 10 years ago

Tested git master and it's working fine without --compact or -T now.

ghost commented 10 years ago

Thank you veox, i confirm that the problem has been fixed with the above patch.