Difference between revisions of "Building novena firmware"

From Studio Kousagi Wiki
Jump to: navigation, search
(From scratch)
(Redirected page to Novena linux-kernel)
 
(37 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Before you begin==
+
#REDIRECT [[Novena linux-kernel]]
 
 
The build environment should not be on an encrypted partition.  These tend to have much lower path lengths, which can break the build in mysterious and hard-to-track-down ways.
 
 
 
You should not use have a symlink in the path of the build system.  This can also break things.
 
 
 
==Setting up the environment==
 
 
 
To set up the environment, first you must fetch the repos, then you must perform initial,  one-time configuration.  All of these steps only need to be run the first time you set up your build environment.
 
 
 
===Fetching source code===
 
 
 
There are two approaches you can take to set up the environment: From-scratch, or with a quickstart package.  The quickstart method should save you a day or two, as downloading the kernel and webkit sources can take a very long time – on the order of days.
 
 
 
====From scratch====
 
 
 
Note that these steps are very similar to the generic [http://www.angstrom-distribution.org/building-angstrom Building Angstrom] steps.
 
 
 
#* git clone https://github.com/sutajiokousagi/setup-scripts-novena oe
 
#* cd oe
 
 
 
===Configure the build environment===
 
 
 
First, perform initial setup.  This creates an environment file you'll use every time you want to do development.
 
 
 
# Configure OE
 
#* ./oebb.sh config novena
 
#* ./oebb.sh update
 
 
 
Next, edit conf/local.conf.  Particularly important variables you might want to changeg are:
 
 
 
* PARALLEL_MAKE – This tells "make" how many threads to spawn.  A good rule of thumb is 1.5 times the number of cores present.  Be sure to include "-j" before the number.
 
* BB_NUMBER_THREADS – This tells bitbake how many tasks to run at parallel.  Set this equal to around the number of cores present.
 
 
 
==Building an image==
 
 
 
Set up your session by sourcing the OE environment file:
 
. ~/.oe/environment-oecore
 
 
 
There are many images available.  To list them all, run:
 
find sources/meta-* sources/openembedded-core -name '*image*.bb'
 
 
 
There is a Novena bringup image that contains many useful system tools for determining system performance, communicating with various peripherals, and generally bringing up the system.  To build this image, run:
 
bitbake novena-bringup-image
 
 
 
==Troubleshooting==
 
* Bitbake failure when downloading the kernel
 
There is an issue with the long-running <tt>git fetch</tt> that bitbake does when it first pulls down the kernel source code.  The error looks like:
 
ERROR: Fetcher failure: Fetch command ...
 
Cloning into bare repository ...
 
To work around this, manually run the command listed and then retry the bitbake command.
 
 
 
==Writing an image to a card==
 
 
 
When an image is built, various files are added to the deploy/images/novena/ directory.  The image name is embedded within the resulting compressed ROM file.  For example, the image for novena-bringup-image is located at oe/build/tmp-angstrom_2010_x-eglibc/deploy/images/novena/rom-novena-hw-bringup.img.gz.
 

Latest revision as of 08:53, 25 March 2015