Skip to content

This repostory contains Buildroot configurations, patches, and additions meant to build a useful Linux+Busybox distribution which can be embedded on the flash memory of ThinkPad X220/X230 machines running Coreboot.

Notifications You must be signed in to change notification settings

xSmurf/coreboot_buildroot_project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coreboot Buildroot

This repostory contains buildroot configurations, patches, and additions meant to build a useful linux+busybox distribution which can be embedded on the flash memory of ThinkPad X220/X230 machines running Coreboot.

It includes three different configuration: the default config coreboot_defconfig, a minimal config coreboot_minimal_defconfig which can fit on the X230 without hardware modifications (but lacks some extra goodies), and a grsec configuration for both of these.

Installing on the X220 requires hardware modification as the flash has to be upgraded to 16MiB. We used the W25Q128.V model. This requires further patching, however this is out of the scope of this guide.

It comes out of the box with some useful goodies such as fully randomized MAC and hostname.

Some of the coreboot utility (ie: cbfstool, ifdtool, and nvramtool) packages are built from a local source. you will need to edit this path in packages/coreboot/*/*.mk

Building cbfstool currently requires a patch in the local coreboot tree which has not yet been added upstream:

diff --git a/util/cbfstool/Makefile.inc b/util/cbfstool/Makefile.inc
index 976f0c2..8e04670 100644
--- a/util/cbfstool/Makefile.inc
+++ b/util/cbfstool/Makefile.inc
@@ -45,7 +45,7 @@ TOOLCFLAGS ?= -std=c99 -Werror -Wall -Wextra
 TOOLCFLAGS += -Wcast-qual -Wmissing-prototypes -Wredundant-decls -Wshadow
 TOOLCFLAGS += -Wstrict-prototypes -Wwrite-strings
 TOOLCPPFLAGS ?= -D_DEFAULT_SOURCE # memccpy() from string.h
-TOOLCPPFLAGS += -D_XOPEN_SOURCE=700 # strdup() from string.h
+TOOLCPPFLAGS += -D_XOPEN_SOURCE=700 -D__USE_XOPEN_EXTENDED # strdup() from string.h
 TOOLCPPFLAGS += -I$(top)/util/cbfstool/flashmap
 TOOLCPPFLAGS += -I$(top)/util/cbfstool
 TOOLCPPFLAGS += -I$(objutil)/cbfstool
diff --git a/util/cbfstool/cbfs_image.c b/util/cbfstool/cbfs_image.c
index c40bd66..36438e9 100644
--- a/util/cbfstool/cbfs_image.c
+++ b/util/cbfstool/cbfs_image.c
@@ -24,6 +24,7 @@
 #include <stdlib.h>
 #include <string.h>
 #include <strings.h>
+#include <unistd.h>
 
 #include "common.h"
 #include "cbfs_image.h"

To use the project with Buildroot:

$ git clone https://github.com/xsmurf/coreboot_buildroot_project.git
$ export BR_PROJECT=$PWD/coreboot_buildroot_project
$ wget <buildroot-release.tgz>
$ tar -xjf <buildroot-release.tgz>
$ cd <buildroot-release>
$ make BR2_EXTERNAL=$BR_PROJECT coreboot_defconfig
$ make

After making changes in buildroot with make menuconfig, make linux-menuconfig, or make busybox-menuconfig, you use the included $BR_PROJECT/scripts/save.sh to export your changes back to the project.


WARNING: This is work in progress with no guarantees given of any sorts. This may destroy your system, make flames shoot out of the battery and accidentally kill a puppy.

About

This repostory contains Buildroot configurations, patches, and additions meant to build a useful Linux+Busybox distribution which can be embedded on the flash memory of ThinkPad X220/X230 machines running Coreboot.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published