Forumdelen sponsras av

Tutorial: Flashning av ny Firmware till BenQ XL2720Z/XL2420Z

Trädvy Permalänk
Medlem
Plats
Huskvarna
Registrerad
Jul 2004

Tutorial: Flashning av ny Firmware till BenQ XL2720Z/XL2420Z

Tjena SweC!

Jag uppdaterade själv min skärm till nyaste versionen för ett litet tag sedan via Linux (Ubuntu) och tänkte att jag skulle skriva en förenklad version här för de som själva har tänkt att göra det. All information finns redan på BlurBusters.com men är ganska utspriden.

I min jakt på ny firmware så lyckades även att bricka skärmen så den dog helt och hållet. Det visade sig dock att det inte är något att oroa sig för och gick att återställa utan några konstigheter så denna metoden bör anses som relativt harmlös så vidare man inte gör något väldigt konstigt eller dumt.

***OBSERVERA***
Inga av koderna är skrivna av mig och jag tar ingen credit för något av det. Allt går till killarna på BlurBusters.com.
Jag skriver bara en sammanställning och förenkling på svenska av det dom redan färdigställt.
Originaltråden på BlurBusters.com hittar du här
***OBSERVERA***
Jag tar inget ansvar för eventuella fysiska eller mjukvarubaserade skador om det skulle uppstå några.
Du ansvarar själv för din produkt och om du inte känner dig bekväm i det så kanske du bör avstå från detta. Tänk även på att garantin mycket möjligt försvinner efter ett sånt här ingrepp.
***OBSERVERA***

Flashning av ny Firmware till
BenQ XL2720Z/XL2420Z

Special Thank to:
Falkentyne, pipomolo42 and Bishi on BlurBusters.com
Alex Boeglin on http://boeglin.org
/

Detta behöver du för att flasha din BenQ skärm till nyaste firmware:

Valfritt antal BenQ XL2720Z / XL2420Z Ska flera skärmas flashas gör detta enklast med en åt gången.

Version 4 av firmwaren till BenQ XL2720Z och/eller XL2420Z. Den hittar du på länken.
Se till att ta rätt firmware beroende på modellen som ska flashas

1x VGA kabel Man använder sig av en VGA kabel för att skicka uppdateringen till skärmen.

1x VGA input på din dator/laptop Ditt bästa val är att köra på den integrerade från processorn. (kontakt sitter på moderkortet) Det går även att köra från en laptop (smidigt) men se till att det är en någorlunda modern laptop (Intel Core2Duo eller nyare) för att slippa problem. Det finns även folk som har flashat från sina vanliga grafikkort med DVI-VGA adaptor

1x Skärm bortsett från den BenQ skärm som ska flashas Detta kan du bortse ifrån om du kör med en laptop vid sidan av.

1x USB-sticka med Ubuntu på. Scrolla ner och välj Ubuntu 14.04.2 LTS Desktop (64-bit).
Installera det sedan på USB-stickan med programmet unetbootin

**Koppla in din BenQ skärm från dess VGA-port till datorns VGA-port

Efter du har uppfylld kraven ovanför så kan du ta och boota upp din USB sticka med Ubuntu på. Det kommer att komma upp en meny, där väljer du "Try Ubuntu without Installing"

Ubuntu bootas upp.

***info för den oerfarne***
All kodning och flashning sker via en Terminal. Det är i princip samma sak som CMD i Windows. Det blir inget speciellt avancerat och de koder som skrivs är redan skriva här. Jag tror att dom flesta klarar av det utan att behöva tänka två gånger. Så med andra ord behöver du inte ha någon vana av Linux för att göra detta även om det kanske underlättar lite att ha det.
Vi kommer att bygga/kompilera programmet som vi ska använda för att sedan flasha skärmen med. Allt sker via för konfigurerade script.
***info för den oerfarne***

Börja med att starta en terminal. (CTRL + ALT + T)

Vi måste först lägga till en datakatalog (repository). Detta gör vi så att vi kan komma åt det vi ska ladda ner då det inte tillhör Ubuntus standardutbud och antingen innehåller kod som är tillhör community eller som innehåller kod som är under copyright lag.

sudo gedit /etc/apt/sources.list

Ett textdokument kommer att öppnas. Lägg till "universe multiverse" (utan"") i slutet så att sista raden lyder:
"deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse" spara sedan dokumentet och stäng ner textdukumentet.
Nu ska vi uppdatera listan så att vi har tillgång till programmen/paketen vi behöver.

sudo apt-get update

Skulle detta tillvägagångssättet inte fungera så kan du lägga till Universe Multiverse via GUI:et. Då går du till Main Menu: Ubuntu Software Center : >> Edit, Software Sources.

#1 Installera paketen som vi behöver för att kunna kompilera vårat program

sudo apt-get install i2c-tools subversion libpci-dev

#2 Ladda ner filerna vi behöver

#3 Byt mapp till flashrom mappen vi precis skapade.

cd flashrom

#4 Ladda ner patchen som gör det möjligt för oss att använda kommandona som vi ska använda oss av.

#5 Kompilera programmet

make -j

#6 ladda in i2c-dev drivrutinen

sudo modprobe i2c-dev

#7 Dessa koder används för att identifiera på vilken buss skärmen är kopplad
# lista alla i2c buses

sudo i2cdetect -l

Koden ovan använder vi för att se på vilken buss VGA ligger. Exemplet nedan visar att våran VGA-buss ligger på buss i2c-1, dvs buss 1. Jag har markerat linjen röd för att enklare ska se. Men den kan ligga på andra bussar beroende på datorn och hårdvara.

i2c-0 i2c i915 gmbus ssc I2C adapter i2c-1 i2c i915 gmbus vga I2C adapter i2c-2 i2c i915 gmbus panel I2C adapter i2c-3 i2c i915 gmbus dpc I2C adapter i2c-4 i2c i915 gmbus dpb I2C adapter i2c-5 i2c i915 gmbus dpd I2C adapter i2c-6 i2c DPDDC-B I2C adapter

#8 lista alla i2c enheter på buss 1 (med förra kommandot letade vi upp vilken buss som VGA låg på.
Skulle din VGA buss ha ett annat nummer så sätts det in här. Det gröna numret är det som i så fall byts ut

sudo i2cdetect 1

Exemplet nedan visar att vi har hittat rätt buss eftersom porten vi ska åt (nummer 49) finns med.

0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- 59 -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --

#9 hämta EDID (0x50) från buss 1, bussen som VGA låg på. .
Skulle din VGA buss ha ett annat nummer så sätts det in här. Det gröna numret är det som i så fall byts ut

sudo i2cdump -r 0-127 1 0x50

Se till att BenQ finns med här efter du skrivit koden ovan. Det kommer att se ut ungefär som nedan. Den rödmarkerade linjen är våran BenQ skärm.

0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 00 ff ff ff ff ff ff 00 09 d1 28 7f 45 54 00 00 ........??(?ET.. 10: 33 17 01 03 0e 3c 22 78 2e 14 d1 a5 58 52 a2 26 3????<"x.???XR?& 20: 0c 50 54 a5 6b 80 d1 c0 45 7c 61 7c 81 80 81 bc ?PT?k???E|a|???? 30: 95 3c 31 7c 01 01 02 3a 80 18 71 38 2d 40 58 2c ?<1|???:??q8-@X, 40: 45 00 55 50 21 00 00 1e 00 00 00 ff 00 36 43 44 E.UP!..?.....6CD 50: 30 34 31 31 34 53 4c 30 0a 20 00 00 00 fd 00 18 04114SL0? ...?.? 60: 78 0f 87 15 00 0a 20 20 20 20 20 20 00 00 00 fc x???.? ...? 70: 00 42 65 6e 51 20 58 4c 32 37 32 30 5a 0a 00 c6 .BenQ XL2720Z?.?

Skulle mot förmodar vara så att du inte ser din BenQ XL2X20Z när du hämtar EDID så finns det folk som har löst det med att gå tillbaka in i Windows och installera drivrutiner till din BenQ monitor så att du ser den som BenQ i enhetshanteraren och inte som Generic PNP Monitor. Hur dumt det här än låter så har det löst detta problemet för en del folk på BlurBusters.com

#10 Identifiera flash chippet som ligger på bussen. (/dev/i2c-1) på adressen 0x49
Skulle din VGA buss ha ett annat nummer så sätts det in här. Det gröna numret är det som i så fall byts ut

sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49

#11 säkerhetskopiera nuvarande firmware. Här kan man få problem om man har haft otur och brickat sin skärm vid skrivningen av firmware som kommer senare. Skulle du råka på ett "write error" problem så skippa detta kommandot nästa gång. Filen kommer att lägga sig i Flashrom mappen och den heter backup.bin. Det kan vara smart att spara denna på ett separat USB minne då filer på Ubuntu USB:t gärna försvinner efter omstart. Ha tålamod för det tar ett tag.
Skulle din VGA buss ha ett annat nummer så sätts det in här. Det gröna numret är det som i så fall byts ut

sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -r backup.bin

#12 Förstora Firmwaren till 2MB för att matcha storleken på chippet i skärmen. (OBS! Dessa två rader är väldigt viktiga. Missar du att förstora firmwaren så brickas skärmen. Det går visserligen att flasha om men är väldigt onödigt och skapar onödig frustration)
***Se till att .bin filen du använder nedan matchar namnet på den du laddade ner, Se även till att filen du laddade ner ligger i Flashrom mappen***

tr '\000' '\377' < /dev/zero | dd of=firmware.bin bs=1k count=2k

dd if=BYT_TILL_RÄTT_NAMN.BIN of=firmware.bin conv=notrunc

#13 Skriv den nya firmwaren till chippet i skärmen. Ha tålamod här med då det tar ett tag innan flashningen är klar.
Skulle din VGA buss ha ett annat nummer så sätts det in här. Det gröna numret är det som i så fall byts ut

sudo ./flashrom -p mstarddc_spi:dev=/dev/i2c-1:49 -c "MX25L1605A/MX25L1606E" -w firmware.bin

***Ge dig själv en klapp på axeln och njut av din uppdaterade skärm för efter du gjort allt detta så ska du ha den nyaste firmwaren installerad på din BenQ skärm!
Glöm inte bort att stänga av "Burn In" och sätta på "Single Strobing" i service menyn då dom kan ha återställts till standarvärden efter flashningen.

***Felsökning***

Skulle du lyckas bricka din skärm så kommer den att vara helt oresponsiv. Inget lyser och det ser precis ut som om den inte är inkopplad alls. Det beror troligen på en följande anledningar.

1. Du glömde att förstora Firmware-filen till 2MB. Görs inte detta så får du en korrupt firmware.
Lösning: Gör om allt, men skippa steg #11 då du kommer uppstå ett fel när du försöker läsa av Firmwaren som nu är korrupt.

2. Du har använt en för gammal Laptop eller ett grafikkort utan fullt stöd för de VGA-funktioner vi behöver.
Lösning: Koppla skärmen till en annan VGA-port eller annan Laptop (Intel Core2Duo eller nyare) och gör om allt, men skippa steg #11 då du kommer uppstå ett fel när du försöker läsa av Firmwaren som nu är korrupt.

***OBS***
När du stöter på ett problem som dessa ovan för så brukar skärmen inte vara kontaktbar och syns inte via kommandona #7 #8 #9 och #10.
Lösning: Dra ut kontakten till skärmen och låt den stå utan ström i 10-minuter. Detta låter chippen bli urladdade och nollställda så att du kan få kontakt med skärmen igen.

Om du hittar några fel eller har några anda åsikter så skriv gärna.
Som sagt tar jag inga creds för koden utan vill bara göra det enklare för att att genomföra flashningen då det är rätt krångligt via blurbusters.com tråden. All info där är väldigt utspriden.

Happy Flashing!

Redigerar ständigt informationen för att den ska vara så relevant, korrekt och fullständig som möjligt.

PC: 4790k Delid @ 4.7Ghz || Asus Hero VII || Corsair VP 16GB ||EVGA GTX980 SC @ 1580/3800 || Samsung 850 Pro 512GB, 2x WD/B 500GB, WD/G 2TB || AX1200i || FT02
CL: EK Supremacy Evo || EK M7G Mosfet || EK FC980 || EK DDC 3.2 || Alphacool XT45 Triple 180 || Alphacool XT45 120 || Primochill Primoflex LRT Onyx Black
Citera gärna om du vill ha svar! G633/G933 *Startup FIX*

Trädvy Permalänk
Medlem
Plats
Huskvarna
Registrerad
Jul 2004

***reserverad***

***reserverad***

Här kommer det inom kort komma upp en tutorial om hur du utnyttjar
din BenQ XL2720Z/XL2420Z till fullo med BlurBusters strobe-utility och
hur du går tillväga för att göra "vertical sync" tricket.

PC: 4790k Delid @ 4.7Ghz || Asus Hero VII || Corsair VP 16GB ||EVGA GTX980 SC @ 1580/3800 || Samsung 850 Pro 512GB, 2x WD/B 500GB, WD/G 2TB || AX1200i || FT02
CL: EK Supremacy Evo || EK M7G Mosfet || EK FC980 || EK DDC 3.2 || Alphacool XT45 Triple 180 || Alphacool XT45 120 || Primochill Primoflex LRT Onyx Black
Citera gärna om du vill ha svar! G633/G933 *Startup FIX*

Trädvy Permalänk
Medlem
Registrerad
Okt 2011

Om någon fortfarande inte får det att fungera så kommer här lite uppdaterade kommandon till linux, använd fortfarande samma guide fast byt ut fraserna mot dessa så kommer det fungera. Du ser nog själv vart du byter ut raderna. (!!! Viktigt att du inte glömmer något steg utan bara byter ut raderna!!!)

sudo apt-get install git libusb-dev libpci-dev build-essential libusb-1.0-0-dev i2c-tools

sudo git clone https://github.com/flashrom/flashrom

cd flashrom <--- It should be in your /home/ubuntu folder. Put the firmware.bin in the current folder!

make CONFIG_MSTARDDC_SPI=yes

sudo make install

sudo flashrom -p mstarddc_spi:dev=/dev/i2c-0:49 -c "MX25L1605D/MX25L1608D/MX25L1673E" -w firmware.bin