I was searching for a solution to update the firmware of my trusty alpha 5100 camera (and maybe the lenses) on Linux for quite some time now.
The USB module in the Linux Kernel seems to lack proper support for the needed SCSI commands.
Previous tries with a Virtual machine had failed because the camera wasn’t recognized within the VM.
Other routes like using my Hackingtosh project unfortunately didn’t work, as it runs OSX 10.13 and the Firmware Updater for Mac wasn’t yet ported away from the old Objective-C Garbage Collector to the new ARC and wouldn’t run.
So with some time on my hand I tried the VirtualBox approach again. I am still using Arch Linux and the base package is available in the public Pacman repository:
$ sudo pacman -S virtualbox \ virtualbox-guest-addons
I don’t know if this step is needed but I also installed the guest additions for good measure.
The camera will only be detected by the Windows Device Manager if the VM has USB 2.0 support enabled. And for that we need to install the VirtualBox Extension Pack from AUR:
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/virtualbox-ext-oracle.tar.gz $ tar xf virtualbox-ext-oracle.tar.gz $ cd virtualbox-ext-oracle $ sudo makepkg -s $ sudo pacman -U virtualbox-ext-oracle-5.2.0-1-any.pkg.tar.xz
After that we reboot to properly load and initialize the kernel modules.
Installing Windows 10
After the system is back up, we can create the guest.
Just select Windows 10 64Bit and use the default 32 GB dynamically allocated hard drive, because Windows won’t event format the drive under 8 GB and won’t start the install unless the drive has 12,7 GB of free space.
A Windows 10 ISO can be obtained directly from Microsoft for free. If asked for a Product Key during the installation just press skip, we should be able to get the update done easily within the trial period.
I’ll skip most of the Windows setup here, since it should be straight forward.
As already mentioned, I don’t know if the guest additions are needed, but they sure don’t hurt, so go to the VM menu and select Devices -> Insert Guest Additions CD image, navigate to the disc drive within the VM and run the installer.
Updating the Firmware
After setting up the Windows VM we can now plug in the camera and set it to mass storage mode as stated in the official update instructions. Now we can attach the camera to the VM by clicking Devices -> USB -> Sony ILCE-5100. This should remove the camera from the host system and attach it to the guest, which can be verified by navigating to My Computer and checking if the Camera device appears there as PMHOME.
On the Hackingtosh the Camera can only be attached to the VM after is was manually unmounted from OSX
We can then download and run the Firmware Updater Tool from Sony.
During the update process the Camera resets and goes into a kind of Firmware Update Mode after that you have to go back to Devices in the VM menu and reattach the device, that is now named Sony Something I didn’t jot down. After that the process should continue without further problems.
The last step did only work on the Linux host, the re-attaching of the camera in the Firmware mode just wouldn’t work.
This guide is provided without warranty, it worked as described for me. But use common sense and ask twice before applying anything blindly.