# Problems installing OpenVSwitch 2.0

## ldohr

Hey everybody,

I need a solution for installing openvswitch 2.0. After compiling I got the following errors:

```

 * Installing brcompat module

install: cannot stat 'brcompat.ko': No such file or directory

!!! doins: brcompat.ko does not exist

 * ERROR: net-misc/openvswitch-2.0.0::gentoo failed (install phase):

 *   doins failed

 * 

 * If you need support, post the output of `emerge --info '=net-misc/openvswitch-2.0.0::gentoo'`,

 * the complete build log and the output of `emerge -pqv '=net-misc/openvswitch-2.0.0::gentoo'`.

 * The complete build log is located at '/var/tmp/portage/net-misc/openvswitch-2.0.0/temp/build.log'.

 * The ebuild environment file is located at '/var/tmp/portage/net-misc/openvswitch-2.0.0/temp/environment'.

 * Working directory: '/var/tmp/portage/net-misc/openvswitch-2.0.0/work/openvswitch-2.0.0/datapath/linux'

 * S: '/var/tmp/portage/net-misc/openvswitch-2.0.0/work/openvswitch-2.0.0'

 * QA Notice: file does not exist:

 * 

 *    doins: brcompat.ko does not exist

```

Output of emerge --info '=net-misc/openvswitch-2.0.0::gentoo'

```

Portage 2.2.7 (default/linux/amd64/13.0, gcc-4.7.3, glibc-2.15-r3, 3.10.7-gentoo-r1 x86_64)

=================================================================

                        System Settings

=================================================================

System uname: Linux-3.10.7-gentoo-r1-x86_64-Intel-R-_Celeron-R-_CPU_B830_@_1.80GHz-with-gentoo-2.2

KiB Mem:     3939000 total,   2076792 free

KiB Swap:    4194300 total,   4194300 free

Timestamp of tree: Wed, 13 Nov 2013 04:45:01 +0000

ld GNU ld (GNU Binutils) 2.23.1

app-shells/bash:          4.2_p45

dev-java/java-config:     2.1.12-r1

dev-lang/python:          2.6.8-r3, 2.7.5-r3, 3.2.5-r2

dev-util/cmake:           2.8.10.2-r2

dev-util/pkgconfig:       0.28

sys-apps/baselayout:      2.2

sys-apps/openrc:          0.11.8

sys-apps/sandbox:         2.6-r1

sys-devel/autoconf:       2.13, 2.69

sys-devel/automake:       1.10.3, 1.11.6, 1.13.4

sys-devel/binutils:       2.23.1

sys-devel/gcc:            4.7.3-r1

sys-devel/gcc-config:     1.7.3

sys-devel/libtool:        2.4.2

sys-devel/make:           3.82-r4

sys-kernel/linux-headers: 3.9 (virtual/os-headers)

sys-libs/glibc:           2.15-r3

Repositories: gentoo

ACCEPT_KEYWORDS="amd64"

ACCEPT_LICENSE="* -@EULA"

CBUILD="x86_64-pc-linux-gnu"

CFLAGS="-O2 -march=corei7 -pipe"

CHOST="x86_64-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /var/lib/hsqldb"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"

CXXFLAGS="-O2 -march=corei7 -pipe"

DISTDIR="/usr/portage/distfiles"

FCFLAGS="-O2 -pipe"

FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"

FFLAGS="-O2 -pipe"

GENTOO_MIRRORS="http://de-mirror.org/gentoo/ http://gentoo.mneisen.org/ http://mirror.netcologne.de/gentoo/ http://mirror.opteamax.de/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp.halifax.rwth-aachen.de/gentoo/ http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/"

LANG="de_DE@euro"

LDFLAGS="-Wl,-O1 -Wl,--as-needed"

PKGDIR="/usr/portage/packages"

PORTAGE_CONFIGROOT="/"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY=""

SYNC="rsync://rsync10.de.gentoo.org/gentoo-portage"

USE="X acl ads alsa amd64 berkdb bindist bzip2 cdda cli client cracklib crypt cups cxx databasedesigner dbus dri dvd egl eutils fortran gdbm gif gles1 gles2 gnome gnome2 gtk iconv inherit ipv6 jpeg ldap libnotify macvtap martroska mmx modules mp3 mpeg mudflap multilib ncurses nls nptl nsplugin opengl openmp pam pcre png pyside python-single-r1 python2_6 python2_7 python3_2 python3_3 qemu qt4 readline session sqlite sse sse2 sse4_1 ssl ssse3 swat tcpd tiff unicode vepa virt-network waf-utils x264 zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev synaptics" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_6 python2_7 python3_2 python3_3" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

USE_PYTHON="2.6 2.7 3.2"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LC_ALL, MAKEOPTS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

```

Greetings

Lars

----------

## glaiss

I encountered the same but managed to find a workaround. The issue is in the "install" phase when emerging the package. The ebuild file assumes the existence of brcompat modules. However, starting from Open vSwitch version 1.10, bridge compatibility support (brcompat) has been removed. So I modified the openvswitch-2.0.0.ebuild file in /usr/portage/net-misc/openvswitch and used multiple ebuild commands (instead of emerge) to build the package. Basically I removed both referencse to brcompat in the ebuild file. Here's the diff output:

```

# cd /usr/portage/net-misc/openvswitch

# diff  openvswitch-2.0.0.ebuild  openvswitch-2.0.0.ebuild.orig

35c35

< MODULE_NAMES="openvswitch(net:${S}/datapath/linux)"

---

> MODULE_NAMES="brcompat(net:${S}/datapath/linux) openvswitch(net:${S}/datapath/linux)"

94a95

>       rm "${D}/usr/sbin/ovs-brcompatd" "${D}/usr/share/man/man8/ovs-brcompatd.8"

```

Then I did the following:

```

ebuild openvswitch-2.0.0.ebuild digest

ebuild openvswitch-2.0.0.ebuild compile

ebuild openvswitch-2.0.0.ebuild install

ebuild openvswitch-2.0.0.ebuild qmerge

```

After these commands, Open vSwitch was successfully installed. Hope this helps. 

-George

----------

## glaiss

I discovered that there are more modifications needed to run openvswitch 2.0.0 successfully. First, apparently there is a syntax change in ovsdb-server command. These needed changes can be made in /etc/conf.d/ovsdb-server as shown below (note the first Open_vSwitch keyword after db): 

```

# Socket for bringing the server up

DB_SOCKET="/var/run/openvswitch/db.sock"

# Remote sockets are defined in the database by default

REMOTE_DB="db:Open_vSwitch,Open_vSwitch,manager_options"

# All certificates and keys are stored in the database (if any)

PRIVATE_KEY="db:Open_vSwitch,SSL,private_key"

CERTIFICATE="db:Open_vSwitch,SSL,certificate"

BOOTSTRAP_CA_CERT="db:Open_vSwitch,SSL,ca_cert"

# Alternative path for the database (default is /etc/openvswitch/conf.db)

DATABASE="/etc/openvswitch/conf.db"

# Additional options

# OPTIONS=""

```

Second, upgrading from 1.10.0, I chose to convert the existing database in place (make a backup first): 

```

# cd /etc/openvswitch/

# ls -l cond.db

-rw-r--r-- 1 root root 279383 Jan 31  2013 cond.db

# cp cond.db cond.db.bak

# ovsdb-tool convert /etc/openvswitch/conf.db /usr/share/openvswitch/vswitch.ovsschema

# ls -l

total 300

-rw-r--r-- 1 root root 279383 Jan 31  2013 cond.db.bak

-rw-r--r-- 1 root root  16903 Nov 17 18:54 conf.db

```

After these modifications, restart the 3 ovs init scripts in /etc/init.d, and it will run flawlessly. 

-George

----------

## ldohr

Hi George,

thank you, now it works.

-Lars

----------

