WIFIHELL - 科技改变生活

 找回密码
 注册WIFIHELL

QQ登录

只需一步,快速开始

开启左侧

SANSUNG

[复制链接]
222ba 发表于 2016-5-8 01:03:32 | 显示全部楼层 |阅读模式

注册WIFIHELL,浏览更多技术贴!

您需要 登录 才可以下载或查看,没有账号?注册WIFIHELL

x
[size=13.3333px]
http://forum.ixbt.com/topic.cgi?id=62:18971:1243#1243
[size=13.3333px]http://blog.csdn.net/qhw2012/article/details/24384573[size=13.3333px]http://forum.ixbt.com/topic.cgi?id=62:18971:1243#1246



[size=13.3333px]Метод и драйвер разработаны участником конференции
36.6°К[size=13.3333px], за что ему говорим спасибо.

[size=13.3333px]Внимание! Никакой ответственности за порчу оборудования при использовании функции записи не несем. Используйте на свой страх и риск.

[size=13.3333px]Скачиваем [size=13.3333px]драйвер[size=13.3333px] ([size=13.3333px]зеркало[size=13.3333px]) с поддержкой записи/чтения всего EEPROM в файл.

[size=13.3333px]Официально ТОЛЬКО для следующих серий чипсетов:
[size=13.3333px]RT30xx RT33xx RT3070 RT3370 RT5370

[size=13.3333px]Компилируем драйвер.
[size=13.3333px]код
1
sudo make





[size=13.3333px]В файл rtusb_dev_id.c можно добавлять свои идентификаторы в любую строку.

[size=13.3333px]Расширен двумя новыми командами интерфейса "ra0 e2p"
[size=13.3333px]Команда "r" - чтение EEPROM в файл e2p.bin
[size=13.3333px]Команда "w" - чтение файла e2p.bin и запись его в EEPROM

[size=13.3333px]Команда записи EEPROM предназначена исключительно для тех, кому нечего терять,
[size=13.3333px]и для попытки восстановления испорченного EEPROM, заранее корректной версией
[size=13.3333px]от аналогичного оборудования.

[size=13.3333px]Пример использования:
[size=13.3333px]код
1
sudo insmod rt5370sta.ko       //Установка

2
sudo ifconfig ra0 192.168.1.1  //Конфиг. ra0

3
sudo ifconfig ra0              //Проверка

4
iwpriv ra0 e2p 0               //Считать платформу чипсета (вернет 5370 для RT5370)

5
iwpriv ra0 e2p r               //Считывает весь EEPROM и записывает его в файл e2p.bin в текущую папку





[size=13.3333px]Файл e2p.bin записывается под root:root и не имеет доступа на чтение/запись
[size=13.3333px]пользователем ubuntu:ubuntu. Поэтому надо изменить его атрибуты
[size=13.3333px]код
1
sudo chmod +r+w e2p.bin         //Смена атрибутов файла, разр. чтения-записи





[size=13.3333px]После этого можно копировать его на другой диск
[size=13.3333px]код
1
sudo iwpriv ra0 e2p w                //Читает файл e2p.bin из тек. папки и записывает его в EEPROM





[size=13.3333px]***
[size=13.3333px]Теперь поговорим немного о структуре файла.
[size=13.3333px]Размер EEPROM - 1024 байта для всех чипсетов.

[size=13.3333px]Начиная со смещения 4 длиной 6 байт идет MAC-адрес. Не забываем менять его на адрес своего адаптера, особенно если клонируем несколько устройств, используемых в рамках одной беспроводной сети:
[size=13.3333px]код
1
00000000: 70 53 06 01 FC 75 16 E4|14 9C 00 00 00 00 00 00





[size=13.3333px]в данном примере MAC-адрес - FC 75 16 E4 14 9C.

[size=13.3333px]Со смещения 208 длиной 4 байта идет VID и PID адаптера (старший и младший байты поменяны местами):
[size=13.3333px]код
1
00000200: 12 01 00 02 00 00 00 40|01 20 19 3C 01 01 01 02





[size=13.3333px]здесь VID 2001, а PID 3C19 (адаптер D-Link DWA-125 rev A3). Следовательно, поменяв эти 4 байта на значения самсунговского адаптера (E8 04 18 20) и залив его в свой свисток можно сразу получить на выходе совместимый с ТВ адаптер, то есть:
[size=13.3333px]код
1
00000200: 12 01 00 02 00 00 00 40|E8 04 18 20 01 01 01 02





[size=13.3333px]Обращаю внимание, что править двоичный файл можно и нужно только HEX-редактором.

[size=13.3333px]Изменения от 23.04.2013
[size=13.3333px]Добавлена новая команда "u" - выводит информацию о количестве свободных блоков EFUSE, если EEPROM имеет EFUSE тип. Перед экспериментами с адаптером (и после) не помешает проверить количество свободных блоков, и принять решение о дальнейших действиях с EEPROM. Нулевое количество свободных блоков однозначно говорит о полной блокировке внутренней памяти.
[size=13.3333px]Рекомендуется ничего не делать с адаптером, если количество свободных блоков меньше 5.

[size=13.3333px]Пример выводимой в консоли информации на команду iwpriv ra0 e2p u[size=13.3333px]:
[size=13.3333px]код
01
//для незаблокированного RT5370

02
ra0 e2p:

03
EEPROM has EFUSE type

04
Total EFUSE blocks = 45

05
EFUSE free blocks = 12

06


07
//для заблокированного RT5370, запись в него уже невозможна

08
ra0 e2p:

09
EEPROM has EFUSE type

10
Total EFUSE blocks = 45

11
EFUSE free blocks = 0





[size=13.3333px]Драйвер (любой поддерживающий EFUSE), при неудачной записи, сам берет новый блок, и при каждой ошибке, не проверяет сколько осталось свободных блоков, поэтому при записи последнего блока, если происходит в нем ошибка - все блокируется окончательно.
[size=13.3333px]Например, если перезаписывать все 1024 байта EEPROM, то вероятность ошибок резко возрастет, и если есть 12 свободных блоков, а при записи произошло 10 ошибок, то после записи всех 1024 байт, останется только 2 свободных блока.

WIFIHELL | 万丰乐活 2020开启新的征程,好货不断!
关闭

站点推荐上一条 /1 下一条

万丰乐活

GMT+8, 2024-12-4 00:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表