Skip to content

SEspe/venus

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

212 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

Victron Energy Unix/Linux OS

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Shell 65.0%
  • Makefile 27.8%
  • Python 7.2%