• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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);
}
 
Последнее редактирование:
Сверху Снизу