======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 |