You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

63 lines
2.8 KiB

9 years ago
# Coreboot Buildroot
9 years ago
This repostory contains [buildroot](http://buildroot.uclibc.org/) 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](https://www.coreboot.org).
9 years ago
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.
9 years ago
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.
9 years ago
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:
```
9 years ago
$ 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
```
9 years ago
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.
9 years ago
-------
**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.