x230 mods
FullHD Mod
kit
Description
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
Base
Lid
Assembly
Software
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
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
- fhdfix.sh
#!/bin/bash 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
Documentation & Links
building coreboot for x230 with FHDmod
These steps should create a bootable coreboot-image for the x230 with seabios.
This image will only work with a the FHD-mod.
LVDS-output will not be available.
If/when the fhd-mod gets accepted into coreboot, you can skip steps #2 & #3.
# 1. clone coreboot repo git clone https://review.coreboot.org/coreboot.git cd coreboot # 2. checkout the fhd patch (c&p from download at https://review.coreboot.org/c/coreboot/+/28950 ) git fetch https://review.coreboot.org/coreboot refs/changes/50/28950/3 && git checkout FETCH_HEAD # 3. apply all commits from master branch that happened after the patch was submitted git rebase master FETCH_HEAD # 4. get the submodules git submodule update --init --checkout # 5. build coreboot crosscompiler environment (may take a while) make crossgcc-i386 CPUS=4 # 6. create x230 specific defconfig (remove comments in the last 5 lines if you want to add optional secondary payloads) cat << EOF > config/defconfig CONFIG_USE_OPTION_TABLE=y CONFIG_TIMESTAMPS_ON_CONSOLE=y CONFIG_USE_BLOBS=y CONFIG_VENDOR_LENOVO=y CONFIG_CBFS_SIZE=0x400000 CONFIG_BOARD_LENOVO_X230_FHD=y CONFIG_DRIVERS_PS2_KEYBOARD=y CONFIG_PCIEXP_L1_SUB_STATE=y CONFIG_PCIEXP_CLK_PM=y CONFIG_SEABIOS_PS2_TIMEOUT=2000 CONFIG_H8_SUPPORT_BT_ON_WIFI=y CONFIG_MAINBOARD_USE_LIBGFXINIT=y CONFIG_GENERIC_LINEAR_FRAMEBUFFER=y # CONFIG_SEABIOS_MASTER=y # CONFIG_COREINFO_SECONDARY_PAYLOAD=y # CONFIG_MEMTEST_SECONDARY_PAYLOAD=y # CONFIG_NVRAMCUI_SECONDARY_PAYLOAD=y # CONFIG_TINT_SECONDARY_PAYLOAD=y EOF # 8. create new .config with the parameters from the defconfig you just created make defconfig # 9. take a look at the created configuration make menuconfig # 10. build coreboot image make
External Flashing
Pinout & Location
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
#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
To allow internal flashing, the IFD of the upper flash chip has to be unlocked. this can be archieved with
ifdtool -u ifdmegbe.rom
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:
- x230-layout.txt
0x00000000:0x007fffff ifdmegbe 0x00800000:0x00bfffff bios
Spare Parts
Part | SKU or P/N | Link | Note |
---|---|---|---|
LCD-Cable | DC02C004 W00 | aliexpress | from x240/x250 |