Unknown144,
а можешь выложить hex-файл?
hex или hcd? hcd был сделан из hex (утилитой hex2hcd), взятого из windows-драйвера (мне просто лень было писать целиком длинное имя, я его урезал). Выложить-то могу (если разберусь, как тут файлы прикреплять), но дело похоже не только в нём.
В общем, работает оно через раз. В ходе дальнейших экспериментов я установил драйвер bluetooth на винду под виртуалкой (XP). Если теперь подключить устройство к виртуалке, а потом отключить, то оно... почти всегда работает. Далее выяснилось, что если забыть отключить устройство от виртуалки, и завершить работу windows, потом устройство не видно вообще, даже lsusb его не показывает. Что бы это значило?
Далее. Если выключить ноутбук, а потом быстро включить (через секунду-другую), глюки будут непредсказуемые, начиная от невозможности что-то сделать с этим несчастным bluetooth и вплоть до падения ядра. Если между выключением и включением прошло более существенное время, серьёзных глюков не бывает и bluetooth можно в принципе заставить работать (как с применением виртуалки, так и без нее, но угадать, какой способ сработает, заранее невозможно). В итоге я пришел к выводу, что linux-драйвер (в отличие от windows-драйвера) его неправильно инициализирует, перед тем, как прошивку туда заливать. Остается вопрос, как его инициализировать правильно.