這篇文章的目的, 主要是記錄如何使用
Cygwin 產生出可以在 Windows OS 上執行的 ipmitool.
如果你是想要使用 Windows 原生的驅動程式, 如: Intel IMB IPMI driver (imbdrv.sys) /
Microsoft IPMI driver (ipmidrv.sys), 那就要使用 ipmiutil.
0. 編譯 ipmitool 時的失敗記錄:
- 0.1 ipmi_sunoem.c:1168:4: error: unknown type name 'fd_set'
- 我的 Windows 7 x64 系統上不會出現這個錯誤, Windows 10 x64 上有看到
- Bug ID 440: 1.8.17 已解決這個問題
- 0.2 Avast 免費家用版: 會造成錯誤
- 0.3 沒有 include file: usb.c:43:21: fatal error: scsi/sg.h: No such file or directory
- Bug ID 410: 說明請看 7.0, v1.8.17 已解決這個問題
1. 下載
32-bit 64-bit 的安裝程式
https://www.cygwin.com/setup-x86_64.exe
2.
安裝時選擇下列的套件, 相依性套件 Cygwin setup program 會幫你選好
改用參數選擇要安裝的套件
gcc-core
make
openssl-devel
libssl-devel (Sheng 2019/10/18 補充: libssl-devel 取代 openssl-devel)
diff
Fisher 2017/08/17 補充: Windows 10 / Cygwin 64, 尚須
autoconf
automake
m4
libtool
Puwen 2018/03/02 補充: 如果需要支援 ipmishell
libncurses-devel
libreadline-devel
$ setup-x86_64 --quiet-mode --disable-buggy-antivirus --upgrade-also --wait --arch="x86" --root="c:\cygwin" --only-site --site="ftp://ftp.cse.yzu.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. 下載 ipmitool 的 source code
4. 開啟 [Cygwin Terminal] 後,
解壓縮 ipmitool-1.8.18.tar.bz2
$ git clone https://github.com/ipmitool/ipmitool.git
$ cd ipmitool
5. 設定要支援的 interface , 需要 disable usb 因為 Cygwin 中沒有 kernel header files.
$ ./bootstrap
$ ./configure IANADIR="./" IANAUSERDIR="./" DEFAULT_INTF="lanplus" --enable-intf-lan --enable-intf-lanplus --disable-intf-bmc --disable-intf-free --disable-intf-open --disable-intf-imb --disable-intf-usb --enable-intf-serial --enable-ipmishell
$ LANG=C make
6. 把下列目錄裡的檔案, 單獨複製到一個目錄即可在不同的 Windows 中使用
$ mkdir -p $HOME/ipmitool-1.8.18-bin
$ cp src/.libs/ipmitool.exe $HOME/ipmitool-1.8.18-bin
$ cd $HOME/ipmitool-1.8.18-bin
$ cp /bin/cygreadline7.dll .
$ cp /bin/cygwin1.dll .
$ cp /bin/cygcrypto-1.1.dll .
$ cp /bin/cyggcc_s-1.dll .
$ cp /bin/cygncursesw-10.dll .
$ cp /bin/cygz.dll .
$ curl https://www.iana.org/assignments/enterprise-numbers/enterprise-numbers -o enterprise-numbers
$ 7za a "/cygdrive/c/Users/$(echo $USERPROFILE|awk -F\\ '{print $NF}')/Desktop/ipmitool-1.8.18-bin_$(date +%F).7z" "$PWD/*"
PS. 根據參考網頁的說明, [ipmitool-1.8.XX\
src\ipmitool.exe] is only a wrapper script
7. 附註
- 7.1 沒有 [--disable-intf-usb] 會出現的錯誤訊息
without --disable-intf-usb |
Interfaces
lan : yes
lanplus : yes
open : no
free : no
imb : no
bmc : no
usb : yes
lipmi : no
serial : yes
dummy : no |
usb.c:43:21: fatal error: scsi/sg.h: No such file or directory |
- 7.2 Windows 7 64-bit compile 後的檔案在 Windows Server 2008 R2 Standard 64-bit with SP1 上的執行截圖
8. Binaries for Windows
參考網址:
How to compile ipmitool for Windows 32-bit (404)
https://www.rodneybeede.com/How_to_compile_ipmitool_for_Windows_32-bit.html
ipmitool for windows
https://stackoverflow.com/questions/12907005/ipmitool-for-windows
更新記錄:
2020/05/09 19:01, 最佳化 Cygwin 安裝流程, 使用 git 下載 ipmitool 的 source code.
2019/10/19 08:22, 加入 Sheng 與 Andy 的回饋.
2018/03/02 12:56, 更新成 ipmitool-1.8.18, 加入 --enable-ipmishell
2016/05/19 09:35, 加入 LANG=C
2016/05/19 09:26, 加入 ./bootstrap
2016/05/09 13:25, USB Issue been fixed by 1.8.17
2016/05/08 22:16, ipmitool-1.8.17 釋出, 加入 [Binaries for Windows]
2016/04/26 16:23, 加入 7.0/7.1
2016/04/24 23:16, 加入 Code Block CSS
2016/04/22 22:06, 更新 unknown type name 'fd_set'