======x230 mods======
---- dataentry Projekt ----
projekt_url :
name : Thinkpad x230 mods
beschreibung_wiki : Modifizierung des allseits beliebten x230
links_urls :
bilder_imgs : https://wiki.muc.ccc.de/_media/x230modding:08_panel-test.jpg
source_url :
beteiligt : 9R
termine_page :
status_s : läuft
kategorie_tags : x230, Hardware, Software
verwandtes_tags :
----
======FullHD Mod======
===kit===
{{:x230modding:02_kit.jpg?200|Kit}}
[[https://forum.thinkpads.com/viewtopic.php?t=122640|nitrocaster FHDmod Forum Thread]]
====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====
{{ :x230modding:x220.x230_fhd_mod_rev5_v0.2.pdf |Official Install Guide}}
===Before - After===
{{:x230modding:01_before.jpg?400|Before}} {{:x230modding:15_finished-mod.jpg?400|After}}
===Base===
{{:x230modding:04_install-location.jpg?200|install location}} {{:x230modding:05_cut-foil.jpg?200|cut foil}} {{:x230modding:06_solder-sensewire.jpg?200|solder sense wire}} {{:x230modding:07_solder-mod.jpg?200|solder mod pcb}}
{{:x230modding:08_panel-test.jpg?200|test panel}}
===Lid===
{{:x230modding:09_protect-antenna-cables.jpg?200|protect cables end antenna}} {{:x230modding:10_before-milling.jpg?200|mask before milling}} {{:x230modding:11-after-milling.jpg?200|after millling}} {{:x230modding:12_attach-cable.jpg?200|attach display cable}}
{{:x230modding:13_assembled-lid.jpg?200|assebled lid}}
==Assembly===
{{:x230modding:14_cable-routing.jpg?200|cable routing}}
====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
#!/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=====
[[https://www.coreboot.org/Board:lenovo/x230|x230 @ coreboot]]
[[https://www.coreboot.org/Native_gfx_init|Coreboot Native Graphics Init]]
[[https://www.coreboot.org/Intel_Sandybridge_Build_Tutorial|Coreboot Sandybridge Build Tutorial]]
=====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====
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====
[[https://www.coreboot.org/Board:lenovo/x230|official docu]]
[[https://github.com/0xbb/coreboot-x230|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======
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:
0x00000000:0x007fffff ifdmegbe
0x00800000:0x00bfffff bios
====Spare Parts====
^ Part ^ SKU or P/N ^ Link ^ Note ^
| LCD-Cable | DC02C004 W00 | [[https://www.aliexpress.com/item/32700852873.html?|aliexpress]] | from x240/x250 |