1. Download Cygwin: https://www.cygwin.com/
2. Install Cygwin under Windows
GUI安裝,大部分選擇預設值,以下項目要確認有被安裝
a.General build environment tools
autoconf
autoconf2.5
autogen
automake
automake1.15
libtool
make
b.Compilers
gcc-g++
mingw64-x86_64-gcc-core
mingw64-x86_64-gcc-g++
c. IPMItool dependencies
zlib-devel
libreadline-devel
libcrypt-devel
openssl-devel
libgcrypt-devel
Command安裝:
$ setup-x86_64 --quiet-mode --disable-buggy-antivirus --upgrade-also --wait --arch="x86" --root="d:\cygwin" --only-site --site="http://ftp.ntu.edu.tw/pub/cygwin/" --packages="bash,p7zip,libssl-devel,git,gcc-core,make,diff,autoconf,automake,m4,libtool,libncurses-devel,libreadline-devel" --verbose --no-admin
或
$ setup-x86_64 --quiet-mode --disable-buggy-antivirus --upgrade-also --wait --arch="x86" --root="d:\cygwin" --only-site --site="http://ftp.ntu.edu.tw/pub/cygwin/" --packages="bash,p7zip,libssl-devel,git,gcc-core,make,diff,autoconf,automake,m4,libtool,libncurses-devel,libreadline-devel" --verbose --wait
3. Start -> Cygwin (Run as Administrator)
4. 切換到放置ipmitool source code的路徑下。範例: C:\cygwin64_build -> /cygdrive/c/cygwin64_build/
$ cd /cygdrive/c/cygwin64_build/
$ cd ipmitool-build
5. Build ipmitool:
$ ./bootstrap
$ ./configure --enable-intf-lanplus --enable-intf-imb DEFAULT_INTF="imb" IANADIR=assignments --prefix=/tmp/ipmitoolv1.8.19-win_sol
$ LANG=C make
$ make install
$ mkdir ipmitoolv1.8.19-win_fix-sol
$ cp -rp /tmp/ipmitoolv1.8.19-win_sol/share/doc/ipmitool ipmitoolv1.8.19-win_fix-sol/doc
$ cp -rp assignments/ ipmitoolv1.8.19-win_fix-sol/.
$ cp /bin/{cygwin1.dll,cygcrypto*,cygz.dll,cyggcc_s-*.dll,cygreadline*.dll,cygncursesw-*.dll} ipmitoolv1.8.19-win_fix-sol/.
$ cp -rp src/.libs/ipmitool.exe ipmitoolv1.8.19-win_fix-sol/.
$ 7z a ipmitoolv1.8.19-win_fix-sol_$(date +%Y%m%d).7z ipmitoolv1.8.19-win_fix-sol
關於inband:由於某個版本以後,Interface 已無ms可用,因此上面configure的時候,加入DEFAULT_INTF="imb"把預設值設定成imb
,目的是在DUT操作運行ipmitool時,能貼近Linux OS時的使用習慣
,But...實際指定imb (若沒改DEFAULT_INTF預設值,需手動填參數 -I imb),interface使用imb的時候,會回應 *Error: no IMB driver found at /dev/imb!*
,花了一些時間嘗試解決這個問題,Cygwin+MinGW,MSYS2+MinGW的組合,並指定編譯器進行編譯,最終都遇到POSIX對應的問題,需要修改程式碼。
從Dell網站上,載下來的ipmitool_1.8.18-dellemc_p001,則是顯示Error loading interface imb。
這裡能下載到,interface能使用imb的ipmitool for windows(ipmitool.exe version 1.8.11.i2):https://github.com/dnslin/IPMIToolWin
Note: 如果需要assignments/enterprise-numbers.txt,可以到這邊下載https://www.iana.org/assignments/enterprise-numbers.txt
$cmd: wget -O /usr/share/misc/enterprise-numbers.txt https://www.iana.org/assignments/enterprise-numbers.txt
Ref:
https://www.dannynieuwenhuis.nl/how-to-compile-ipmitool-exe-for-windows/
https://ipmitool.blogspot.com/2016/04/
