[yocto] A simpler way of creating an using a local kernel repository - BeagleBone example

Gary Thomas gary at mlbassoc.com
Tue May 6 15:45:42 PDT 2014


On 2014-05-06 16:31, Bob Feretich wrote:
> I have had problems getting good download performance when accessing the kernels at kernel.org. Since I expect to build the kernel several times, I decided to create a copy of the
> kernel repository locally and use that for my builds.
>
> There are instructions on how to create a local repository in the Yocto manuals, but those are more complex than I needed. (I don't plan on checking anything into the repository.)
>
> The below is a simpler way of creating and using the repository.
> I'm publishing this because my search though the Yocto/OE/Angstrom yielded only the more complicated or incomplete methods.
>
> // First set up local kernel repository
> mkdir ~/ksrc3-8
> cd ~/ksrc3-8
> git clone --bare git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git stable-work-bare.git
>
> // Then modify the kernel recipe to use the local repository instead of the the one at kernel.org.
> // The beaglebone recipe for the 3.8 kernel is at...
> setup-scripts/sources/meta-beagleboard/common-bsp/recipes-kernel/linux/linux-mainline_3.8.bb
>
> // Replace the file's SRC_URI with one that points to your local repository.
> #SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;branch=linux-3.8.y"
> SRC_URI = "git:///home/Bob/ksrc3-8/stable-work-bare.git;branch=linux-3.8.y"

IMO a much simpler (and certainly less invasive) way is to just
use your own local source mirrors.  Add these lines to your local.conf:
   SOURCE_MIRROR_URL = "file:///some-mirror-directory/"
   INHERIT += "own-mirrors "
   BB_GENERATE_MIRROR_TARBALLS ?= "1"

Once the git repository has been downloaded, it will be packed up in a
tarball, e.g.
   git2_git.kernel.org.pub.scm.linux.kernel.git.stable.linux-stable.git.tar.gz
If you then put this file into your SOURCE_MIRROR, the next time bitbake will
fetch from there [first].  It's even smart enough that if you need a revision
which is not in the tarball, it will update the git repository and rebuild the
tarball, which you can then move to your mirror.

Fast access, no messing with source recipes!

-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the yocto mailing list