Pages:
Author

Topic: Bounty for Cracking Bitmain S9 BMminer - page 12. (Read 38682 times)

legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
August 23, 2016, 12:00:58 AM
#40
Well it does have the block header version rolling command in it - so it's probably the real thing.
(look in the code for "multi" "support_vil")
i.e. it does include the 'multi' change that breaks the patent in the USA Tongue

It's still using the old 2014 version of the code and has none of our master cgminer bug fixes to cgminer itself since then, and still has getwork in it, that we removed long ago.
(and yeah I'm not referring to all the fixes I've written for the bitmain driver since 2012 that are of course missing)

If there is more than one version of their bmminer, then they've not included the changes/differences.

I'm staying clear away from bitmain though so I'm not interested in this bounty, but at least there is now 'some' source as per required by the license, even if they did violate the license for a month.

I will, however, say that anyone who wants a new version should stay right away from fubly
His git violates the cgminer license.
hero member
Activity: 1438
Merit: 574
Always ask questions. #StandWithHongKong
legendary
Activity: 4256
Merit: 8551
'The right to privacy matters'
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
hero member
Activity: 561
Merit: 521
Trustless IceColdWallet
August 19, 2016, 05:40:22 AM
#36
hi together,

like -ck says it is impossible to crack by a single person the bmminer. And yes bmminer is a fork of cgminer.

I found some differences and some functions, but without the source code we can do nothing.


  • miner_thread = 4
  • Built with bitmain_c5 mining support
  • Waiting on sem in miner thread
  • Multi Version = 1
  • logging.c
  • bitmain_c5_detect
  • bitmain_c5_prepare
  • bitmain_scanhash
  • hashtest_submit
  • copy_pool_stratum
  • driver-btm-c5.c
  • get_pic_iic
  • set_pic_iic
  • set_pic_voltage
  • get_pic_voltage
  • get_nonce2_and_job_id_store_address
  • set_nonce2_and_job_id_store_address
  • get_job_start_address
  • set_job_start_address
  • [get_QN_write_data_command/li]
    • set_QN_write_data_command
    • get_fan_control
    • set_fan_contro
    • get_hash_on_plug
    • get_hardware_version
    • get_fan_speed
    • get_time_out_control
    • set_time_out_contro
    • get_BC_command_buffer
    • set_BC_command_buffer
    • get_BC_write_command
    • get_ticket_mask
    • set_ticket_mask
    • get_job_id
    • set_job_id
    • get_job_length
    • set_job_length
    • get_block_header_version
    • set_block_header_version
    • get_time_stamp
    • set_time_stamp
    • get_target_bits
    • set_target_bits
    • get_pre_header_hash
    • set_pre_header_hash
    • get_coinbase_length_and_nonce2_length
    • set_coinbase_length_and_nonce2_length
    • get_work_nonce2
    • set_work_nonce2
    • get_merkle_bin_number
    • set_merkle_bin_number
    • get_nonce_fifo_interrupt
    • set_nonce_fifo_interrupt
    • get_dhash_acc_control
    • set_dhash_acc_control
    • get_hash_counting_number
    • set_hash_counting_number
    • get_all_temperature
    • set_PWM_according_to_temperature
    • set_frequency
    • set_frequency_with_addr
    • get_nonce_and_register
    • read_asic_register
    • check_asic_reg
    • check_asic_reg_with_addr
    • chain_inactive
    • set_address
    • software_set_address
    • set_asic_ticket_mask
    • set_baud
    • set_baud_with_addr
    • open_core
    • init_uart_baud
    • check_system_work
    • bitmain_c5_init
    • send_job
    • bitmain_c5_update
    • HASH2_32[7]
    • /dev/axi_fpga_dev open failed
    • /dev/axi_fpga_dev
    • mmap axi_fpga_addr failed. axi_fpga_addr
    • mmap axi_fpga_addr
    • data = 0x%x, and it's not equal to HARDWARE_VERSION_VALUE
    • axi_fpga_addr data = 0x%x
    • /dev/fpga_mem
    • /dev/fpga_mem open failed. fd_fpga_mem = %d
    • mmap fpga_mem_addr failed. fpga_mem_addr = 0x%x
    • mmap fpga_mem_addr = 0x%x\n"
    • job_start_address_1 = 0x%x
    • job_start_address_2 = 0x%x
    • kmalloc for dev failed.\
    • kmalloc for dev success
    • ...
    • ...
    • and many more

    here you can get my modified assembler code
    https://github.com/Zwilla/bmminer-asm
hero member
Activity: 1438
Merit: 574
Always ask questions. #StandWithHongKong
August 15, 2016, 07:43:30 AM
#35
If this is the case I guess the only way to achieve this is if the community puts pressure on Bitmain to do the right thing & release their code via their main thread. I just caught Bitmain online & questioned them about it - they immediately went offline again...... Roll Eyes

https://bitcointalksearch.org/topic/m.15928758
sr. member
Activity: 261
Merit: 257
August 15, 2016, 07:34:25 AM
#34
I guarantee you there is likely to be only minuscule differences in the code between cgminer 4.8.0 and bmminer (mainly to support their custom antpool stratum extensions) and small differences between the S7 and S9 drivers.
I'm pretty sure this isn't the case surprisingly, the S9 driver appears to be very different from all their previous miners(It appears they also changed the kernel drivers and userspace cgminer interface).

My points as well Heinz,
Bitmain wouldn't be there without us and now they screw us all by not releasing the code.
Today is the last day for voting and it looks like we are going to make the Bounty. Now we have to look for very clever people ?


Until/unless Bitmain releases their bmminer(cgminer fork) source code it won't be realistically possible to create a normal version of cgminer that's compatible with the S9. It would require someone very skilled in reverse engineering and likely a huge amount of time(probably 10's of thousands of dollars in development hours) to even have a chance at getting it to hash at all without the reference source code. If the driver was similar to the S7 it might be realistic but that's not the case here.
legendary
Activity: 1453
Merit: 1011
Bitcoin Talks Bullshit Walks
August 13, 2016, 08:57:31 AM
#33
My points as well Heinz,
Bitmain wouldn't be there without us and now they screw us all by not releasing the code.
Today is the last day for voting and it looks like we are going to make the Bounty. Now we have to look for very clever people ?


Yes looks to be so.  i tried a shot in the dark with michelem that creates minera but it is mostly overlay that polls cgminer api.  software worked great for a flash of ras pi and the old gridminers.  I dont know too many coders that would be up to this task.  Once we post the bounty we can see how it goes.  And if someone reading this knows of anyone please direct them this way.  If they feel they need more im sure we can try to negotiate something. 

Best Regards
d57heinz
legendary
Activity: 938
Merit: 1000
August 12, 2016, 10:08:00 AM
#32
My points as well Heinz,
Bitmain wouldn't be there without us and now they screw us all by not releasing the code.
Today is the last day for voting and it looks like we are going to make the Bounty. Now we have to look for very clever people ?
sr. member
Activity: 324
Merit: 250
August 11, 2016, 01:14:21 PM
#31
Quote

Well of course if you can get bitmain to release the details of their equipment.  Otherwise it would be just shooting into the dark.  Bitmain no longer cooperates with the community that built them up.  Typical of business to build off the backs of little guy to success then dump them into a river when finished. Roll Eyes

Best Regards
d57heinz

I guess my assumption was that drivers wouldn't be all that different between the previous versions and the current S9. Woulda been nice if BITMAIN would have kept everything standard and then "offered" their own program to large farms who find a value in their software instead of making everyone adopt the bmminer.
legendary
Activity: 1453
Merit: 1011
Bitcoin Talks Bullshit Walks
August 11, 2016, 09:44:34 AM
#30
Quote
Overwrite it with what? There are no drivers for the S9 in official cgminer so you if you replace bmminer with cgminer it won't do anything.

Can't new drivers be written?

Well of course if you can get bitmain to release the details of their equipment.  Otherwise it would be just shooting into the dark.  Bitmain no longer cooperates with the community that built them up.  Typical of business to build off the backs of little guy to success then dump them into a river when finished. Roll Eyes

Best Regards
d57heinz
sr. member
Activity: 324
Merit: 250
August 11, 2016, 09:35:44 AM
#29
Quote
Overwrite it with what? There are no drivers for the S9 in official cgminer so you if you replace bmminer with cgminer it won't do anything.

Can't new drivers be written?
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
August 09, 2016, 04:27:11 PM
#28
Pardon my ignorance, but wouldn't "over-writing" the current software on the bitmain equipment be easier than cracking and modifying? I think of it like flashing the BIOS on a motherboard or updating the firmware on another peripheral. I'm sure im missing something here
Overwrite it with what? There are no drivers for the S9 in official cgminer so you if you replace bmminer with cgminer it won't do anything.
sr. member
Activity: 324
Merit: 250
August 09, 2016, 02:51:23 PM
#27
Pardon my ignorance, but wouldn't "over-writing" the current software on the bitmain equipment be easier than cracking and modifying? I think of it like flashing the BIOS on a motherboard or updating the firmware on another peripheral. I'm sure im missing something here
member
Activity: 66
Merit: 10
August 08, 2016, 11:04:52 AM
#26

Can you configure cgminer in S9 to allow API listen? Something like this https://github.com/michelem09/minera/wiki/Network-mining-devices#configuring-a-network-miner
Or perhaps S9 has this option pre-configured?

Because with that you will be able to use my Minera project to have detailed statistics, scheduled pool switching, full charts and much more, if the main problem is that.

First beta of new Minera is set to be released soon (some weeks I thinks) love to have you to test it.

Actually I've found 2 conf files in the S9 with the API listen argument.

One is located in /etc/bmminer.conf.factory - This one I assume is used for restoring factory defaults.
Contains: "api-allow" : "A:0/0,W:*" - Pretty sure this leaves S9's open to intrusion

The other one is in /config/bmminer.conf
This fie also contains : "api-allow" : "A:0/0,W:*"

I'd be happy to test minera on my S9 once the beta is ready.

X
legendary
Activity: 938
Merit: 1000
August 08, 2016, 07:21:31 AM
#25
There is NO CGminer in S9.... Its Bitmains own BMMiner, thats the whole problem, you cant do shit with the S9, so neither Minera, Awesome, Crypto Glance or others can do anything besides monitorring. No configuration besides Mhz...... NOTHING !
legendary
Activity: 1015
Merit: 1000
August 08, 2016, 04:05:11 AM
#24
Can I know the actual problem with S9 firmware? If it's only cgminer version can't you simply replace it with a self-compiled version? What are you looking for? I don't have one, so I'm asking to understand the issue with it.

Yes thats what needs to be made.. It needs most likely a driver that will control the hashboards that wont come with just a simple copy/replace of bmminer with cgminer.> We need software that will control s9 .  even a complete update of beagle bone would be great.. would be really cool if you could flash minera to the s9 and run it from that.   Thanks Michelem for looking at this for me.  Really appreciate it.

Best regards
d57heinz

Can you configure cgminer in S9 to allow API listen? Something like this https://github.com/michelem09/minera/wiki/Network-mining-devices#configuring-a-network-miner
Or perhaps S9 has this option pre-configured?

Because with that you will be able to use my Minera project to have detailed statistics, scheduled pool switching, full charts and much more, if the main problem is that.

First beta of new Minera is set to be released soon (some weeks I thinks) love to have you to test it.
legendary
Activity: 938
Merit: 1000
August 06, 2016, 08:19:56 AM
#23
-ck, Thanks, much appreciated.
I know we cant do shit without some kind of code, thats why im trying at the moment to see if some of the guys who used to work for Bitmain could help us out one way or the other or some master genie could break the damn thing.
If anyone knows something or have any kind of leads, please PM.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
August 04, 2016, 06:55:14 PM
#22
What Bitmain actually did is to make miners turn their backs on S9. Miners will buy from their competitors instead, Bitmain is not so big as to pull the final shots in the mining industry.
Unfortunately that is smoking the crack pipe. There are pretty much no competitors to the S9 for now and by the time there is, no doubt the Bitmain gear will still be cheaper. The vast majority of miners do not make their purchase decisions on principles but on price. I'm not saying that's right, just pointing out reality.

As for "cracking" the S9, unless they put their code up somewhere showing what differences there are in their cgminer fork, it will pretty much never happen. If/when they put their code up for public scrutiny, it would be a simple matter of porting whatever was different between the S7 and S9 into a new cgminer binary. I guarantee you there is likely to be only minuscule differences in the code between cgminer 4.8.0 and bmminer (mainly to support their custom antpool stratum extensions) and small differences between the S7 and S9 drivers. Making firmware is a lot of work, but building a cgminer binary wouldn't be that much work, and I could probably do it (if they put up their code somewhere to see) as I did for S5. That probably doesn't meet the criteria for your bounty so you if you're going to keep offering the bounty you'll have to be absolutely clear about what you want done.
sr. member
Activity: 294
Merit: 250
Minter
August 03, 2016, 12:13:14 PM
#21
I do not own any Bitmain miners as I refuse to endorse or support a manufacturer who knowingly breaks the Open Source GPLv3 licensing agreement for their own personal monetary gain.  The cgminer devs have worked tirelessly & for free to give the mining community the best, safest & most powerful miner available.

It is criminal that Bitmain continue to use/copy the cgminer code while refusing to release the changes made as required by the Open Source GPLv3 license terms.

I would gladly donate. Then I might even buy one. A legit one.

What Bitmain actually did is to make miners turn their backs on S9. Miners will buy from their competitors instead, Bitmain is not so big as to pull the final shots in the mining industry.
Pages:
Jump to: