Flashing firmware on a Mac for LibreDrive

The place to discuss Mac OS X version of MakeMKV
MKV Maker
Posts: 15
Joined: Wed Jun 03, 2020 3:42 am

Re: Flashing firmware on a Mac for LibreDrive

Post by MKV Maker »

garygomm wrote:
Thu Sep 10, 2020 2:07 pm
Steps taken
1. download sdf.bin
2. download mk-firmware-pack-YYYYMMDD
- where YYYYMMD is the date of the latest firmware pack

3. Extract the file you need for your drive from mk-firmware-pack-YYYYMMDD -> In my case this was -> HL-DT-ST-BD-RE_BU40N-1.04-NM00500-212005061142.bin

4. then in terminal on the MacBook
- I then copied sdf.bin and the firmware file I extracted from the mk-firmware-pack-YYYYMMDD into my /tmp folder .
(this only to make sure both files in same place and nice easy path to type).


5. then in terminal change directory - > cd /Applications/MakeMKV.app/MacOS/Contents

6. type -> ls - al

you should see a directory listing and one of the objects in the listing is 'makemkvcon'
this step just confirms you are in the right directory


7. the type -> ./makemkvcon f -l

This will allow you to find your drive identifier, in my case -> ''/IOBDServices/D5D25996'
from the following output:
Found 1 drives(s)
00: /IOBDServices/D5D25996, /dev/rdisk3, /dev/rdisk3
HL-DT-ST_BD-RE_BU40N_1.01_211910161032_MOFK6283224


8. to actually perform the update, type -> ./makemkvcon f -d '/IOBDServices/D5D25996' -f /tmp/sdf.bin rawflash main -i /tmp/HL-DT-ST-BD-RE_BU40N-1.04-NM00500-212005061142.bin

you will then be prompted to type in 'yes' to flash the firmware;

Reading input file /tmp/HL-DT-ST-BD-RE_BU40N-1.04-NM00500-212005061142.bin
Flashing flags = 0x0 : 0 0 0 0 : ---- ---- ---- ----
Current Drive ID: HL-DT-ST_BD-RE_BU40N_1.01_211910161032_MOFK6283224
Ready to write drive flash memory.
Type "yes" to continue, "no" to abort
yes

9. Once you type in yes and hit Enter - you should get the following output:

Operation started: Sending flash image to drive
100% Operation finished
Operation started: Programming flash
100% Operation finished
Done successfully

After hitting Enter the upload and flashing took about 20 seconds.
Will you update this to use the included sdftool binary? I believe the sdf.bin image is not necessary when using the sdftool binary. I have tried all syntax possible according to sdftool —help. The error is unknown command. I copied and pasted the /io… designation for the drive and of course included the path to the firmware image both parts surrounded by apostrophe characters [some call them single quotations] just in case. No matter how I format the line I cannot make the syntax accepted. Of course I am using version 1.17.4 of MakeMKV. I am using the release candidate of Mac OS version 14.
dcoke22
Posts: 1986
Joined: Wed Jul 22, 2020 11:25 pm

Re: Flashing firmware on a Mac for LibreDrive

Post by dcoke22 »

MKV Maker wrote:
Sun Sep 17, 2023 5:36 am
Will you update this to use the included sdftool binary? I believe the sdf.bin image is not necessary when using the sdftool binary. I have tried all syntax possible according to sdftool —help. The error is unknown command. I copied and pasted the /io… designation for the drive and of course included the path to the firmware image both parts surrounded by apostrophe characters [some call them single quotations] just in case. No matter how I format the line I cannot make the syntax accepted. Of course I am using version 1.17.4 of MakeMKV. I am using the release candidate of Mac OS version 14.
I think you're talking about

Code: Select all

/Applications/MakeMKV.app/Contents/MacOS/sdftool
It looks like

Code: Select all

/Applications/MakeMKV.app/Contents/MacOS/sdftool -l
will print out the available drives.

On my system, I get this output:

Code: Select all

user@machine ~ % /Applications/MakeMKV.app/Contents/MacOS/sdftool -l
Found 3 drives(s)
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
00: /IOBDServices/1E20D1E6
  PIONEER_BD-RW___BDR-212U_1.01_AGDL002389WL

DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
01: /IOBDServices/0DF09974
  ASUS_BW-16D1HT_3.10_211901041014_KLPJ65B3554

DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
02: /IOBDServices/1A4C5045
  HL-DT-ST_BD-RE__WH16NS60_1.02_211810291936_KLHJ9P70118
-d is used to specify the drive, so this command lists the available commands for one of my drives.

Code: Select all

/Applications/MakeMKV.app/Contents/MacOS/sdftool -d /IOBDServices/0DF09974 help
which produces this output:

Code: Select all

DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149

MTK19xx firmware module v1.30

Commands:

  dump [auto|full|user]
  Dumps firmware image
    dump full      - dumps full rom image (if not disabled in firmware)
    dump user      - dumps non-volatile user data
    dump auto      - dumps full image if possible, user data otherwise

  rawflash [<flag>,<flag=value>,...]
    Sends the image and flashing flags to drive
    for flashing in self-update mode
  flags:
    main           - flashes main firmware (this is the default)
    full           - flashes boot loader and main firmware (Caution!!!)
    de             - sets DE byte in image
    enc            - encrypts firmware before sending to drive
    slim           - force USB slim drive handshake
I think the command to actually flash a drive would be:

Code: Select all

/Applications/MakeMKV.app/Contents/MacOS/sdftool -d /IOBDServices/0DF09974 rawflash main -i <path to flash binary>
Substitute the actual path to the file you're trying to flash of course. And if it has to be encrypted, use 'enc' instead of 'main'.
I haven't actually tried this, since I don't need/want to flash my drive.
MKV Maker
Posts: 15
Joined: Wed Jun 03, 2020 3:42 am

Re: Flashing firmware on a Mac for LibreDrive

Post by MKV Maker »

Interesting. I set the working directory to that directory and used ./sdftool instead of using the entire path every time. Also, the --help general command mentions flash not rawflash. That seems to be the only difference amongst yours and my syntax. I will try rawflash although it is not mentioned in the general help.
MKV Maker
Posts: 15
Joined: Wed Jun 03, 2020 3:42 am

Re: Flashing firmware on a Mac for LibreDrive

Post by MKV Maker »

Yes, rawflash worked for both drives instead of flash. Thanks for the clarification. If ever you use the binary then I definitely suggest to change the working directory and use ./sdftool instead of the entire path. If you type ./sdftool --help then you will note the command says flash instead of rawflash. I believe this is an oversight which shall be corrected. If only I would have known…
dcoke22
Posts: 1986
Joined: Wed Jul 22, 2020 11:25 pm

Re: Flashing firmware on a Mac for LibreDrive

Post by dcoke22 »

MKV Maker wrote:
Sun Sep 17, 2023 6:25 pm
Yes, rawflash worked for both drives instead of flash. Thanks for the clarification. If ever you use the binary then I definitely suggest to change the working directory and use ./sdftool instead of the entire path. If you type ./sdftool --help then you will note the command says flash instead of rawflash. I believe this is an oversight which shall be corrected. If only I would have known…
The 'top level' help does use the vanilla 'flash'.

Code: Select all

Typical usage:

sdftool -l                         list all available drives
sdftool -d D: help                 list all commands available for the drive
sdftool -d D: dump -o c:\out       dump drive firmware
sdftool -d D: flash -i file.bin    flash drive firmware
However, if you do the help for a specific drive, you get a more detailed answer. For example:

Code: Select all

user@machine MacOS % ./sdftool -d /IOBDServices/0DF09974 help
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149
DEBUG: code=00000000 src=YF;}*jq/'~"3+_YtiqC]o-7i4:29395149

MTK19xx firmware module v1.30

Commands:

  dump [auto|full|user]
  Dumps firmware image
    dump full      - dumps full rom image (if not disabled in firmware)
    dump user      - dumps non-volatile user data
    dump auto      - dumps full image if possible, user data otherwise

  rawflash [<flag>,<flag=value>,...]
    Sends the image and flashing flags to drive
    for flashing in self-update mode
  flags:
    main           - flashes main firmware (this is the default)
    full           - flashes boot loader and main firmware (Caution!!!)
    de             - sets DE byte in image
    enc            - encrypts firmware before sending to drive
    slim           - force USB slim drive handshake
MKV Maker
Posts: 15
Joined: Wed Jun 03, 2020 3:42 am

Re: Flashing firmware on a Mac for LibreDrive

Post by MKV Maker »

I should have done that. I think Mike shall fix this because there is certainly ambiguity. Considering it worked for me I believe for users of Mac OS and MakeMKV this is by far the most easy, simple, and effectual manner by which to flash a drive’s firmware.
MKV Maker
Posts: 15
Joined: Wed Jun 03, 2020 3:42 am

Re: Flashing firmware on a Mac for LibreDrive

Post by MKV Maker »

I have got two questions. Firstly, what mean those debug codes whenever drives are listed? Secondly, what are the differences in behaviour to flash the main firmware versus to flash the main firmware and the boot loader? Apparently the latter requires caution.
Post Reply