Как добавить поддержку еще неподдерживаемого устройства WWAN в OS X?

Как добавить поддержку еще неподдерживаемого устройства WWAN в OS X?

Моя главная цель — заставить мой компьютер с OS X поддерживать мой адаптер Huawei E1550 без установки каких-либо сторонних драйверов.

Дело в том, что AppleWWANSupport*.kext и вся инфраструктура WWAN — один из самых неряшливых фрагментов кода, когда-либо созданных Apple. Пролистав их Info.plist, можно легко увидеть, что они нацелены на поддержку практически всех основных брендов сотовых модемов (за исключением, вероятно, ZTE), но когда вы подключаете донгл Huawei, который «поддерживается», ничего не происходит — по крайней мере, драйвер CDC сообщает, что допустимая конфигурация не найдена.

Пока что я изменил CellPhoneHelper.kext/Contents/Info.plist, чтобы распознавать донгл как настоящее устройство WWAN, и добавил раздел для него в /Library/Modem Scripts/WWAN.ccl. Результаты таковы:

  • Значок WWAN появляется в строке меню, когда я подключаю адаптер
  • Появляются файлы устройства, так что я могу общаться с модемом
  • Системный профилировщик определяет модем как устройство WWAN и точно его опрашивает

Что не работает:

  • Значок WWAN просто завис на отметке «Инициализация...».
  • Следовательно, интерфейс WWAN не отображается и не может быть настроен.

...в этом и есть суть всего этого.

Huawei E1550 имеет четыре конечные точки: одна из них — «модем» (0), другая — «диагностика» (1), еще одна называется «PCUI» (2) и еще одна — для голосовых данных (5). Я подозреваю, что я неправильно их назначаю, и OS X использует неправильные, не имея возможности увидеть, что модем работает, не говоря уже о подготовке интерфейса.

Порт, который, по-видимому, "Data" (модем?), отвечает только на команды и не отвечает, скажем, на запросы USSD. Тот, что обозначен как "Diag", молчит, я не могу точно сказать, для чего он используется. Порт "PCUI" принимает команды AT, отвечает на них и выдает уровень сигнала и другие сообщения о состоянии через регулярные интервалы без их опроса.

OS X знает о четырех конечных точках, которыми в конечном итоге являются /dev/wwan (данные, модем, очень редко разные порты), /dev/wwanCNTL (управление) и /dev/wwanCMD (команда).

Итак, главный вопрос в том,как их правильно сопоставить?

Еще один большой вопрос: можете называть меня глупым, ноВ чем разница между портом управления и командным портом в контексте устройств WWAN (GSM/UMTS)?

Также приветствуются ссылки на технические описания и другую подобную информацию по Huawei E1550, также известному как Huawei Datacard (ven:dev = 0x12d1:0x1001).

решение1

Я попробовал похожий подход.

Я отредактировал /System/Library/Extensions/IOSerialFamily.kext/Contents/PlugIns/AppleWWANSupport.kext/Contents/Info.plist /System/Library/Extensions/CellPhoneHelper.kext/Contents/Info.plist

и получил похожие результаты, но я упустил из виду раздел /Library/Modem Scripts/WWAN.ccl.

Я считаю, что все три должны быть правильно «соединены», плюс я думаю, что вам все еще нужен скрипт модема Huawei, который они предоставляют.

Мне любопытно, как вы собрали столько информации о портах и ​​т. п. Есть какие-нибудь советы?

Я использую свой (e176) с драйверами huawei, но подключаюсь через обычный интерфейс модема. Программное обеспечение "Mobile Connect" - дерьмо и требует вечности для подключения, но я держу его под рукой, когда мне нужна дополнительная информация (и использовал его для отключения запроса PIN-кода!)

Я попробую снова, отредактировав все файлы и создав соответствующие записи... но в en я задаюсь вопросом, будет ли это иметь какое-либо преимущество. Это имело бы смысл только в том случае, если бы это подключалось намного быстрее (скажем, менее 5 секунд), а также, возможно, предлагало бы дополнительную информацию из строки меню.

Кстати, в ubuntu 12.10 это, кажется, работает таким образом. Там есть поразительно похожий пункт меню и измеритель уровня сигнала, не говоря уже о том, что он подключается менее чем за 3 секунды!!!

Поискав вокруг, я также обнаружил, что /System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBMergeNub.kext/Contents/Info.plist имеет запись для "Huawei Mobile", но идентификатор продукта и идентификатор поставщика не совпадают с моими. Я изменил их, но пока не о чем сообщить. Мне нужно попробовать отредактировать другие файлы :-(

Я не понимаю, если у Apple есть драйверы и фреймворк для модемов и телефонов, почему в этом случае Huawei не "подключается" к ним. Они разработали совершенно отдельную инфраструктуру для своих устройств. Они что, не знают о AppleWWANSupport? Или Apple их не включила?

Связанный контент