x230 mods

Thinkpad x230 mods
Modifizierung des allseits beliebten x230
bilder: 08_panel-test.jpg
x230, Hardware, Software

FullHD Mod



FHD-panel is attached to eDisplayPort #3 pins of the docking port. PWM-Signal for backlight brightness is leached from LVDS (internal display connector).

Irreversible modification (milling) to the lid is needed to fit the new panel.

Install Guide

Before - After

Before After


install location cut foil solder sense wire solder mod pcb

test panel


protect cables end antenna mask before milling after millling attach display cable

assebled lid


cable routing


Lenovo Bios & a current Coreboot build will work without modification

Without a modified VBT (video bios table) or VGA-OtionROM LVDS still needs to stay active. Otherwise backlight of the FHD-panel will turn off, as soon as LVDS is turned off. This leads to a light increase in head and power consumption.


X will align panels next to each other by default. To align panels above each other to get rid unreachable desktop areas use this bash script on X startup: The script creates a large enough framebuffer to attach an external FHD-display and positions LVDS-1 in the top left corner of the new FHD panel attached to PD-3

DISPLAY=:0  xrandr --fb 3840x1080 --output DP-3 --primary --size 1920x1080 --left-of LVDS-1 --output LVDS-1 --off && xrandr --output LVDS-1 --auto --mode 640x360

Coreboot on x230


FIXME allow txt file upload, plz!


External Flashing

Pinout & Location

FIXME add photo, pretty plz :)

Pins on both flash-chips:

Screen (furthest from you)
  MOSI  5 --|  |-- 4  GND
   CLK  6 --|  |-- 3  N/C
   N/C  7 --|  |-- 2  MISO
   VCC  8 --|__|-- 1  CS

Edge (closest to you)
4M chip is closer to display
8M chip is closer to front edge

Read & Check Backup

Connect programmer to top 4M chip

#read upper 4M
sudo flashrom -p ch341a_spi -c "MX25L3206E/MX25L3208E" -r top_0.rom
sudo flashrom -p ch341a_spi -c "MX25L3206E/MX25L3208E" -r top_1.rom
md5sum top*
#read lower 8M
sudo flashrom -p ch341a_spi -c "MX25L6406E/MX25L6408E" -r ifdmegbe_1.rom

Flash to 4M Chip

official docu

useful details

#prepare top 4M
dd of=top.rom bs=1M skip=8 if=coreboot.rom
sudo flashrom -p ch341a_spi -w top.rom -c "MX25L3206E/MX25L3208E"

write whole flash

#write lower 8M
sudo flashrom -p ch341a_spi -c "MX25L6406E/MX25L6408E" -w ifdmegbe_1.rom
#write upper 4M
sudo flashrom -p ch341a_spi -c "MX25L3206E/MX25L3208E" -w top.rom

Internal Flashing

add “iomem=relaxed” to kernelcommandline during boot

flash command is:

sudo flashrom -p internal --layout x230-layout.txt --image bios --write coreboot.rom

content of x230-layout.txt:

0x00000000:0x007fffff ifdmegbe
0x00800000:0x00bfffff bios
x230modding/start.txt · Last modified: 2018/09/18 17:35 by 9r