LINUX.ORG.RU

Как убить bluetooth адаптер? -Очень просто...

 , ,


0

2

Доброго ВС!

Произошло вот что:

root@PLOTVA2:~# hciconfig
hci0:	Type: Primary  Bus: USB
	BD Address: 00:00:00:00:00:00  ACL MTU: 310:10  SCO MTU: 64:8
	DOWN 
	RX bytes:501 acl:0 sco:0 events:22 errors:0
	TX bytes:92 acl:0 sco:0 commands:21 errors:0

root@PLOTVA2:~# hciconfig hci0 up
Can't init device hci0: Cannot assign requested address (99)

После гугления остался в замешательстве, тккак получилось:

root@PLOTVA2:~/Загрузки/blht/Blue-Smash-v1.0e/tools# ./bdaddr -i hci0 00:11:22:FF:EE:55
Invalid device: Network is down

Итого: поднять интерфейс я не могу, тккак адрес не корректен, а изменить его нельзя потому, что интерфейс лежит?

lsusb:

Bus 002 Device 009: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

Ничего не понял. Как ты этого достиг?

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

Без вопросов: 1.Вставляем рабочий свисток в ваш пк под управлением linux. 2.Проверяем работоспособность

#hciconfig hci0 up
hci0:	Type: Primary  Bus: USB
	BD Address: 00:11:22:FF:EE:55  ACL MTU: 310:10  SCO MTU: 64:8
	UP 
	RX bytes:501 acl:0 sco:0 events:22 errors:0
        TX bytes:92 acl:0 sco:0 commands:21 errors:0
* примерно такой вывод (те с нормальным bdaddr) 3.Затем вызываем
# ./bdaddr -i hci0 00:00:00:00:00:00
//здесь будет сообщение типа адреcс не корректен, и ничего в итоге не поменяется...
4.Открываем в текстовом редакторе bdaddr.c и убираем проверку, которая нам мешает. (Для любобытных могу отправить исходник.) 5.Еще раз
# ./bdaddr -i hci0 00:00:00:00:00:00
//на этот раз здесь будет сообщение о том, что операция успешна. Прозьба перезагрузить адаптер.
6.После перезагрузки адаптера он находится в состоянии DOWN. с адресом 00:00:00:00:00:00. При попытке его поднять ругается на адрес. При попытке изменить адрес - ругается на то, что он лежит.

PS: так же я пробывал посмотреть почему нельзя изменить адрес с выключеным адаптером: из bdaddr вызывается функция hci_send_req, в которой ошибку возвращает writev. Отлаживать writev я не стал.

PSPS: ДОМА НЕ ПОВТОРЯТЬ! PSPSPS: Разве что, если знаешь, как его потом вернуть в прежнее состояние.

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

Дайте медаль этому спортсмену-стрелку по собственным ногам!

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

Те достаточно обнулить bdaddress, и при следующем включении адаптер будет неработоспособен.

Т.е. достаточно целенаправленно сделать то, что убьёт железку, и при следующем включении адаптер будет неработоспособен.

Поправил, не благодари.

WereFox ★☆
()
Ответ на: комментарий от WereFox
root@PLOTVA2:~/Загрузки/blht/Blue-Smash-v1.0e/tools# diff bdaddr.c bdaddr_p.c 
279,280c279,280
< 		hci_close_dev(dd);
< 		exit(0);
---
> 		//hci_close_dev(dd);
> 		//exit(0);

Как обещал

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

Т.е. достаточно целенаправленно сделать то, что убьёт железку, и при следующем включении адаптер будет неработоспособен.

Поправил, не благодари.

Это Ж каким образом оно должно было убить железку? Для BT нулевой адрес является широковещательным.

Кроме того, насколько мне известно, ethernet меняет свой адрес исключительно в состоянии DOWN.

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