The B156HTN03.0 uses the same timings/impedance/voltages as the B156HAN01.2, so if the HTN works then so should the HAN. Might be worth a try to modify the corresponding .inf; download and install the regular ' Hotkey Features Integration' driver and see which files are written. Make a copy of those and edit the corresponding inf to include the ID of the HAN01.2 and overwrite the installed driver with this modified version.
-
-
There doesn't seem to be an inf that references any monitors that I can see in this driver package. Even when I install it, the only thing it does is add the on screen display icons for num lock and caps lock.
I had actually played around with this download previously, as well as the Monitor.inf that is downloadable from the support website. However, I have not been able to come up with a working solution. -
Weird, you'd think it'd work with the native panel, at least. This is from the readme;
-
Talked to tech support. They tried for almost 2 days straight, even elevating to senior tech... and they have no idea what is going on.
They did mention to me that they will include this issue into a request for a future update though. So it is promising
Kenstang likes this. -
I hope so...I'm borderline about to return the unit because of the issue. I did have them send me a replacement, should have it within the next week so at least I can observe if it may be a batch problem of some sort.
-
So I tried to use:
Phoenix EDID Designer - to pull up the EDID of the old TN panel and copied it over to the new IPS panel -> saved it as a .dat -> opened with MonAssetManager -> created an .inf -> tried to install the INF but received a BSOD...
Anyone know how to get the .inf files to get installed correctly when generated from Monitor Asset Manager (Even when I use the current registry-active display panel info from monitor asset manager and create an .inf and try to install that .inf, it still gives me a bsod)? -
Has anyone had any luck in finding a remedy for this problem?
-
Doesn't look it.
-
Yea, I got tired of fooling with it and just returned it unfortunately. Issues ruined an otherwise seemingly great unit.
-
I've faced the same problem. Still no solution, but i can approve it works in BIOS
Last edited: Sep 10, 2015 -
Ran into the same issue; Intel HD is the problem. Uninstall HD and it works, only when re-installing HD the values have reverted again and it seemed impossible to block that with policy settings.
Think this why; the vbios isn't yet active. This reads the edid (or just its header?) and determines what features to enable and how to control them. The replacement panels may not be included in the vbios-embedded list, so there's no match for brightness control.
There's still Option 1:
That method should work to override the edid values, regardless of the driver installed. Only make certain to always hit 'n', except for the I2C/SMBus probe (there's been quite few bricks using that option ...):
Tried that method with my display (to make 75Hz and G-Sync available), only the edid's eeprom happens to be write-protected:
That last byte should've been 6B if it was successful
... Anyway, have all the tools necessary pre-installed on a live+persistent bootable linux (non-uefi). Can make an image of that install and you'd need only to flash the .img to a large (≥16GB) usb stick. The actual commands necessary aren't that difficult, actually; using
edid-rw makes things a bit simpler. To make this work we need the 'raw data' section (MonInfo -> Create INF) of both a working panel (LEN4080, say) and the actual panel present. With a hex copy/paste it's possible to
only overwrite the headers, while leaving actual timing data intact.
Second-to-last resort:
If the eeprom happens to be write-protected as well; the vbios is contained in the bios (oprom). Swapping out Lenovo's Intel vbios by a generic, newer vbios might do the trick. Hopefully this Lenovo bios can be read with MMTool or UEFI BIOS Updater ... -
Because i'm not an expert in this can we start over the whole topic? I've read through the whole thread at least 4 times, and i would like to make a summary of what i've understood:
Hardware
I have Lenovo T450s (so it's not the same t550s, it's a 14.0" laptop).
Originally it came with a AUO TN HD+ screen (B140RTN03.0)
I've updated it to an AUO IPS FHD screen (B140HAN01.2)
Inside it have an Intel HD 5500 build in GPU
Software
I Use Windows 10 64bit
Compatibility
According to the list of the part numbers ( https://download.lenovo.com/parts/ThinkPad/thinkpad_t450s_fru_list.pdf ) it's originally compatible with AUO B140HAN01.3 but according to my researches it should be compatible also with AUO B140HAN01.2
One guy said he updated with no issue (expect killing the fuse first) his T450 (without s) ( http://forum.notebookreview.com/threads/t440s-lg-auo-screen-replacement.743388/page-11 )
Symptoms
- The screen it at maximum brightness and no possibility to adjust it.
- In BIOS i can freely adjust the brightness
- The brightness that set in BIOS remains until Windows 10 starting to load. After the loading logo it reset up to maximum
- If I uninstall the Intel HD Graphics driver the windows won't change the brightness that I set in the BIOS before, but cannot change inside windows.
Questions
- Maybe if I could find a generic FullHD driver instead of the nvidia, could it work?
- At the beginning you recommended two options.
> Create an INF file for the monitor. Is it still an option or did you find a proof before why it fails?
> Fake the EDID number of the screen. On this part i've got lost. First of all where is this number stored? In windows registry or in the BIOS? So maybe if i have to go in this way and you could explain the behavior of this part and the goal what we want to reach would be great.
- Is it dangerous to play with these EDID number? Can i make a brick from my laptop? How to avoid it?
- Is it possible to install the T440s drivers somehow to this device, because with that notebook this screen is 100% compatible.
P.S I'm not fully stupid for these things, have a good knowlege of softwares and some good bases of hardware (i'm a software engineer). Just don't have any background about these monitor and driver things.
Thank you very much for your help!Last edited: Sep 11, 2015 -
Yes, but will Lenovo permit you to install that? Might have to .inf mod to make generic nvidia compatible.
Gave it a go, but Intel HD is blocking that route every time. Only thing I haven't tried is this:
- uninstall HD
- override inf
- take full permission of the edid registry keys
- re-install HD
Worth a try, no?
The lcd has its own bios (containing the edid-bytes) and this stored on an eeprom, same as with a (v)bios. This chip is located on the pcb of the panel itself:
In order for this to work you need both an 'approved' edid and the one of the panel you've swapped in. These can then be hex-edited together into a custom, approved edid. This is pretty much guaranteed to work, only the edid flashing part iself is a bit ... tricky.
Yes, YES and not sure.
It is possible to write-protect the eeprom afterwards, but flashing = flashing. Actually, as it uses I2C for communication there's a considerably higher risk than with an SPI bios. There's been plenty of bricks, not just due to poor drivers, but also due to simple probe queries just to list the various devices on the I2C bus. Done properly, it should be fine.
Sure, if it works then it's an easy solution. Need to .inf mod again, presumably.
Only started reading about this stuff recently, myself. It's quite interesting. -
Generic driver:
Just tried to set back the windows built in generic driver. It supports the FHD. Result is partial success: it doesn't override the light that i set in the BIOS. But infortunatelly the bios forget it on every reboot
Changing the inf file:
Could you tell some details about it? What is the goal in this situation, so how to trick with the inf file? And how to do it? (tools, registry info, etc)
Direct communication without driver:
Can you imagine that maybe there is a software that directly communicate with the hardware avoiding the driver? This way maybe it could be an out-of-box solution
BIOS:
Maybe i would not go in this way then, because i'm not an expert at all and don't want to make a brick from my laptop...
Maybe if someone goes through the process i would try to reproduce the same, but playing around without knowledge would be kind of foolness...
Anyway if i can go through with this hell i have to give you some beers, because you help a lot!
-
Made some research, and it seems like intel still not support overriding edid files through inf files:
https://communities.intel.com/thread/25904?start=15&tstart=0
So seems like the only was is to flash the monitor edid file but i'm afraid of it...
-
I've tried to update the EDID info in my monitor. Put everything together but it seems write-protection is active, so i could not update the edid info. Now i try to look into removing write protection
-
Okay i think i've stucked. Can you explain a bit more about it? So i think that my EDID is write protected. And as I understand you recommend to change BIOS to some generic. How will it solve my problem? which one should i use?
-
How did you do this?
That's a very minor difference, so find and upload the bios and we'll see if it'll be an easy fix. -
I've made an ubuntu usb stick. Booted, followed the instructions from the Sony edid hack forum, that you mentioned.
I've get my edid info from the monitor to a bin file. After edited it to simply change it's id from 1.2 to 1.3 (i've found a hex info on the net of an AUO 1.3 edid) and updated the checksum (used the Phoenix stuff for this)
After tried three different type of software to write it back to the monitor but all of them said I/O error, write error, etc (edid-rw, write-edid, and i2cdump)
With the write-edid it was clean it tried from byte to byte and all of them has failed.
i'm not hundred percent sure how to get it, but i've just used this tool a week ago to update my bios:
http://support.lenovo.com/us/en/pro...ies-laptops/thinkpad-t450s/downloads/DS102109
Under it on my pc i think i've found the flash files:
https://drive.google.com/file/d/0B_W2RxPQwHy2OGZ1UTRrWUZlU00/view?usp=sharing
So what is your suggestion?
P.S.: under ubuntu i can adjust the brightness without any issue...
DD
Last edited: Sep 14, 2015t456 likes this. -
Nice job!
Too bad about the result. My panel is also write-protected, there's a WP-bit on the eeprom that handles this. Flipping this (1->0 or 0>1) would disable write-protect, thing is; what address? You'd change it back afterwards, of course.
Since you have the tools prepared already; please make a backup:
Drop the result somewhere, there may be a mismatch taking place ...Code:sudo i2cdump -r 0-127 XYZ 0x50 > edidexport.txt
Yes, they are; FL1 = bios and FL2 = EC (open with UEFITool, part of UBU). There's indeed panel white-listing taking place:
Strange thing is; those strings are complete edids, tow-to-tow. But now for the really weird part ... it contains the B140HAN01.2 as well:
Errr ...
Extracted both bios-embedded edids: Lenovo ThinkPad T450s - edids.
So it's a driver-only thing ...
Look, for all intents and purposes you shouldn't even be having this issue at all. Make a dual boot with 7 or 8 and see what happens. -
But the question is that what does the BIOS use them for? Or maybe it's information read by the Intel HD Graphics Driver?
And here comes the real strange part: I've just compared the 1.2 EDID file to my monitor (extracted directly from the monitor through linux). Ant it's not the same!!!
Mine doesn't contain for example the exact product id: B140HAN01.2 but also the name is different! So it looks like my monitor's edid is not in the white list actually.
I've uploaded my real edid here: https://drive.google.com/file/d/0B_W2RxPQwHy2LV9ncUZIYXBrcDg/view?usp=sharing
Do you think it's possible to change the monitor whitelist in my BIOS and flash it? Can it solve the problem? And why? Where these information used? By Intel Graphics driver? Because as you see the linux doesn't care with it, so it's only important for windows.
I've did with windows 8 without any result. I think it's because of the thing that i've discovered above: my edid doesn't match any of them hardcoded in the bios. -
Ah, you have an original AUO from a non-Lenovo system (or new?). Funny that they've used a full-edid white-list ... not that that should come as a surprise; this is Lenovo, after all ...
Even better is that they've kept (inserted, really) the original panel nr. just in case they needed that for themselves! Normally the PnP id alone (AUO123D) would suffice to id the panel 1:1, but by overwriting the id with ' LEN****' this will , of course, no longer work.
It will solve the problem. Only question if whether it will allow you to flash that thing (signatures). At minimum it needs a force-flash. Apart from the .roms, do you have the flash program as well?
Inventory purposes? Blocking consumer diy upgrades? Better margins when selling the same panel, except with white-listed edid? Annoying people?
It's Lenovo, so ... all of the above, most likely
.
Yes. And this communicates with the intel vbios.
Linux may look only at the actual edid embedded in the panel, not at the version stored in the vbios. This is how it should be, of course; panel self-reported capabilities, not some error-prone vbios.
Kinda wonder; what you'd get if you used the linux extract with the original display?
Anyway, flashing the edid eeprom would not be preferable here. The AUO version is perfectly fine and by changing to 'LEN' you cause problems for future swaps and, perhaps, other drivers as well (if they rely on PnP ids, that is). -
I have the flash software, linked it before: http://support.lenovo.com/us/en/pro...ies-laptops/thinkpad-t450s/downloads/DS102109
So what are your plans? How to modify and test safely the bios file?
Moreover, if it makes my bios a brick, how to rollback to the original bios in that situation?
I think it can have some different timings in the two monitors and also not supported resolutions, because it was only a HD+ screen
I'm not really afraid of it. I don't want to swap it every week, and i think lenovo will support their custom named ****. So I still not want to terminate this way if you have any idea how to flash the screen's eeprom. Because I feel more confortable to kill a 80$ stuff instead of my whole notebook
-
That's Windows-based; it wouldn't accept the modded bios. Doesn't matter, there's also an iso version for cd/usb. With any luck the tools inside haven't had their override switches neutered.
Heh, there's no such thing as 'safe testing' a modded (v)bios (unless you have a dual bios eeprom). Helps if you can de-solder the chip and have a programmer, just in case ...
With the programmer
.
They're useless anyway, you wouldn't loose anything.
You'd need to know the specific eeprom it's stored on, which would require checking the pcb of the panel.
Hm, think there's an easier option since it's just a driver block. Try asking other Lenovo+Intel HD+B140HAN01.2 or B140HAN01.3 users to export ' HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet' (~20-30MB). With some searching it should be possible to track down the right key that's responsible for this. Edit your own registry to match and it should work. -
So how would you modify the flash file? And which tool would you use?
I can check it too. Just let me know what should i do after...
Why will it work? Did you read anything about it? -
UEFITool, it's part of the UBU pack linked before. Would be a bit of work, though; each edid appears six times. Can mod it for you, but you'd have to prepare the DOS stick yourself. Make that thing work for the stock bios first and use USB Image Tool to write a backup img and upload that.
Something funny from their bios readme (at the bottom):
Code:Revision : 01 -------------------------------------------------------------------------------- Software name BIOS Update CD (ISO image file for bootable CD) Support model ThinkPad T450, T450s Operating Systems Microsoft Windows 8.1 64-bit Microsoft Windows 8 32-bit, 64-bit Microsoft Windows 7 32-bit, 64-bit Refer to marketing materials to find out what computer models support which Operating Systems. Version 1.16 -------------------------------------------------------------------------------- VERSION INFORMATION The following versions of UEFI BIOS and ECP (Embedded Controller Program) have been released to date. (BIOS ID: HBETxxWW) ------------------- Package BIOS (BIOS ID) ECP (ECP ID) Rev. Issue Date --------- ---------------- ---------------- ---- --------------- 1.16 1.16 (JBET51WW) 1.01 (JBHT14WW) 01 2015/07/28 1.15 1.15 (JBET50WW) 1.00 (JBHT13WW) 01 2015/06/24 1.14 1.14 (JBET49WW) 1.00 (JBHT13WW) 01 2015/05/25 1.13 1.13 (JBET48WW) 1.00 (JBHT13WW) 01 2015/05/07 1.12 1.12 (JBET47WW) 1.00 (JBHT13WW) 01 2015/04/02 1.10 1.10 (JBET45WW) 1.00 (JBHT13WW) 01 2015/02/25 1.04 1.04 (JBET39WW) 1.00 (JBHT13WW) 01 2015/01/13 <1.13> - (New) Updated EDID table.
See here.
And, since you have tools ready, run 'sudo i2cdump 1 0x50' and post the result. Presuming, of course that '1' is your bus and '50' is the edid address.
All such driver settings are stored in registry. Only it'd take a bit of searching to find the exact key. Have to run the export yourself, too, of course. -
I've extracted it with another tool, hope i will help.
Here is the link: https://drive.google.com/file/d/0B_W2RxPQwHy2dWFQRzk4YzBJZk0/view?usp=sharing
Does the BIOS have also a checksum? can we corrupt it because we change the edid descriptions?
I've read some topics and it looks like if we fail with the flash we can fallback with a good bios on an usb stick, i don't know...
These guys are really crazy... why they need that list?
I can send the i2cdump later because now i'm in a hurry... -
A bit late, but here is the i2cdump:
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 06 af 3d 12 00 00 00 00 ........??=?....
10: 00 16 01 04 95 1f 11 78 02 84 e5 a4 56 50 a0 26 .??????x????VP?&
20: 0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 ?PT...??????????
30: 01 01 01 01 01 01 14 37 80 b8 70 38 24 40 10 10 ???????7??p8$@??
40: 3e 00 35 ad 10 00 00 18 b8 24 80 b8 70 38 24 40 >.5??..??$??p8$@
50: 10 10 3e 00 35 ad 10 00 00 18 00 00 00 00 00 00 ??>.5??..?......
60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............?
70: 00 11 39 f9 0a 3c 96 11 1e 24 96 20 20 20 00 85 .?9??<???$? .?
80: 00 ff ff ff ff ff ff 00 06 af 3d 12 00 00 00 00 ........??=?....
90: 00 16 01 04 95 1f 11 78 02 84 e5 a4 56 50 a0 26 .??????x????VP?&
a0: 0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 ?PT...??????????
b0: 01 01 01 01 01 01 14 37 80 b8 70 38 24 40 10 10 ???????7??p8$@??
c0: 3e 00 35 ad 10 00 00 18 b8 24 80 b8 70 38 24 40 >.5??..??$??p8$@
d0: 10 10 3e 00 35 ad 10 00 00 18 00 00 00 00 00 00 ??>.5??..?......
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............?
f0: 00 11 39 f9 0a 3c 96 11 1e 24 96 20 20 20 00 85 .?9??<???$? .?
But i think it's fully the same that i've sent you before in the edid bin file (i've used tcpdump for this). Or may i missed something? -
Yes, and maybe; the tool takes care of that. The Lenovo wlan white-listing is similar, so if that works so should changing edid white-listing.
Sure, but only if it'll still allow you to pass POST. Otherwise you can't get to the usb stick in the first place. Only thing's a programmer then.
No, it's the same, but was hoping for a write-protect byte. At least, you mentioned there was a write-protect when overwriting the edid before?
If you've used write-edid.sh properly then there shouldn't be an I/O error at all, even with a write-protect. Follow these instructions to the letter and try writing the B140HAN01.2 white-list edid.Last edited: Jan 1, 2016 -
Hi,
very interrested in this discussion.
I just ordered an AUO B140HAN01.2 panel for my Lenovo T450s HD+.
I though it would be compatible, but no :'( -
I have a T450s with the same issue. I replaced my crappy 1600x900 display with the newer LG, FRU 04X5916 and now I only have brightness control in the BIOS but not in windows. Multiple combinations of removing and and reinstalling drivers to no avail. I'm about to where I'm just going to reinstall windows 7 or possibly upgrade to windows 10.
-
-
Here is the file from my laptop: https://www.dropbox.com/s/he14h7ggkoipmyd/monitor.inf?dl=0
-
I will try it out at the weekend again with your instructions and ISO
Maybe I've forgot to mention one part, but don't know if it was important. The lm-sensors gave me an error when i tried to scan the i2c. It told me doesn't know it's driver. But the other progs worked (for example when i had to read the edid with any of them). So i think maybe it's not important, but i wanted you to know this.
Anyway, i feel the BIOS hack very tricky and dangours. Because if i kill my monitor it's only 80usd, but if i kill my bios it will cost more...
One more thing: previously we've talked about to create a custom monitor inf file, but you or somebody have said the intel driver ingores it.
I've tried to contact them and here is a topic about it. Some people also want to have the edid override support:
https://communities.intel.com/thread/25904?start=30&tstart=0Last edited: Sep 19, 2015 -
I can recommend you two things until we figure out how to hack it:
1. Downgrade your intel driver to the Windows Basic Display Driver (it's built in). This way if you adjust your brightness during boot the windows won't override it. But every time it forgets. So you have to do it on every boot.
2. Switch to linux. There your brightness control works properly
-
Tried again, but it doesn't work. here is the result:
Previously here was my edid read and bus list, so i think i wrote to the good range:Code:lubuntu@lubuntu:~/EDID/write-edid$ sudo bash ./write-edid.sh 6 edid_12_update_simple.bin Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x00 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x01 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x02 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x03 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x04 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x05 Error: Write failed Writing byte 0xFF to bus 6, chip-adress 0x50, data-adress 0x06 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x07 Error: Write failed Writing byte 0x06 to bus 6, chip-adress 0x50, data-adress 0x08 Error: Write failed Writing byte 0xAF to bus 6, chip-adress 0x50, data-adress 0x09 Error: Write failed Writing byte 0x3D to bus 6, chip-adress 0x50, data-adress 0x0a Error: Write failed Writing byte 0x13 to bus 6, chip-adress 0x50, data-adress 0x0b Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x0c Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x0d Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x0e Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x0f Error: Write failed Writing byte 0x26 to bus 6, chip-adress 0x50, data-adress 0x10 Error: Write failed Writing byte 0x17 to bus 6, chip-adress 0x50, data-adress 0x11 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x12 Error: Write failed Writing byte 0x04 to bus 6, chip-adress 0x50, data-adress 0x13 Error: Write failed Writing byte 0x95 to bus 6, chip-adress 0x50, data-adress 0x14 Error: Write failed Writing byte 0x1F to bus 6, chip-adress 0x50, data-adress 0x15 Error: Write failed Writing byte 0x11 to bus 6, chip-adress 0x50, data-adress 0x16 Error: Write failed Writing byte 0x78 to bus 6, chip-adress 0x50, data-adress 0x17 Error: Write failed Writing byte 0x02 to bus 6, chip-adress 0x50, data-adress 0x18 Error: Write failed Writing byte 0x84 to bus 6, chip-adress 0x50, data-adress 0x19 Error: Write failed Writing byte 0xE5 to bus 6, chip-adress 0x50, data-adress 0x1a Error: Write failed Writing byte 0xA4 to bus 6, chip-adress 0x50, data-adress 0x1b Error: Write failed Writing byte 0x56 to bus 6, chip-adress 0x50, data-adress 0x1c Error: Write failed Writing byte 0x50 to bus 6, chip-adress 0x50, data-adress 0x1d Error: Write failed Writing byte 0xA0 to bus 6, chip-adress 0x50, data-adress 0x1e Error: Write failed Writing byte 0x26 to bus 6, chip-adress 0x50, data-adress 0x1f Error: Write failed Writing byte 0x0D to bus 6, chip-adress 0x50, data-adress 0x20 Error: Write failed Writing byte 0x50 to bus 6, chip-adress 0x50, data-adress 0x21 Error: Write failed Writing byte 0x54 to bus 6, chip-adress 0x50, data-adress 0x22 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x23 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x24 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x25 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x26 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x27 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x28 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x29 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2a Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2b Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2c Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2d Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2e Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x2f Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x30 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x31 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x32 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x33 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x34 Error: Write failed Writing byte 0x01 to bus 6, chip-adress 0x50, data-adress 0x35 Error: Write failed Writing byte 0x14 to bus 6, chip-adress 0x50, data-adress 0x36 Error: Write failed Writing byte 0x37 to bus 6, chip-adress 0x50, data-adress 0x37 Error: Write failed Writing byte 0x80 to bus 6, chip-adress 0x50, data-adress 0x38 Error: Write failed Writing byte 0xB8 to bus 6, chip-adress 0x50, data-adress 0x39 Error: Write failed Writing byte 0x70 to bus 6, chip-adress 0x50, data-adress 0x3a Error: Write failed Writing byte 0x38 to bus 6, chip-adress 0x50, data-adress 0x3b Error: Write failed Writing byte 0x24 to bus 6, chip-adress 0x50, data-adress 0x3c Error: Write failed Writing byte 0x40 to bus 6, chip-adress 0x50, data-adress 0x3d Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x3e Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x3f Error: Write failed Writing byte 0x3E to bus 6, chip-adress 0x50, data-adress 0x40 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x41 Error: Write failed Writing byte 0x35 to bus 6, chip-adress 0x50, data-adress 0x42 Error: Write failed Writing byte 0xAD to bus 6, chip-adress 0x50, data-adress 0x43 Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x44 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x45 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x46 Error: Write failed Writing byte 0x18 to bus 6, chip-adress 0x50, data-adress 0x47 Error: Write failed Writing byte 0xB8 to bus 6, chip-adress 0x50, data-adress 0x48 Error: Write failed Writing byte 0x24 to bus 6, chip-adress 0x50, data-adress 0x49 Error: Write failed Writing byte 0x80 to bus 6, chip-adress 0x50, data-adress 0x4a Error: Write failed Writing byte 0xB8 to bus 6, chip-adress 0x50, data-adress 0x4b Error: Write failed Writing byte 0x70 to bus 6, chip-adress 0x50, data-adress 0x4c Error: Write failed Writing byte 0x38 to bus 6, chip-adress 0x50, data-adress 0x4d Error: Write failed Writing byte 0x24 to bus 6, chip-adress 0x50, data-adress 0x4e Error: Write failed Writing byte 0x40 to bus 6, chip-adress 0x50, data-adress 0x4f Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x50 Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x51 Error: Write failed Writing byte 0x3E to bus 6, chip-adress 0x50, data-adress 0x52 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x53 Error: Write failed Writing byte 0x35 to bus 6, chip-adress 0x50, data-adress 0x54 Error: Write failed Writing byte 0xAD to bus 6, chip-adress 0x50, data-adress 0x55 Error: Write failed Writing byte 0x10 to bus 6, chip-adress 0x50, data-adress 0x56 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x57 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x58 Error: Write failed Writing byte 0x18 to bus 6, chip-adress 0x50, data-adress 0x59 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5a Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5b Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5c Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5d Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5e Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x5f Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x60 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x61 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x62 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x63 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x64 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x65 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x66 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x67 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x68 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x69 Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x6a Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x6b Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x6c Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x6d Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x6e Error: Write failed Writing byte 0x02 to bus 6, chip-adress 0x50, data-adress 0x6f Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x70 Error: Write failed Writing byte 0x11 to bus 6, chip-adress 0x50, data-adress 0x71 Error: Write failed Writing byte 0x39 to bus 6, chip-adress 0x50, data-adress 0x72 Error: Write failed Writing byte 0xF9 to bus 6, chip-adress 0x50, data-adress 0x73 Error: Write failed Writing byte 0x0A to bus 6, chip-adress 0x50, data-adress 0x74 Error: Write failed Writing byte 0x3C to bus 6, chip-adress 0x50, data-adress 0x75 Error: Write failed Writing byte 0x96 to bus 6, chip-adress 0x50, data-adress 0x76 Error: Write failed Writing byte 0x11 to bus 6, chip-adress 0x50, data-adress 0x77 Error: Write failed Writing byte 0x1E to bus 6, chip-adress 0x50, data-adress 0x78 Error: Write failed Writing byte 0x24 to bus 6, chip-adress 0x50, data-adress 0x79 Error: Write failed Writing byte 0x96 to bus 6, chip-adress 0x50, data-adress 0x7a Error: Write failed Writing byte 0x20 to bus 6, chip-adress 0x50, data-adress 0x7b Error: Write failed Writing byte 0x20 to bus 6, chip-adress 0x50, data-adress 0x7c Error: Write failed Writing byte 0x20 to bus 6, chip-adress 0x50, data-adress 0x7d Error: Write failed Writing byte 0x00 to bus 6, chip-adress 0x50, data-adress 0x7e Error: Write failed Writing byte 0x5D to bus 6, chip-adress 0x50, data-adress 0x7f Error: Write failed Writing done, here is the output of i2cdump -y 6 0x50: No size specified (using byte-data access) 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 06 af 3d 12 00 00 00 00 ........??=?.... 10: 00 16 01 04 95 1f 11 78 02 84 e5 a4 56 50 a0 26 .??????x????VP?& 20: 0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 ?PT...?????????? 30: 01 01 01 01 01 01 14 37 80 b8 70 38 24 40 10 10 ???????7??p8$@?? 40: 3e 00 35 ad 10 00 00 18 b8 24 80 b8 70 38 24 40 >.5??..??$??p8$@ 50: 10 10 3e 00 35 ad 10 00 00 18 00 00 00 00 00 00 ??>.5??..?...... 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............? 70: 00 11 39 f9 0a 3c 96 11 1e 24 96 20 20 20 00 85 .?9??<???$? .? 80: 00 ff ff ff ff ff ff 00 06 af 3d 12 00 00 00 00 ........??=?.... 90: 00 16 01 04 95 1f 11 78 02 84 e5 a4 56 50 a0 26 .??????x????VP?& a0: 0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 ?PT...?????????? b0: 01 01 01 01 01 01 14 37 80 b8 70 38 24 40 10 10 ???????7??p8$@?? c0: 3e 00 35 ad 10 00 00 18 b8 24 80 b8 70 38 24 40 >.5??..??$??p8$@ d0: 10 10 3e 00 35 ad 10 00 00 18 00 00 00 00 00 00 ??>.5??..?...... e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............? f0: 00 11 39 f9 0a 3c 96 11 1e 24 96 20 20 20 00 85 .?9??<???$? .?
Code:lubuntu@lubuntu:~/EDID/write-edid$ sudo i2cdetect -l 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-A I2C adapter i2c-7 i2c DPDDC-B I2C adapter i2c-8 i2c DPDDC-C I2C adapter i2c-9 smbus SMBus I801 adapter at efa0 SMBus adapter lubuntu@lubuntu:~$ sudo i2cdump -r 0-127 6 0x50 No size specified (using byte-data access) WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-6, address 0x50, mode byte Probe range limited to 0x00-0x7f. Continue? [Y/n] y 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 06 af 3d 12 00 00 00 00 ........??=?.... 10: 00 16 01 04 95 1f 11 78 02 84 e5 a4 56 50 a0 26 .??????x????VP?& 20: 0d 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01 ?PT...?????????? 30: 01 01 01 01 01 01 14 37 80 b8 70 38 24 40 10 10 ???????7??p8$@?? 40: 3e 00 35 ad 10 00 00 18 b8 24 80 b8 70 38 24 40 >.5??..??$??p8$@ 50: 10 10 3e 00 35 ad 10 00 00 18 00 00 00 00 00 00 ??>.5??..?...... 60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02 ...............? 70: 00 11 39 f9 0a 3c 96 11 1e 24 96 20 20 20 00 85 .?9??<???$? .? -
Try running that as root first. And do DPDDC-B and DPDDC-C show anything edid-like (i2cdetect xyz)? Weird thing is that i2cdump shows two edids, identical though ... maybe it needs to be written to both at once? So a 256 byte edid?
That edid is from a Samsung panel ('SDC' = Samsung Display Corporation). Doesn't matter, but it's not included in the Lenovo white-list as those would be 'LEN'. This is a ***140HL***, question is; which one?
Extracted all white-listed edids from the bios: Lenovo ThinkPad - white-list edid.7z
Code:panel nr. real pnp id lenovo pnp id ------------ ----------- ------------- B140HAN01.2 AUO123D LEN40A3 B140HAN01.3 ? LEN40A3 B140RTN03.0 ? LEN40A1 B140XTN02.6 ? LEN40A0 B140XTN02.A ? LEN40A0 LP140WD2-TPD1 ? LEN40A1 LP140WF1-SPK1 ? LEN40A3 LP140WF3-SPD1 ? LEN40A3 LP140WF6-SPB1 ? LEN40A9 LP140WHU-TPBJ ? LEN40A0 LTN140AT31-401 ? LEN40A0 LTN140HL**-*** SDC4C48 ? LTN140HL05-401 ? LEN40A9 LTN140KT14-401 ? LEN40A1 N140BGE-EA3 ? LEN40A0 N140FGE-EA2 ? LEN40A1 ------------------------------------------
Closest match Lenovo uses is the LTN140HL05-401, flash that edid (see instructions). Hopefully you'll have better luck writing those than grosmar ...
Nah, soldering iron and a programmer; $50
.
Last edited: Jan 1, 2016 -
Tried as root. Same result...
Checked DPDDC-B and DPDDC-C, but they are empy.... Any idea? -
Well, maybe write-protected after all. Try ' sudo i2cdetect X', with X = edid bus. There should be more than just the address 0x50:
In this case; scan address 0x11 using ' i2cdump -y X 0x11'. Hopefully that will reveal the write-protect bytes. With i2cset it'd then be possible to change those bytes and disable wp.Code:root@it:~# sudo i2cdetect 6 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-6. I will probe address range 0x03-0x77. Continue? [Y/n] y 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- 11 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@it:~#
Failing that; the bios flash. Can make that bios, but you'd need to do the research yourself as how to flash a modded Lenovo bios. Search how they manage that with the wifi card whitelists and report back. -
Tried and failed. It list the following:
So i've tried this:Code:0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- 37 -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
But as you you see nothing.Code:it@it:~$ sudo i2cdump -y 6 0x37 No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 10: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 20: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 30: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 40: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 50: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 60: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 70: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 80: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH 90: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH a0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH b0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH c0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH d0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH e0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH f0: 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 48 HHHHHHHHHHHHHHHH
So yeah the bios the only remaining stuff... but i'm ****ing afraid of it
-
It is something, at least, otherwise it'd all be XX. Only question is what does ' 48' indicate with this eeprom? Might be vcom or the wp-byte, only ... why so many of them? A little trial and error (with i2cset) may answer that, at some risk. better would be knowing the actual eeprom and finding its specification sheet and that of the B140HAN01.2.
Well ... if flash with wlan white-list mods work, then so will edid white-list mod.
Remember the registry option, too; just ask any T450s user (preferably with fhd panel) for the export.Last edited: Sep 21, 2015 -
ok,
So I received my t450s and the AUO replacement screen....
And I can't change brightness too :'(
I'll try later to apply the EDID tweaks, but for now I uploaded my monitor asset file:
monitor.inf -
And the next step, if I well understand, is to flash the EDID of my panel to replace
AUO123D with LEN40A3? -
Exactly (using the correct LEN40A3 .bin, of course). Hopefully your AUO isn't write-protected ...
-
ok, could you point me to the correct procedure to flash?
I'm a little lost in all your discussion with grosmar ^^ -
See here for the guide and download Lenovo ThinkPad - white-list edids.7z for the edids.
Think I forgot to install 7z with that image, so unzip the correct .bin somewhere on a local hdd first or install 7z from the live usb stick. Should be some space left for additional installs, but 1GB doesn't leave much to spare. -
No luck.
My EDID is write-protected too :'(
So I guess we'll have to use a modded bios!Last edited: Sep 23, 2015 -
I found this link
Seems to "unbrick" the BIOS.
I'll try tonight to upgrade my bios using this method.
If it works, maybe I could try a modded bios with less risks, but is there a modded bios available for edid white-list?
And if the edid is white-listed, why only the brightness controll doesn't work? And why it's ok on linux?Last edited: Sep 23, 2015 -
Another way is the regitrsy tweak.
According to this MSDN link, it should be possible to
override the edid during initializatio
So if we replace the EDID with LEN40A3 one (or add an EDID_override key) maybe it should work? -
And finally, I received a reply from my screen dealer:
So maybe it's more complicated, and it's not "easily" possible to replace a HD+ with FHD panelLast edited: Sep 23, 2015
w550s/t550 LCD screen replacement - brightness set at max.
Discussion in 'Lenovo' started by giggidy, Apr 5, 2015.