记一次windows下编译ipmitool

2019-01-31  本文已影响0人  MrSunday_8955

最近工作中用到服务器的ipmi功能,linux上使用的大多是ipmitool这个命令,为了平台之间的统一,windows也计划使用ipmitool这个工具。但是google之后,发现windows版的ipmitool鲜有发布的工具包,所以就自己动手体验了一下ipmitool的编译。

我的编译环境清单如下

1、操作系统 Win7 SP1操作系统

2、cygwin版本 CYGWIN_NT-6.1

3、ipmitool源码包 ipmitool-IPMITOOL_1_8_18

    下载地址: https://github.com/ipmitool/ipmitool

编译步骤,如下

1、打开cygwin terminal,cd到源码目录

    $ cd /cygdrive/c/ipmitool-IPMITOOL_1_8_18/

2、运行bootstrap脚本,生成configure

    $ ./bootstrap

    + aclocal

    + libtoolize --automake --copy

    + autoheader

    + automake --foreign --add-missing --copy

    configure.ac:6: installing './config.guess'

    configure.ac:6: installing './config.sub'

    configure.ac:7: installing './install-sh'

    configure.ac:7: installing './missing'

    lib/Makefile.am: installing './depcomp'

    + aclocal

    + autoconf

    + automake --foreign

3、使用configure -h可以查看编译时可以指定参数,主要是接口参数

    $ ./configure -h

4、配置编译项,主要是指定编译的接口。这里只指定lan、lanplus接口(不同平台支持不同的接口,--enable-intf-open为linux专用接口,windows不支持)

    $ ./configure --enable-intf-lan --enable-intf-lanplus 

配置完成后,可以看到你指定的接口已经标记为yes。一般显示如下:

    ipmitool 1.8.18-csv

    Interfaces

      lan    : yes

      lanplus : yes

      open    : no

      free    : no

      imb    : no

      bmc    : no

      usb    : no

      lipmi  : no

      serial  : yes

      dummy  : no

    Extra tools

      ipmievd  : yes

      ipmishell : no

5、使用make进行编译

    $ make

    ......

    make[2]: 对“all”无需做任何事。

    make[2]: 离开目录“/cygdrive/c/ipmitool-IPMITOOL_1_8_18/control”

    make[2]: 进入目录“/cygdrive/c/ipmitool-IPMITOOL_1_8_18”

    make[2]: 离开目录“/cygdrive/c/ipmitool-IPMITOOL_1_8_18”

    make[1]: 离开目录“/cygdrive/c/ipmitool-IPMITOOL_1_8_18”

    表示编译成功。

编译成功后在ipmitool-IPMITOOL_1_8_18/src/.libs下存放的是真实的ipmitool.exe可执行文件,src目录下的只是一个wrapper script。

    C:\ipmitool-IPMITOOL_1_8_18\src\.libs>ls

    ipmievd.exe          ipmitool.exe          lt-ipmievd.c

    ipmievd_ltshwrapper  ipmitool_ltshwrapper  lt-ipmitool.c

6、制作独立副本ipmitool

将编译好的ipmitool和cygwin静态库(我安装的cygwin在C:\cygwin64目录)提取出来存放在一起,就可以在没有安装cygwin的环境使用了。

    1、C:\ipmitool-IPMITOOL_1_8_18\src\.libs\ipmitool.exe

    2、C:\cygwin64\bin\cygcrypto-1.0.0.dll

    3、C:\cygwin64\bin\cygwin1.dll

    4、C:\cygwin64\bin\cygz.dll

    5、C:\cygwin64\bin\cyggcc_s-seh-1.dll (有的环境是cyggcc_s-1.dll)

总结:完成工作之余,我对所有可以使用的ipmi工具做了对比。我觉得ipmitool和ipmiutil都是可以选择的好工具。由于windows没有和linux类似的通用openipmi驱动,所以使用ipmitool不能像linux一样通过内核级API访问ipmi(即不支持本地操作)。如果对使用工具没有要求,windows环境可以试试ipmiutil这个工具,它是支持本地访问ipmi的。在既要支持本地使用ipmi,又要支持网络访问ipmi的需求下,我认为在linux系统上使用ipmitool具有通用性;在windows上使用ipmiutil更胜一筹。

上一篇下一篇

猜你喜欢

热点阅读