Commit 61fb04d3 authored by Brenden Blanco's avatar Brenden Blanco

Merge pull request #292 from iovisor/bblanco_dev

Updates to INSTALL.md for readability and ease of use
parents 782158bd edf7baa6
...@@ -5,13 +5,18 @@ ...@@ -5,13 +5,18 @@
In general, to use these features, a Linux kernel version 4.1 or newer is In general, to use these features, a Linux kernel version 4.1 or newer is
required. In addition, the following flags should be set: required. In addition, the following flags should be set:
- `CONFIG_BPF=y` ```
- `CONFIG_BPF_SYSCALL=y` CONFIG_BPF=y
- `CONFIG_NET_CLS_BPF=m` [optional, for tc filters] CONFIG_BPF_SYSCALL=y
- `CONFIG_NET_ACT_BPF=m` [optional, for tc actions] # [optional, for tc filters]
- `CONFIG_BPF_JIT=y` CONFIG_NET_CLS_BPF=m
- `CONFIG_HAVE_BPF_JIT=y` # [optional, for tc actions]
- `CONFIG_BPF_EVENTS=y` [optional, for kprobes] CONFIG_NET_ACT_BPF=m
CONFIG_BPF_JIT=y
CONFIG_HAVE_BPF_JIT=y
# [optional, for kprobes]
CONFIG_BPF_EVENTS=y
```
# Ubuntu - Binary # Ubuntu - Binary
...@@ -19,9 +24,9 @@ Install a 4.3+ kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline, ...@@ -19,9 +24,9 @@ Install a 4.3+ kernel from http://kernel.ubuntu.com/~kernel-ppa/mainline,
for example: for example:
```bash ```bash
VER=4.3.0-999 VER=4.3.0-040300
PREFIX=http://kernel.ubuntu.com/~kernel-ppa/mainline/daily/2015-09-21-unstable/ PREFIX=http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.3-wily/
REL=201509202159 REL=201511020949
wget ${PREFIX}/linux-headers-${VER}-generic_${VER}.${REL}_amd64.deb wget ${PREFIX}/linux-headers-${VER}-generic_${VER}.${REL}_amd64.deb
wget ${PREFIX}/linux-headers-${VER}_${VER}.${REL}_all.deb wget ${PREFIX}/linux-headers-${VER}_${VER}.${REL}_all.deb
wget ${PREFIX}/linux-image-${VER}-generic_${VER}.${REL}_amd64.deb wget ${PREFIX}/linux-image-${VER}-generic_${VER}.${REL}_amd64.deb
...@@ -80,36 +85,65 @@ To build the toolchain from source, one needs: ...@@ -80,36 +85,65 @@ To build the toolchain from source, one needs:
* Clang 3.7, built from the same tree as LLVM * Clang 3.7, built from the same tree as LLVM
* cmake, gcc (>=4.7), flex, bison * cmake, gcc (>=4.7), flex, bison
* Install build dependencies ## Install build dependencies
* `sudo apt-get -y install bison build-essential cmake flex git libedit-dev python zlib1g-dev` ```
* Build LLVM and Clang development libs VER=trusty
* `git clone http://llvm.org/git/llvm.git` echo "deb http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main
* `cd llvm/tools; git clone http://llvm.org/git/clang.git` deb-src http://llvm.org/apt/$VER/ llvm-toolchain-$VER-3.7 main" | \
* `cd ..; mkdir -p build/install; cd build` sudo tee /etc/apt/sources.list.d/llvm.list
* `cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install ..` wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
* `make -j4` sudo apt-get update
* `make install` sudo apt-get -y install bison build-essential cmake flex git libedit-dev \
* `export PATH=$PWD/install/bin:$PATH` libllvm3.7 llvm-3.7-dev libclang-3.7-dev python zlib1g-dev
* Install and compile BCC ```
* `git clone https://github.com/iovisor/bcc.git`
* `mkdir bcc/build; cd bcc/build` ## Install and compile BCC
* `cmake .. -DCMAKE_INSTALL_PREFIX=/usr` ```
* `make` git clone https://github.com/iovisor/bcc.git
* `sudo make install` mkdir bcc/build; cd bcc/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
```
# Fedora - From source # Fedora - From source
* Install build dependencies ## Install build dependencies
* `sudo dnf install -y bison cmake ethtool flex git iperf libstdc++-static python-netaddr python-pip gcc gcc-c++ make zlib-devel`
* `sudo dnf install -y http://pkgs.repoforge.org/netperf/netperf-2.6.0-1.el6.rf.x86_64.rpm` ```
* `sudo pip install pyroute2` sudo dnf install -y bison cmake ethtool flex git iperf libstdc++-static \
* Install binary clang python-netaddr python-pip gcc gcc-c++ make zlib-devel
* `wget http://llvm.org/releases/3.7.0/clang+llvm-3.7.0-x86_64-fedora22.tar.xz` sudo dnf install -y \
* `sudo tar xf clang+llvm-3.7.0-x86_64-fedora22.tar.xz -C /usr/local --strip 1` http://pkgs.repoforge.org/netperf/netperf-2.6.0-1.el6.rf.x86_64.rpm
* Install and compile BCC sudo pip install pyroute2
* `git clone https://github.com/iovisor/bcc.git` ```
* `mkdir bcc/build; cd bcc/build`
* [optional] `export CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++` ## Install binary clang
* `cmake .. -DCMAKE_INSTALL_PREFIX=/usr`
* `make` ```
* `sudo make install` wget http://llvm.org/releases/3.7.0/clang+llvm-3.7.0-x86_64-fedora22.tar.xz
sudo tar xf clang+llvm-3.7.0-x86_64-fedora22.tar.xz -C /usr/local --strip 1
```
## Install and compile BCC
```
git clone https://github.com/iovisor/bcc.git
mkdir bcc/build; cd bcc/build
# optional
export CC=/usr/local/bin/clang CXX=/usr/local/bin/clang++
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
```
# [Old] Build LLVM and Clang development libs
```
git clone http://llvm.org/git/llvm.git
cd llvm/tools; git clone http://llvm.org/git/clang.git
cd ..; mkdir -p build/install; cd build
cmake -G "Unix Makefiles" -DLLVM_TARGETS_TO_BUILD="BPF;X86" \
-DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=$PWD/install ..
make -j4
make install
export PATH=$PWD/install/bin:$PATH
```
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment