在中标麒麟上编译OVS过程记录

公众号:打屎产品经理   qq:1013896790

在Linux qilin 2.6.32-358.11.1.2.ky3.1.x86_64 #1 SMP Mon Jul 8 13:05:58 CST 2013 x86_64 GNU/Linux上编译OVS过程:
总耗时(4h)
1.安装系统(选择基本服务器,好处是不用在手动安装openssh之类的基本应用了)
过程:略
2.配置本地源(麒麟操作系统的很多软件都在其光盘里,如果必要的话再配CentOS的163源,本次不需要)
1)vi /etc/yum.repo.d/Kylin-Base.repo
2)修改baseurl=file:///mnt
3)挂载光盘:mount /dev/cdrom /mnt
4)yum update
3.安装gcc,make,automake
4.到www.openvswitch.org上下载最新的openvswitch的tarball,本次编译的是openvswitch-2.1.2.tar.gz
5.tar -xzf openvswitch.tar.gz
6.cd openvswitch,./boot.sh
0)发现错误,提示autoconf的版本至少2.6.4,该版本的中标麒麟OS中的autoconf为2.6.3
1)下载autoconf2.6.4的源码./configure,make&make install,很顺利
2)再次执行./boot.sh
3)报错:Can't exec "libtoolize":No such file or directory...,安装libtool,yun install libtool
7../configure --with-linux-source=/lib/modules/`uname -r`/build
0)报错,原因是/usr/src/kernels为空,没有linux的kernel头文件
1)安装头文件(此处花去时间最长差不多有2h+,把kernel-headers和kernel-devel混淆了--!,一直在找kernel-headers.rpm,结果


发现原来叫kernel-devel,并且不用找,就在麒麟安装光盘里。。。),yum install kernel-devel
2)执行,再次报错,改用./configure -with-linux=/usr/src/kernels/2.6.32-358.11.1.2.ky3.1.x86_64,通过
8.make,make install
9.insmod datapath/linux/openvswitch.ko
1)报错-1,Unknown symbol..(此处是个难关,网上有人说要先rmmod bridge,执行后,仍不成功;有人说用modprobe,不成功;后来受到某人启发说看下日志/var/log/message,cat message,果然有记录:“openvswitch:Unknown symbol crc32c”,但不知道啥意思,还是无进展,继续查。。;最后又受到一个回答启发“modinfo看下版本是不与内核不符”,modinfo openvswitch.ko,从版本信息上没发现什么端倪,但是发现了重要线索:“depends:libcrc32c”,原来这个模块依赖于libcrc32c,执行locate libcrc32c,原来libcrc32c为libcrc32c.ko,也是一个模块,lsmod|grep libcrc32c.ko,发现并没加载,立刻加载上:insmod libcrc32c.ko,成功加载,然后再执行insmod openvswitch.ko,成功!!)
10.测试openvswitch是否能够正常使用,按照网上的openvswitch的使用方法测试,使用正常!!

你可能感兴趣的:(在中标麒麟上编译OVS过程记录)