]>
Commit | Line | Data |
---|---|---|
c434706a BP |
1 | How to Install Open vSwitch on Red Hat Enterprise Linux |
2 | ======================================================= | |
3 | ||
4 | This document describes how to build and install Open vSwitch on a Red | |
5 | Hat Enterprise Linux (RHEL) host. If you want to install Open vSwitch | |
f6eb6b20 | 6 | on a generic Linux host, see INSTALL instead. |
c434706a BP |
7 | |
8 | We have tested these instructions with RHEL 5.6 and RHEL 6.0. | |
9 | ||
10 | Building Open vSwitch for RHEL | |
11 | ------------------------------ | |
12 | ||
13 | You may build from an Open vSwitch distribution tarball or from an | |
14 | Open vSwitch Git tree. | |
15 | ||
16 | Before you begin, note the RPM source directory on your version of | |
17 | RHEL. On RHEL 5, the default RPM source directory is | |
18 | /usr/src/redhat/SOURCES. On RHEL 6, it is $HOME/rpmbuild/SOURCES. | |
19 | ||
6fdbeaa6 BP |
20 | 1. If you are building from a distribution tarball, proceed to step 2. |
21 | Otherwise, if you are building from an Open vSwitch Git tree, | |
22 | determine the version of Autoconf available in the RHEL version you | |
23 | are using. If it is not at least version 2.64, then you have two | |
24 | choices: | |
25 | ||
26 | a. Install Autoconf 2.64 or later, one way or another. | |
27 | ||
28 | b. Create a distribution tarball on some other machine, by | |
29 | running "./boot.sh; ./configure; make dist" in the Git tree. | |
30 | You must run this on a machine that has the tools listed in | |
31 | INSTALL as prerequisites for building from a Git tree. | |
32 | Afterward, proceed with the rest of the instructions using the | |
33 | distribution tarball. | |
34 | ||
35 | 2. Install build prerequisites: | |
8f5cb995 | 36 | |
deb64473 BP |
37 | yum install gcc make python-devel openssl-devel kernel-devel graphviz \ |
38 | kernel-debug-devel autoconf automake rpm-build redhat-rpm-config \ | |
39 | libtool | |
8f5cb995 | 40 | |
6fdbeaa6 | 41 | 3. Some versions of the RHEL 6 kernel-devel package contain a broken |
8f5cb995 BP |
42 | "build" symlink. If you are using such a version, you must fix |
43 | the problem before continuing. | |
44 | ||
45 | To find out whether you are affected, run: | |
46 | ||
47 | cd /lib/modules/<version> | |
48 | ls -l build/ | |
49 | ||
50 | where <version> is the version number of the RHEL 6 kernel. (The | |
51 | trailing slash in the final command is important. Be sure to include | |
52 | it.) If the "ls" command produces a directory listing, your | |
53 | kernel-devel package is OK. If it produces a "No such file or | |
54 | directory" error, your kernel-devel package is buggy. | |
55 | ||
56 | If your kernel-devel package is buggy, then you can fix it with: | |
57 | ||
58 | cd /lib/modules/<version> | |
59 | rm build | |
60 | ln -s /usr/src/kernels/<target> build | |
61 | ||
62 | where <target> is the name of an existing directory under | |
63 | /usr/src/kernels, whose name should be similar to <version> but may | |
64 | contain some extra parts. Once you have done this, verify the fix with | |
65 | the same procedure you used above to check for the problem. | |
66 | ||
6fdbeaa6 | 67 | 4. If you are building from an Open vSwitch Git tree, then you will |
c434706a BP |
68 | need to first create a distribution tarball by running "./boot.sh; |
69 | ./configure; make dist" in the Git tree. | |
70 | ||
6fdbeaa6 | 71 | 5. Copy the distribution tarball into the RPM source directory. |
c434706a | 72 | |
6fdbeaa6 | 73 | 6. Unpack the distribution tarball into a temporary directory and "cd" |
c434706a BP |
74 | into the root of the distribution tarball. |
75 | ||
6fdbeaa6 | 76 | 7. To build Open vSwitch userspace, run: |
c434706a BP |
77 | |
78 | rpmbuild -bb rhel/openvswitch.spec | |
79 | ||
80 | This produces two RPMs: "openvswitch" and "openvswitch-debuginfo". | |
81 | ||
8f5cb995 BP |
82 | If the build fails with "configure: error: source dir |
83 | /lib/modules/2.6.32-279.el6.x86_64/build doesn't exist" or similar, | |
84 | then the kernel-devel package is missing or buggy. Go back to step | |
85 | 1 or 2 and fix the problem. | |
86 | ||
6fdbeaa6 | 87 | 8. On RHEL 6, to build the Open vSwitch kernel module, copy |
9c12d2ec | 88 | rhel/openvswitch-kmod.files into the RPM source directory and run: |
c434706a BP |
89 | |
90 | rpmbuild -bb rhel/openvswitch-kmod-rhel6.spec | |
91 | ||
6c9b8ee4 AF |
92 | You might have to specify a kernel version and/or variants, e.g.: |
93 | ||
94 | rpmbuild -bb \ | |
95 | -D "kversion 2.6.32-131.6.1.el6.x86_64" \ | |
96 | -D "kflavors default debug kdump" \ | |
97 | rhel/openvswitch-kmod-rhel6.spec | |
98 | ||
99 | This produces an "kmod-openvswitch" RPM for each kernel variant, | |
100 | in this example: "kmod-openvswitch", "kmod-openvswitch-debug", and | |
101 | "kmod-openvswitch-kdump". | |
c434706a | 102 | |
f9ee9dcb GS |
103 | A RHEL host has default firewall rules that prevent any Open vSwitch tunnel |
104 | traffic from passing through. If a user configures Open vSwitch tunnels like | |
271e6bc7 JG |
105 | Geneve, GRE, VXLAN, LISP etc., they will either have to manually add iptables |
106 | firewall rules to allow the tunnel traffic or add it through a startup script | |
107 | (Please refer to the "enable-protocol" command in the ovs-ctl(8) manpage). | |
f9ee9dcb | 108 | |
0fb42626 AF |
109 | Red Hat Network Scripts Integration |
110 | ----------------------------------- | |
111 | ||
112 | Simple integration with Red Hat network scripts has been implemented. | |
113 | Please read rhel/README.RHEL in the source tree or | |
114 | /usr/share/doc/openvswitch/README.RHEL in the installed openvswitch | |
115 | package for details. | |
116 | ||
c434706a BP |
117 | Reporting Bugs |
118 | -------------- | |
119 | ||
120 | Please report problems to bugs@openvswitch.org. |