TL;DR
This is a summary of what helped me with some instructions of that which helped me. There is alot of old info going around.
After a long period I finally succeeded. It took me alot of time and I just want to share what helped me getting it done (I feel it's my duty to you guys still stuck in V1. My first attempt
bricked my XL2420Z. Linux still got signal from the VGA port so this gave me hope. I asked my uncle for another laptop with either DVI or VGA. That was one of the things that made this update succesfull. I learnt that some laptops or ports don't work. So If you bricked your screen and it still gives signal, try again with another laptop.
MACBOOK DOESN'T WORK. <--- at least mine didn't.
I used all distributions of linux imaginable, but the one that succeeded was
http://releases.ubuntu.com/14.04/. You also want to download the correct Flashrom because the old links don't work.
Flashrom:
http://s000.tinyupload.com/?file_id=392 ... 4453371344
Patch to read I2C protocol:
http://s000.tinyupload.com/?file_id=766 ... 3197152488
Firmware V4 of the XL2420Z:
http://s000.tinyupload.com/?file_id=037 ... 0328799959
First grab a USB flash drive. 8 GB+ works best
Get the ISO for Linux (Ubuntu)
http://releases.ubuntu.com/14.04/
Download the easy to use USB installer here:
http://www.pendrivelinux.com/universal- ... y-as-1-2-3
Install it then boot to the flash drive and run the try Ubuntu mode.
When it finishes loading, open a terminal (Ctrl + Alt + T);
type "sudo gedit /etc/apt/sources.list" without the quotes to bring up the editor.
At the end of the second line, add "Universe Multiverse" so the line looks exactly iike this:
deb
http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
Save and exit the sources.list file.
Then type: sudo apt-get update
Then type: sudo apt-get install i2c-tools subversion libpci-dev
Then type: sudo apt-get update
Then type: sudo apt-get install libusb-dev
Put the Flashrom file on your desktop. Select the directory in your terminal. You can also drag your flasrom into terminal, remove the '' '' and put cd in front of the line.
Throw the IC2 patch in the Flashrom folder.
Type: sudo modprobe i2c-dev
Type: sudo i2cdetect -l <--this lists all i2c buses
sudo i2cdetect 1 <---this lists al i2c buses on bus 1.
sudo i2cdump -r 0-127 1 0x50 <--- get EDID (0x50) from bus 1. You are looking for an EDID dump that shows the monitor name in it. You may have to change the 1 to a 0, if your monitor is on bus 0, or to a higher value, seen up to 5 on 290x DVI ports, or more ( 0 0x50 instead of 1 0x50, or 5 0x50). Once you find the dump that says "XL2411Z/XL2420Z/XL2430T/XL2720Z" etc, then you're good to go.
Important: My chip didnt have the name: MX25L1605A/MX25L1606E. It was different. Keep this in mind. You may need to change that in the following steps. (My chips was on bus 7 btw)
sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 <----# identify flash chip, on bus 1 (/dev/i2c-1) at address 0x49. Change the 1 to a 0 if you are on bus 0. Change the 1 to a 5 if you re on bus 5, and so on.
(dump current firmware)
sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -r backup.bin <--again change the 1 to a 0 if you are on bus 0.
This should take about 5 minutes to dump. Once that's done, copy backup.bin to a folder on the local hard drive (NOT the USB drive) so you can can upload it somewhere. The dumped file should be 2 mb in size. We can easily verify if you dumped the right thing by a hex editor.
Copy the Version 4 firmware into the flashrom folder.
DO NOT RENAME IT TO FIRMWARE.BIN !!!!!
# extend firmware to 2MB, to match the flash chip size
(this step is important; the flash chip is 2 MB, but the raw firmware is 800k'ish. In order to flash with this flashrom patcher (the MSTAR ISP unit does not have this limitation), the other 1.2 MB must be filled with "empty/dummy" bytes to make the file 2 MB in total size. This is a limitation of flashrom itself).
tr '\000' '\377' < /dev/zero | dd of=firmware.bin bs=1k count=2k
dd if=XL2411Z_V2_20131209_8B72.BIN of=firmware.bin conv=notrunc (# < important !--REPLACE XL2411Z_V2_20131209_8B72.BIN with your firmware you are flashing!! Example: XL2411Z_V4.BIN or XL2420Z_V4.BIN or XL2720Z_V4.bin (as I suggested above).
(What this did was, it created a DUMMY empty 2 MB file called firmware.bin.
Then it MERGED the V2 (for this example only, in your case it will be the V4 file) with the 2 MB dummy file, a new 2 MB V4 file, that will be called firmware.bin
# write firmware
sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -w firmware.bin <-------
HERE YOU SHOULD BE CAREFULL. Put in your bus and your chip. You can read them out again to be sure. MX25L1605A/MX25L1606E wasn't my chip
(this will take between 5-20 minutes).
Hope it helped. Thanks to OP as well!