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

Bob Feretich bob.feretich at rafresearch.com
Tue May 6 19:48:50 PDT 2014


On 5/6/2014 3:45 PM, Gary Thomas wrote:
> 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.
Better!
Questions:
Is     INHERIT += "own-mirrors "
coded as you state it, or am I supposed to substitute something for 
"own-mirrors " ?

Where does      BB_GENERATE_MIRROR_TARBALLS ?= "1"
put the tarball?

Does do_rm_work remove them?

Regards,
Bob

>
> Fast access, no messing with source recipes!
>




More information about the yocto mailing list