devicenull / ipmi_firmware_tools

IPMI analysis tools
90 stars 25 forks source link

Rebuilding IPMI firmware #10

Closed mentax007 closed 1 year ago

mentax007 commented 1 year ago

Hello, Thanks for a great tool! I'm trying to customize the firmware for old IPMI server based on X9 platform. My platform motherboard is X9SRD-F. Official latest firmware on SM website is "SMT_X9_319.bin". I found one firmware "SMT_X9_364.bin" for slightly different motherboard (X9SRE-F) https://www.supermicro.com/en/support/resources/downloadcenter/firmware/MBD-X9SRE-F/BMC I was able to flash it with IPMI interface, however I find out that it is having some issue with IPMI java and support only x32 version of java =( I tried to flash SMT_X9_319.bin back again, but after flashing I can only see that IPMI open only 2 ports: 22 & 5900, so the web interface is not available anymore. When I flash SMT_X9_364 again, web interface is working.

I'm have a plan to modify SMT_X9_364 and add some missing library to this firmware to be able to support x64 version of java.

I follow the instruction and when I tried to extract firmware I see some wired symbols was add to the end of extracted files:

[admin@devbox ipmi_firmware_tools]$ python3 read_header.py --extract ../SMT_X9_364.bin
Read 16777216 bytes
Detected valid bootloader: WPCM450 Boot Loader [ Version:1.0.14 ] Rebuilt on Mar 23 2012

Dumping bootloader as 0x0 to 0xfa28 to data/bootloader.bin

Firmware image: 2 Name: 1stFS@Â Base: 0x40180000 Length: 0x7d4000 (8208384) Load: 0xd00000 Exec: 0xd00000 Image Checksum: 0x4b44961c Signature: 0xa0ffff9f Type: file (0x8) Footer Checksum: 0x4b0fb5f3 * footer checksum mismatch, expected 0c8d1b4b4
Dumping 0x180000 (1572864) to 0x954000 (9781248) to data/1stFS@Â.bin
Image checksum matches

Firmware image: 3 Name: kernel@Â Base: 0x40970000 Length: 0x113384 (1127300) Load: 0x8000 Exec: 0x8000 Image Checksum: 0xb16242c6 Signature: 0xa0ffff9f Type: active, copy2ram, exec, compressed (0x17) Footer Checksum: 0xbe81b768 * footer checksum mismatch, expected 03c41b82a
Dumping 0x970000 (9895936) to 0xa83384 (11023236) to data/kernel@Â.bin
Image checksum matches

Firmware image: 4 Name: 2ndFS@Â Base: 0x40aa0000 Length: 0x474000 (4669440) Load: 0xd00000 Exec: 0xd00000 Image Checksum: 0x7aa3cedf Signature: 0xa0ffff9f Type: file (0x8) Footer Checksum: 0x1b64822d * footer checksum mismatch, expected 0992680ee
Dumping 0xaa0000 (11141120) to 0xf14000 (15810560) to data/2ndFS@Â.bin
Image checksum matches

Firmware footer version 2 firmware version 3.100 checksum: 0x7e4f00c5 tag: 0x7117 rootfs_nfo: 0x0 webfs_nfo: 0x0
Firmware checksum matches

I also tried to extract existing SMT_X9_319.bin and it's extracted as expected:

[admin@devbox ipmi_firmware_tools]$ python3 read_header.py --extract ../SMT_X9_319.bin
Read 16777216 bytes
Detected valid bootloader: WPCM450 Boot Loader [ Version:1.0.14 ] Rebuilt on Mar 23 2012

Dumping bootloader as 0x0 to 0xfa28 to data/bootloader.bin

Firmware image: 2 Name: 1stFS Base: 0x40180000 Length: 0x7c0000 (8126464) Load: 0xd00000 Exec: 0xd00000 Image Checksum: 0x7c0ced5b Signature: 0xa0ffff9f Type: file (0x8) Footer Checksum: 0x5a4a9f76 * footer checksum matches
Dumping 0x180000 (1572864) to 0x940000 (9699328) to data/1stFS.bin
Image checksum matches

Firmware image: 3 Name: kernel Base: 0x40980000 Length: 0x112aac (1125036) Load: 0x8000 Exec: 0x8000 Image Checksum: 0xd1242c12 Signature: 0xa0ffff9f Type: active, copy2ram, exec, compressed (0x17) Footer Checksum: 0xdebed7b6 * footer checksum matches
Dumping 0x980000 (9961472) to 0xa92aac (11086508) to data/kernel.bin
Image checksum matches

Firmware image: 4 Name: 2ndFS Base: 0x40b80000 Length: 0x1dd000 (1953792) Load: 0xd00000 Exec: 0xd00000 Image Checksum: 0x76c10637 Signature: 0xa0ffff9f Type: file (0x8) Footer Checksum: 0x5f64bb97 * footer checksum matches
Dumping 0xb80000 (12058624) to 0xd5d000 (14012416) to data/2ndFS.bin
Image checksum matches

Firmware footer version 2 firmware version 3.25 checksum: 0x32a67456 tag: 0x7117 rootfs_nfo: 0x0 webfs_nfo: 0x0
Firmware checksum matches

Please help

devicenull commented 1 year ago

I'm afraid I can't really provide support, I haven't looked at this project in ears and no longer have any development hardware