Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:t530 [2017/03/07 10:31] – [Steps] photonicsguy | projects:t530 [2021/07/06 07:15] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
~~NOTOC~~ | ~~NOTOC~~ | ||
- | ====== Lenovo T530 Laptop upgrade ====== | + | ====== Lenovo T530 Laptop |
- | BIOS Version: G4ET62WW (2.04 ) | + | I successfully installed an [[http:// |
- | Current Network card: Intel Corporation Centrino | + | Living in Toronto, the 2.4GHz WiFi band is over saturated and my best wireless throughput was roughly 16Mbps, now with 5GHz Wireless |
+ | There are two flash memory chips, MX25L6406E (8MB) and MX25L3206E (4MB) (Under frame), according to various resources, I need to flash the 4MB chip. There is also another flash memory chip on the underside which contains the bios settings and password which I don't need to touch. | ||
- | < | + | There are forums for whitelist removal, such as [[https:// |
- | New Network | + | |
- | * Bluetooth: [8087:07DC] | + | VID: |
- | * Wi-Fi: [8086:08B1], Secondary: [8086:4070] | + | * Intel Centrino Wireless-N 2200 [8086:0891] (original) |
- | </ | + | * Intel Dual Band Wireless-AC 7260 [8086: |
- | IBM COMPATIBLE 486 BIOS COPYRIGHT Phoenix Technologies, Ltd | + | * Bluetooth: [8087:07DC] (built into the wireless |
- | Phoenix BIOS SC-T v2.2 | + | |
+ | |||
+ | If you are looking for more information, | ||
+ | |||
+ | ===== Required components ===== | ||
+ | * Your Thinkpad laptop (of course) | ||
+ | * New wireless card, I used the [[http:// | ||
+ | * A second computer (I used another Linux computer. A Windows computer can work, but I haven' | ||
+ | * Download [[https:// | ||
+ | * Download | ||
+ | * A high quality (small) Phillips screwdriver, | ||
+ | * A Magnetic sheet - {{:projects:t530:magsheet.jpg? | ||
+ | * Hex driver for the studs on the {{ :projects: | ||
+ | * CH341A programmer (Approx. $3 from eBay or Aliexpress) | ||
+ | * SOIC8 Test clip (Approx. $4 from eBay or Aliexpress) | ||
+ | * Thermal compound (for the CPU heatsink) | ||
+ | * Air duster (optional, for cleaning) | ||
+ | * Tape (When reassembling and routing wires) | ||
- | {{ : | ||
- | {{: | ||
- | * MX25L6406E (8MB) | ||
- | * MX25L3206E (4MB) (Under frame) (This is the BIOS chip I need to flash) | ||
- | * There is another EEPROM on the underside of the bios which contains the bios passwords which I am not going to touch | ||
===== Steps ===== | ===== Steps ===== | ||
- | - Buy a CH341A and a SOIC8 test clip. | ||
- | - [[projects: | ||
- | - Determine current VID:PID via lspci -nn | ||
- | - Download [[https:// | ||
- | - Download [[https:// | ||
- | - Disassemble laptop to access bios chip following the Hardware manual. | ||
- | - flashrom -p ch341a_spi -c " | ||
- | - Read multiple times to verify the data is correct. (Compare via MD5SUM) | ||
- | - Note: If you are getting errors, or inconsistant data, try adjusting the test clip slightly. | ||
- | - Open firmware (ORIGINALBIOS.ROM) in UEFItool (Works well under wine) | ||
- | - File > Search, Select GUID, search for 79E0EDD7-9D1D-4F41-AE1A-F896169E5216 (LenovoWMAPolicy) | ||
- | - GUID pattern " | ||
- | - Go to PE32 Image section, right click, " | ||
- | - Save as LenovoWmaPolicyDxe_orig.sct | ||
- | - Linux: cp LenovoWmaPolicyDxe_orig.sct LenovoWmaPolicyDxe_mod.sct | ||
- | - Using a hex editor, search for whitelist | ||
- | - Linux: hexedit LenovoWmaPolicyDxe_mod.sct | ||
- | TODO: Finish edits to reflect actual steps. | + | <note warning> |
- | - /(to search), EC10< | + | I never tested, nor thought to test, nor had problems, but I've heard other people have. I'd suggest verifying the correct voltage before you use the programmer: |
- | | + | |
- | | + | **check voltage: |
- | | + | * [[https:// |
- | - Back in UEFITool | + | **fix:** |
- | | + | * [[https:// |
- | | + | |
- | - Flash new bios: | + | </ |
- | - Verify bios: | + | |
+ | <note warning> | ||
+ | - Determine current wireless card VID:PID via Linux: lspci -nn (This is a useful reference when looking for the whitelist) | ||
+ | - Download [[https:// | ||
+ | - Download [[https:// | ||
+ | - Following the {{ : | ||
+ | - Place the system on a non-conductive surface (As you will be powering up a portion via the CH341A programmer. | ||
+ | - Pin 1 of the test clip is the wire with the Red stripe, which goes towards the corner of the memory chip with the circle. | ||
+ | - I was fortunate enough to have a similar memory chip from another device I was able to use to test the programmer connections ahead of time. | ||
+ | - Connect the test clip to the programmer (Facing downwards, in the top half of the ZIF socket) {{ : | ||
+ | - Read the existing BIOS | ||
+ | - flashrom -p ch341a_spi -c " | ||
+ | - Read multiple times to verify the data is correct. (Compare via MD5SUM) | ||
+ | - Note: If you are getting errors, or inconsistant data, try adjusting the test clip slightly. | ||
+ | - IMPORTANT: Make a copy of the original bios, or email it to yourself so you don't accidentally lose it. | ||
+ | - Modify bios | ||
+ | - Linux: cp ORIGINALBIOS.ROM MODIFIEDBIOS.ROM | ||
+ | - Open firmware (MODIFIEDBIOS.ROM) in UEFItool (Works well under wine) | ||
+ | - File > Search, Select GUID, search for 79E0EDD7-9D1D-4F41-AE1A-F896169E5216 (LenovoWMAPolicy) | ||
+ | - GUID pattern " | ||
+ | - Go to PE32 Image section, right click, " | ||
+ | - Save as LenovoWmaPolicyDxe_orig.sct | ||
+ | - Linux: cp LenovoWmaPolicyDxe_orig.sct LenovoWmaPolicyDxe_mod.sct | ||
+ | - Using a hex editor, search for whitelist | ||
+ | - Linux: hexedit LenovoWmaPolicyDxe_mod.sct | ||
+ | - /(to search), EC10< | ||
+ | - Change EC10 to 8680 (New device is 8086:08B1) | ||
+ | - Change 7681 to B108 | ||
+ | - Change EC10 to 8680 (Secondary VID:PID is 8086: | ||
+ | - Change 9581 to 7040 | ||
+ | - Change 9517 to 8780 (Bluetooth VID:PID is 8087: | ||
+ | - Change 2007 to DC07 | ||
+ | - Ctrl-x (To save & exit) | ||
+ | - Back in UEFITool | ||
+ | - Right click on the same PE32 Image section again, select " | ||
+ | - File > Save Image file, save as MODIFIEDBIOS.ROM | ||
+ | - Flash new bios | ||
+ | - flashrom -p ch341a_spi -c " | ||
+ | - (It did take a couple attempts, and as I mentioned earlier, I did try fiddling with the test clip to ensure it was properly seated. | ||
+ | - Verify bios: | ||
+ | - flashrom -p ch341a_spi -c " | ||
- Reassemble laptop to the point of booting | - Reassemble laptop to the point of booting | ||
- basically, everything up to the trim, keyboard, and display. | - basically, everything up to the trim, keyboard, and display. | ||
- I used the existing thermal compound for testing, then I cleaned it off to apply new thermal compound prior to final assembly | - I used the existing thermal compound for testing, then I cleaned it off to apply new thermal compound prior to final assembly | ||
- | - Disconnect AC adapter | + | - Disconnect AC adaptor |
- | - Being careful no loose connectors are reading on the motherboard, | + | - Being careful no loose connectors are reading on the motherboard, |
- | - Plug AC adapter | + | - Plug AC adaptor |
- | - power on via keyboard | + | - Power on via keyboard |
- | - take note of BIOS message | + | - Take note of BIOS message, if you receive an error, take a photo of it. |
- | - Unplug AC adapter | + | - Unplug AC adaptor |
- Finish reassembling laptop | - Finish reassembling laptop | ||
- | | + | - At this point I cleaned as I went, cleaning dust out of crevices & such. |
- | - | + | - Clean off the existing thermal compound, put new thermal compound on the CPU (and GPU if you have discrete graphics) |
- | + | | |
- | + | ||
- | ==== Bios from website ==== | + | |
- | - Download matching firmware | + | |
- | - Extract firmware | + | |
- | - [[http:// | + | |
==== Current Whitelist ==== | ==== Current Whitelist ==== | ||
TODO: Revise list as I made an error in reading to hex file | TODO: Revise list as I made an error in reading to hex file | ||
+ | |||
^Vender: | ^Vender: | ||
|8086: | |8086: | ||
Line 93: | Line 125: | ||
* flashrom -p ch341a_spi -V | * flashrom -p ch341a_spi -V | ||
* [[https:// | * [[https:// | ||
- | * It should be safe to read/flash the chip in situ... | + | <note>After reading the flashing instructions |
- | **Tested on a similar flash chip** | + | ===== Files ===== |
- | <code> | + | * {{ :projects: |
- | # flashrom -p ch341a_spi -c " | + | * {{ : |
- | flashrom v0.9.9-r1955 | + | * {{ : |
- | flashrom is free software, get the source code at https:// | + | * {{ : |
- | + | ||
- | flashrom was built with GCC 4.9.2, little endian | + | |
- | Command line (7 args): flashrom -p ch341a_spi -c MX25L3206E/ | + | |
- | Calibrating delay loop... OS timer resolution is 2 usecs, 745M loops per second, 10 myus = 12 us, 100 myus = 101 us, 1000 myus = 1006 us, 10000 myus = 9992 us, 8 myus = 10 us, OK. | + | |
- | Initializing ch341a_spi programmer | + | |
- | Device revision is 3.0.4 | + | |
- | The following protocols are supported: SPI. | + | |
- | Probing for Macronix MX25L3206E/ | + | |
- | Found Macronix flash chip " | + | |
- | Chip status register is 0x00. | + | |
- | Chip status register: Status Register Write Disable (SRWD, SRP, ...) is not set | + | |
- | Chip status register: Bit 6 is not set | + | |
- | Chip status register: Block Protect 3 (BP3) is not set | + | |
- | Chip status register: Block Protect 2 (BP2) is not set | + | |
- | Chip status register: Block Protect 1 (BP1) is not set | + | |
- | Chip status register: Block Protect 0 (BP0) is not set | + | |
- | Chip status register: Write Enable Latch (WEL) is not set | + | |
- | Chip status register: Write In Progress (WIP/BUSY) is not set | + | |
- | This chip may contain one-time programmable memory. flashrom cannot read | + | |
- | and may never be able to write it, hence it may not be able to completely | + | |
- | clone the contents of this chip (see man page for details). | + | |
- | Reading flash... done. | + | |
- | </code> | + | |
- | ===== Coreboot project | + | |
- | * | + | |
- | * [[https://github.com/ | + | |
- | + | ||
- | === BIOS Files === | + | |
- | + | ||
- | * xxx.PAT are CPU Microcode files | + | |
- | * xxx.hsh are CPU Microcode hash files | + | |
- | * something.FL1 the actual | + | |
- | * There' | + | |
===== Reference ===== | ===== Reference ===== | ||
Line 153: | Line 152: | ||
* https:// | * https:// | ||
====== Screen ====== | ====== Screen ====== | ||
- | Currently: 15.6", 16x9, 1366x768 | + | I replaced my WXGA (1366x768) |
- | + | ||
- | ^FRU^Description^Resolution^ | + | |
- | |04W3339|LCD 15.6" | + | |
- | |04W3345|BOE 15.6" | + | |
- | + | ||
- | + | ||
- | http://replacethinkpadscreen.blogspot.ca/2013/ | + | |
- | Possible replacement: B156HW01 V.4 | + | I used this as a guide: http:// |
+ | I also highly recommend watching multiple YouTube videos on mating LVDS connectors. | ||