Jump to content
Калькуляторы

Прошивка CWDM, образы SFP прошивка и образы SFP

Отцы, есть коммутатор ProCurve Switch 2510G-24 (J9279A) и есть SFP модуль GL-OT-SG06SC1-1550-1310-B.

Как с помощью инженерного меню и команд типа "XCVRI2CREAD 23 0 0xa0 128" (ну и аналогичной на запись) заставить HP его признавать ?

Вообще возможно-ли это (если да, то какие байты менять и т.д.) ? Спасибо.  

 

P.S. Ну и очень интересует, как пользоваться XCVRI2CWRITE, хоть какой-то пример бы ...

P.P.S. XCVRI2CREAD 23 0 0xa0 256 читает это:
 

Spoiler
HPMST-1$ XCVRI2CREAD 23 0 0xa0 256
xcvrI2cRead attempt
Reads for regs 0x0000 - 0x00ff, bank 0xa0, port 23:
Regs             8 Hex registers                      | Same 8 in ASCII
----+-------------------------------------------------+----------------
R00: 0x03, 0x04, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,  | ♥ ♦ ☺
  ♥ ▲ x00, 0x00, 0x00, 0x01, 0x0d, 0x00, 0x03, 0x1e,  |    ☺
R10: 0x00, 0x00, 0x00, 0x00, 0x47, 0x49, 0x47, 0x41,  |     G I G A
R18: 0x4c, 0x49, 0x4e, 0x4b, 0x20, 0x20, 0x20, 0x20,  | L I N K
R20: 0x20, 0x20, 0x20, 0x20, 0x00, 0x00, 0x00, 0x00,  |
R28: 0x47, 0x4c, 0x2d, 0x4f, 0x54, 0x2d, 0x53, 0x47,  | G L - O T - S G
R30: 0x30, 0x38, 0x53, 0x43, 0x31, 0x2d, 0x35, 0x33,  | 0 8 S C 1 - 5 3
R38: 0x41, 0x30, 0x20, 0x20, 0x06, 0x0e, 0x00, 0x30,  | A 0     ♠   0
R40: 0x00, 0x1a, 0x00, 0x00, 0x34, 0x36, 0x36, 0x30,  |     4 6 6 0
R48: 0x30, 0x31, 0x37, 0x36, 0x38, 0x31, 0x32, 0x31,  | 0 1 7 6 8 1 2 1
R50: 0x30, 0x20, 0x20, 0x20, 0x32, 0x33, 0x30, 0x34,  | 0       2 3 0 4
R58: 0x32, 0x35, 0x20, 0x20, 0x68, 0xf0, 0x03, 0xdf,  | 2 5     h    ♥
R60: 0x2e, 0x00, 0x11, 0xf6, 0xb3, 0x96, 0x4a, 0xf0,  | .            J
R68: 0x80, 0xf1, 0x34, 0xe3, 0x4e, 0xc5, 0x60, 0xf9,  |       4    N    `
R70: 0x21, 0x29, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00,  | ! ) ♥
R78: 0x00, 0x00, 0x00, 0x00, 0xfa, 0x69, 0xb2, 0xd3,  |        i
R80: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

R88: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

R90: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

R98: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Ra0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Ra8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rb0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rb8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rc0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rc8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rd0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rd8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Re0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Re8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rf0: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

Rf8: 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,  |

R100: 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  |

 

 

[UPD]: Вроде разобрался, ребята из GigaLink дали прошивку (там два одинаковых варианта с разными "серийниками" на всякий случай) указанного модуля под HP,

преобразовал её в HEX и составил список команд для побайтовой заливки (в моём коммутаторе SFP модуль в 23 порту), получилось как-то так:

Spoiler
XCVRI2CWRITE 23 0x00 0xa0 0x03
XCVRI2CWRITE 23 0x01 0xa0 0x04
XCVRI2CWRITE 23 0x02 0xa0 0x01
XCVRI2CWRITE 23 0x03 0xa0 0x00
XCVRI2CWRITE 23 0x04 0xa0 0x00
XCVRI2CWRITE 23 0x05 0xa0 0x00
XCVRI2CWRITE 23 0x06 0xa0 0x02
XCVRI2CWRITE 23 0x07 0xa0 0x12
XCVRI2CWRITE 23 0x08 0xa0 0x10
XCVRI2CWRITE 23 0x09 0xa0 0x01
XCVRI2CWRITE 23 0x0a 0xa0 0x05
XCVRI2CWRITE 23 0x0b 0xa0 0x01
XCVRI2CWRITE 23 0x0c 0xa0 0x0D
XCVRI2CWRITE 23 0x0d 0xa0 0x00
XCVRI2CWRITE 23 0x0e 0xa0 0x03
XCVRI2CWRITE 23 0x0f 0xa0 0x1E
XCVRI2CWRITE 23 0x10 0xa0 0x00
XCVRI2CWRITE 23 0x11 0xa0 0x00
XCVRI2CWRITE 23 0x12 0xa0 0x00
XCVRI2CWRITE 23 0x13 0xa0 0x00
XCVRI2CWRITE 23 0x14 0xa0 0x47
XCVRI2CWRITE 23 0x15 0xa0 0x49
XCVRI2CWRITE 23 0x16 0xa0 0x47
XCVRI2CWRITE 23 0x17 0xa0 0x41
XCVRI2CWRITE 23 0x18 0xa0 0x4C
XCVRI2CWRITE 23 0x19 0xa0 0x49
XCVRI2CWRITE 23 0x1a 0xa0 0x4E
XCVRI2CWRITE 23 0x1b 0xa0 0x4B
XCVRI2CWRITE 23 0x1c 0xa0 0x20
XCVRI2CWRITE 23 0x1d 0xa0 0x20
XCVRI2CWRITE 23 0x1e 0xa0 0x20
XCVRI2CWRITE 23 0x1f 0xa0 0x20
XCVRI2CWRITE 23 0x20 0xa0 0x20
XCVRI2CWRITE 23 0x21 0xa0 0x20
XCVRI2CWRITE 23 0x22 0xa0 0x20
XCVRI2CWRITE 23 0x23 0xa0 0x20
XCVRI2CWRITE 23 0x24 0xa0 0x00
XCVRI2CWRITE 23 0x25 0xa0 0x00
XCVRI2CWRITE 23 0x26 0xa0 0x00
XCVRI2CWRITE 23 0x27 0xa0 0x00
XCVRI2CWRITE 23 0x28 0xa0 0x47
XCVRI2CWRITE 23 0x29 0xa0 0x4C
XCVRI2CWRITE 23 0x2a 0xa0 0x2D
XCVRI2CWRITE 23 0x2b 0xa0 0x4F
XCVRI2CWRITE 23 0x2c 0xa0 0x54
XCVRI2CWRITE 23 0x2d 0xa0 0x2D
XCVRI2CWRITE 23 0x2e 0xa0 0x53
XCVRI2CWRITE 23 0x2f 0xa0 0x47
XCVRI2CWRITE 23 0x30 0xa0 0x30
XCVRI2CWRITE 23 0x31 0xa0 0x36
XCVRI2CWRITE 23 0x32 0xa0 0x53
XCVRI2CWRITE 23 0x33 0xa0 0x43
XCVRI2CWRITE 23 0x34 0xa0 0x31
XCVRI2CWRITE 23 0x35 0xa0 0x2D
XCVRI2CWRITE 23 0x36 0xa0 0x35
XCVRI2CWRITE 23 0x37 0xa0 0x33
XCVRI2CWRITE 23 0x38 0xa0 0x31
XCVRI2CWRITE 23 0x39 0xa0 0x2E
XCVRI2CWRITE 23 0x3a 0xa0 0x30
XCVRI2CWRITE 23 0x3b 0xa0 0x20
XCVRI2CWRITE 23 0x3c 0xa0 0x06
XCVRI2CWRITE 23 0x3d 0xa0 0x0E
XCVRI2CWRITE 23 0x3e 0xa0 0x00
XCVRI2CWRITE 23 0x3f 0xa0 0x56
XCVRI2CWRITE 23 0x40 0xa0 0x00
XCVRI2CWRITE 23 0x41 0xa0 0x12
XCVRI2CWRITE 23 0x42 0xa0 0x00
XCVRI2CWRITE 23 0x43 0xa0 0x00
XCVRI2CWRITE 23 0x44 0xa0 0x32
XCVRI2CWRITE 23 0x45 0xa0 0x30
XCVRI2CWRITE 23 0x46 0xa0 0x32
XCVRI2CWRITE 23 0x47 0xa0 0x32
XCVRI2CWRITE 23 0x48 0xa0 0x30
XCVRI2CWRITE 23 0x49 0xa0 0x32
XCVRI2CWRITE 23 0x4a 0xa0 0x32
XCVRI2CWRITE 23 0x4b 0xa0 0x32
XCVRI2CWRITE 23 0x4c 0xa0 0x30
XCVRI2CWRITE 23 0x4d 0xa0 0x30
XCVRI2CWRITE 23 0x4e 0xa0 0x30
XCVRI2CWRITE 23 0x4f 0xa0 0x33
XCVRI2CWRITE 23 0x50 0xa0 0x20
XCVRI2CWRITE 23 0x51 0xa0 0x20
XCVRI2CWRITE 23 0x52 0xa0 0x20
XCVRI2CWRITE 23 0x53 0xa0 0x20
XCVRI2CWRITE 23 0x54 0xa0 0x32
XCVRI2CWRITE 23 0x55 0xa0 0x31
XCVRI2CWRITE 23 0x56 0xa0 0x30
XCVRI2CWRITE 23 0x57 0xa0 0x35
XCVRI2CWRITE 23 0x58 0xa0 0x32
XCVRI2CWRITE 23 0x59 0xa0 0x34
XCVRI2CWRITE 23 0x5a 0xa0 0x20
XCVRI2CWRITE 23 0x5b 0xa0 0x20
XCVRI2CWRITE 23 0x5c 0xa0 0x68
XCVRI2CWRITE 23 0x5d 0xa0 0x90
XCVRI2CWRITE 23 0x5e 0xa0 0x01
XCVRI2CWRITE 23 0x5f 0xa0 0x48
XCVRI2CWRITE 23 0x60 0xa0 0x00
XCVRI2CWRITE 23 0x61 0xa0 0x00
XCVRI2CWRITE 23 0x62 0xa0 0x00
XCVRI2CWRITE 23 0x63 0xa0 0x00
XCVRI2CWRITE 23 0x64 0xa0 0x00
XCVRI2CWRITE 23 0x65 0xa0 0x00
XCVRI2CWRITE 23 0x66 0xa0 0x00
XCVRI2CWRITE 23 0x67 0xa0 0x00
XCVRI2CWRITE 23 0x68 0xa0 0x4A
XCVRI2CWRITE 23 0x69 0xa0 0x34
XCVRI2CWRITE 23 0x6a 0xa0 0x38
XCVRI2CWRITE 23 0x6b 0xa0 0x35
XCVRI2CWRITE 23 0x6c 0xa0 0x39
XCVRI2CWRITE 23 0x6d 0xa0 0x43
XCVRI2CWRITE 23 0x6e 0xa0 0x20
XCVRI2CWRITE 23 0x6f 0xa0 0x31
XCVRI2CWRITE 23 0x70 0xa0 0x39
XCVRI2CWRITE 23 0x71 0xa0 0x39
XCVRI2CWRITE 23 0x72 0xa0 0x30
XCVRI2CWRITE 23 0x73 0xa0 0x2D
XCVRI2CWRITE 23 0x74 0xa0 0x33
XCVRI2CWRITE 23 0x75 0xa0 0x36
XCVRI2CWRITE 23 0x76 0xa0 0x35
XCVRI2CWRITE 23 0x77 0xa0 0x36
XCVRI2CWRITE 23 0x78 0xa0 0x98
XCVRI2CWRITE 23 0x79 0xa0 0x5C
XCVRI2CWRITE 23 0x7a 0xa0 0x20
XCVRI2CWRITE 23 0x7b 0xa0 0x13
XCVRI2CWRITE 23 0x7c 0xa0 0xD9
XCVRI2CWRITE 23 0x7d 0xa0 0x9A
XCVRI2CWRITE 23 0x7e 0xa0 0xFB
XCVRI2CWRITE 23 0x7f 0xa0 0x4F

 

Но если после выполнения этих команд снова сделать 

XCVRI2CREAD 23 0 0xa0 128

то видно, что ничего не изменилось, хотя команды записи выполнились без ошибок ... не пойму в чем дело.

 

[UPD2]: Разобрался после вскрытия модуля, граждане китайцы подключили 24C08A через контроллер и ни одна сигнальная линия I2C не подключена к SFP-разъёму на прямую. Решил просто - выпаял память, подключил к программатору (использовал ChipProg-481) считал всё целиком, а потом в WinHEX просто заменил в считанном начиная с нуля тем, что прислал производитель модуля (ссылки выше), получился вот такой образ (в архиве так-же лежит оригинальный образ содержимого микросхемы памяти до модификации) - его и влил назад в микросхему программатором и запаял память назад в модуль (проверил - работает!)

Edited by shuum

Share this post


Link to post
Share on other sites

Ищу прошивку под SFP-25G-SR от huawei, p/n там 02311KNR 02313URP 02314GDT 02313BJK 02313FCC

Пойдёт даже от "аналога" сейчас совсем нечего надеть 🙂

Share this post


Link to post
Share on other sites

День добрый!

Может кто поделиться образом для Cisco GLC-T ?

Тот, которой в данной теме не качается....

Заранее благодарен.

Share this post


Link to post
Share on other sites

Добрый день! Есть ли у кого-нибудь информация о защите модуля HP Procurve/Aruba и попытках ее обойти? Понятно, что защиты для модулей 1G нет, нужен только правильный код EEPROM. Но модули 10G уже требуют специального hardware и firmware v chip. Кто что-то уже работал в этом направлении? Китайские версии уже можно купить здесь и там, и эти модули SFP также работают как оригинальные. Так что некоторые китайцы знают, как обойти эту защиту.

Share this post


Link to post
Share on other sites

Доброго дня

 

подскажите пожалуйста, столкнулся с сл. вопросом

 

есть SFP модули GJ45

Alcatel-Lucent SFP - 3HE00062CB 01 FCLF8521P2BTL-A5 Alcatel.Lucent RJ45 1000BASE-T

Finisar SFP Finisar FCLF8521P2BTL sunnyvale CA 94089 1000Base-TX SFP 1.25 Гбит/с 100m, Медный, RJ-45

Nokia sfp-Nokia 3HE00062CBAA01 IPUIBDYDAA SFP, GIGE BASE-T TJ45 R6/6 DDM, 40/85C

 

и вот какая штука, на Mikrotik -они нормально не работают

если взять например CRS-серию - то вопросов нет - взлетают и работают без бубнов с первого раза

с некоторыми моделями RB-серии - начинаются танцы с бубном

 

нужно жёстко выставить 1000base - в настройках - и да, даже если так сделать - то после ребута - модуль не взлетает - и приходится включать и отключать порт - только после этого взлетает

у всех модулей по разному - например какой то из модулей если, вытащить и воткнуть - тоже перестаёт работать итд

 

попробовал программатором шивануть данные из модуля ССД SFP-T-100-1000 - две странички, инфа первый блок и второй - иииии..... как бы не помогло

 

 

есть ли, рабочий способ нормально подружить модули на базе чипа Finisar - с микротиками серии RB (router Board) 4011,962,960,922

 

 

 

после не долгих тестов выяснил так

вышеуказанные модули на чипе Finisar - взлетаю на сл. Оборудовании Микротик

RB760iGS (hexS) - он на архитектуре - MMIPS

rb2011 (тоже взлетает наверное потому-что sfp модуль идёт через Свитч чип, а потом уже в CPU) Он тоже на архитектуре - MMIPS

CRS-любой серии взлёт без проблемм

 

НЕ ВЗЛЕТАЕТ НА....:

RB4011iGS+RM - он на базе архитектуры ARM 32bit

RB962UiGS-5HacT2HnT - он на базе архитектуры MIPSBE

HEXpoe RB960PGS - он на базе архитектуры MIPSBE

RB922UAGS-5HPacD - он на базе архитектуры MIPSBE

 

 

 

 

а, вот другие SFP-RJ45 модули

MaxLink sfp 10/100/1000 base-t 100m rj45

ССД sfp 10/100/1000 base-t 100m rj45 - SFP-T-100-1000

Nokia 3HE11904AARB01 SFP 1200M RJ45 100M CLEI:IPUIBZ6DAA MR:04 

взлетают везде - независимо от модели и архитектуры - без танцев и без бубнов

 

 

 

 

Вообщем буду признателен за ответы - и обмен опытом - для решения данной задачи

Edited by dennis-bmw

Share this post


Link to post
Share on other sites

Hi, I want to share some C# code to generate cisco vendor codes for SFP/SFP+ transceivers:

 

using System.Security.Cryptography;
using System.IO.Hashing;
using System.Text;

byte[,] vendor_keys = {
    {0x1B, 0xBB, 0x2B, 0x46, 0xDF, 0xCC, 0x17, 0x1F, 0x1E, 0x62, 0xF7, 0x76, 0x79, 0xA8, 0xC9, 0xA6},
    {0x3B, 0x25, 0x18, 0xC4, 0x5F, 0x7E, 0x5B, 0xA2, 0x98, 0xC3, 0xA6, 0xEF, 0x99, 0xFF, 0xF6, 0xE3},
    {0x8D, 0xDA, 0xE6, 0xA4, 0x6E, 0xC9, 0xDE, 0xF6, 0x10, 0x0B, 0xF1, 0x85, 0x05, 0x9C, 0x3D, 0xAB},
    {0x89, 0x23, 0x2D, 0x6F, 0xA5, 0x26, 0x38, 0x92, 0x1E, 0xC2, 0x81, 0xC2, 0x65, 0x16, 0xF7, 0x69},
    {0xD6, 0xA8, 0x45, 0x8C, 0x7C, 0x1B, 0xD1, 0xEF, 0x09, 0x71, 0xBF, 0x3D, 0x10, 0xD5, 0xDD, 0xB3},
    {0xDE, 0xEF, 0xE6, 0x84, 0x6A, 0x13, 0x31, 0x84, 0x7B, 0xA0, 0x01, 0x3F, 0x90, 0x72, 0x35, 0x01},
    {0x17, 0x52, 0x58, 0xFE, 0xE9, 0xB4, 0xF0, 0xD9, 0xEA, 0xB6, 0x00, 0x6F, 0x7C, 0x65, 0xA8, 0xCB},
    {0x0B, 0x79, 0x42, 0x32, 0x80, 0x56, 0x75, 0x77, 0xC0, 0x4B, 0x34, 0x26, 0x3C, 0x35, 0x9E, 0xAA},
    {0x30, 0xDB, 0x1E, 0xE9, 0xC7, 0x91, 0x3A, 0xE5, 0xA3, 0xC8, 0x16, 0x1B, 0x57, 0x4A, 0x9F, 0xF6},
    {0x20, 0xD1, 0x52, 0x7B, 0x25, 0xEF, 0xD6, 0x8C, 0x0D, 0xB4, 0x1C, 0xB7, 0x47, 0x3D, 0x23, 0x46},
    {0x51, 0x11, 0x88, 0x7F, 0x14, 0xD5, 0xB0, 0xF3, 0x54, 0x98, 0xCF, 0x61, 0xA3, 0x75, 0xB2, 0x22},
    {0x3C, 0x06, 0x16, 0x4D, 0x2A, 0xCD, 0x61, 0x93, 0x21, 0xFB, 0xA6, 0xC1, 0xC2, 0x8B, 0xD4, 0x03},
    {0x5A, 0x26, 0xA6, 0x8D, 0xC1, 0x5E, 0x52, 0x03, 0xFC, 0x35, 0x3B, 0x30, 0x5D, 0xE6, 0x01, 0x60},
    {0x31, 0xF9, 0x8E, 0x99, 0x9F, 0xE1, 0x19, 0xBB, 0x3D, 0xFF, 0xE5, 0x55, 0xBD, 0x1F, 0xC1, 0xC2},
    {0x4A, 0xF8, 0x67, 0x16, 0xED, 0x1E, 0x2F, 0x34, 0x7C, 0xA1, 0x3C, 0x99, 0x78, 0xAD, 0x8C, 0xA0},
    {0x1D, 0xBA, 0xA9, 0x8E, 0x64, 0x5B, 0x0C, 0xE5, 0x31, 0xD1, 0xC7, 0x83, 0x07, 0x08, 0xD9, 0x93},
    {0x12, 0xA7, 0xDD, 0x48, 0x7A, 0x32, 0x29, 0x67, 0xF4, 0xEA, 0xF0, 0x8C, 0xF2, 0xA9, 0x22, 0x02},
    {0xE1, 0x48, 0x69, 0xFD, 0xA8, 0x1B, 0x1C, 0x21, 0x2D, 0x71, 0x5E, 0x3B, 0xC1, 0x37, 0x1D, 0x75},
    {0xE1, 0x15, 0xE6, 0xF5, 0x76, 0x9D, 0x4E, 0xAC, 0x54, 0xE1, 0x58, 0x09, 0xFC, 0x0B, 0xF4, 0x65},
    {0xAC, 0x94, 0xDC, 0xE6, 0x6C, 0x21, 0x57, 0x6F, 0xF1, 0xDF, 0x97, 0x7D, 0xFB, 0xAC, 0x7D, 0x59},
    {0x99, 0x50, 0xB2, 0x4A, 0xE2, 0x4D, 0xAE, 0xF2, 0xAB, 0xB5, 0x64, 0x0F, 0x56, 0xA3, 0xF1, 0xDA},
    {0x4F, 0xCE, 0xF2, 0x79, 0x70, 0x7C, 0xBD, 0xBE, 0xBC, 0x1B, 0x75, 0x38, 0x85, 0x77, 0x09, 0x5F},
    {0x38, 0x69, 0x23, 0x0A, 0xBE, 0x44, 0x2B, 0x4B, 0xDB, 0x58, 0x23, 0x9F, 0x20, 0x90, 0x2B, 0x51},
    {0xDA, 0xB6, 0xCD, 0x86, 0x03, 0x2D, 0x50, 0x10, 0x6F, 0x14, 0x06, 0x9D, 0x9F, 0x87, 0xD0, 0x57},
    {0xBF, 0x3F, 0x47, 0x64, 0xF9, 0x8F, 0xC3, 0xA5, 0xF1, 0xC8, 0x96, 0xB9, 0x59, 0xD4, 0x80, 0xD9},
    {0x5D, 0x7C, 0x3B, 0x2C, 0xF7, 0x04, 0x1E, 0x83, 0x0A, 0xEB, 0x4C, 0x7B, 0x08, 0xEE, 0xB3, 0x50},
    {0x3E, 0xD4, 0x0F, 0x47, 0xA4, 0x21, 0xA7, 0x11, 0x00, 0xF5, 0xAD, 0x5C, 0x02, 0x5D, 0x01, 0x64},
    {0xC8, 0xFF, 0x5D, 0x5C, 0x5A, 0x40, 0x08, 0xF7, 0x9C, 0x80, 0x34, 0xE4, 0xE1, 0x9A, 0xD2, 0x7B},
    {0x94, 0x46, 0x8B, 0xB4, 0xBF, 0x08, 0xA7, 0x9E, 0x06, 0xF1, 0x68, 0x9A, 0x1B, 0x3C, 0xBE, 0x00},
    {0x2A, 0x40, 0x22, 0x06, 0x2C, 0xD2, 0x1D, 0x7E, 0x06, 0xE2, 0xD1, 0xE6, 0x2A, 0x9B, 0x1D, 0x98},
    {0xE2, 0x86, 0xAB, 0xBA, 0x3A, 0x36, 0xD3, 0x1E, 0xF5, 0xCA, 0xD7, 0x51, 0x94, 0x40, 0x86, 0xBD},
    {0x64, 0x6F, 0x9C, 0x59, 0x6F, 0xAA, 0x6F, 0x06, 0x69, 0x12, 0x11, 0x62, 0xD2, 0xD3, 0x83, 0xC7},
    {0x18, 0x83, 0x7E, 0x4B, 0x24, 0xA8, 0x3A, 0xBF, 0xCA, 0x62, 0xF9, 0x92, 0x8C, 0xBB, 0x9A, 0x6D},
    {0x96, 0x5B, 0xC9, 0x16, 0x01, 0xC8, 0xDC, 0x90, 0xA2, 0x10, 0x05, 0x78, 0xFA, 0x60, 0x25, 0x07},
    {0x46, 0x5F, 0xF5, 0x55, 0x8E, 0x61, 0xCD, 0x42, 0x88, 0xC6, 0xBF, 0x7C, 0xD4, 0x7B, 0xCA, 0x2E},
    {0xB0, 0x16, 0x9A, 0x7D, 0x13, 0x2C, 0x75, 0x4C, 0xE4, 0xEC, 0x9D, 0x17, 0x82, 0x43, 0xF3, 0x4A},
    {0x5B, 0xF8, 0x10, 0xF9, 0x48, 0x7F, 0x7C, 0xF6, 0x3D, 0xF9, 0x29, 0xD1, 0x9C, 0x70, 0x26, 0xF1},
    {0xB1, 0x9E, 0x0F, 0x6E, 0x95, 0xE5, 0x49, 0xF9, 0x0D, 0x85, 0xE9, 0x40, 0x8A, 0x7B, 0xEC, 0xAD},
    {0x59, 0x6F, 0xEE, 0x26, 0x82, 0xD4, 0x56, 0xBD, 0xDB, 0xF9, 0x46, 0xCF, 0xC4, 0xCC, 0xBE, 0xD6},
    {0xAA, 0xE4, 0x37, 0xD9, 0x87, 0xE4, 0x3A, 0xB9, 0x1E, 0xED, 0xD8, 0xF3, 0xE1, 0xEA, 0x02, 0x03},
    {0x3D, 0xA4, 0x61, 0xEE, 0x2B, 0x8D, 0x6C, 0x75, 0x5F, 0xC7, 0x17, 0x46, 0x6B, 0x6D, 0x61, 0xBD},
    {0x8B, 0x07, 0x03, 0xDD, 0xD8, 0x39, 0x56, 0x7A, 0x17, 0x12, 0x7B, 0x30, 0xB9, 0xAE, 0x53, 0x6B},
    {0x1A, 0xA6, 0x97, 0x2F, 0x24, 0x7D, 0x9E, 0x4F, 0xCC, 0x53, 0x8C, 0x58, 0x62, 0x44, 0x40, 0xA5},
    {0x53, 0xF8, 0x83, 0x6B, 0x99, 0xC3, 0xAE, 0x5C, 0xF7, 0x14, 0xC2, 0x07, 0xF0, 0xB8, 0xD0, 0xE4},
    {0xDF, 0x76, 0x61, 0xFA, 0xAD, 0xB2, 0xFC, 0x1A, 0x20, 0xBD, 0xA5, 0xE3, 0xD9, 0x71, 0x5A, 0xAF},
    {0x14, 0xA7, 0xB7, 0x73, 0xCA, 0xB3, 0x21, 0x31, 0xC0, 0xD5, 0xBD, 0x67, 0x96, 0x18, 0x78, 0x6F},
    {0x8B, 0x04, 0xEE, 0x5E, 0x86, 0x4E, 0x86, 0x08, 0x6D, 0xE4, 0x72, 0x08, 0xB0, 0xF4, 0x91, 0xBB},
    {0xBC, 0x24, 0x9E, 0x14, 0x6A, 0xE9, 0xC1, 0x17, 0x80, 0x63, 0x6B, 0x41, 0xBD, 0xBD, 0x4D, 0xFB},
    {0x1F, 0x70, 0x1F, 0x4D, 0xDE, 0x1E, 0x4B, 0xF7, 0xA0, 0xE9, 0xF2, 0xB7, 0x06, 0xCC, 0x03, 0xC8},
    {0x4C, 0x7F, 0x1A, 0x40, 0x6A, 0x65, 0x9C, 0x1F, 0x37, 0xCF, 0xBD, 0xB4, 0x33, 0xA8, 0x4D, 0x9A},
    {0xAA, 0xA9, 0xF5, 0xB5, 0x97, 0x45, 0x3C, 0xF8, 0xCC, 0xAC, 0x16, 0xE0, 0xBC, 0xDA, 0x91, 0xE8},
    {0xC3, 0x87, 0x48, 0x05, 0xDB, 0x27, 0x93, 0x19, 0xC7, 0xF9, 0xA3, 0xB2, 0x19, 0xE9, 0x68, 0x4A},
    {0x1E, 0xA0, 0x8D, 0xB7, 0xBE, 0xB1, 0x49, 0x0A, 0xDF, 0x3D, 0xEE, 0xB2, 0xD2, 0x4E, 0x5B, 0x19},
    {0x23, 0x7D, 0x2B, 0x53, 0xBA, 0x4E, 0xC6, 0x24, 0x4E, 0xF0, 0x5D, 0x49, 0x7F, 0x60, 0xC0, 0xFC},
    {0x79, 0x75, 0xBA, 0x42, 0x46, 0x64, 0x81, 0x1F, 0xCB, 0x9B, 0x69, 0x0E, 0x67, 0xF7, 0x30, 0x5B},
    {0x7A, 0x21, 0xA2, 0x2C, 0x0A, 0xAB, 0x14, 0x41, 0xBD, 0xB5, 0xAA, 0x5A, 0x34, 0x4C, 0x43, 0xBF},
    {0xBC, 0x08, 0x9A, 0x68, 0x4E, 0x7B, 0xF6, 0x35, 0xAD, 0xC7, 0x98, 0xD4, 0x6D, 0xE7, 0x51, 0x90},
    {0xB8, 0x92, 0xEC, 0x8E, 0xB9, 0x5E, 0x9E, 0x70, 0x14, 0x48, 0xAB, 0x05, 0x69, 0x6F, 0xF2, 0x85},
    {0xF7, 0x68, 0x1E, 0x07, 0xB5, 0xC9, 0x86, 0x6D, 0x88, 0xB1, 0x6B, 0x44, 0xC2, 0x3C, 0x9E, 0xE6},
    {0xEF, 0xE2, 0xCA, 0x6A, 0xD8, 0x56, 0x44, 0xA1, 0x62, 0xA9, 0x50, 0x39, 0x0E, 0xD7, 0xCD, 0x5C},
    {0x19, 0x96, 0x56, 0x30, 0x9C, 0x6C, 0x51, 0xA6, 0x3B, 0x79, 0xE2, 0x3D, 0xA7, 0xC7, 0x07, 0x4E},
    {0x0D, 0xFF, 0x4B, 0xE0, 0x67, 0x94, 0x26, 0xE4, 0x99, 0xC8, 0xA9, 0xE7, 0x13, 0x84, 0xD4, 0x35},
    {0x23, 0x92, 0x32, 0xF2, 0xD2, 0x56, 0x49, 0xF1, 0xE5, 0x0E, 0x1D, 0xB0, 0xDB, 0xA7, 0xAC, 0xB8},
    {0x03, 0xD9, 0x81, 0xEF, 0x56, 0x28, 0x23, 0x38, 0xB7, 0xB4, 0xB5, 0x3F, 0x88, 0x98, 0x06, 0x20},
 };

byte[] generate_vendor_code(byte[] vendor, byte[] serial, byte manufacturer_id, byte[] vendor_key) {
    byte[] hash_input = new byte[49];

    // concat manufacturer_id + vendor + serial + vendor_key
    hash_input[0] = manufacturer_id;
    vendor.CopyTo(hash_input, 1);
    serial.CopyTo(hash_input, 17);
    vendor_key.CopyTo(hash_input, 33);

    // compute MD5 hash of the concated values
    byte[] hash_result = MD5.Create().ComputeHash(hash_input);

    // fill final vendor_code array
    byte[] vendor_code = new byte[32];
    vendor_code[0] = 0x00;
    vendor_code[1] = 0x00;
    vendor_code[2] = manufacturer_id;
    hash_result.CopyTo(vendor_code, 3);
    for (int i = 19; i <= 28; i++)
        vendor_code[i] = 0;

    // calculate CRC32 checksum
    Crc32.Hash(vendor_code.AsSpan().Slice(start: 0, length: 28), vendor_code.AsSpan(start: 28, length: 4));

    return vendor_code;
}

string vendor = "OEM             "; // 16 chars, fill up with spaces
string serial = "1234567890      "; // 16 chars, fill up with spaces

byte[] vendor_bytes = Encoding.ASCII.GetBytes(vendor);
byte[] serial_bytes = Encoding.ASCII.GetBytes(serial);

byte manufacturer_id = 0x11;
byte[] vendor_key = new byte[16];
for (var i = 0; i < 16; i++) { vendor_key[i] = vendor_keys[manufacturer_id, i]; }

byte[] vendor_code = generate_vendor_code(vendor_bytes, serial_bytes, manufacturer_id, vendor_key);

// byte[] to hex-string
string vendor_code_string = BitConverter.ToString(vendor_code).Replace("-", "");

// write to table 0xA0 address 0x60 to 0x7F
Console.WriteLine($"vendor_code: {vendor_code_string}");

 

For 100G QSFP28 Transceivers it seems to be a simmilar (but the same algorithm doesn't work), did anyone look into the details for QSFP28 already?

 

I hope english is ok.

Edited by Markus17

Share this post


Link to post
Share on other sites

Не уверен что это мой случай. У меня в esxi адаптер нормально определяется. Но если вставить трансиверы,  то пропадает 

Share this post


Link to post
Share on other sites

Это направление действий, а не конкретный рецепт. Берутся исходники, задается параметр, компилится под ESXI.

 

Имеется и сектор 'альтернатива": патч EEPROM, временно поставив карту в комп с Linux. Но тут есть риск остаться без карты, особенно если она не оригинал, а китайский кадавр, или она OEM и вендор сделал кастомную прошивку.

Share this post


Link to post
Share on other sites

Для прошивки трансивера требуется специальное оборудование и соответствующие навыки. Те, у кого они есть, такие вопросы не задают.

Share this post


Link to post
Share on other sites

jffulcrum

Ну значит я исключение. Адаптер для прошивки у меня есть. Опыт тоже небольшой есть. 

Но это не значит, что я обладаю базой необходимых прошивок 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.