Skip to content

Instantly share code, notes, and snippets.

@cfriedt
Last active April 3, 2020 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save cfriedt/6ef357e0e464a7a5544c544c94068182 to your computer and use it in GitHub Desktop.
Save cfriedt/6ef357e0e464a7a5544c544c94068182 to your computer and use it in GitHub Desktop.
Lisboa Greybus Demo Instructions
# Install some Ubuntu dependencies
apt install libnl-genl-3-dev libbluetooth-dev libavahi-client-dev gcc-arm-none-eabi curl build-essential git ssh python3-pip linux-headers-$(uname -r) flex bison gperf ninja-build cmake gpiod
# Install a newer version of cmake (required by zephyr)
# If you are using ubuntu:disco or newer, this can be ignored
PN=cmake
PV=3.15.2
PR=1
DEB="${PN}_${PV}-${PR}.deb"
curl -L -o "${DEB}" "https://github.com/cfriedt/${PN}-debs/releases/download/v${PV}/${DEB}"
dpkg -i "${DEB}"
# Build and install a newer version of Device Tree Compiler (required by zephyr)
git clone --depth 1 https://git.kernel.org/pub/scm/utils/dtc/dtc.git
cd dtc
make -j
mkdir -p /usr/local/bin
cp dtc /usr/local/bin
cd..
# Install OpenOCD (It's possible that the head of openocd git will work for you)
# See https://repo.or.cz/w/openocd.git
# Otherwise, try the Zephyr SDK
# Build Greybus Out-of-Kernel (required due to gb-netlink)
git clone git@github.com:friedtco/greybus.git
cd greybus
make -j
# Make sure you're using bash not dash for this script.
# See https://anandmpandit.blogspot.com/2011/09/how-to-change-default-shell-from-dash.html
./gbprobe.sh
cd ..
# Get the tool to compile Greybus manifests (manifesto)
git clone https://github.com/projectara/manifesto
# Build gbridge (there are some dependencies, see readme, also openssl)
git clone git@github.com:friedtco/gbridge.git
cd gbridge
autoreconf -vfi
GBDIR="${PWD}/../greybus" ./configure --enable-uart --enable-tcpip --disable-gbsim --enable-netlink --disable-bluetooth --with-ssl
make -j
# Check out Zephyr
export PATH=${HOME}/.local/bin:${PATH}
pip3 install --user west
west init zephyrproject
cd zephyrproject
west update
pip3 install --user -r zephyr/scripts/requirements.txt
cd zephyr
# greybus dev branch is not yet merged into upstream zephyr
git remote rename origin upstream
git remote add origin git@github.com:cfriedt/zephyr.git
git fetch origin
git checkout -b feature/greybus origin/feature/greybus
sudo sh .ci/scripts/install-cmake.sh
source zephyr-env.sh
export ZEPHYR_TOOLCHAIN_VARIANT=cross-compile
export CROSS_COMPILE=/usr/bin/arm-none-eabi-
west build --pristine always -b cc1352r1_launchxl samples/subsys/greybus
# can also be done with
# openocd -f board/ti_cc13x2_launchpad.cfg -c "init" -c "reset halt" -c "reset_config trst_only" -c "flash write_image erase $PWD/build/zephyr/zephyr.elf"
west flash
cd ../gbridge
./gbridge -p /dev/ttyACM0 -b 115200
# Below this line needs to be run as root (at least in Ubuntu) because gpio's are all root owned
# Note: this uses the gpiod package with accompanying libgpiod.
sudo -s
CHIP=`gpiodetect | grep "greybus_gpio" | awk '{print $1}'`
VAL=0; for ((;;)); do VAL=$((VAL^1)); echo $VAL | gpioset -m time -u 100000 ${CHIP} 0=${VAL}; done
@pdp7
Copy link

pdp7 commented Sep 9, 2019

Ubuntu 18.04.1 LTS \n \l
2030 sudo apt-get install libbluetooth-dev
2037 sudo apt install libnl-genl-3-dev
2042 sudo apt install libavahi-client-dev

@cfriedt
Copy link
Author

cfriedt commented Sep 10, 2019

Removed pygbmodule, since manifest is now compiled-in

@cfriedt
Copy link
Author

cfriedt commented Sep 20, 2019

Figured out how to get it to work with the Ubuntu cross-compiler (it was in the Zephyr docs here).

@cfriedt
Copy link
Author

cfriedt commented Sep 20, 2019

install cmake from cmake-debs using .ci/scripts/install-cmake.sh

@cfriedt
Copy link
Author

cfriedt commented Sep 23, 2019

Went through the instructions to verify that it works with ubuntu:disco

@cfriedt
Copy link
Author

cfriedt commented Apr 2, 2020

Need to update these instructions for gpiod

sudo gpioset gpiochip0 0=1

Edit: done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment