SX6036Somebody could me tell me / point on a post where can see all models of buyable managed IB-ethernet gateways (even convertible)
Thanks for the quick answer.SX6036
SX6018
SX6012
SX6720
SX6710
This is for anybody that finds this huge thread and want to skip most of the out of date info and just get a clean updated switch
Hello All, Thought I would post my experience successfully converting my EMC SX6018 using the guide here...
Converting Mellanox EMC switch to SX6012.docx
I originally flashed using the "hacky" guide but this updated guide works much better and gives you a "real" install.
I was able to do the update using a MAC with the built in apache server and tftp server to host the necessary files (It should be equally easy on linux)
You don't need php or anything fancy in apache, just the ability to host filesHow to Use the Built-in TFTP Daemon on Mac OS
WirelessPhreak.com is my personal blog where I post on topics related to Technology, Security, Travel, and other random stuff I like.www.wirelessphreak.com
All the files needed are linked in the above doc.
Once you successfully flash the first image you can just use the web gui to continually update to the next version
I had a few updated versions refuse to start (hung on initializing), when that happened I just booted back to the last version and moved on to the next one and it worked fine. I wonder if I could have jumped directly to the last version but I did all versions except for two.
There is lots of information on this thread about updating fans but here is the best way to control fan speed
you can throw it in the /etc/rc.d/rc.local script to start at bootCode:/opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 2 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 3 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 4 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/PS1/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/PS2/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50
To do this you need to login to the switch, enable changes, and run # _shell
check where the current mount point is by running
mount
then you can remount the root partition with the following command
mount -o remount,rw /dev/mtdblock7 /
Code:#!/bin/sh # # This script will be executed *after* all the other init scripts. # You can put your own initialization stuff in here if you don't # want to do the full Sys V style init stuff. touch /var/lock/subsys/local touch /var/lock/subsys/local echo "Waiting for clusterd" COUNT=1 while true do CMD=$(ps aux|grep "/[o]pt/tms/bin/clusterd") if [ $? -ne 0 ]; then sleep 30 let COUNT=${COUNT}+1 if [ $COUNT -gt 10 ]; then echo "time out, aborting" break fi else sleep 60 echo "Changing fan speed" /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 2 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 3 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/FAN/FAN" fan_number int8 4 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/PS1/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50 /opt/tms/bin/mdreq action /system/chassis/actions/set-fan-speed fan_module string "/PS2/FAN" fan_number int8 1 fan_speed int8 27 set_max uint8 50 break fi done
SX6036,SX6018,SX6012 can come as EMC versions (need to be converted) or normal Mellanox (no conversion necessary). haven't seen SX6720 and SX6710 as OEMed versions yet.Which need be converted? all supported by MLX-OS?
-O LOCATION
? The usage states it skips that location. Does it allow the entire partition layout to be created but copy/verify files? Or not even create the partition? I looked at it late last night and didn't spend much time analyzing it and its supporting scripts (writeimage, layout_settings, customer_rootflop). There are also a couple of other layouts like "shared config," "minimal" that one could choose like one root partition.dhcp
while in U-Boot didn't work for me. It was looking for BOOTP and I didn't place the kernel, rootfs, and dft files in my tftproot root on a VM. I used @dodgy route's suggestion of using a static IP.Description | Start | End |
Manufacture | 7:22 | 8:13 |
Prepare Flash | ~7:22 | 7:37 |
copy ROOT_1 | 7:37 | 7:49 |
copy ROOT_2 | 7:49 | 8:01 |
copy VAR | 8:01 | 8:03 |
Image verify | 8:04 | 8:09 (location 1) 8:13 (location 2) |
First boot | 8:18 | |
Modules configured | 8:27 | |
Upgrade extract image | 8:49 | 9:03 |
== Extracting for location ROOT_1 onto /dev/mtdblock6
== Extracting for location ROOT_2 onto /dev/mtdblock7
== Extracting for location CONFIG_1 onto /dev/mtdblock8
== Extracting for location VAR_1 onto /dev/mtdblock9
== Extracting for location BOOT_1 onto /dev/mtdblock6
== Extracting for location BOOT_2 onto /dev/mtdblock7
Hey @Stephan, would you mind providing some tips on how to reflash the NAND for the 6012? Specifically the files you referenced above at archive.org and how to connect a BDI 2000/C to the 6012. Guess I'll need to buy one now.Well what do you know, X-mas in February.
A very generous person sent me the correct PowerPC4xx BDI 2000 firmware for this platform. Even the very last release 1.25 from 2014. I am so thrilled. Like an archeologist who just discovered a new entrance to a pyramid. For posterity, reading this on archive.org around the year 2030, the files you need are b20pp4gd.125 (firmware) and pp4jed20.104 or pp4jed21.104 (CPLD) depending whether you have rev B oder rev C BDI 2000.
So I bought a BDI 2000 rev C from Texas on ebay yesterday. Just like the SX6012 itself a device built to last. Rev C will work down to 1.8V system Vcc instead of just 3.0V with Rev B. Taken together with some 13 QSFP nickel plugs by TE to complete my collection, this ran the same amount of what I paid for the switches. But just 10 years earlier it would have cost 20k for two switches with licenses and another (guessing) 10k for the BDI. Two pennies on the dollar.
Will write a BDI config for it and should I get it working, will post it here.
I've also taken a closer look at the 16-pin "CPU BDI" socket yesterday and at least GND and Vcc_target (3.3V) appear to be as specified in the BDI documentation. They talk about a "PowerPC 4xx JTAG connector specification" and by the looks of it in other ppc405 PDFs I found, this appears to have been proposed by IBM for their RISCWatch debugger.
Creating 6 MTD partitions on "4ff000000.nor_flash":
0x00000000-0x001e0000 : "KERNEL_1"
0x001e0000-0x00200000 : "FDT_1"
0x00200000-0x003e0000 : "KERNEL_2"
0x003e0000-0x00400000 : "FDT_2"
0x00f80000-0x00fa0000 : "UBOOTENV"
0x00fa0000-0x01000000 : "UBOOT"
NAND device: Manufacturer ID: 0xec, Chip ID: 0xd3 (Samsung NAND 1GiB 3,3V 8-bit)
2 NAND chips detected
Scanning device for bad blocks
Bad eraseblock 36 at 0x00480000
Bad eraseblock 1564 at 0x0c380000
Bad eraseblock 6022 at 0x2f0c0000
Bad eraseblock 8292 at 0x40c80000
Bad eraseblock 8866 at 0x45440000
Bad eraseblock 8872 at 0x45500000
Bad eraseblock 8999 at 0x464e0000
Bad eraseblock 10272 at 0x50400000
Bad eraseblock 11970 at 0x5d840000
Bad eraseblock 12733 at 0x637a0000
Bad eraseblock 14543 at 0x719e0000
Bad eraseblock 14885 at 0x744a0000
Bad eraseblock 15942 at 0x7c8c0000
Creating 4 MTD partitions on "4e0000000.ndfc.nand":
0x00000000-0x20000000 : "ROOT_1"
0x20000000-0x40000000 : "ROOT_2"
0x40000000-0x46400000 : "CONFIG"
0x46400000-0x7c000000 : "VAR"
mfa_extract.py fw-SX-rel-9_4_5110-FIT.mfa MT_1530310031
, MT_1530310031
is MSX6036G-xxxS_Ax
SwitchX-2 based 36-port QSFP 56GbE Managed InfiniBand to Ethernet gateway system
)03 03 01 01
(corresponding to FEATURE_EN_6 to FEATURE_EN_9)04 04 02 02
Recovered and converted.Thanks @Stephan. I'm across the pond from you but very much appreciate your offer. Will update here.
==== Uncompressing source image file: /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tgz to /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-3.6.8012.tar
zcat: write: No space left on device
zcat: crc error
zcat: Incorrect length
# cat /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tgz | zcat - > /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tar || export FAILURE=1
zcat: write: No space left on device
zcat: crc error
zcat: Incorrect length
# echo $?
0
# echo $FAILURE
0
# rm /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tar
# zcat /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tgz > /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tar || export FAILURE=1
zcat: write: No space left on device
zcat: crc error
zcat: Incorrect length
# echo $?
0
# echo $FAILURE
0
# rm /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tar
# gunzip /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tgz || export FAILURE=1
gunzip: write: No space left on device
gunzip: crc error
gunzip: Incorrect length
# echo $?
0
# echo $FAILURE
0
# sed 's-/sbin/writeimage-/tmp/writeimage-' /sbin/manufacture.sh > /tmp/manufacture.sh
# sed 's-${TMPFS_SIZE_MB}M,mode=700-1500M,mode=700-' /sbin/writeimage.sh > /tmp/writeimage.sh
# grep writeimage.sh /tmp/manufacture.sh
WRITEIMAGE=/tmp/writeimage.sh
# grep 'M,mode=700' /tmp/writeimage.sh
mount -t tmpfs -o size=1500M,mode=700 none ${target_dir} || FAILURE=1
# /tmp/manufacture.sh .... http://..../image-PPC_M460EX-3.6.8012.img
==== Verifying image integrity for image-PPC_M460EX-3.6.8012.img
gpg: Signature made Fri Feb 22 08:17:41 2019 UTC using RSA key ID E37FEDA2
gpg: Good signature from "support <support@mellanox.com>"
- Unpacked directory is /tmp/mnt_image_wi/tmpfs/unzip
- Verifying hashes
gpg: Signature made Fri Feb 22 08:17:41 2019 UTC using RSA key ID E37FEDA2
gpg: Good signature from "support <support@mellanox.com>"
- Done
== Running version: SX_PPC_M460EX SX_3.2.0100 2012-03-06 22:23:53 ppc
== Image version: PPC_M460EX 3.6.8012 2019-02-22 07:53:42 ppc
== Image size: 357 MB / 1115 MB uncompressed
==== Uncompressing source image file: /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-ppc-m460ex-20190222-075342.tgz to /tmp/mnt_image_wi/tmpfs/unzip/image-PPC_M460EX-3.6.8012.tar
==== Disk partitioning
I gave up at some point and used theThe manufacture of 3.6.8012 failing was bugging me so I spent some time on it.
-t: don't use tmpfs for a working area during manufacture will attempt to use space in /var
Wasn't the NAND MLC or something? I wouldn't be worried about destroying MLC NAND. Also, you don't do that procedure too often. Usually just when you're the last owner and upgrade to 3.6.8012 and then never againYeah, I didn't want to wear out the NAND more than necessary although it's using the part allocated for /var.