Author

Topic: OFFICIAL CGMINER mining software thread for linux/win/osx/mips/arm/r-pi 4.11.0 - page 386. (Read 5806015 times)

legendary
Activity: 2576
Merit: 1186
While I agree that using direct USB is probably better overall,
Then we have no argument here! You're agreeing with kano!
Come on, context! Devices talking to mining software with raw/direct USB, is probably better than using a serial interface.
But it's still more sensible to use the standard interface/drivers when they're implementing the protocol with serial!

By the way, and this is totally unrelated, is it possible to use Eloipool to run a TRC pool?
I don't know what TRC is. Try it and see?
legendary
Activity: 2576
Merit: 1186
USB does, yes. But not the devices in question.

If that's the case, then I suppose I see no real benefit to using libusb either.
cgminer already implements functionality that uses the advantages of libusb

The most obvious one is hotplug.
I have implemented it within the main cgminer code and the usbutils code, without need for the drivers to handle it directly.
Thus all current usbutils drivers (MMQ and BFL) and all new drivers will already have hotplug.
This is not a libusb feature. In fact, libusb explicitly does not support hotplugging itself!
You are merely scanning all devices poll-style every so often. That can be done just as well with the standard serial interfaces (Ufasoft has done it since BitFORCE FPGAs were originally released), but is the wrong way to do hotplug and breaks a number of assumptions in the original code that BFG and cg today are based on.

Another is the 'cgminer -n' function - it will list all known libusb mining devices without each driver having to do any actual hashing on the devices or sending commands to the devices.
It does exactly what the -d? option has done since I created the device API interface in 2.2.0.
How is this redundancy somehow libusb-specific?

Another is the usb API stats
All devices have statistics recorded about all I/O to them, including the initial control transfers that the serial-USB code doesn't even know about
Yes, this is made possible using libusb. Too bad it's completely useless.

... and of course, if any manufacturer does implement a much better device that uses the clear advantages of direct USB, cgminer will already have most of the code necessary to support it, tested and been run already for months right now.
While I agree that using direct USB is probably better overall, there is nothing special about your libusb code in cgminer.
BFGMiner also uses libusb, just only when it's the right interface for the job. ZTEX and X6500 use direct USB interfaces.
The reality is, there isn't any generic "code necessary to support" direct USB (outside of what libusb itself provides) - just "Kano's pointless reinvention of the standard serial-USB interface".
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
USB does, yes. But not the devices in question.

If that's the case, then I suppose I see no real benefit to using libusb either.
cgminer already implements functionality that uses the advantages of libusb

The most obvious one is hotplug.
I have implemented it within the main cgminer code and the usbutils code, without need for the drivers to handle it directly.
Thus all current usbutils drivers (MMQ and BFL) and all new drivers will already have hotplug.

Another is the 'cgminer -n' function - it will list all known libusb mining devices without each driver having to do any actual hashing on the devices or sending commands to the devices.

Another is the API usbstats
All devices have statistics recorded about all I/O to them, including the initial control transfers that the serial-USB code doesn't even know about

All device I/O also has a lot more information about errors and problems with libusb and thus drivers can use that to deal with problems in a much better way

To implement them in serial-USB, will require non serial-USB code specific to each device and specific to each driver, since it is not possible to do them sanely in serial-USB (especially hotplug)

... and of course, if any manufacturer does implement a much better device that uses the clear advantages of direct USB, cgminer will already have most of the code necessary to support it, tested and been run already for months right now.

--

To put it in the simplest words to understand, Luke-Jr is butthurt about not using his old code with all it's old restrictions and problems, but instead I wrote a whole new library for dealing with USB devices to get around all the problems that exist with serial-USB ... why else is he here posting over and over again in the main cgminer thread instead of his pissy clone thread Cheesy
legendary
Activity: 2576
Merit: 1186
Wait, you just said that it was the current, supported, standard interface, and libusb is low level. Then you said libusb adds a lot of abstraction and does the same things as the serial I/O libs, which would make it higher level. Which is it?
Both. For the network analogy, libusb would be libpcap - it adds some programmer-friendly abstractions on top of a raw socket. It's still working with low-level raw sockets, but in an abstracted way.

If we're using that analogy, then the serial I/O libs would be the regular TCP/IP stack.
Right...
And libpcap is still faster and offers more functionality than the TCP/IP stack, it doesn't reimplement too much.
Even if you implement your own TCP/IP stack on top of it?
But it's nothing like that. USB provides a lot more than serial transfers, as kano said. So it's not a reimplementation.
USB does, yes. But not the devices in question.
legendary
Activity: 2576
Merit: 1186
Wait, you just said that it was the current, supported, standard interface, and libusb is low level. Then you said libusb adds a lot of abstraction and does the same things as the serial I/O libs, which would make it higher level. Which is it?
Both. For the network analogy, libusb would be libpcap - it adds some programmer-friendly abstractions on top of a raw socket. It's still working with low-level raw sockets, but in an abstracted way.

If we're using that analogy, then the serial I/O libs would be the regular TCP/IP stack.
Right...
And libpcap is still faster and offers more functionality than the TCP/IP stack, it doesn't reimplement too much.
Even if you implement your own TCP/IP stack on top of it?
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
...
Wait, you just said that it was the current, supported, standard interface, and libusb is low level. Then you said libusb adds a lot of abstraction and does the same things as the serial I/O libs, which would make it higher level. Which is it?
Both. For the network analogy, libusb would be libpcap - it adds some programmer-friendly abstractions on top of a raw socket. It's still working with low-level raw sockets, but in an abstracted way.
Incorrect analogy.

Your crappy serial-USB removes access to the USB functions that are available with the chips and limits your crappy software clone to only ever be able to use simple sequential text data transfers - a small subset of USB functionality.

To take this directly to the result of your short sightedness using serial-USB, the current ASIC manufacturers are not implementing well designed USB interfaces, they are implementing crappy simple serial interfaces that do not allow for multiple end points or asynchronous transfers or any other of the OLD usb advances available with usb devices over the VERY OLD dated COM serial ports ... let alone anything new with USB in the last ... 10 years

Yes your lack of understanding of USB will of course mean you'll come up with more foolish arguments and mind numbingly stupid comments
... but at least everyone can be glad of the fact that you are the cause of this failure of ASIC manufacturers to utilise USB even to a fraction of it's potential and instead use crappy FTDI chips (both BFL and Avalon) and expect software to only implement simple serial data transfers over serial-USB

Or to correctly put it yet another way: you are using a default driver limitation in some versions of windows (that can easily be worked around) to define your level of device support for mining devices.

With cgminer, in linux it is easy for me to overcome this in the code, in windows it is overcome by using the WinUSB driver for any USB mining device that exhibits the USB control restriction
legendary
Activity: 2576
Merit: 1186
That's no reason to continue using deprecated technology. CGMiner could also be a 16-bit binary.
You missed the point. CGMiner is also deprecated software for deprecated technology (GPUs).
Well, if you consider the fact that shortly, when indeed GPU mining will be deprecated, that the crappy clone will ONLY be using the old termios serial IO libraries that were designed around 30 or more years ago, meanwhile, cgminer has been updated to use the libusb library to talk directly to the USB devices rather than via the old serial libraries that put an old interface in front of the USB devices and restrict access to most of the USB functionality ... yes it's quite clear that the clone is old technology and written using the serial library because the guy who wrote it was not only fail in programming ability he chose the simplest interface with the most restrictions coz he had no idea what he was doing ...
You mean the current, supported, standard interface, instead of bypassing it to use a low-level interface that has no benefit whatsoever.

It's like writing your own TCP/IP stack instead of using the one included in the OS. Not only is it stupidly redundant, it also means you've lost support, driver updates, ease of use, forward compatibility with new hardware, and regular-user-mode access.

Speed might be a reason to use libusb rather than 30 year old serial I/O libs... Just saying...
If Kano's lies were true, perhaps. But "30 year old serial I/O libs" is not quite right. While the interface may be 30 years old, the code behind it certainly isn't. Nor is there any need for a new interface. It's also a "library" builtin to the OS itself, so pretty much as little overhead as you can get.
On the other hand, libusb is designed for raw USB access, and non-native on at least Windows. But it does add a lot of abstraction which theoretically harms performance. It then goes and does the same things as the "30 year old serial I/O libs" using a non-standard interface. libusb is nice when there are no existing drivers, but totally the wrong tool for these specific devices. Unfortunately, libusb also lacks any support for asynchronous access on Windows too, which makes some device API improvements impractical - before I can move BFGMiner to a completely asynchronous model, I would need to first do some major improvements to the underlying libusb library itself.

Edit: Disclosure... there is one reason I can see using libusb could be beneficial: unfixed bugs in the OS/official OS drivers, or workarounds for buggy hardware. This is the case with Windows's ACM driver (used by ModMiner) - but easily worked around in software (as BFGMiner has done for a while). The chip used in the Icarus also had a bug that prevented it from working with certain USB hosts - this too, was easily worked around in software. But those are the only reasons I can see using libusb would make sense for a device using a serial interface, and they're already managed just fine without it.

Wait, you just said that it was the current, supported, standard interface, and libusb is low level. Then you said libusb adds a lot of abstraction and does the same things as the serial I/O libs, which would make it higher level. Which is it?
Both. For the network analogy, libusb would be libpcap - it adds some programmer-friendly abstractions on top of a raw socket. It's still working with low-level raw sockets, but in an abstracted way.
legendary
Activity: 2576
Merit: 1186
That's no reason to continue using deprecated technology. CGMiner could also be a 16-bit binary.
You missed the point. CGMiner is also deprecated software for deprecated technology (GPUs).
Well, if you consider the fact that shortly, when indeed GPU mining will be deprecated, that the crappy clone will ONLY be using the old termios serial IO libraries that were designed around 30 or more years ago, meanwhile, cgminer has been updated to use the libusb library to talk directly to the USB devices rather than via the old serial libraries that put an old interface in front of the USB devices and restrict access to most of the USB functionality ... yes it's quite clear that the clone is old technology and written using the serial library because the guy who wrote it was not only fail in programming ability he chose the simplest interface with the most restrictions coz he had no idea what he was doing ...
You mean the current, supported, standard interface, instead of bypassing it to use a low-level interface that has no benefit whatsoever.

It's like writing your own TCP/IP stack instead of using the one included in the OS. Not only is it stupidly redundant, it also means you've lost support, driver updates, ease of use, forward compatibility with new hardware, and regular-user-mode access.

Speed might be a reason to use libusb rather than 30 year old serial I/O libs... Just saying...
If Kano's lies were true, perhaps. But "30 year old serial I/O libs" is not quite right. While the interface may be 30 years old, the code behind it certainly isn't. Nor is there any need for a new interface. It's also a "library" builtin to the OS itself, so pretty much as little overhead as you can get.
On the other hand, libusb is designed for raw USB access, and non-native on at least Windows. But it does add a lot of abstraction which theoretically harms performance. It then goes and does the same things as the "30 year old serial I/O libs" using a non-standard interface. libusb is nice when there are no existing drivers, but totally the wrong tool for these specific devices. Unfortunately, libusb also lacks any support for asynchronous access on Windows too, which makes some device API improvements impractical - before I can move BFGMiner to a completely asynchronous model, I would need to first do some major improvements to the underlying libusb library itself.

Edit: Disclosure... there is one reason I can see using libusb could be beneficial: unfixed bugs in the OS/official OS drivers, or workarounds for buggy hardware. This is the case with Windows's ACM driver (used by ModMiner) - but easily worked around in software (as BFGMiner has done for a while). The chip used in the Icarus also had a bug that prevented it from working with certain USB hosts - this too, was easily worked around in software. But those are the only reasons I can see using libusb would make sense for a device using a serial interface, and they're already managed just fine without it.
legendary
Activity: 2576
Merit: 1186
That's no reason to continue using deprecated technology. CGMiner could also be a 16-bit binary.
You missed the point. CGMiner is also deprecated software for deprecated technology (GPUs).
Well, if you consider the fact that shortly, when indeed GPU mining will be deprecated, that the crappy clone will ONLY be using the old termios serial IO libraries that were designed around 30 or more years ago, meanwhile, cgminer has been updated to use the libusb library to talk directly to the USB devices rather than via the old serial libraries that put an old interface in front of the USB devices and restrict access to most of the USB functionality ... yes it's quite clear that the clone is old technology and written using the serial library because the guy who wrote it was not only fail in programming ability he chose the simplest interface with the most restrictions coz he had no idea what he was doing ...
You mean the current, supported, standard interface, instead of bypassing it to use a low-level interface that has no benefit whatsoever.

It's like writing your own TCP/IP stack instead of using the one included in the OS. Not only is it stupidly redundant, it also means you've lost support, driver updates, ease of use, forward compatibility with new hardware, and regular-user-mode access.
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
That's no reason to continue using deprecated technology. CGMiner could also be a 16-bit binary.
You missed the point. CGMiner is also deprecated software for deprecated technology (GPUs).
Well, if you consider the fact that shortly, when indeed GPU mining will be deprecated, that the crappy clone will ONLY be using the old termios serial IO libraries that were designed around 30 or more years ago, meanwhile, cgminer has been updated to use the libusb library to talk directly to the USB devices rather than via the old serial libraries that put an old interface in front of the USB devices and restrict access to most of the USB functionality ... yes it's quite clear that the clone is old technology and written using the serial library because the guy who wrote it was not only fail in programming ability he chose the simplest interface with the most restrictions coz he had no idea what he was doing ...
legendary
Activity: 2576
Merit: 1186
That's no reason to continue using deprecated technology. CGMiner could also be a 16-bit binary.
You missed the point. CGMiner is also deprecated software for deprecated technology (GPUs).
legendary
Activity: 952
Merit: 1000
...
... then decided to clone cgminer and change the names and the donation address:
https://github.com/luke-jr/bfgminer/commit/b9df56511c7bd1a2e1f075e9c184c1a4b0f1ba20
No, you and Con decided to fork the project because he was upset over the announcement of ASICs.
...
You forgot to click on that link one line above your FUD where YOU committed the changes with the words you wrote:
"Fork as BFGMiner"

Come on, all these lies you keep posting are rotting your brain, at least try to not also include the proof it's a lie, one line above what you type Cheesy Cheesy

"Fork as BFGMiner"
Code:
@@ -7,26 +7,26 @@ This code is provided entirely free of charge by the programmer in his spare
 time so donations would be greatly appreciated. Please consider donating to the
 address below.
 
[b]-Con Kolivas
-15qSxP1SQcUX3o4nhkfdbgyoWEFMomJ4rZ
+Luke-Jr
+1QATWksNFGeUJCWBrN4g6hGM178Lovm7Wh[/b]

Mmmmm ya Im gonna call Major Douche on this one


legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
...
... then decided to clone cgminer and change the names and the donation address:
https://github.com/luke-jr/bfgminer/commit/b9df56511c7bd1a2e1f075e9c184c1a4b0f1ba20
No, you and Con decided to fork the project because he was upset over the announcement of ASICs.
...
You forgot to click on that link one line above your FUD where YOU committed the changes with the words you wrote:
"Fork as BFGMiner"

Come on, all these lies you keep posting are rotting your brain, at least try to not also include the proof it's a lie, one line above what you type Cheesy Cheesy
full member
Activity: 196
Merit: 100
full member
Activity: 196
Merit: 100
CGMiner has nanosleep and sleep declared, which fucks the build for x86_64-w64-mingw32. Also, pthreads are not listed in the dependencies, and there is no option in configure to specify the prefix for pthreads.
We don't support building for w64 since it serves no useful advantage over 32 bit builds.
BFGMiner has w64-related bugs fixed and officially supported.

sr. member
Activity: 383
Merit: 250
legendary
Activity: 2576
Merit: 1186
CGMiner has nanosleep and sleep declared, which fucks the build for x86_64-w64-mingw32. Also, pthreads are not listed in the dependencies, and there is no option in configure to specify the prefix for pthreads.
We don't support building for w64 since it serves no useful advantage over 32 bit builds.
BFGMiner has w64-related bugs fixed and officially supported.
However, please note that BFGMiner is well known to brick mining hardware. Avoid it.
As usual, this is a lie.

And just to completely and simply prove that Luke-Jr lies and knows he is lying but has no issue with posting lies on this forum as he does REGULARLY - here is a direct link and quoted copy of the post in his thread that he knows about that says it bricks, and even Luke-Jr's warning about his software possibly bricking ... which it does:
https://bitcointalksearch.org/topic/m.1689104
Made a BFGMiner 2.99.0 + experimental Avalon driver firmware image in case any Avalon users want to give it a try.

Be careful! If this (or anything else) bricks your Avalon's controller, you will need to attach a serial port to recover!
...

tried it, bricks avalon. failsafe works. recovered to stock firmware.
I don't lie. Anyone with a clue can clearly see that an occurance of bricking a controller with a test build clearly marked as possibly having that effect, is not remotely the same thing as "BFGMiner ... brick mining hardware", nor does one person mentioning the result as such make it "well known". Too bad you're too busy trolling to have a clue.
That is software that you posted on the public (crappy) bitcoin wiki on the avalon page for people to use ...
You have also ALREADY got in your clone miner the software for the BFL ASIC hardware that is COMPLETELY UNTESTED.
The hardware doesn't exists yet.
Everyone using your crappy clone miner has that completely UNTESTED code in it.
Your complete lack of testing your crappy code was one of the main issues that you used as an excuse to clone cgminer - when you wrote crappy untested changes to the icarus code that you NEVER tested on window - and it didn't work at all - it locked up cgminer - and you ranted about me overwriting your code that didn;t work ... then decided to clone cgminer and change the names and the donation address:
https://github.com/luke-jr/bfgminer/commit/b9df56511c7bd1a2e1f075e9c184c1a4b0f1ba20
No, you and Con decided to fork the project because he was upset over the announcement of ASICs.
Yes, clearly-labelled alpha releases might be broken! That's to be expected. That's why they're alpha.
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
CGMiner has nanosleep and sleep declared, which fucks the build for x86_64-w64-mingw32. Also, pthreads are not listed in the dependencies, and there is no option in configure to specify the prefix for pthreads.
We don't support building for w64 since it serves no useful advantage over 32 bit builds.
BFGMiner has w64-related bugs fixed and officially supported.
However, please note that BFGMiner is well known to brick mining hardware. Avoid it.
As usual, this is a lie.

And just to completely and simply prove that Luke-Jr lies and knows he is lying but has no issue with posting lies on this forum as he does REGULARLY - here is a direct link and quoted copy of the post in his thread that he knows about that says it bricks, and even Luke-Jr's warning about his software possibly bricking ... which it does:
https://bitcointalksearch.org/topic/m.1689104
Made a BFGMiner 2.99.0 + experimental Avalon driver firmware image in case any Avalon users want to give it a try.

Be careful! If this (or anything else) bricks your Avalon's controller, you will need to attach a serial port to recover!
...

tried it, bricks avalon. failsafe works. recovered to stock firmware.
I don't lie. Anyone with a clue can clearly see that an occurance of bricking a controller with a test build clearly marked as possibly having that effect, is not remotely the same thing as "BFGMiner ... brick mining hardware", nor does one person mentioning the result as such make it "well known". Too bad you're too busy trolling to have a clue.
That is software that you posted on the public (crappy) bitcoin wiki on the avalon page for people to use ...
You have also ALREADY got in your clone miner the software for the BFL ASIC hardware that is COMPLETELY UNTESTED.
The hardware doesn't exists yet.
Everyone using your crappy clone miner has that completely UNTESTED code in it.
Your complete lack of testing your crappy code was one of the main issues that you used as an excuse to clone cgminer - when you wrote crappy untested changes to the icarus code that you NEVER tested on window - and it didn't work at all - it locked up cgminer - and you ranted about me overwriting your code that didn;t work ... then decided to clone cgminer and change the names and the donation address:
https://github.com/luke-jr/bfgminer/commit/b9df56511c7bd1a2e1f075e9c184c1a4b0f1ba20
legendary
Activity: 2576
Merit: 1186
CGMiner has nanosleep and sleep declared, which fucks the build for x86_64-w64-mingw32. Also, pthreads are not listed in the dependencies, and there is no option in configure to specify the prefix for pthreads.
We don't support building for w64 since it serves no useful advantage over 32 bit builds.
BFGMiner has w64-related bugs fixed and officially supported.
However, please note that BFGMiner is well known to brick mining hardware. Avoid it.
As usual, this is a lie.

And just to completely and simply prove that Luke-Jr lies and knows he is lying but has no issue with posting lies on this forum as he does REGULARLY - here is a direct link and quoted copy of the post in his thread that he knows about that says it bricks, and even Luke-Jr's warning about his software possibly bricking ... which it does:
https://bitcointalksearch.org/topic/m.1689104
Made a BFGMiner 2.99.0 + experimental Avalon driver firmware image in case any Avalon users want to give it a try.

Be careful! If this (or anything else) bricks your Avalon's controller, you will need to attach a serial port to recover!
...

tried it, bricks avalon. failsafe works. recovered to stock firmware.
I don't lie. Anyone with a clue can clearly see that an occurance of bricking a controller with a test build clearly marked as possibly having that effect, is not remotely the same thing as "BFGMiner ... brick mining hardware", nor does one person mentioning the result as such make it "well known". Too bad you're too busy trolling to have a clue.
Jump to: