SUCCESS : Flash a Lenovo RD210 motherboard with IBM firmwares???

Notice: Page may contain affiliate links for which we may earn a small commission through services like Amazon Affiliates or Skimlinks.

Blubster

New Member
Feb 25, 2014
29
4
3
38
I recently purchased from ebay a new motherboard to replace the one in an IBM System X3650 M2 (type 7947).
Before that, this server could not POST, the message "System Initialization" briefly appeared on screen before the server rebooted, and on the Light Path Diagnostic Panel there was nothing to help me understand what was going on (no lighted led, and codes were cycling fast, i couldn't find any description of these codes).
Anyway, the new motherboard arrived, it looks absolutely the same as the one I have, it has the same part number (43V7072).
I swapped the motherboard and lo and behold it worked, the server booted and even the OS started (no need for RAID reconfiguration).
Though as you may have guessed from the title a little surprise awaited me. It was a Lenovo branded motherboard, and it accepts only Lenovo firmwares...

I know this board is tricky with firmwares (cf this), but Lenovo dropped support on these servers years ago (last update in february 2011, cf here) while IBM continues to push updates (last update to uEFI was in june 2014...).
I know i am supposed to follow a specific path to do upgrades (IMM then UEFI then DSA).

What i would like to know is, can i cross flash IBM firmwares on this board without risk?
I know that, once extracted, i can force a flash to happen using the iflash64 tool with the --force option, however i very much fear that the server wouldn't POST after that...

What do you guys think?
 
Last edited:

Blubster

New Member
Feb 25, 2014
29
4
3
38
Well i succeeded in resetting the type to 7947K4G as it was on the previous motherboard, and also the model name and the serial number! That's a start!
I used a tool called ASU, available here.
Useful information on how to use it are here, or here.

But there is no way to force a flash of the IMM firmware from IBM unfortunately...
Code:
C:\Users\Administrateur\Downloads\imm 1.10>iflash64.exe --package imm_yuoo57h.upd --force
IBM Command Line IMM Flash Update Utility v1.05.03
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOO57H
Target's current build level: L6I248D

The IMM is preparing to receive the update.

Transferring image: 100%
Transfer complete.
Validating image.

The IMM has reported a build_id_mismatch error. (0x0,0xa)
The specified update is not valid for this system.

Error flashing firmware: 4
:(
So i am back to Lenovo's version, IMM 1.22...

I will try to see if i can at least upgrade uEFI to latest version from IBM, the installer does not reject me right away as does the one from the IBM IMM.

I am quite saddened to see all IBM corrected in the following releases of IMM... :/

EDIT :
I think i have reached the end of my trials here!
I successfully upgraded uEFI firmware to the latest IBM release, and also DSA to the latest release. There was nothing special to be done, only make sure you have the required IMM version (at least 1.07, i had 1.22), and just run both EXEs grabbed from IBM Support website.
I was also able to upgrade a little further the IMM firmware, lenovo made a version 1.24 but only usable from a RedHat/SUSE machine, not Windows. Well after a little VM creation i was able to grab the UPD file and drop it in the web console. Now i have IMM 1.24 instead of 1.22.
Still no way to use IBM IMM firmwares... :/
 
Last edited:

jocker

New Member
Nov 27, 2015
2
1
3
43
Had the same issue, trying to fix a lenovo IMM that kept locking up with an update. IBM's iflash refused to talk to the LAN-over-USB interface to 169.254.95.118 (IMM's hardcoded static address) because it likely didn't recognize the response. However, Lenovo's iflash had no such quibbles. Thus:

Code:
root@ibm:/home/[xxx]/imm-lenovo# ./iflash64 --package ../imm-ibm/imm_yuoog9a.upd --user [xxxx] --password [xxxx] --force
IBM Command Line IMM Flash Update Utility v1.11.02
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:  YUOOG9A
Target's current build level: L6I291E

The IMM is preparing to receive the update.

Transferring image: 100%
Transfer complete.
Validating image.
Updating firmware:  100%
Update complete.
... (lots of waiting while it attempts to restore connectivity) ...
Firmware flashed successfully
Now, uefi, dsa and imm are up to date with ibm's latest firmwares, though...
Uefi 1.20 update did replace Lenovo's POST graphics with IBM's, however the IMM update did not. I assume it's web server is serving static images burned elsewhere which did not get replaced. Cosmetic issues aside, it works:

Code:
IMM YUOOG9A-1.49 09/03/2015
UEFI D6E162A-1.20 05/07/2014
DSA DSYTC5F-9.53 02/17/2014
installed onto a RD220.

P.S. Pardon for replying to an ancient post, hopefully this helps someone else. :)
 
  • Like
Reactions: Blubster

Blubster

New Member
Feb 25, 2014
29
4
3
38
WOW! Thanks for your reply!
I feel so dumb for seeing it almost a year later (i must have missed the notification).
I have not yet tried it as this server is running vmware vsphere at the moment, but i will be sure to pop another hard drive in it, install redhat and try it...
To recap, you used the package from the latest lenovo update (1.24, aka L6I291E), then you just took the .upd file of the latest (at the time) imm from IBM and you were good to go?
I thought i tried it but i am definitely sure it was not from a linux based OS, it was from Windows...
Anyway, thank you VERY much for your answer... :D
I'll let you know about my experience but given you had exactly the same hardware, i am quite confident...
 

Blubster

New Member
Feb 25, 2014
29
4
3
38
Well it does not seem to work for me, at least yet.
Inside vmware, it does not see the IMM "usb adapter", so no communication at all.
I tried with a live cd of centos, then a real installation of centos 6.8, it does see the IMM but it does not send anything to it :
Code:
[root@localhost imm-lenovo]# ./iflash64 --package ../imm-ibm/imm_yuoog9a.upd --force
IBM Command Line IMM Flash Update Utility v1.11.02
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOOG9A
Target's current build level: L6I291E

The IMM is preparing to receive the update.

Transferring image: 0%
Unable to transfer image to IMM, error code=10.

Error flashing firmware: 15
[root@localhost imm-lenovo]#
I disabled the firewall and installed all the compat libs that are mentionned in the release note.
Also, i was trying with the iflash64 from the lenovo package (1.24, L6I291E) and the 1.49 imm update package (same thing happens with 1.51).
I couldn't find anything related to this error, yet.

If i may ask, from what OS did you try this method?
 
Last edited:

Blubster

New Member
Feb 25, 2014
29
4
3
38
I did other tries, without any success yet.
I compared the Lenovo 1.24 package with the IBM 1.24 package, most files are the same (same hash), excluding the readme, the opensourcenotice, a zip file and the .upd files themselves obviously.
Lenovo 1.24 :
Code:
[root@ibm imm-lenovo]# md5sum *
95a6444c5c05583e744124f7908af16c  cdc_interface.sh
eef4662817aad533f57dfdfcb38bfd13  c_state_fix.sh
5bc273fa8e0ac73263b1fbc9b340d7e4  iflash
090e50a7992e13f6db03a73ebf5cc003  iflash64
94eb1c97cee061338e44f147781f667c  immalert.mib
ccb1c4acde70e51eb2e30509193762c1  imm_l6i291e.upd
92d5f0de20b854f38253861f75c7245e  imm.mib
f96daa470974fe029353a1660b1b066a  immRegistries.zip
b97f5829218cf64596a769d6cf46d033  OpenSourceNotices
e1c58ba022622edc0efa4089ba9b9bd9  readme.lin
IBM 1.24 :
Code:
[root@ibm imm-ibm-1.24]# md5sum *
95a6444c5c05583e744124f7908af16c  cdc_interface.sh
eef4662817aad533f57dfdfcb38bfd13  c_state_fix.sh
5bc273fa8e0ac73263b1fbc9b340d7e4  iflash
090e50a7992e13f6db03a73ebf5cc003  iflash64
94eb1c97cee061338e44f147781f667c  immalert.mib
92d5f0de20b854f38253861f75c7245e  imm.mib
a45abb50b70df200d20f545a6868694f  immRegistries.zip
10f3b9accfb7d6a9565d0a7b4a3a6db5  imm_yuoo91e.upd
e8446e13fac17418bfe77898d7f2f9ab  OpenSourceNotices
64634348de0436e9bc248400f98a7f89  readme.lin
The immRegistries.zip files are also different, i extraced both and compared the content, again they are identical.

I tried other IBM .upd files (1.24, 1.25, 1.28, 1.30, 1.31, 1.32, 1.33, 1.49, 1.51, 1.52), with the binaries from the Lenovo package, i always get :
Code:
Transferring image: 0%
Unable to transfer image to IMM, error code=10.

Error flashing firmware: 15
When i try with IBM binaries to update manually (./iflash64 --package [firmware] --force), i have this behaviour:
Same for 1.24 as with Lenovo
Error for 1.25 :
Code:
[root@ibm imm-ibm-1.25]# ./iflash64 --package imm_yuoo91k.upd --force
IBM Command Line IMM Flash Update Utility v1.11.03
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

None of LAN-over-USB interface is discovered : 0.
[root@ibm imm-ibm-1.25]#
Then with 1.28+, i get this message :
Code:
[root@ibm imm-ibm-1.28]# ./iflash64 --package imm_yuoob7c.upd --force
IBM Command Line IMM Flash Update Utility v1.12.07
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009 - 2011  All Rights Reserved.

Problem on detecting IMM LAN-over-USB device.(CMD error)
Pinging IMM IP address 169.254.95.118 .....OK
Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOOB7C
Target's current build level: L6I291E

The IMM is preparing to receive the update.

Transferring image: 0%
Unable to transfer image to IMM, error = build_id_mismatch.

Error flashing firmware: 15
[root@ibm imm-ibm-1.28]#
I think the error 10 i get with 1.24 package is the same as "build_id_mismatch" i get with 1.28+.
There is something in my board that makes it believe the firmwares i am sending are mismatched.
When i try with the binaries from the 1.52 IBM package, but with the .upd file from the 1.24 Lenovo package, it works, so my issue is not with the binaries themselves, but with whatever blocks the updates from being sent.
 

J--

Active Member
Aug 13, 2016
198
47
28
40
Thanks for posting your findings. I've been wanting to crossflash my Lenovo TS140 to its workstation counterpart, because they disabled S3/S4 suspend in the server firmware.
 

jocker

New Member
Nov 27, 2015
2
1
3
43
Hey Blubster, sorry for not replying earlier.

It's been a while since I sold that RD220/cross-flashed to x3650M2, however let me try to recall the details.
It was a:
Lenovo RD220
type 3798
model 15g

It ran debian, no VMware or other virtualization at that stage of deployment. I remember I had to coax it to recognize the IMM/USB-over-IP, but you have no such trouble as from your logs it does connect to the right address and initiates update. As long as you can ping 169.254.95.118, it works.

The mismatch you are seeing might be your lenovo iflash refusing to push an unrecognized package (with IBM's signature), which is a security "feature" they later implemented - use the 1.11 which I used. Alternatively, iflash may not be at fault but the running IMM which is rejecting the package (more likely).

I also recall I *had* to give it my username and password for IMM (where it's the credentials for the admin account, originally USERID/PASSW0RD).

Now, it may be your current IMM package is newer than the one I had back when I did this. I'd hate to suggest reverting back a few years, but it might be the cause of the problem.

I'm not sure how exactly I can be of further assistance. If you have nay other questions, please poke me.

P.S. From that log I posted, original Lenovo's IMM build was L6I291E - Does your differ?
 

Blubster

New Member
Feb 25, 2014
29
4
3
38
Hey Blubster, sorry for not replying earlier.

It's been a while since I sold that RD220/cross-flashed to x3650M2, however let me try to recall the details.
It was a:
Lenovo RD220
type 3798
model 15g

It ran debian, no VMware or other virtualization at that stage of deployment. I remember I had to coax it to recognize the IMM/USB-over-IP, but you have no such trouble as from your logs it does connect to the right address and initiates update. As long as you can ping 169.254.95.118, it works.

The mismatch you are seeing might be your lenovo iflash refusing to push an unrecognized package (with IBM's signature), which is a security "feature" they later implemented - use the 1.11 which I used. Alternatively, iflash may not be at fault but the running IMM which is rejecting the package (more likely).

I also recall I *had* to give it my username and password for IMM (where it's the credentials for the admin account, originally USERID/PASSW0RD).

Now, it may be your current IMM package is newer than the one I had back when I did this. I'd hate to suggest reverting back a few years, but it might be the cause of the problem.

I'm not sure how exactly I can be of further assistance. If you have nay other questions, please poke me.

P.S. From that log I posted, original Lenovo's IMM build was L6I291E - Does your differ?
Thanks you so much for your answer!
Your IMM build was indeed L6I291E, and it is the same as the one i am currently running (it is also version 1.24 if it matters to anyone).

I have tested with iflash versions 1.05.03 and 1.10.05 from IBM packages 1.10 and 1.14 but no dice again unfortunately :
1.05.03 iflash :
Code:
[root@ibm imm-ibm-1.10]# ./iflash64 --package ../imm-ibm-1.24/imm_yuoo91e.upd --user xxx --password xxx --force
IBM Command Line IMM Flash Update Utility v1.05.03
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOO91E
Target's current build level: L6I291E

The IMM is preparing to receive the update.

Transferring image: 0%
Unable to transfer image to IMM, error code=10.

Error flashing firmware: 4
[root@ibm imm-ibm-1.10]#
1.10.05 iflash :
Code:
[root@ibm imm-ibm-1.14]# ./iflash64 --package ../imm-ibm-1.24/imm_yuoo91e.upd --user xxx --password xxx --force
IBM Command Line IMM Flash Update Utility v1.10.05
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.

Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOO91E
Target's current build level: L6I291E

The IMM is preparing to receive the update.

Transferring image: 0%
Unable to transfer image to IMM, error code=10.

Error flashing firmware: 15
[root@ibm imm-ibm-1.14]#
From what you posted last year, your version of iflash was v1.11.02, the same as the one i see with the lenovo iflash inside 1.24 package (build L6I291E), which is the latest (and only) version available from Lenovo.
Since i used this iflash utility, it must be my IMM that is actually refusing to take IBM packages.
It may be related to the revision of the motherboard. It looks like there are two of these, pass 8 and pass 9 according to IBM's manuals. I have the older pass 8. Obviously, since you no longer have the server, asking if you had a pass 8 or pass 9 revision is out of the question (the physical differences are minimal, some switches here and there and a different label).
Again, thanks a lot for taking the time to come back here and help me, this may lead unfortunately to nowhere... :(

EDIT :
For what it's worth, i found the links regarding older build of imm, both Windows and Linux :
1.24 (current, only linux) : https://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/l6i291el.bin
1.22 (only windows is available on Lenovo's website) :
- windows : https://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/l6i284dw.exe
- linux : https://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/l6i284dl.bin
1.14 (not visible on Lenovo's website) :
- windows : https://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/l6i273mw.exe
- linux : https://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/l6i273ml.bin
I couldn't find any older version.
I should now try if downgrading to 1.14 changes anything, but i don't have high hopes...

EDIT 2 :
I downgraded successfully to build L6I273M. I tried again to crossflash to IBM build YUOO73M, and now it looks like it is transfering ! Fingers crossed...

EDIT 3 :
No dice...
Code:
[root@ibm imm-lenovo-1.14]# ./iflash64 --package ../imm-ibm-1.14/imm_yuoo73m.upd --user xxx --password xxx --force
IBM Command Line IMM Flash Update Utility v1.10.05
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009,2010  All Rights Reserved.


Waiting up to 780 seconds for the IMM to accept connections:
..........
Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOO73M
Target's current build level: L6I273M

The IMM is preparing to receive the update.

Transferring image: 98%
Transfer complete.
Validating image.

The IMM has reported a build_id_mismatch error,error state.(0x0,0xa)
The specified update is not valid for this system.

Error flashing firmware: 15
[root@ibm imm-lenovo-1.14]#
 
Last edited:

manu

New Member
Mar 11, 2017
1
0
1
40
Hi, I have a lenovo RD210 which had IMM firmware 1.22 and was able to upgrade to 1.24 using a package I downloaded from IBM or Lenovo (don't remember which as I visited so many websites) which I then wrote to a CD from which I booted.

All other methods failed miserably. Spent quite some time flashing this firmware.

Are you still interested? I still have the package somewhere or the CD and can eventually put it somewhere on the internet for you.
 

Blubster

New Member
Feb 25, 2014
29
4
3
38
Hi!
Indeed i am interested, i have not found any new information regarding the crossflash of the IMM unfortunately, i would love to try something else... Sorry about the late reply, it seems i don't receive notifications when someone reply in this thread.
I will let you know how it worked after i tried, i am running 1.24 from Lenovo currently on this server.
Thanks!
 

Blubster

New Member
Feb 25, 2014
29
4
3
38
SUCCESS!!!
After a LONG time, and probably by luck, i noticed a parameter of iflash64 i didn't pay attention to before :
Code:
IBM Command Line IMM Flash Update Utility v1.12.26
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009 - 2014  All Rights Reserved.

Flash update utility for IMM.
Usage: ./iflash64 <options>

   --package <file name>      Update file (.upd)
   --user <User name>         IMM User ID
   --password <Password>      IMM Password
   --force                    Update even if target is not downlevel.
                              (force option also implies unattended operation.)
   --unattended               Turn off attended mode.
   --backup                   Target the secondary flash device if available.
   --disable-imm-lan          Take down lan usb interface after flashing.
   --no-reboot                Do not reset the target device after update.
   --reboot                   Always reset the target device after update.
   --password-file <file>     Pass the name of a file containing the password.
   --skip_min_level           Bypass the hard check for minimum firmware level.
   --bypass_platform          Bypass the hard check for platform correctness.
   -s, --silent               Quiet mode.  Turns off all screen output.
                              (Quiet mode also implies unattended operation.)
   -h, -?, --help             View help

   Notes:
     The --package is a mandatory option to perform any update.
The one to look is "bypass_platform", this worked for me and i could upgrade imm to version 1.24 from ibm!!!
Code:
[root@ibm uefi-ibm-1.22]# ./iflash64 --package ../imm-ibm-1.24/imm_yuoo91e.upd --force --bypass_platform --skip_min_level
IBM Command Line IMM Flash Update Utility v1.12.26
Licensed Materials - Property of IBM
(C) Copyright IBM Corp. 2009 - 2014  All Rights Reserved.

Problem on detecting IMM LAN-over-USB device.(CMD error)
Pinging IMM IP address 169.254.95.118 .....OK
Connected to IMM at IP address 169.254.95.118.
Update package firmware type: IMM
Update package build level:   YUOO91E
Target's current build level: L6I273M

The IMM is preparing to receive the update.

Transferring image: 98%
Transfer complete.
Validating image.
Updating firmware:  100%
Update complete.

Performing activation of the firmware:
Connected to IMM at IP address 169.254.95.118.
..........

Waiting up to 240 seconds for LAN-over-USB interface to come back.
............................................................
............................................................
............................................................
............................................................
.
Waiting up to 240 seconds for the activation to complete:
............................................................
............................................................
............................................................
............................................................

Waiting up to 240 seconds for the IMM to answer to build id requests:
............................................................
............................................................
............................................................
............................................................
Waiting up to 60 seconds for IMM LAN-over-USB ready.
............................................................

Connecting to IMM by KCS...
The new version of the targeted firmware is YUOO91E.
Waiting 240 seconds for the IMM to complete initialization before next operation.
............................................................
............................................................
............................................................
............................................................

Firmware flashed successfully
The process took a while, but the imm was successfully updated to ibm's version, and i do get ibm branding as well instead of lenovo. Now i should be able to upgrade imm to the latest version... :D

EDIT : i can report that version 1.51 works perfectly now, without having to do anything special to install it over 1.24 from ibm.
 
Last edited: