Beware of EMC switches sold as Mellanox SX6XXX on eBay

lambdafunction

New Member
Jun 22, 2021
9
13
3
Okay, many thanks are in order here.
  • @mpogr for the initial guide and inducing me to lighten my wallet a few hundred bucks
  • @nbritton for details on transferring and running the manufacture script
  • @nasbdh9 for the shortened version path
  • @SGS for conversion tips and tricks
Things I learned:
  • Fast path: manufacture.sh -a -m ppc -f /path/to/image then MLNX-OS image fetch/install the shortened version upgrade path
  • The _shell command can be activated in 3.4.x with a special license
  • You don't need to add a new user to keep shell access, just set a password on the existing root user who already has /bin/bash as their shell:
    mddbreq /config/db/initial set modify - /auth/passwd/user/root/password string '$1$.......'
  • Figure 11 from the OCP version of this switch is surprisingly useful for I2C addresses
  • A raspberry pi connected to the main I2C header (the one you have to unplug the jumper from) can see more interesting things by adding the I2C mux:
    echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-1/new_device
  • Vanilla 3.6.8012 running happily means I finally don't have to listen to those fans at 100%
    My wife is pretty happy about quiet fans too :D
 

Rand__

Well-Known Member
Mar 6, 2014
6,071
1,445
113
He has not been around for a while but there are other members hosting the files and instructions.
Try a few pages back
 

M@}{

Member
Feb 28, 2020
41
1
8
Okay, many thanks are in order here.
  • @mpogr for the initial guide and inducing me to lighten my wallet a few hundred bucks
  • @nbritton for details on transferring and running the manufacture script
  • @nasbdh9 for the shortened version path
  • @SGS for conversion tips and tricks
Things I learned:
  • Fast path: manufacture.sh -a -m ppc -f /path/to/image then MLNX-OS image fetch/install the shortened version upgrade path
  • The _shell command can be activated in 3.4.x with a special license
  • You don't need to add a new user to keep shell access, just set a password on the existing root user who already has /bin/bash as their shell:
    mddbreq /config/db/initial set modify - /auth/passwd/user/root/password string '$1$.......'
  • Figure 11 from the OCP version of this switch is surprisingly useful for I2C addresses
  • A raspberry pi connected to the main I2C header (the one you have to unplug the jumper from) can see more interesting things by adding the I2C mux:
    echo pca9548 0x70 > /sys/bus/i2c/devices/i2c-1/new_device
  • Vanilla 3.6.8012 running happily means I finally don't have to listen to those fans at 100%
    My wife is pretty happy about quiet fans too :D
Did you manage to get fru data from i2c?
 

lambdafunction

New Member
Jun 22, 2021
9
13
3
I don't understand what is the device in the & 1-2 argument.
The script writes to a specific sector of the device, is there an example?
I read the EEPROM to a file using dd, ran the script as ./foo.sh inputFile outputFile, and then wrote the new image back again using dd. I'm not sure I have the exact commands saved anywhere.
 
Nov 30, 2017
2
1
1
48
Hi folks! I've got a trio of EMC branded SX6018s that are running 3.6.1002 per @mpogr's instructions from a couple of years ago. Last week I successfully found the secret word for generating license keys. I'll be attempting to get them running 3.6.8012 in the near future.

In the mean time, is there a post with a list of licensed feature codes? (I haven't been able to find one listing more than one so far.) I've generated version 2 keys for the following on my switches:
  • RESTRICTED_CMDS_GEN2 which enables the _shell command.
  • RESET_PASSWORD which is described as "Permission to reset the admin password" but that doesn't seem really useful when I've already got a root shell.
  • EFM_SX which doesn't seem to do a whole lot.
Anyone know what the feature code is for the Fabric Inspector license? Are there any others I should know about?

Thanks in advance!
 
  • Like
Reactions: nedimzukic2

crash_maxed

New Member
Oct 30, 2019
5
16
3
Hi folks! I've got a trio of EMC branded SX6018s that are running 3.6.1002 per @mpogr's instructions from a couple of years ago. Last week I successfully found the secret word for generating license keys. I'll be attempting to get them running 3.6.8012 in the near future.

In the mean time, is there a post with a list of licensed feature codes? (I haven't been able to find one listing more than one so far.) I've generated version 2 keys for the following on my switches:
  • RESTRICTED_CMDS_GEN2 which enables the _shell command.
  • RESET_PASSWORD which is described as "Permission to reset the admin password" but that doesn't seem really useful when I've already got a root shell.
  • EFM_SX which doesn't seem to do a whole lot.
Anyone know what the feature code is for the Fabric Inspector license? Are there any others I should know about?

Thanks in advance!
As far as I've seen, EFM_SX is actually the only thing you need besides RESTRICTED_CMDS_GEN2. Look at the -o options for genlicense. Use those with EFM_SX license type to enable everything else, including fabric inspector (set efm_sx_max_ufm_ports to some value).
 

andvalb

New Member
Feb 15, 2021
26
23
3
Ulyanovsk, Russian Federation
Is anyone knows what value should be in the first byte of the bootstrap EEPROM?
This can be seen using an "imd 0x52 0 0x100" command from the bootloader or by the /opt/tms/bin/mellaggra _read 0 0x52 0 1 16 command from an switch console.
Bootstrap EEPROM in the attached archive is broken - the first byte has zero value.
 

Attachments

Last edited:

andvalb

New Member
Feb 15, 2021
26
23
3
Ulyanovsk, Russian Federation
Is anyone knows what value should be in the first byte of the bootstrap EEPROM?
This can be seen using an "imd 0x52 0 0x100" command from the bootloader or by the /opt/tms/bin/mellaggra _read 0 0x52 0 1 16 command from an switch console.
Bootstrap EEPROM in the attached archive is broken - the first byte has zero value.
Bootstrap problem solved using command
mlxi2c update_bootstrap166 (86 82 96 1a d9 80 0 e0 c0 8 23 50 d 5 0 0)

also, there is another variation
mlxi2c update_bootstrap200 (86 82 96 19 b9 80 0 e0 c0 8 23 50 d 5 0 0)

FRU can be readed by the commands
/opt/tms/bin/mellaggra _read_fru 8 0x51 1000 fru_backplate.bin
/opt/tms/bin/mellaggra _read_fru 0 0x50 1000 fru_cpu.bin

Can anyone read and provide CPU FRU from the original Mellanox sx6012 switch?
 
Last edited:

zuikaku

New Member
Feb 7, 2021
7
3
3
Bootstrap problem solved using command
mlxi2c update_bootstrap166 (86 82 96 1a d9 80 0 e0 c0 8 23 50 d 5 0 0)

also, there is another variation
mlxi2c update_bootstrap200 (86 82 96 19 b9 80 0 e0 c0 8 23 50 d 5 0 0)

FRU can be readed by the commands
/opt/tms/bin/mellaggra _read_fru 8 0x51 1000 fru_backplate.bin
/opt/tms/bin/mellaggra _read_fru 0 0x50 1000 fru_cpu.bin

Can anyone read and provide CPU FRU from the original Mellanox sx6012 switch?
Just apply SGS's script on fru_backplate.bin and write it back as follow. Now unpatched 3.6.8010 has been working beautifully on my SX6012 :D (this method preserves the original serial number too).

Code:
emc_to_6012 "fru_backplate.bin" "fru_patched.bin"
/opt/tms/bin/mellaggra _write_fru 8 0x51 1000 fru_patched.bin
 

andvalb

New Member
Feb 15, 2021
26
23
3
Ulyanovsk, Russian Federation
Just apply SGS's script on fru_backplate.bin and write it back as follow. Now unpatched 3.6.8010 has been working beautifully on my SX6012 :D (this method preserves the original serial number too).

Code:
emc_to_6012 "fru_backplate.bin" "fru_patched.bin"
/opt/tms/bin/mellaggra _write_fru 8 0x51 1000 fru_patched.bin
Already done.
Have a problem with FRU on the CPU board.
Can you read this FRU and provide it?
Or just compare CPU board FRU in the archive above with your own and write what is wrong with it.