LINUX.ORG.RU
ФорумJob

сколько будет стоить написать такой код....

 , , ,


1

2

Есть исх. драйвера для беспроводной карты. В нем отсутствует поддержка смены мак адреса. Сколько будет стоить дописать код чтобы эта возможность появилась? Пока интересуюсь.


вариант что такой поддержки нет поскольку мак зашит в железо и не подлежит замене уже рассмотрен?

L29Ah
()

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

Deleted
()
Ответ на: комментарий от WereFox

MAC, конечно, зашит в железо, но Ethernet-кадры формирует таки ядро программно, так что если у сетевой карты нет каких-то специальных средств для этого, то MAC очень легко изменить. И для большинства карт это работает.

MAC зашит лишь для того, чтобы ядро при инициализации карты прочитало его и использовало в качестве значения по умолчанию. Ибо большинству пользователей удобнее так, нежели пришлось бы самостоятельно следить за уникальностью MAC-адресов в сети.

KivApple ★★★★★
()
Ответ на: комментарий от WereFox

Да, бывает что тебе нужно иметь специальный огрызок в ядре, который подсовывает вафле её мак, прочитанный, например, со специального места на флешке во время загрузки.

L29Ah
()
Ответ на: комментарий от L29Ah

вариант что такой поддержки нет поскольку мак зашит в железо и не подлежит замене уже рассмотрен?

Нет дело в драйвере. С другим драйвером все меняется на ура.

ving2
() автор топика
Ответ на: комментарий от WereFox

А бывает по другому?

На современных он «зашит» в flash память карты, и оттуда при старте загружается в её оперативную память. Так что менять его не сложно.

rezedent12 ☆☆☆
()
Ответ на: комментарий от ving2

Что мешает использовать opensource драйвер? Для ралинков он достаточно стабилен, если не использовать несколько виртуальных интерфейсов, да и то, эта проблема банально решается.

nickleiten ★★★
()

Для проприетарного драйвера - дорого, т.к. разбираться в куче лапши - то ещё удовольствие.

ЗЫ. Особенно учитывая специфику mediatek/ralink драйвера.

nickleiten ★★★
()
Ответ на: комментарий от nickleiten

Что мешает использовать opensource драйвер?

Собственно ничего. Проприетарщина немного лучше работает. Вообще да согласен тема бредовая - проще свисток поменять.

ving2
() автор топика
Ответ на: комментарий от WereFox

Да, бывает. Но обычно бывает, что его можно подменить.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от peregrine

Явно дороже стоимости другой карты.

Да со временем так и подумал. Что не тем местом думал, когда тему с вопросом создавал.

ving2
() автор топика
Ответ на: комментарий от julixs

да как обычно стандартными командами, либо через macchanger. Говорит что не поддерживается. Есть там какие то опции через iwpriv в описании к драйверу

iwpriv ra0 set EthCloneMac="Desired MAC"
но я так и не понял как оно должно работать и то ли это вообще

ving2
() автор топика
Ответ на: комментарий от ving2

А он у точно ra0 определяется? Вот это пробовал?

Configuration File : RT2870STA.dat --------------------------------------- # Copy this file to /etc/Wireless/RT2870STA/RT2870STA.dat # This file is a binary file and will be read on loading rt.o module. # # Use «vi RT2870STA.dat» to modify settings according to your need. # # 1.) set NetworkType to «Adhoc» for using Adhoc-mode, otherwise using Infrastructure # 2.) set Channel to «0» for auto-select on Infrastructure mode # 3.) set SSID for connecting to your Accss-point. # 4.) AuthMode can be «WEPAUTO», «OPEN», «SHARED», «WPAPSK», «WPA2PSK», «WPANONE» # 5.) EncrypType can be «NONE», «WEP», «TKIP», «AES» # for more information refer to the Readme file. # #The word of «Default» must not be removed

julixs ★★★
()
Ответ на: комментарий от ving2

MAC можно установить через параметр mac при загрузке модуля. Если данный параметр не используется, то MAC читается с EEPROM. Так как у меня нет подобной карты, чтобы убедится в этом на 100%, EEPROM MAC можно прочитать через команды:

iwpriv ra0 e2p 4
iwpriv ra0 e2p 6
iwpriv ra0 e2p 8
Через данные команды можно установить новый MAC без дописывания кода. Пример:
iwpriv ra0 e2p 4=34ac
iwpriv ra0 e2p 6=5555
iwpriv ra0 e2p 8=bbbb


Но как я уже написал выше: перед изменением значений нужно убедится, что по данным адресам хранится MAC.
smoke_man
()
Ответ на: комментарий от julixs

А он у точно ra0 определяется?

можно и wlan сделать - в исходниках поменять. Как соберешь так и будет.

ving2
() автор топика
Ответ на: комментарий от ving2

попробую спасибо за наводку. А что такое e2p да и цифры что значат 4 6 8.

e2p - это команда iwpriv доступа к EEPROM, 4 6 8 - адреса в EEPROM, где хранится MAC, судя по коду.

smoke_man
()
Ответ на: комментарий от smoke_man

Вот код чтения MAC с EEPROM (rtmp_init.c):

RT28xx_EEPROM_READ16(pAd, 0x04, Addr01);
RT28xx_EEPROM_READ16(pAd, 0x06, Addr23);
RT28xx_EEPROM_READ16(pAd, 0x08, Addr45);

pAd->PermanentAddress[0] = (UCHAR)(Addr01 & 0xff);
pAd->PermanentAddress[1] = (UCHAR)(Addr01 >> 8);
pAd->PermanentAddress[2] = (UCHAR)(Addr23 & 0xff);
pAd->PermanentAddress[3] = (UCHAR)(Addr23 >> 8);
pAd->PermanentAddress[4] = (UCHAR)(Addr45 & 0xff);
pAd->PermanentAddress[5] = (UCHAR)(Addr45 >> 8);

smoke_man
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.