SEspe/venus
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Venus: synonym for Victron Energy Unix like distro with a linux kernel ---------------------------------------------------------------------- The problematic part with this name is that it is from the Roman mythology and not, as most of our products, from the Greek. Phoenix is already taken though by a charger... First of all, make sure you really want to rebuild a complete rootfs, it takes time to compile, lots of diskspace and results in an image / sdk which already available anyway, in binary form. Anyway, if you insist: this repo contains some wrapper functions around bitbake and git to fetch, and compile sources. For a complete build you need to have access to private repros of Victron Energy. Building only opensource packages is also possible (but not checked automatically at the moment). Note: repos is just like git submodule foreach -q git, but shorter, so you can do: ./repos push origin ./repos tag xyz it will push all, tag all etc. Likewise you can revert to a certain revision with: ./repos checkout tagname The repos.conf files in the configs/* directories contains the repositories which need to be checked out. One of them can be selected with e.g. make CONFIG=jethro conf It can be rebuild with make update-repos.conf. metas.whitelist contains the meta directory which will be added to bblayers.conf, but only if they are actually present. === Live image which can be booted from e.g. the sd card === # clone this repository with: git clone https://github.com/victronenergy/venus.git # fetch needed subtrees cd venus make fetch # install host packages (Debian based) make prereq # build all, this will take a while though... it builds for all MACHINES as found # in conf/machines. make venus-images # to build for a specific machine, it can be prefixed, e.g. building the image only # for the beaglebone is done with, for example, one of these two: make ccgx-venus-image make beaglebone-venus-image alternatively the MACHINE can be set in env, and `make venus-image` can be used. # burn the obtained image to a sd card gunzip -c deploy/venus/images/ccgx/venus-image-ccgx.live.img.gz | sudo dd of=/dev/mmcblk0 bs=1M && sync === Complete build for the ccgx === # install ssh keys for github / gitlab etc make fetch-all make venus-images === other configurations === Above instructions checkout the version as used for the ccgx release as distributed. Alternative setups can also be used, e.g. to build for a newer OE version use e.g.: make CONFIG=jethro fetch-all The directory conf contains the supported configurations. === fiddling around === `make bb` will source the oe-environment and bring you to shell with a modified environment. In this shell bitbake can be called to do any custom action, e.g. bitbake -c cleansstate or bitbake [recipe] etc. Note: it will default to MACHINE=ccgx, when building for another one, don't forget to set MACHINE or prefix it, e.g. make beaglebone-bb, wil set MACHINE to beaglebone. === managing git remotes and branches ==== The repos command iterates over all repository in sources. To add a new repository put it in sources, checkout the branch you want and set an upstream branch. This can be made permanent with: `make repos.conf` The directories you want to use from the new repository must be added to metas.whitelist. # patches not in upstream yet ./repos cherry -v # local changes with respect to upstream ./repos diff @{u} # local changes with respect to the push branch ./repos diff 'origin/`git rev-parse --abbrev-ref HEAD`' or if you have git 2.5+ ./repos diff @{push} ./repos log @{u}..upstream/`git rev-parse --abbrev-ref @{u} | grep -o "[a-Z0-9]*$"` --oneline ==== ccgx specific ===== The image can be booted by holding the left button on the central pad, while restarting the ccgx (the screen will turn blue for a while when booting from the card). To connect to the ccgx, use a modified VE.Direct USB cable and plug it into VE.Direct port 1 which is the console. Baudrate is 115k2. The login is simply root, without a password. Obviously to be used only in a safe environment. For ssh to work a valid passwd must be set first. === sdk rebuild === Changing the distro version can cause some sdk packages fail to compile, this should fix that bitbake -c cleanall nativesdk-gettext nativesdk-gmp nativesdk-gdbm nativesdk-glib-2.0 nativesdk-qt4-tools