• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Одинаковый MAC в модулях RTL00

sharikov

Active member
Новая беда. В нескольких модулях RTL00 прошит одинаковый MAC. Китайцам и в голову не могло придти что бледнолицые собаки вздумают развернуть сеть датчиков.
Естественно с одинаковым MAC модули не работают.
Теперь опять придется выкручиваться.

Пожалуй RTL00 лучше вовсе нигде не применять: в SDK "из коробки" без глюков или допиливания не работает ничего, в модуле аппаратная ошибка с включением светодиода, MAC не уникальный, SSL поднять нет шансов. Такой модуль не нужен ни за какую цену.
 

pvvx

Активный участник сообщества
Новая беда. В нескольких модулях RTL00 прошит одинаковый MAC. Китайцам и в голову не могло придти что бледнолицые собаки вздумают развернуть сеть датчиков.
Естественно с одинаковым MAC модули не работают.
Теперь опять придется выкручиваться.

Пожалуй RTL00 лучше вовсе нигде не применять: в SDK "из коробки" без глюков или допиливания не работает ничего, в модуле аппаратная ошибка с включением светодиода, MAC не уникальный, SSL поднять нет шансов. Такой модуль не нужен ни за какую цену.
Вы бы вспомнили ESP-01 - там гадостей поболее было в первые годы (до выгорания чипа перегревом передатчика), пока не раскрутили ESP "энтузиасты"... :) Но так и ничего и не написать на него с его аппаратурой - доков, как не было, так и нет, кроме "реверса" закрытых кусков...
ВОт вместо стенаний, взяли бы и "реверснули", да изложили хоть как-то то, чего ещё нет в общем доступе на RTL...
Как сменить MAC приведено в примерах/исходниках в SDK, да указано как его прошить, куда и формат записи тут.
 

sharikov

Active member
Это же легко во флеш прошивается
Там все неоднозначно.
calibration data в упакованном формате, его надо парсить или писать из sdk через lib_wlan_mp.
Если парсить то никто не даст гарантии что в следующей версии sdk формат сохранят.
Писать через lib_wlan_mp менее удобно чем программатором и там опять же есть варианты. То ли заливать в рам спецпрошивку и она все будет делать сама через wifi то ли она будет обмениваться данными с программатором.

Перед записью нужно вычитывать и сохранять в базе уникальный идентификатор модуля чтобы при перепрошивке одного и того же экземпляра выдавать ему тот же mac.

Как то сложно получается.
 

pvvx

Активный участник сообщества
Как то сложно получается.
Найти конец записи в секторе calibration data flash и дописать строку с MAC. При считывании (в инициализации WiFi) производиться последовательное наложение блоков из данного сектора (4096 байт) в struct _ADAPTER.eeprompriv.efuse_eeprom_data[512] (512 байт). Если дополните запись десятком разных MAC, то будет воспринят только последний (предыдущие перепишутся). Блок имеет в заголовке адрес позиции записи в _ADAPTER.eeprompriv.efuse_eeprom_data[512].
Дешифрация eFuse у RTL стандартная и применяется на многих чипах....
iwpriv не относиться к каким-то стандартам и работу через MP Tool могут поменять когда захотят :)

Привязываться к дровам WiFi наверно можно только через описание ioctl (wireless extensions) запросов в wireless.h -> там версия уже 22...

int wext_set_bssid(const char *ifname, const __u8 *bssid) {
....
return iw_ioctl(ifname, SIOCSIWAP, &iwr);
}
 
Последнее редактирование:
Сверху Снизу