Agentのクロスコンパイルについて
お世話になります。菅原と申します。
プラグコンピューターに、Zabbix-agentを入れて、監視をしたいと考えています。
しかしながら、ディスク容量が小さく、コンパイル等は別のマシンで行うクロスコンパイルを必須としています。
その際、指定したオプションは、
./configure --enable-agent --build=arm --host=i686 CC=コンパイラまでのパス
です。
上記を実行したのですが、
configure: error: cannot run test program while cross compiling
このようなエラーがでて止まってしまいます。
config.logを見たのですが、はき出されるログが多すぎてよく分かりませんでした。
参考になるところが見つからなかったので、
ほかに指定するべき項目や間違っている箇所を教えていただけないでしょうか?
---------------------------------
コンパイル環境
Windows上のVMにLubuntuをインストール
http://www.plugcomputer.org/downloads/plug-basic/
こちらの、Compilerの
Host SW Support Package For Linuxを解凍して、CCは**/gcc/bin/arm-none-linux-gnueabi-gccを指定
Zabbix version 1.8.10
----------------------------------
皆様、どうぞよろしくお願いいたします。
kodai - 投稿数: 1341
クロスコンパイルについては経験が乏しいためすぐにアドバイスできそうなことがありません。。。
エラーメッセージをGoogleで検索するといくつか参考になりそうな結果が出てきますが、
これらはすでに試されているのでしょうか?
http://www.google.com/search?client=safari&rls=en&q=cannot+run+test+prog...
naoki_s - 投稿数: 3
ご返信ありがとうございます。
configureの中身の解析もしてみたのですが、いかんせん長く・・・
(シェルの知識も乏しく(汗))
太刀打ちできたら、方法のひとつとしてまとめたいですね。
TNK - 投稿数: 4731
クロスコンパイルで他のプラットフォームでの確認をしたことがあ
りませんが、コンパイルだけはできましたので、方法を書かせて頂
きます。
Zabbix 1.8.10の場合、configureの6835行目の
if test "$cross_compiling" = yes; then :
を
if test "$cross_compiling" = no; then :
に変更すれば、コンパイルはできるようになります。
ただし、このままではクロスコンパイルではない環境でエラーとな
りますので、正しい修正方法では無いと思います。
あくまでもクロスコンパイルをするためだけの対処方法として参考
にして頂ければと思います。
実際に動くかは物がないので確認できていません。
もしかしたら、configure時に「--enable-static」もつけた方が良
いかもしれません。
ご確認ください。
naoki_s - 投稿数: 3
ご回答ありがとうございました。
実機にて動作が確認できました。
教えていただいたように、configureを変更し、
./configure --enable-agent --build=arm -host=i686 CC=~/LinuxHost/gcc/bin/arm-none-linux-gnueabi-gcc --enable-static
このように指定しました。
makeも無事通り、zabbix_agentdを生成できました。
メモ:その後の手順
scpでターゲットデバイスに転送し、/usr/local/sbin/ディレクトリに配置。
misc/conf/zabbix_agentd.conf をターゲットデバイスに転送し、/etc/zabbix/ディレクトリに配置後、諸設定を変更。
misc/init.d/debian/zabbix-agent をターゲットデバイスに転送し、/etc/init.d/ディレクトリに配置後、諸設定を変更。
ウェブ側の設定を行い、ターゲットデバイスのAgentを実行。
※zabbixのユーザー作成やPid、Logファイルの設定等は、ウェブページ等を参考にしました。
今後の参考になれば、幸いです。