Magic Mouse для Windows
Выпустив в октябре революционную Magic Mouse, Apple еще раз порадовала владельцев Mac новым удобным устройством. Позже компания выпустила обновление драйверов BootCamp 2.2, которое обеспечивает поддержку Magic Mouse в операционных системах Windows, установленных через BootCamp на Macintosh.
http://www.hacker.telefunkin.net/images/angar/MagicMouse.png
Как и многие другие я, увидев эту мышку, сразу же ее захотел.
Я ее заказал, и вот звонок из службы доставки и долгожданная прозрачная коробочка у меня на столе.
Я надеялся использовать эту мышку не только на Macintosh, но и под Windows! Разочарование пришло довольно быстро… И вот как раз об опыте прикручивания этой мышки к операционной системе Windows и пойдет речь в топике.
Однако хочу заметить — некоторого успеха я достиг Все получилось, мышка работает!
Итак, для начала хочу развеять / прокомментировать несколько «мифов» (в кавычках — потому что некоторые мифы являются мифами о мифах: далее по статье будет понятно, почему), в которые могут поверить собирающиеся купить эту мышку и использовать ее с Windows.
Мифы
Миф 0. Хакеры
Привел это для общей полноты статьи, хотя это все и так знают. Никакого особого хака или взлома при «портировании» официальных драйверов не было — их просто нашли в одном из архивов обновления boot camp. К тому же поддержка вовсе не полноценная — из сенсорных возможностей работает только вертикальный и горизонтальный скролл.
Миф 1. Эти драйверы — для Windows
На самом деле это конечно так и есть, однако предназначаются они для Windows, установленной на компьютерах Mac через уже упомянутый выше boot camp. И в сети можно найти множество противоречивых комментариев и разочарований пользователей, которым так и не удалось заставить работать эту мышь полноценно под обычной Windows, работающей на обычном PC. Однако вместе с этим можно найти и противоположные отзывы — некоторым все же удалось… значит удастся и нам! Подтверждаю — драйверы устанавливаются и работают на обычной Windows на IBM-совместимом PC, но они капризные.
Миф 2. Драйверы поддерживают Windows XP, Vista и 7 (x32 и x64)
Под XP вероятность удачи сильно ниже (однако успешные установки есть). Насколько я мог заметить, анализируя эти драйверы — они все же в первую очередь для Vista (и 7): WDF-инсталлятор (WdfCoInstaller01005.dll) прямиком взят из нее, и, кажется, не поддерживает установку на XP. Я не профессионал в этой области, однако все мои попытки установить драйверы поставляемым вместе с драйверами установщиком на Windows XP x64 не увенчались успехом — файлы не копировались в нужные директории, хотя и ошибок не выдавалось.
Миф 3. Работа с USB Bluetooth адаптером
У меня — не получилось. Можно найти на зарубежных форумах неуверенные комментарии о том, что работает, в том числе в комментариях на российских форумах можно найти счастливчиков. Для подключенной мыши через USB адаптер устанавливается драйвер Bluetooth HID Device, который подключает стек bluetooth и входящий в него hidusb.sys, который и отвечает за работу с USB. Однако драйвер от Apple его не использует и попытки ручного добавления такой привязки также не помогли. О проделанных изменениях я еще напишу чуть ниже (если я что-то делал наивно и неправильно — прошу помочь и направить на истинный путь в комментариях). Вторая причина в том, что драйверы нормально устанавливаются и работают только поверх стандартного bluetooth-стека Windows (отсюда рецепт — если ваш адаптер работает без дополнительных драйверов — 90% что и мышка с ним заработает), а USB адаптеры обычно требуют сторонних драйверов, и это прибавляет нам дополнительных проблем. Впрочем, здесь можно попробовать добавить поддержку конкретного адаптера стандартными драйверами, об этом я тоже упомяну.
Инструкции по установке
Далее приведу несколько конфигураций, которые попробовал я сам, а также другие хакерюзеры. Комментарий «работает» означает, что работает как движение курсора мыши, так и горизонтальный и вертикальный скролл. «не работает» означает, что работает только курсор.
Magic Mouse + Windows 7 Ultimate (32 bit) + ноутбук с bluetooth адаптером внутри (dell studio 1537) = работает
Magic Mouse + Windows Vista Home Basic (32 bit) + ноутбук с bluetooth адаптером внутри (HP ProBook 4710s) = работает
http://www.hacker.telefunkin.net/images/angar/dellm.png
Bluetooth адаптер определился и установился сам, стандартные драйверы Windows оказались поддерживающими его, поэтому дополнительных трудностей не возникло.
Инструкция по установке:
Установить драйвер bluetooth, добиться его работоспособности.
Включить мышку, подключить ее («найти» ее, используя поиск bluetooth-устройств). На этом шаге возможно потребуется ввести код подтверждения для создания пары, подходит классический «0000». Однако у меня этого не потребовалось. Далее установятся все необходимые HID-драйверы и мышка начнет работать — движение курсора, левый и правый клик. Скролл на данном этапе работать не будет.
Установить драйвер от Apple (скачать можно: для 32- битных и для 64- битных версий). После установки произойдет автоматическая замена HID-драйвера на Apple Wireless Mouse, мышка на миг отключится и затем «полноценно» заработает — клики, горизонтальный и вертикальный скролл.
http://www.hacker.telefunkin.net/images/angar/HID.gif
Радость!
Magic Mouse + Windows XP Professional (64 bit) + USB Bluetooth «Prolife» (стек IVT Bluesoleil) = не работает
http://www.hacker.telefunkin.net/images/angar/prolife.png
Сразу скажу — не получилось. И чего только не пробовал. Если есть среди читателей этого топика счастливчики, у которых получилось, или которые знают что можно еще попробовать — очень прошу прокомментировать!
Итак, что же я пробовал. Сначала прямой путь:
Установил драйвер bluetooth для своего адаптера — IVT Bluesoleil.
Включил мышку, подключил, ввел код «0000», заработала, задвигалась. Скролл естественно нет.
Установил драйвер для 64-битной версии, получил сообщение об успешности установки и… ничего не изменилось. На самом деле драйвер даже не скопировался в нужные директории.
Попытки поставить драйвер самостоятельно, заменив стандартный Bluetooth HID Device:
Распаковал архив с драйвером с помощью WinRAR, нашел нужные inf и sys файлы.
Диспетчер устройств -> Human Interface Devices -> Bluetooth HID Device. Обновил драйвер, выбрал ручной выбор (простите) драйвера, указал на inf файл от Apple, далее подтвердил все недовольства о неподписанности драйвера — установка завершена. Однако в диспетчере устройств восклицательный знак — конфликт, устройство не запускается. Причина — несовместимость с драйвером Bluesoleil. Мышь — не двигается.
Неудача, пробуем исправить. Замена драйвера Bluesoleil стандартным драйвером Windows:
Для начала нужно иметь поддержку bluetooth — установить SP2 для XP.
Далее узнать VID и PID значения устройства Bluetooth — сделать это можно в диспетчере устройств, найдя там Bluetooth адаптер, открыв свойства и перейдя на вкладку «Details». У моего адаптера это значения 0400 и 080A соответственно.
http://www.hacker.telefunkin.net/images/angar/sshot.png
Теперь нужно отредактировать файл bth.inf (\Windows\inf\bth.inf): добавить строчку с нужными VID и PID в одного из производителей (по сути — без разницы) по аналогии с другими. Я добавил строчку в секцию производителя Broadcom: Prolife= BthUsb, USB\VID_0400&PID_080A
Если все шаги выполнены, то можно обновлять драйвер через диспетчер устройств (удалив перед этим все сторонние драйверы вроде Bluesoleil), указав автоматический поиск. Проделанные изменения позволят Windows обнаружить устройство и установить стандартный драйвер. Если повезет — устройство заработает без проблем. У меня — заработало.
После этого я попробовал вновь заменить драйвер Bluetooth HID Device на Apple Wireless Mouse и на этот раз конфликта не возникло, однако мышь по-прежнему не работала совсем… Я пробовал устанавливать популярный драйвер от Toshiba, однако это не привело к успеху (был конфликт HID драйвера).
Я уже говорил, что одной из теоретических проблем работы драйвера с USB адаптером является неподдержка последнего драйвером Apple. Я попробовал (посмотрев прочие аналогичные драйверы) добавить поддержку вручную, почти даже не надеясь на успех. Что ж, возможно кому-то это поможет, поэтому я опишу свои действия:
Распаковываем драйвер с помощью WinRAR.
Находим файл AppleBMT64.inf (или AppleBMT.inf для 32-битных версий), открываем в своем любимом редакторе.
Находим секцию [AppleWirelessMouse.NT] и редактируем строчки Include и Needs, добавляя input.inf и HID_Inst.NT (не забывайте, инструкция для Windows XP x64) соответственно:
Include=hidbth.inf, input.inf
Needs=HIDBTH_Inst.NT, HID_Inst.NT В input.inf можно найти подключение упомянутого выше hidusb.sys.
После проделанных изменений вновь устанавливаем драйвер и обнаруживаем нужные нам подключенные файлы (hidusb.sys и другие) в свойствах драйвера.
http://www.hacker.telefunkin.net/images/angar/sshot2.png
Однако мышь по-прежнему не работает…
Да, стоит еще отметить, что упомянутый также WdfCoInstaller01005.dll я пробовал заменить на более новый и подходящий для XP WdfCoInstaller01009.dll (взятый из SDK для разработчиков драйверов), но это не помогло установке драйвера.
Magic Mouse + Windows 7 Ultimate (64 bit) + USB Bluetooth «Prolife» = не работает
Аналогично — заставить мышку работать не получилось. Однако в Windows 7 мне не удалось добиться работоспособности моего адаптера со стандартным драйвером Windows. Вполне возможно, что шанс еще есть. Но в целом — действия аналогичны предыдущему разделу, за исключением того, что bth.inf так просто отредактировать не получится — нужно его скопировать в отдельный каталог вместе с bth.pnf, и уже его потом указывать при ручной установке, иначе Windows 7 будет использовать драйвер из своего специального хранилища).
Magic Mouse + Windows 7 / Windows XP (32 & 64 bit) + USB Bluetooth «Noname» (стек Windows) = работает
http://www.hacker.telefunkin.net/images/angar/workedadapter.png
Спасибо хакерюзеру Kadet ! У него в указанной конфигурации мышь работает. К сожалению, производителя bluetooth адаптера установить на удается (как и для большинства подобных, кстати), однако важно другое — он работает с драйверами Windows «из коробки», без дополнительных хитростей.
Magic Mouse + Windows 7 (32 & 64 bit) + USB Bluetooth «Rovermate Adaptmate-095 Bluetor Adapter» = работает
http://www.hacker.telefunkin.net/images/angar/rovermate_adaptmate-095.png
Несмотря на то, что в комплекте с адаптером поставляется драйвер IVT Bluesoleil, он работает замечательно и со стандартными драйверами Windows. После подключения мышки и установки драйверов Apple — начал работать и скролл.
Резюме
Надеюсь, статья поможет другим пользователям: кому-то вселит уверенности и желания купить мышку и попробовать, а кого-то предостережет от траты денег. Также надеюсь найти помощи — наверняка есть люди опытнее, а возможно даже такие, кому удалось приучить мышь к USB Bluetooth адаптерам.