Nokia Firmware Harmattan Flasher Software for N950 beta 1

Here is the flasher software that I can't find anywhere at Nokia's website but is needed for flashing under linux (e.g., Fedora 15) since the latest version (22.12.0) doesn't work.
$ ./flasher -V
flasher 3.11.5 (May 17 2011) Harmattan

$ ./flasher.save -V
flasher 3.11.3 (Apr 28 2011) Harmattan

Usage example

Here is how you use it - you may have to extract it first,and you may have to securely erase it first. I included that step below for people blindly cutting & pasting these istructions without reading anthing.
$ cd n950-flasher-beta2
$ ./flasher -a img.bin --erase-mmc=secure
$ cd ../n950-flasher-beta1
$ ./flasher -F ../n950-flasher-beta2/img.bin -F ../n950-flasher-beta2/emmc.bin -f

Cold flashing

You may have to cold flash, if the normal flasher isn't recognizing your N950. You will know you have to if you see "Nokia USB ROM" in syslog, but the flasher isn't finding any device to flash:
Oct  2 05:59:27 edge kernel: [45966.636099] usb 1-1: new high speed USB device number 79 using ehci_hcd
Oct  2 05:59:27 edge kernel: [45966.752139] usb 1-1: New USB device found, idVendor=0421, idProduct=0106
Oct  2 05:59:27 edge kernel: [45966.752146] usb 1-1: New USB device strings: Mfr=34, Product=38, SerialNumber=0
Oct  2 05:59:27 edge kernel: [45966.752151] usb 1-1: Product: Nokia USB ROM
Oct  2 05:59:27 edge kernel: [45966.752154] usb 1-1: Manufacturer: Nokia
Here's how to cold flash:
$ ./flasher -F ../n950-flasher-beta2/img.bin -F ../n950-flasher-beta2/emmc.bin -f -c

Note the "-c" at the end. That's the cold flash switch.

For me, I could cold flash with the beta2 flasher, but the rootfs and suually the kernel flashing would fail. This was enough, however, to flash the bootloader so "warm" flashing would work. So I haven't actually tried that cold flash with the old flasher; this is what I ended up doing (in case it helps anyone):

$ cd n950-flasher-beta2
$ ./flasher -F img.bin -f -c  #cold flash just the bootloader and anything else that's possible
repeat until kernel flashes - probably this isn't really necessary
$ cd ../n950-flasher-beta1
$ ./flasher -F ../n950-flasher-beta2/img.bin -F ../n950-flasher-beta2/emmc.bin -f

Extracting the flasher yourself from the beta1 firmware distribution package

Here is how you extract the flasher yourself, if you have the beta1 firmware One Click Flasher (Which I can't find anywhere on Nokia's site):
$ mkdir n950-flasher-beta1 && tail -n+55 Linux_OCF_22-6_EMMC_RM680-OEM1-916.bin  | tar xv -C n950-flasher-beta1
$ cd n950-flasher-beta1
$ ls -l
total 12988
-rw-r--r--. 1 martin martin 11802624 Oct  2 05:50 binfiles.tar
-rwxrwxr-x. 1 martin martin   743732 May 18 13:18 flasher*
-rwxrwxr-x. 1 martin martin   743668 May 18 13:17 flasher.save*
-rw-rw-r--. 1 martin martin     1088 Jun 14 15:28 installer

Failure example

Flashing fails at different places each time one runs the flasher, but here is a typical example:
$ ./flasher -F img.bin -F emmc.bin -f
image [state progress transfer flash speed]
---------------------------------------------------------------------
[x] cert-sw [finished 100 % 1 / 1 kB NA ]
[x] cmt-2nd [finished 100 % 95 / 95 kB NA ]
[x] cmt-algo [finished 100 % 789 / 789 kB NA ]
[x] cmt-mcusw [finished 100 % 6008 / 6008 kB 3437 kB/s]
[x] xloader [finished 100 % 23 / 23 kB NA ]
[x] secondary [finished 100 % 88 / 88 kB NA ]
[x] kernel [finished 100 % 2708 / 2708 kB 2101 kB/s]
[f] rootfs [pending 0 % 1024 / 326205 kB NA ]
[-] mmc [pending 0 % 0 / 0 kB NA ]
Fetching error list:
========================================
Update content failed to verify against cert: SW certificate not updated
bb5_rdc_cert_read failed
bb5_rdc_cert_read failed
bb5_rdc_cert_read failed
bb5_rdc_cert_read failed
bb5_rdc_cert_read failed
mmc: sfdisk returned status 1
mmc: Could not remove mount directory /tmp/sudmmcYPgD5i/mnt: No such file or directory
[Pipe 4] Finishing in error state with status 1
========================================