{"id":17190248,"url":"https://github.com/joshuarli/coreboot-build","last_synced_at":"2026-02-20T15:32:16.294Z","repository":{"id":114130132,"uuid":"185276159","full_name":"joshuarli/coreboot-build","owner":"joshuarli","description":"coreboot build environment","archived":false,"fork":false,"pushed_at":"2019-06-03T11:33:48.000Z","size":6,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-19T21:40:11.320Z","etag":null,"topics":["coreboot"],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/joshuarli/coreboot-build","language":"Dockerfile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joshuarli.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-06T21:44:03.000Z","updated_at":"2023-06-05T09:11:04.000Z","dependencies_parsed_at":"2023-06-13T22:45:12.198Z","dependency_job_id":null,"html_url":"https://github.com/joshuarli/coreboot-build","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/joshuarli/coreboot-build","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuarli%2Fcoreboot-build","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuarli%2Fcoreboot-build/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuarli%2Fcoreboot-build/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuarli%2Fcoreboot-build/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joshuarli","download_url":"https://codeload.github.com/joshuarli/coreboot-build/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joshuarli%2Fcoreboot-build/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29655304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-20T09:27:29.698Z","status":"ssl_error","status_checked_at":"2026-02-20T09:26:12.373Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["coreboot"],"created_at":"2024-10-15T01:13:47.341Z","updated_at":"2026-02-20T15:32:16.277Z","avatar_url":"https://github.com/joshuarli.png","language":"Dockerfile","readme":"# coreboot-build\n\ncoreboot build environment based on debian-unstable via docker. contains:\n\n- coreboot cross toolchain for i386 (git checkout at time of build)\n- seaBIOS (git checkout at time of build)\n- ifdtool (in coreboot tree)\n- me_cleaner (in coreboot tree, pypy because i can)\n\nthis isn't pinned to any coreboot git sha or debian version, on purpose - to potentially catch bugs.\n\nthe latest docker image was built early may 2019. you can build the dockerfile yourself, if you want more recent stuff, but be aware compiling coreboot's cross toolchain takes a long time (a motivation).\n\nsuccessfully builds coreboot roms for at least (as far as I have tested):\n\n- x201 tablet (at least may 2019 docker image)\n- x220 (at least may 2019 docker image)\n- x230 (at least may 2019 docker image)\n\n\n## x200\n\ni've corebooted x200 successfully, but the process is quite a bit different compared to x201t/x220, and my notes are partially lost to time, so TODO.\n\n\n## x201 tablet\n\nconnect spi programmer and read original spi flash, for example:\n\n    $ flashrom -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -r original.bin\n    $ flashrom -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -r compare.bin\n    $ cmp original.bin compare.bin  # also view as hex to make sure looks legit as opposed to all 0x00 / 0xff\n\nadd to dir soon-to-be volume mounted:\n\n    $ mkdir out\n    $ mv original.bin out\n\nshell into the image:\n\n    $ docker run --rm -it -v \"${PWD}/out\":/out joshuarli/coreboot-build:latest\n\nextract regions to expected places, neutralize intel me:\n\n    (inside) $ ifdtool -x /out/original.rom\n    (inside) $ cp flashregion_0_flashdescriptor.bin 3rdparty/blobs/mainboard/lenovo/x201/descriptor.bin\n    (inside) $ me_cleaner -O 3rdparty/blobs/mainboard/lenovo/x201/me.bin flashregion_2_intel_me.bin\n    (inside) $ cp flashregion_3_gbe.bin 3rdparty/blobs/mainboard/lenovo/x201/gbe.bin\n\nbuild coreboot rom (add bins back in chipset menu):\n\n    (inside) $ make menuconfig\n    (inside) $ make\n    (inside) $ mv build/coreboot.rom /out\n    ^D\n\nflash coreboot, for example:\n\n    $ flashrom -p ch341a_spi -c MX25L6436E/MX25L6445E/MX25L6465E/MX25L6473E -w out/coreboot.rom\n\n\n## x220\n\nsame general procedure as x201 tablet\n\n\n## x230\n\nconnect spi programmer and read original flash from both chips, for example:\n\n    $ flashrom -p ch341a_spi -c MX25L3206E/MX25L3208E -r upper-original-bios.bin    \n    $ flashrom -p ch341a_spi -c MX25L6406E/MX25L6408E -r lower-intel-me.bin\n\nremember to read more than once and integrity check.\n\nsimilar procedure for shelling into the image and building coreboot. when you check the x230 mainboard menuconfig option, 12 MB size will be autofilled. leave it; a stub intel firmware descriptor will be built, which you need to discard post-build and create the 4 MB coreboot image:\n\n    (inside) $ dd if=build/coreboot.rom of=/out/coreboot.rom bs=1M skip=8\n\nneutralize intel me:\n\n    (inside) $ me_cleaner -S -O /out/lower-intel-me-neutralized.bin /out/lower-intel-me.bin\n    ^D\n\nflash coreboot and the neutralized intel me to their respective chips.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuarli%2Fcoreboot-build","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoshuarli%2Fcoreboot-build","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoshuarli%2Fcoreboot-build/lists"}