Content-space.de

The WikiBlog of Michael Hamann about changing technologies and more

User Tools

Site Tools


blog:2012:updating_a_samsung_ssd_840_firmware_with_linux

Updating a Samsung SSD (840) Firmware with Linux

If you are lucky and have an (external) CD drive you can burn one of the ISO images provided on the Samsung SSD page. However as I bought the SSD (a 840 non-pro) for my netbook and had already installed the SSD and didn't want to remove it again I didn't have this option.

After some trial and error I succeeded by extracting a part of the ISO image and putting it on the FreeDOS stick that I created using UNetbootin. Neither using the executable for Windows on FreeDOS nor creating a USB Stick using UNetbootin and the ISO image worked for me.

I read that under Windows you can create a bootable USB stick using Magican (can be found on the same download page). I didn't know this before and haven't tried it but if you have a Windows somewhere this might be a safer option than what I suggest here.

For those of you who don't want to repeat the trial and error, here is what worked for me. Updating the firmware is a dangerous procedure, your SSD could be damaged irreparably if the update fails. If you follow these instructions you do that at your own risk.

I have a Samsung 840 (non-pro) SSD but I could imagine that this could work for other Samsung SSDs, too.

The short version

You need the samsung directory from the isolinux/btdsk.img image inside the ISO, copy it on the USB stick. Once you have booted the stick, change the directory to C:\samsung\DSRD\ directory and execute DSRDGUIO.exe.

The long version

  1. Use UNetbootin to install FreeDOS on the USB stick
  2. Download the ISO image. I assume it is in /tmp/Samsung_SSD_840_DXT07B0Q.iso
  3. Mount the ISO image. I've create a directory /mnt/test for this purpose:
    mount -o loop /tmp/Samsung_SSD_840_DXT07B0Q.iso /mnt/test
  4. Copy /mnt/test/isolinux/btdsk.img to /tmp.
  5. Unmount the ISO image: umount /mnt/test
  6. Mount btdsk.img: mount -o loop /tmp/btdsk.img /mnt/test
  7. Copy /mnt/test/samsung on the USB stick
  8. Unmount btdsk.img: umount /mnt/test
  9. Reboot from the USB stick
  10. Select one of the live versions of FreeDOS
  11. In FreeDOS execute:
    C:\
    cd samsung\dsrd\
    DSRDGUIO.exe
  12. Follow the instructions that appear

Feel free to comment if it worked for you or if it didn't so other people can learn from your experiences.

Comments

Two questions:

How do I find out which firmware version my SSD has?

What are the benefits of an updated firmware?

1 |
Andreas Gohr
| 2013/01/24 23:41 | reply

@Andreas Gohr: You can find the firmware version in the output of hdparm -i /dev/sdX, there should be FwRev= and after that the firmware version.

For my model they improved “sustained performance” and I found people claiming that the performance in some cases was really increased, that's why I decided to update. The download page also mentions that they fixed “minor bugs”, I don't know what a minor bug in a SSD could be.

2 |
Michael Hamann
| 2013/01/26 15:36 | reply

I just downloaded the Windows ISO for my 840 drive, DXT08B0Q in my in my case, and then used 'sudo unetbootin' to create a bootable USB flash drive. I used FreeDOS 1.0 as the distribution and version.

I rebooted with that and the Samsung DOS program ran. Thanks for pointing me to that method and the site for the firmware ISO!

3 |
Sim
| 2013/06/05 21:52 | reply

In Windows to create all this you can just use something like 7-Zip to extract the 'samsung' directory and copy to USB! :)

4 |
Dalana
| 2013/07/26 02:45 | reply

Thanks Michael for your clear instructions!

I just want to make a note to others that your instructions apply to the Windows version of the firmware .iso, not to the Mac version of the .iso. The Mac version contains some different directories and filenames which don't match those in your instructions.

Also, besides using hdparm, people can find out the firmware version of their ssd by installing the smartmontools package,

# sudo aptitude install smartmontools

and then issuing the command:

# sudo smartctl –info <device>

Check the man page for lots of other goodies.

5 |
don
| 2013/10/17 01:50 | reply

Worked great with firmware DXT08B0Q, thanks for the instructions!

6 |
Arnaud Fontaine
| 2013/11/12 07:23 | reply

Thanks! The Samsung image only got me to “PANIC: mcb chain corrupted” but following your steps worked. I could not run `dir` in the samsung\drsd directory (it just froze) and failed to run it a few times. I went through all the steps again with a different USB stick (this one also only had one partition) and finally realized that it's zero at the end of DRSDGUI0.exe :D

NOTE: it is important that the partition id is correct in fdisk, for me b (W95 FAT32) worked. If it's wrong you probably won't be able to change to C: at all.

At the end of the update the utility reported “FIRMWARE UPDATE UNSUCCESSFUL!!!”, but after turning the computer off and on again, and entering the utility it reported that it had the latest version, so all is well. Phew!

7 |
Cillian de Róiste
| 2013/11/15 22:46 | reply

I have a dual-boot machine, with Ubuntu 14.4 installed on a Samsung 840 SSD, and Windows 7 on a HDD. Under Windows, I have the Samsung SSD wizard installed, and it informed me that there's a firmware update. Any idea if it would be safe to run this update from within Windows?

Thanks!

8 |
Ethan
| 2014/05/09 21:37 | reply

@Ethan: I have no idea how that wizard works. I think the safest option is to use the wizard in order to generate a bootable USB stick (apparently that's possible) and to apply the update using that stick.

As the firmware update shouldn't change any data on the SSD there shouldn't be any problems with a dual-boot system, the only (unlikely) problem I could imagine is that the update works by installing a special boot loader which might not work in a dual-boot system and might corrupt your existing boot loader.

As always create a backup so you can at least get your data back if anything should go wrong.

9 |
Michael Hamann
| 2014/05/10 14:08 | reply

Hi guys, this procedure works great but the firmware has not been updated! :( I tryied two times with no success on asus eeepc 1201ha, 2Gb ram ssd is Samsung 840 evo 120Gb FW EXT0BB0Q, new FW EXT0BB6Q. I can read everyone has an different error and I worry to loose data on sdd. So, are there news about? Thanks a lot

Regards

Pier

10 |
Pier
| 2014/07/17 15:23 | reply

@Pier: I forget to mention the operating system used, it is xubuntu 14.04 32bit kernel 3.15.5

11 |
Pier
| 2014/07/17 15:25 | reply

Great, thanks! I managed to use UNetbootin under Windows to create a bootable FreeDOS USB-stick and extracted and copied the Samsung-files with 7-ZIP. One small thing: In step 11 “C:\” should be “C:”

12 |
BK
| 2014/09/14 22:17 | reply

I have a Dell Optiplex 780DT with a Samsung 840 EVO (FW EXT0BB0Q) and Ubuntu Studio 14.04.1-LTS on it, using LVM. So I decided to upgrade the SSD firmware to EXT0BB6Q and loaded the “Windows ISO” from http://www.samsung.com/global/business/semiconductor/samsungssd/downloads/Samsung_SSD_840_EVO_EXT0BB6Q.iso but it gave the “unhandled exception” error mentioned elsewhere.

So I simply mounted the ISO and the btdsk.img within its isolinux folder and copied over the “samsung” folder and all its contents (several subfolders) onto my DOS-bootable HBCD USB stick. I could then boot the stick, navigate to the folder “samsung/DSRD” and execute “DSRDGUI0.EXE” from there.

ATTENTION: It checked the drive and offered the FW update but warned me it would clear the whole drive and I should make a backup before. Which I did (using Clonezilla). Afterwards I booted with the stick again, updated the firmware, and used Clonezilla to put my Ubuntu Studio system back onto the drive.

All good. Now I'm using 4 of these Samsung 840 EVOs, in several machines, all with the same firmware on them. I can't yet see any great performance improvements (the system was quite fast before), but at least I'm happy to have all my Samsung SSDs “on the same level”.

13 |
Moonbase
| 2014/09/26 13:52 | reply

@Moonbase: Forgot to mention I was talking about 1TB Samsung 840 EVO SSDs, so I didn't really expect a big performance increase (the larger drives have always been faster than the small ones).

And, well, the backup/restore process (~500GB in use) to a conventional external USB 2 drive took an extra 8 hours. Unfortunately, I didn't have a spare eSATA drive with enough free space on it, and the Dell 780DT only has USB 2 ports …

14 |
Moonbase
| 2014/09/26 14:04 | reply

Hi – Have a query, will be grateful if someone could help me on this? Samsung has released a firmware update & performance restoration of 840 EVO for Linux and Max. http://www.samsung.com/global/business/semiconductor/minisite/SSD/global/html/support/downloads.html The instructions for doing the update using USB bootable is bit confusing to me, as a total noob. For the update, do I need FreeDOS in USB or just extracting the files would suffice? Have you tried this yet on your SSD? Thanks.

15 |
Anand
| 2014/10/30 05:40 | reply

I'm a little late on this but I just did an Update on my 840 Pro by copying the btdsk.img on a USB stick (like “cp btdsk.img /dev/sdX”). Legacy boot needed of cause.

I got “upgrade unsuccessful” though but at least it boots without hassle.

16 |
jayme
| 2016/01/23 20:08 | reply

I just upgraded my Samsung 840 PRO firmware from the Samsung iso image for the 840 PRO (available on-line from Samsung), using your excellent instructions. The only issue was the poor instructions in the Samsung tool which made no clear call to action at the point where the drive had to be power cycled. You need to power cycle the drive as soon as you see “power cycle” mentioned. Much appreciated. Thank you.

17 |
Phil
| 2016/06/10 03:15 | reply

For everyone who runs into a “BREAKING!” error: go into your bios and change the SATA port from AHCI to ATA/IDE before booting into the firmware upgrade (and don't forget to revert this before trying to boot into your normal operating system).

After that I still got a “version mismatch, upgrade failed”-message after the power cycle, but after power off and rebooting into linux smartctl displayed the correct firmware version.

18 |
Cybso
| 2016/09/10 23:57 | reply
blog/2012/updating_a_samsung_ssd_840_firmware_with_linux.txt · Last modified: 2013/01/24 21:11 by michitux