build ovs with dpdk from mos

ovs with dpdk installation fails due to dpdk dependency change.
To fix this issue, dpdk is built from mos debian. with this fix,
ovs with dpdk can be installed. Another fix is expected to fix new
issue after ovs with dpdk installation.

Change-Id: Ia69bfbf64a820575fd5453f18ad33052a3a490af
Signed-off-by: Guo Ruijing <ruijing.guo@intel.com>
This commit is contained in:
Guo Ruijing 2017-01-11 17:14:54 -05:00
parent c7cfa4ecec
commit 18b80bb154
5 changed files with 52 additions and 35 deletions

View File

@ -11,7 +11,7 @@ dpdk=$3
dpdk_socket_mem=${4:-''}
pmd_cpu_mask=${5:-'2'}
apt-get install -y dkms
apt-get install -y --allow-unauthenticated dkms
if [ $nsh = 'true' ]
then
@ -22,9 +22,7 @@ then
dpkg -i python-openvswitch_2.6.1-1.nsh_all.deb
if [ $dpdk = 'true' ]
then
dpkg -i libxenstore3.0*.deb
dpkg -i libdpdk0_16.07-1_amd64.deb
dpkg -i dpdk_16.07-1_amd64.deb
apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms
dpkg -i openvswitch-switch-dpdk_2.6.1-1.nsh_amd64.deb
fi
else
@ -33,21 +31,23 @@ else
dpkg -i openvswitch-common_2.6.90-1_amd64.deb
dpkg -i openvswitch-switch_2.6.90-1_amd64.deb
dpkg -i python-openvswitch_2.6.90-1_all.deb
if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]]
if [ $dpdk = 'true' ]
then
dpkg -i libxenstore3.0*.deb
dpkg -i libdpdk0_16.07-1_amd64.deb
dpkg -i dpdk_16.07-1_amd64.deb
apt-get install -y --allow-unauthenticated dpdk dpdk-dev dpdk-dkms
dpkg -i openvswitch-switch-dpdk_2.6.90-1_amd64.deb
#Set to 0, dpdk init script mount hugepages but don't change current allocation
sed -i "s/[# ]*\(NR_2M_PAGES=\).*/\10/" /etc/dpdk/dpdk.conf
service dpdk start
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$dpdk_socket_mem"
ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask"
service openvswitch-switch restart
fi
fi
if [[ $dpdk = 'true' && -n $dpdk_socket_mem ]]
then
#Set to 0, dpdk init script mount hugepages but don't change current allocation
sed -i "s/[# ]*\(NR_2M_PAGES=\).*/\10/" /etc/dpdk/dpdk.conf
service dpdk start
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-init=true
ovs-vsctl --no-wait set Open_vSwitch . other_config:dpdk-socket-mem="$dpdk_socket_mem"
ovs-vsctl --no-wait set Open_vSwitch . other_config:pmd-cpu-mask="$pmd_cpu_mask"
service openvswitch-switch restart
fi

View File

@ -10,15 +10,23 @@ BUILD_HOME=${BUILD_HOME:-/tmp/ovs-dpdk}
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
sudo apt-get -y install devscripts dpkg-dev git wget
sudo apt-get -y install devscripts dpkg-dev git wget dkms
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb
cd ${BUILD_HOME}
wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
cd dpdk-16.07
cp -r ${BUILD_SRC}/dpdk_16.07/debian .
cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian .
cat << EOF > debian/changelog
dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low
* Rebuild debian package
* update librte-eal2.symbols
-- Ruijing Guo <ruijing.guo@intel.com> $(date --rfc-2822)
EOF
# copy from debian/control
sudo apt-get install -y debhelper \
@ -38,8 +46,9 @@ sudo apt-get install -y debhelper \
debian/rules build; fakeroot debian/rules binary
cd ${BUILD_HOME}
sudo apt-get install -y hwdata
sudo dpkg -i *.deb
apt-get download libxenstore3.0
mv *.deb ${BUILD_DEST}
# copy from debian/control
sudo apt-get install -y autoconf \
@ -80,5 +89,6 @@ debian/rules build; fakeroot debian/rules binary
cd ${BUILD_HOME}/ovs
debian/rules build; fakeroot debian/rules binary
cp -r ${BUILD_HOME}/*.deb ${BUILD_DEST}
rm -rf ${BUILD_HOME}
cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb
cd ${BUILD_HOME}/deb
tar czvf ${BUILD_DEST}/ovs-dpdk.tar.gz .;

View File

@ -10,15 +10,23 @@ BUILD_HOME=${BUILD_HOME:-/tmp/ovs-dpdk}
export DEB_BUILD_OPTIONS='parallel=8 nocheck'
sudo apt-get -y install devscripts dpkg-dev git wget
sudo apt-get -y install devscripts dpkg-dev git wget dkms
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}/deb
cd ${BUILD_HOME}
wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
cd dpdk-16.07
cp -r ${BUILD_SRC}/dpdk_16.07/debian .
cp -r ${BUILD_SRC}/dpdk_16.07.fuel/debian .
cat << EOF > debian/changelog
dpdk (16.07-0ubuntu5~u1604+fuel10) xenial; urgency=low
* Rebuild debian package
* update librte-eal2.symbols
-- Ruijing Guo <ruijing.guo@intel.com> $(date --rfc-2822)
EOF
# copy from debian/control
sudo apt-get install -y debhelper \
@ -38,8 +46,9 @@ sudo apt-get install -y debhelper \
debian/rules build; fakeroot debian/rules binary
cd ${BUILD_HOME}
sudo apt-get install -y hwdata
sudo dpkg -i *.deb
apt-get download libxenstore3.0
mv *.deb ${BUILD_DEST}
# copy from debian/control
sudo apt-get install -y autoconf \
@ -92,5 +101,6 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low
EOF
debian/rules build; fakeroot debian/rules binary
cp -r ${BUILD_HOME}/*.deb ${BUILD_DEST}
rm -rf ${BUILD_HOME}
cp -r ${BUILD_HOME}/*.deb ${BUILD_HOME}/deb
cd ${BUILD_HOME}/deb
tar czvf ${BUILD_DEST}/ovs-nsh-dpdk.tar.gz .;

View File

@ -62,7 +62,6 @@ librte_eal.so.2 librte-eal2 #MINVER#
rte_eal_primary_proc_alive@DPDK_16.04 16.04
rte_eal_process_type@DPDK_2.0 16.04
rte_eal_remote_launch@DPDK_2.0 16.04
rte_eal_set_socket_permissions@DPDK_2.2 16.04
rte_eal_tailq_lookup@DPDK_2.0 16.04
rte_eal_tailq_register@DPDK_2.0 16.04
rte_eal_vdev_init@DPDK_2.0 16.04

View File

@ -16,14 +16,12 @@ function build_pkg {
DEB_DIR=${DIR}/deb-ovs-dpdk
rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR};
sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-dpdk.sh
cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .;
cd ..; rm -rf ${DEB_DIR}
cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/
DEB_DIR=${DIR}/deb-ovs-nsh-dpdk
rm -rf ${DEB_DIR}; mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR};
sudo docker run -v ${DEB_DIR}:/deb -t ovs_build /ovs_build/build-ovs-nsh-dpdk.sh
cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-nsh-dpdk.tar.gz .;
cd ..; rm -rf ${DEB_DIR}
cp -r ${DEB_DIR}/* ${DIR}/repositories/ubuntu/
rm -rf ${DEB_DIR}
;;
*) echo "Not supported system"; exit 1;;