概要
DPDKを利用したアプリのdockerイメージを別マシンで動かした場合に、変な異常終了が発生したときの覚え書きです。
アプリをnativeオプションでビルドしていたので、それを外せばOKかと思ったのですが、DPDKも標準でnativeビルドされるので、そっちも対応する必要がありました。
手順
64bit環境でgccを使ってビルドする場合のやり方です。他の環境でも、コピーするファイルを変えたりすれば対応できると思います。
- DPDKのソースを展開する。
-
config配下のdefconfig_x86_64-native-linuxapp-gccをdefconfig_x86_64-default-linuxapp-gccとしてコピーする。 -
defconfig_x86_64-default-linuxapp-gccのCONFIG_RTE_MACHINEをnativeからdefaultに変更する。 - DPDKのビルドの際の
makeコマンドのパラメータをT=x86_64-default-linuxapp-gccとする。
簡単ですが、以上となります。
ちなみに上記の手順でビルドした場合は、gccのオプションが-march=core2になるようです。
defconfig_x86_64-native-linuxapp-gcc ファイルをコピーせず、直接中身を CONFIG_RTE_MACHINE=default に変更してもよさそうです。( T=x86_64-native-linuxapp-gcc になります。)