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

1667
Yaroslav Fedevych

Моя главная цель - сделать так, чтобы моя машина 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 aka Huawei Datacard (ven: dev = 0x12d1: 0x1001) приветствуются.

1

1 ответ на вопрос

0
xris

Я пробовал подобный подход.

Я отредактировал /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» - дерьмо, и для его подключения требуется вечность, но я сохраняю его, когда мне нужна дополнительная информация (и использовал его, чтобы отключить запрос пин-кода!)

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

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

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

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

Не уверен в этом, но может быть так же, что интерфейсы не документированы и доступны только на NDA или некоторых других. Так же, как никто не просто пишет новый видеодрайвер (я имею в виду, с надлежащим ускорением, OpenGL и прочее) Yaroslav Fedevych 11 лет назад 0