How to get a buildroot project under source control

前端 未结 3 642
春和景丽
春和景丽 2021-02-14 19:53

The company I work for develops a product that requires embedded Linux for which we use, as many other, Buildroot.

In any case, I would like to get the project under sou

3条回答
  •  遥遥无期
    2021-02-14 20:51

    I've tackling this same issue by working with git submodules and buildroot br-external feature.

    In this sense, you only need to start an empty repository and import a buildroot release as a submodule of it.

    mkdir myrepo; cd myrepo
    git init
    touch README; git add README; git commit -m "Initial commit"
    git submodule add -b  git://git.buildroot.net/buildroot
    git submodule update --init
    

    Then you can create a br-external directory and populate it similar as buildroot's own package/configs/board directories as explained in BR2_EXTERNAL documentation1.

    mkdir br-external
    # below command assumes you have all structures ready somewhere else
    cp -fva .../configs .../package .../board br-external
    touch br-external/{Config.in,external.mk}
    (edit Config.in and external.mk)
    git add br-external
    

    After doing so, you only need to run buildroot defconfig step passing the absolute path to your br-external directory, like this.

    make BR2_EXTERNAL=$PWD/br-external -C buildroot _defconfig
    

    Your BR2_EXTERNAL locations gets cached for further invocations.

    The nicest parts of this is that you only need to versionate what's inside br-external and buildroot builds up the configuration menu in a way that all your custom stuff gets properly separated ("User provided options" menu entry).

    Also, if you decide to bump-up buildroot release to a newer one, the only trouble is to upgrade the submodule and commit it. Perfect for configuration management.

    cd buildroot
    git pull origin latest-release
    cd ..
    git add buildroot
    git commit -m 'buildroot latest-release upgrade'
    

提交回复
热议问题