Update EC firmware for MSI laptop --------------------------------- (URLs may fail to work, dig the web.) Tested with an MSI gp62 6qf leopard pro. https://www.msi.com/Laptop/support/GP62-6QF-Leopard-Pro.html You need windows 10. 1 - get an ISO from microsoft I used entreprise edition, I think any will do, but not sure. (I tried with some others, I probably did wrong because everything failed.) https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise 2 - install windows on a qemu machine qemu-img create -f qcow2 win.qcow 80g qemu-system-x86_64 -M q35 -m 4096 -enable-kvm -smp 6 -cpu host -net nic \ -net user -vga vmware \ -cdrom 10586.0.151029-1700.TH2_RELEASE_CLIENTENTERPRISEEVAL_OEMRET_X64FRE_EN-US.ISO \ -hda win.qcow -boot menu=on and do whatever you have to in there 3 - make a copy of the USB drive you will use dd if=/dev/sdb of=outputfile bs=1024 You need to be root. /dev/sdb is the path of the driver. "dmesg" to get the correct name. For following steps, you should work with the copy of the USB drive (see below for command line for qemu). 4 - smash the USB drive in windows https://www.youtube.com/watch?v=8NJfEDQ8D2Y is a nice source (hell, a youtube tutorial... misery...) open a cmd as root (administrator or whatever they call it) type: diskpart list disk select disk 1 (or the correct number) clean create partition primary format fs=ntfs quick select partition 1 active exit exit 5 - make the drive visible If you don't see the drive (d:, e:, whatever), you need to make it visible. Go to: Control Panel Admin tools Computer management Disk management And play with stuff to get a drive letter. Or, not tested: type the following in diskpart, at some point: assign letter="V" 6 - extract install.wim https://www.youtube.com/watch?v=8NJfEDQ8D2Y still... install.wim is on the ISO image (-cdrom XXX option of qemu) it's x:\sources\install.wim (replace x: by your case) in a cmd terminal (maybe root, keep the one from previous steps), type: dism /apply-image /imagefile:x:\sources\install.wim \ /index:1 /applydir:x: 7 - make the USB drive bootable in a terminal (replace x: by your drive letter): bcdboot x:\windows /s x: /f all 8 - Get EC firmware and put it on USB drive Download from MSI website while in windows and put on USB drive. 9 - boot the USB in QEMU See below for command line. Just boot, wait, wait, wait, and then you're done. (This step may be skipped I think, it's just to see if all works in qemu before doing it for real.) 10 - copy back USB copy to drive dd if=outfile of=/dev/sdb bs=1024 USB drive ready. You may want to boot it in qemu, to be sure. When I booted it, things were veeery slow, for whatever reason (no internet connection?). Anyway, the update took eight seconds. All this for eight seconds... MSI you suck. Provide the source code of your update utility, come on! what do you care? It's useless for everyone else! and hackers like me could use it to update their computer with whatever operating system they want. Shit world. How to run QEMU --------------- To play with the (real, physical) USB driver: qemu-system-x86_64 -M q35 -m 4096 -enable-kvm -smp 6 -cpu host \ -net nic -net user -vga vmware -boot menu=on -usb \ -device nec-usb-xhci,id=xhci \ -device usb-host,hostbus=2,hostaddr=3,bus=xhci.0 -hda win.qcow You change hostbus/hostaddr by what returns lsusb. "hostbus" is "Bus" and "hostaddr" is "Device". To play with a copy of the USB driver: qemu-system-x86_64 -M q35 -m 4096 -enable-kvm -smp 6 -cpu host \ -net nic -net user -vga vmware -boot menu=on -usb \ -usbdevice disk:format=raw:/a/usb16g.raw -hda win.qcow