Linux How To: Flash ASUS-BW-16D1HT

Discussion of LibreDrive mode, compatible drives and firmwares
ciaduck
Posts: 2
Joined: Mon Jun 29, 2020 2:01 am

Linux How To: Flash ASUS-BW-16D1HT

Post by ciaduck »

It took me too long to figure this out, so to save the next poor soul from an hour of searching, here is everything in one place.

Warning: This process is incompatible with Asus BW-16D1HT drives manufactured prior to 2015. The model number is the same, so take note of the date. To ensure your drive is compatible, run MakeMKV and check the drive before attempting firmware flashing.

1) You need the SDF file, you can find it in your MakeMKV data folder. This is set up in The MakeMKV Prefences, and is ~/.MakeMKV by default.

~/.MakeMKV/_private_data.tar has SDF files from using MakeMKV to open disks. Use the GUI to open a disk, to ensure there is at least one SDF. While you're at it, validate that the drive is compatible and versions are correct, etc.

Code: Select all

# List data in tar archive
tar -tvf ~/.MakeMKV/_private_data.tar 

# Extract Specific SDF file
tar -xvf ~/.MakeMKV/_private_data.tar sdf_000000??.bin
2) You need the LibreDrive Firmware to flash to the drive. You can download it here: viewtopic.php?f=19&t=19113#p71880

3) MakeMKVcon contains sdftool built into it's command line. You can use this to flash the drive, but read the help options carefully. Using MakeMKV 1.15.1, the following commands worked for me.

Code: Select all

sudo makemkvcon f --help
sudo makemkvcon f -f sdf_00000076.bin -d /dev/sr0 rawflash -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
The trick here was noticing that the command was "rawflash" and not "flash".

I'm using Ubuntu 18.04, but this should be transient to any Linux.

My version of sdftool is:

Code: Select all

$ sudo makemkvcon f --version
LibDriveIo/SdfTool version: 2.01
Cheers!
Last edited by ciaduck on Wed Jul 29, 2020 5:50 am, edited 2 times in total.
AffSeda
Posts: 32
Joined: Wed Apr 25, 2018 1:43 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by AffSeda »

Might want to edit that post and put a warning at the top for people using 1.x (< 2015) drives not to do this before someone searches, finds this as the top result, and blindly does it.
MrPickle
Posts: 1
Joined: Tue Jul 07, 2020 4:18 pm

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by MrPickle »

ciaduck, many, many thanks for posting. I've just tried your script on Debian Buster and can confirm it worked!

>makemkvcon f -f sdf_00000078.bin -d /dev/sr0 rawflash -i ./Downloads/mk-firmware-pack-20200415/MK/ASUS/BW-16D1HT/ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin

Reading input file ./Downloads/mk-firmware-pack-20200415/MK/ASUS/BW-16D1HT/ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Flashing flags = 0x0 : 0 0 0 0 : ---- ---- ---- ----
Current Drive ID: ASUS_BW-16D1HT_3.10_XXX_XXX
Ready to write drive flash memory.
Type "yes" to continue, "no" to abort
yes
Operation started: Sending flash image to drive
100% Operation finished
Operation started: Programming flash
100% Operation finished
Done successfully
ciaduck
Posts: 2
Joined: Mon Jun 29, 2020 2:01 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by ciaduck »

AffSeda wrote:
Tue Jun 30, 2020 2:14 am
Might want to edit that post and put a warning at the top for people using 1.x (< 2015) drives not to do this before someone searches, finds this as the top result, and blindly does it.
Good point. I'll add it when I can. My edits still need mod approval. So it takes a while to update the post.

Hopefully people read and understand what they are doing before they run code. I understand the reality is that some people just say YOLO, and run stuff blindly. Updating firmware, microcode, or BIOS this attitude is a recipe for disaster.

Do you know if the drive model numbers are the same on pre-2015 Asus drives? I was under the impression they were different.
AffSeda
Posts: 32
Joined: Wed Apr 25, 2018 1:43 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by AffSeda »

ciaduck wrote:
Sat Jul 18, 2020 5:52 am
Do you know if the drive model numbers are the same on pre-2015 Asus drives? I was under the impression they were different.
Same model; ASUS BW-16D1HT. People have to look at the date of the drive and/or the metal indent pattern on the drive case (seems to be platform specific) and/or just check the platform in MakeMKV before proceeding.
yorick
Posts: 20
Joined: Sun Nov 04, 2018 12:38 pm

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by yorick »

Thank you! This worked well on Ubuntu 20.04 and MakeMKV 1.15.2. One wrinkle: No SDF file in _private_data.tar, not even after opening a disc. I downloaded it from https://www.makemkv.com/sdf.bin and that worked great.

Edit: The instructions also worked for cross-flashing a UH12NS40 (that had been crossflashed to Asus 3.01) to WH16NS60 MK 1.03, over USB.
ubuntu_joe
Posts: 1
Joined: Thu Apr 07, 2022 3:08 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by ubuntu_joe »

I was getting a bunch of errors that the tool couldn't find my .bin file as seen below, even with the files set up as 777

sudo makemkvcon f -f sdf_0000007f.bin -d /dev/sr0 rawflash -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Input file not found -- ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Internal error 0x83000001

I ran it w/o sudo and it found the file and I got a handshake error below:

makemkvcon f -v -f sdf_0000007f.bin -d /dev/sr0 rawflash enc -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Loaded SDF.bin version 0x7f

Reading input file ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Flashing flags = 0x0 : 0 0 0 0 : ---- ---- ---- ----
Sending image in encrypted format
Current Drive ID: ASUS_BW-16D1HT_3.10_211901041014_KLM21252118
Desktop drive handshake failed with error=0x40000001, trying slim drive handshake...
DEBUG: Code 4280127493 at dw|GL&h^ZC,QM-c,P7p%U=3B)s oHO}.:121264924

Command produced error code 0x8f1d9005

Handshake error was caused by not running with sudo, so I changed the owner and group of the Asus bin file to root. This got me to the next error:

sudo makemkvcon f -f sdf_0000007f.bin -d /dev/sr0 rawflash -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Unable to load sdf.bin
Internal error 0xffffffff

So I changed owner and group to root for the sdf file and voila, it worked!

sudo makemkvcon f -f sdf_0000007f.bin -d /dev/sr0 rawflash -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin

Reading input file ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Flashing flags = 0x0 : 0 0 0 0 : ---- ---- ---- ----
Current Drive ID: ASUS_BW-16D1HT_3.10_211901041014_KLM21252118
Ready to write drive flash memory.
Type "yes" to continue, "no" to abort
yes
Operation started: Sending flash image to drive
100% Operation finished
Operation started: Programming flash
100% Operation finished
Done successfully

Kudos to the original post for providing the instructions. Sharing my experience here as there are not any productive threads talking about the error codes I experienced and so I posted here where they could be found and help get past them. Might have been obvious to some, but wasn't so obvious to me initially.
theSilence
Posts: 2
Joined: Sun Nov 20, 2022 12:59 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by theSilence »

I have my first UHD ready to rip. Instructions are laid out nicely. I just have one question. In this step

Code: Select all

# Extract Specific SDF file
tar -xvf ~/.MakeMKV/_private_data.tar sdf_000000??.bin
how do I know what bin to pick?
Billycar11
Posts: 4349
Joined: Sun Aug 24, 2014 5:49 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by Billycar11 »

theSilence wrote:
Sun Nov 20, 2022 1:07 am
I have my first UHD ready to rip. Instructions are laid out nicely. I just have one question. In this step

Code: Select all

# Extract Specific SDF file
tar -xvf ~/.MakeMKV/_private_data.tar sdf_000000??.bin
how do I know what bin to pick?
the newest one
Buy a UHD drive from the guide and how to video maker: https://www.makemkv.com/forum/viewtopic ... 20&t=17831
UHD Drives Guide: https://www.makemkv.com/forum/viewtopic ... 16&t=19634
Auto flash kit $25 Email me for one Billycar5924@gmail.com
theSilence
Posts: 2
Joined: Sun Nov 20, 2022 12:59 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by theSilence »

That worked. For others. I download sdf.bin from here: https://makemkv.com/sdf.bin, even though it was already in my .MakeMKV . Next step was to figure out the drive

Code: Select all

~/.MakeMKV$ makemkvcon f -l
Found 2 drives(s)
00: dev_21:8, /dev/sr1, /dev/sr1
  ASUS_BW-16D1HT_3.10_211901041014_KL6L1J85050

01: dev_21:7, /dev/sr0, /dev/sr0
  ASUS_DRW-24B1ST___j_1.11_LBD0CL007882
then

Code: Select all

~/.MakeMKV$ makemkvcon f -d dev_21:8 -f sdf.bin rawflash -i /mk-firmware-pack-20200720/MK/ASUS/BW-16D1HT/ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin 
So I assume it picked the latest one from sdf.bin. Thanks for the help @Billycar11
kubuntufan01
Posts: 9
Joined: Thu Jan 12, 2023 12:32 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by kubuntufan01 »

The current version is different but I can confirm this works. If you simply right clicked the /home/user/.MakeMKV/_private_data.tar file and tried to extract the sdf file you're going to get errors. Follow the instructions above using the tar command to extract the sdf file.

Code: Select all

#Get root
Sudo -i 
[sudo] password for user:
root@Node-11:~# cd /home/user/
root@Node-11:/home/user# makemkvcon f -v -f sdf_00000096.bin -d /dev/sr0 rawflash enc -i ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Loaded SDF.bin version 0x96

Reading input file ASUS-BW-16D1HT-3.10-WM01601-211901041014.bin
Flashing flags = 0x0 : 0 0 0 0 : ---- ---- ---- ----
Sending image in encrypted format
Current Drive ID: ASUS_BW-16D1HT_3.10_211901041014_KLZL9PA3508
Ready to write drive flash memory.
Type "yest" to continue, "no" to abort
yes
Operation started: Sending flash image to drive
 100% Operation finished
Operation Started: Programming flash
 100% Operation finished
Done successfully

Command produced 0 file(s)

root@Node-11:/home/user#
kubuntufan01
Posts: 9
Joined: Thu Jan 12, 2023 12:32 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by kubuntufan01 »

The forum can confuse you and you can make fatal errors that brick your drive! The post are from a few years back and MakeMKV and SDF.bin version has changed. Simply copying and pasting code isn't going to do. You need to understand what you're doing.

The tar ~ tvf command isn't going to tell you the sdf.bin version (You need to know this.)

Instead make sure to show hidden files in your home directory.

Go into the /home/user/.MakeMKV directory and locate the "_private_data.tar" file

Right click it and open it with Ark. Do NOT extract it using Ark. (I found that it will corrupt the file somehow. I don't know why but it does.)

Now it should be at the bottom of the archive. In my case it was "sdf_00000096.bin".

Go back to the begining of this thread.

Code: Select all

"# Extract specific sdf file" >>>> and replace it with the correct sdf filename.
Otherwise everything is pretty much the same.
dennis__
Posts: 9
Joined: Sun Mar 03, 2024 2:22 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by dennis__ »

I followed these steps and got a "Done Successfully" message. However my firmware does not appear to have changed.

Code: Select all


dennis@office~/.MakeMKV$ tar -tvf _private_data.tar 

... numerous hkd*.bin files
-rw-r--r-- 0/0          390012 1969-12-31 16:00 sdf_00000065.bin

Code: Select all

dennis@office:~/.MakeMKV$ tar -xvf _private_data.tar sdf_00000065.bin 
dennis@office:~/.MakeMKV$ cp ~/Desktop/HL-DT-ST-BD-RE_WH16NS60-1.02-NM00100-211810291936.bin .
dennis@office:~/.MakeMKV$ ls
HL-DT-ST-BD-RE_WH16NS60-1.02-NM00100-211810291936.bin  screen.conf       update.conf
_private_data.tar                                      sdf_00000065.bin
Both files now available for makemkvcon

Code: Select all

dennis@office:~$ makemkvcon f --list
Found 1 drives(s)
00: dev_21:2, /dev/sr0, /dev/sr0
  HL-DT-ST_BD-RE__WH14NS40_1.05_212005061444_KLBNAHI5756
OK, I have version 1.05 currently.

Code: Select all

dennis@office:~/.MakeMKV$ makemkvcon f --version
LibDriveIo/SdfTool version: 2.01
dennis@office:~/.MakeMKV$ sudo makemkvcon f -f sdf_00000065.bin -d /dev/sr0 rawflash -i HL-DT-ST-BD-RE_WH16NS60-1.02-NM00100-211810291936.bin 
[sudo] password for dennis: 

Reading input file HL-DT-ST-BD-RE_WH16NS60-1.02-NM00100-211810291936.bin
Flashing flags = 0 0 0 0 : ---- ---- ---- ----
Ready to write drive flash memory.
Type "yes" to continue, "no" to abort
yes
Operation started: Sending flash image to drive
 100% Operation finished                                
Operation started: Programming flash
 100% Operation finished                                
Done successfully

Seems to have worked. It even spent a few moments doing some work and showing a progress percentage.

But...

Code: Select all

dennis@office:~$ makemkvcon f --list
Found 1 drives(s)
00: dev_21:2, /dev/sr0, /dev/sr0
  HL-DT-ST_BD-RE__WH14NS40_1.05_212005061444_KLBNAHI5756

Still has the old fw? Loaded a dvd and started makemkv GUI...

Code: Select all

Drive Information
OS device name: /dev/sr0
Current profile: DVD-ROM
Manufacturer: HL-DT-ST
Product: BD-RE WH14NS40
Revision: 1.05
Serial number: 
Firmware date: 2120-05-06 14:44
Bus encryption flags: 17
Highest AACS version: 75

LibreDrive Information
Status: Possible (with patched firmware)
Drive platform: MT1959
Harware support: Yes
Firmware support: No
Firmware type: Original (patched version available)
Firmware version: 1.05
DVD all regions: Possible (with patched firmware)
BD raw data read: Possible (with patched firmware)
BD raw metadata read: Possible (with patched firmware)
Could someone let me know what I did wrong? Ubuntu 20.04 if that matters. Thanks.
d00zah
Posts: 1586
Joined: Mon Jun 06, 2016 8:23 pm

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by d00zah »

dennis__ wrote:
Mon Mar 11, 2024 12:23 am
...
Could someone let me know what I did wrong? Ubuntu 20.04 if that matters. Thanks.
V1.05 is encrypted. You need to add 'enc' to the command line.
dennis__
Posts: 9
Joined: Sun Mar 03, 2024 2:22 am

Re: Linux How To: Flash ASUS-BW-16D1HT

Post by dennis__ »

V1.05 is encrypted. You need to add 'enc' to the command line.
I have tried adding enc after the rawflash parameter like I read in a post above -

Code: Select all

sudo makemkvcon f -f sdf_00000065.bin -d /dev/sr0 rawflash enc -i HL-DT-ST-BD-RE_WH16NS60-1.02-NM00100-211810291936.bin 
[sudo] password for dennis: 

Parameter 'enc' not recognized

Command produced error code 0x8f1e0005
Then I tried it in a few other spots with a similar error or "Unknown command".

I hate to ask for you to spell it out for me but could you tell me exactly how to inform makekvon that the existing fw is encrypted?
Post Reply