wiki:venice/bsp

Version 5 (modified by Tim Harvey, 4 years ago) ( diff )

update git-repo installation procedure to not rely on outdated ubuntu packages

Venice Board Support Package (BSP)

Gateworks provides a Board Support Package for Venice which provides source code and an easy mechanism to build different images, including a minimal Buildroot based distro as well as an Ubuntu based distro.

The Gateworks BSP is the easiest comprehensive software process because it contains everything. If a deep dive, expert path is desired, each piece of the BSP (boot firmware, rootfs, kernel) can all be built separately.

BSP Pre-Built Firmware Images

Pre-built firmware images can be found on http://dev.gateworks.com/venice.

A sampling includes:

  • Entire Board Software (recommended), including boot firmware, bootloader, OS, kernel, etc:
    • Venice Images - Compressed Disk Image containing Firmware and kernel and OS ( .img.gz files )
      • Ubuntu version details are available here
  • Venice GSC
  • Only Boot Firmware
    • flash.bin - Boot Firmware for updating from U-Boot or Linux (everything up to and including the bootloader) (see venice/boot for details)
    • u-boot_spl.bin - Boot Firmware for updating via JTAG (everything up to and including the bootloader) (see venice/boot for details)
    • firmware-venice.bin - Boot Firmware for updating via JTAG (everything up to and including the bootloader including partition table and default U-Boot env) (see venice/boot for details)
  • Only Venice Kernel

Installation instructions:

BSP Source Code

Source code for the firmware, bootloader and kernel are hosted at GitHub. We highly recommend you create a GitHub account and 'Watch' these repositories to keep abreast of important feature additions, bugfixes, and firmware-releases. You can configure your GitHub account to e-mail you when changes are made to repositories here.

The following GitHub repos are used for Venice:

Building the BSP from source

Below are instructions for building the entire BSP, which includes all of the bootloader components and Linux kernel and Ubuntu or OpenWrt. Pre-built images are available above.

The Gateworks Venice Board Support Package uses the Google git-repo tool to manage multiple code repositories.

The following pre-requisites are needed to build the Venice BSP:

  • Linux Development host (desktop or laptop computer) (Ubuntu 16.04 is used by Gateworks and tested)
  • Python 2.x (required by the 'repo' tool)
  • Git (used for source code repositories)
  • repo (used to manage multiple git repos)

Installing pre-requisites:

sudo apt-get install build-essential git python libssl-dev ncurses-dev kmod

Install the latest version of repo (Do not rely on Ubuntu apt package being up to date):

sudo wget https://storage.googleapis.com/git-repo-downloads/repo -O /usr/local/bin/repo
sudo chmod a+rx /usr/local/bin/repo

To obtain the code:

  1. Initialize repo (fetch the repo manifest)
    mkdir $HOME/venice
    cd $HOME/venice
    repo init -u https://github.com/Gateworks/manifest-venice.git
    
  2. Sync repositories (repeat this when you want to fetch the latest code updates)
    repo sync
    
    • This will fetch/update the source repos described above. The first time it can take several minutes depending on your Internet connection and will take approximately ~3GB of disk space
  3. Setup build environment (*repeat this each time you open a shell*)
    source setup-environment
    
  4. Build desired software target as defined below. For example:
    make -j8 ubuntu-image # build focal-venice.img.gz
    

Modifying the stand-alone Linux Kernel

The Gateworks Venice BSP instructions above create an environment for building the Linux kernel among other targets.

Some additional instructions for common actions (make sure you have already installed the BSP and setup your shell environment as specified above):

  • Make standard Gateworks Venice kernel with Gateworks venice_defconfig
    make linux # first build the kernel with the standard venice_defconfig
    
  • Modify Kernel configuration (enabling modules etc):
    make kernel_menuconfig # this will do a 'make menuconfig; make savedefconfig' in the kernel directory
    
    • your modified defconfig is now in linux/defconfig if you want to save it away somewhere
  • copy your modified defconfig over the venice_defconfig (because 'make kernel_image' will always revert to venice_defconfig)
    cp linux/.config linux/arch/arm64/configs/venice_defconfig
    
  • Build kernel tarball:
    make kernel_image # builds the kernel and modules and tarball
    
  • Build new disk image using the updated kernel tarball:
    make ubuntu-image
    

SSH using Ubuntu

By default root ssh access is disabled for security. See This link for info on enabling it

Note: See TracWiki for help on using the wiki.