3g module driver что это
Существуют ограничения на размер вложений и текстов:
Информацию об ограничениях можно получить при помощи АТ-команды AT+CMMSDOWN=?.
Отправка/чтение почты (SMTP, POP3)
3G-модули поддерживают протоколы SMTP (Simple Mail Transfer Protocol, простой протокол передачи почты) и POP3 (Post Office Protocol, v3, почтовый протокол для осуществления динамического доступа к почтовому ящику). Применяя несложный набор АТ-команд, при помощи 3G-модуля можно принимать и отправлять электронную почту при условии наличия регистрации в сети сотового оператора.
Прием электронного письма с почтового сервера, как и его отправка, также реализуется посредством небольшого набора АТ-команд:
Наличие у 3G-модулей SIMCom встроенного стека протоколов SMTP и POP3 может значительно упростить и ускорить процесс разработки сложной системы, где требуются передача разноформатных файлов и простой, доступный интерфейс пользователя. Пользователь такой системы может осуществлять управление сложной сетью при помощи любого компьютера или смартфона, имеющего доступ в Интернет, и получать отчеты о работе системы на электронный ящик в форме текста, звуковых файлов, фото, видео или файла любого другого формата.
Обмен файлами по протоколу FTP/FTPS
В системах удаленного сбора и архивации данных на едином сервере удобно применять стандартный протокол передачи файлов FTP. 3G-модули SIMCom поддерживают протоколы FTP и FTPS (или FTP+SSL). Последний является защищенной версией протокола FTP, в которой передача данных и команд происходит по шифрованному каналу протокола SSL. Это гарантирует безопасную передачу данных между 3G-модулем и FTPS-сервером, что немаловажно для систем с высокими требованиями к безопасности информационного канала.
Соответствующие АТ-команды модулей предоставляют набор инструментов для полноценной работы с удаленным FTP/FTPS-сервером. При помощи АТ-команд можно задавать адрес FTP-сервера, порт, режим (активный/пассивный), тип (ASCII/binary), логин и пароль, а также осуществлять операции скачивания/загрузки файла на FTP-сервер, перечисления файлов и папок на FTP-сервере.
Также имеется возможность загрузить на FTP-сервер файл, находящийся в файловой системе модуля, или файл, полученный по последовательному порту. Система команд для работы с FTPS-сервером также позволяет удаленно создавать/удалять директории и удалять файлы.
Ниже приведен простой пример загрузки файла из файловой системы модуля на FTP-сервер с последующей его загрузкой и выводом в последовательный порт модуля.
Встроенный GPS-приемник
Аппаратно-программные ресурсы 3G-модулей обладают широким набором коммуникационных и мультимедийных функций, что значительно упрощает разработку и стоимость конечного изделия. В случае навигационных решений, где требуется наличие GPS-приемника, могут использоваться модули SIM5218 и SIM5320, в которых навигационный блок GPS-интегрирован в чипсет. Блок GPS в модулях синхронизирован с работой основных функций и для управления имеет свой набор АТ-команд.
Несмотря на то, что GPS не является основной функцией 3G-модулей, GPS-блок имеет приемлемые характеристики, соответствующие современному уровню. Характеристики GPS-блоков модулей SIM5218 и SIM5320 приведены в таблице 1.
1) ChipsetIntelChipset Driver9.1.1.10154.7 MB2009/10/23
2) 3GHuawei3G Module Driver (EM770W)2.0.3.82713.0 MB2009/10/21
3) 3GHuawei3G Module Driver For EM770W2.0.3.82512.6 MB2009/10/15
4) 3GOption3G Module Driver GTM3825.1.30.05.6 MB2009/10/22
5) 3GOption3G Module Driver For GTM382E5.1.30.05.6 MB2009/10/15
6) 3GQUALCOMM3G Module Driver Gobi20002.0.6.952.7 MB2009/10/23
7) 3GQUALCOMM3G Module Driver Gobi10001.0.27109.9 MB2009/10/23
8) 3GQUALCOMM3G Module Driver For Gobi20001.1.09a52.1 MB2009/10/15
9) 3GQUALCOMM3G Module Driver For Gobi10001.0.27109.9 MB2009/10/15
10) AHCIIntelSATA AHCI Driver8.9.0.102327.9 MB2009/10/15
11) AudioRealtekAudio Driver6.0.1.591158.5 MB2009/10/15
12) BluetoothBroadcomBluetooth Driver6.2.1.80057.7 MB2010/02/22
13) CameraChiconyCamera Driver (Lilac3G_Daisy2G)1.1.92.6242.8 MB2009/10/23
14) CameraSuyinCamera Driver (Rose3G_LavenderG)5.2.7.13.3 MB2009/10/23
15) CardReaderRealtekCard Reader Driver6.1.7100.300937.2 MB2009/10/22
16) LanAtherosLAN Driver (AR8131)1.0.0.104.5 MB2009/10/23
17) LanAtherosLAN Driver1.0.0.104.5 MB2009/10/15
18) ModemLSIModem Driver2.1.94689.3 KB2009/10/21
19) ModemLSIModem Driver For Optional2.1.94689.6 KB2009/10/15
20) SATAIntelSATA Driver AHCI8.9.0.102321.4 MB2009/10/22
21) TouchPadSynapticsTouchpad Driver13.2.2.028.2 MB2009/10/21
22) VGAATIVGA Driver8.652.1173.5 MB2009/10/22
23) VGAIntelVGA Driver8.15.10.185525.1 MB2009/10/21
24) Wireless LANAtherosWireless LAN Driver (XB63_ HB93_HB95_AR5B91)8.0.0.1715.4 MB2009/10/23
25) Wireless LANAtherosWireless LAN Driver For AR5B91-HB93-HB958.0.0.1715.4 MB2009/10/15
26) Wireless LANIntelWireless LAN Driver (CondorPeak)12.5.0.597.1 MB2009/10/23
27) Wireless LANIntelWireless LAN Driver (5100/5300/5150/5350)12.4.1.114.8 MB2009/10/21
28) Wireless LANIntelWireless LAN Driver For 512AN12.4.1.112.2 MB2009/10/15
29) Wireless LANIntelWireless LAN Driver For 112BN12.5.0.593.3 MB2009/10/15
Где вы всё это взяли? Зайдите на сайт производителя ноута, введите марку и скачайте набор под вашу операционную систему. И установите всё, что скачаете. А тут у вас какой-то коктейль из драйверов для разных ноутов.
Sierra Wireless AirPrime MC7710 LTE/HSPA+
- LTE 800/900/1800/2100/2600* MHz
- WCDMA 900/2100 MHz
- EDGE/GPRS/GSM 900/1800/1900
* LTE 2600 FDD, Band 7 (2500—2530 МГц / 2620—2650 МГц) как раз и используется Yota и виртуалными операторами МегаФон и МТС
Свой модуль я заказал на ebay за $260. Обратите внимание, что эти модули зачастую залочены на определенного оператора. Как я понял, DC-unlocker еще не обучен разблокировке этих моделей, поэтому ищите unlocked-версию.
Чуть менее, чем через месяц после заказа, он оказался на моем столе:
Три U.FL выхода предназначенны для подключения трех антенн: Внутренней 3G/LTE, GPS и внешней 3G/LTE.
Не откладывая дела в долгий ящик, ставим модуль куда положено и подключаем антенны:
На фото разобранный UMPC Samsung Q1UP, к модулю приклеена внутреняя 3G антенна, и последний готов занять свое место в miniPCIe разъеме.
C GPS пока дела обстоят сложно. Я планировал подключить к этому разъему пигтейл MMCX-f на IPX U.FL чтобы вывести на корпус разъем MMCX и подключать к нему внешнюю GPS антенну, которая у меня есть в наличии.
Но к сожалению эти пигтейлы до меня еще не добрались. Поэтому я подключил туда пленочную Wi-Fi антенну, которую вы видите на изображении слева (просто чтобы попробовать).
Забегая вперед, скажу, что GPS у меня предсказуемо не заработал. Поэтому про GPS на этом модуле я расскажу в другой раз, когда у меня будет все необходимое.
К разъему AUX я подключил пигтейл U.FL RP-SMA-f к которому в дальнейшем будут традиционно подключаться Wi-Fi/WiMax антенны.
Дальше начинается самое интересное.
На сайте Sierra Wireless нельзя скачать драйверы и AirCard Watcher для этой модели. Утилита Sierra Watcher позволяет настраивать устройство, вручную выбирать сеть, выбирать предпочтительный диапазон (2G/3G/LTE), включать GPS и многое другое. Также SierraWatcher содержит нужные драйверы. Чтобы найти подходящую версию Watcher'а пришлось изрядно попотеть. Чтобы облегчить задачу последователям, я выкладываю в удобный доступ файл Sierra Watcher для MC7710.
Что на самом деле нужно сделать, тобы подключиться к Мегафон LTE *
- Нужно получить специальную SIM-карту которая называется U-SIM. Вашу сим-карту должны бесплатно поменять на U-SIM в любом офисе обслуживания абонентов.
- Нужно попросить, чтобы вам подключили тарифную опцию Internet L 4G, Internet XL 4G или Internet XXL 4G. подробнее о тарифах
- И включили LTE.
Ворчание
Теоретически, это можно сделать самостоятельно, через Сервис-Гид. Но на практике, LTE не заработает, потому что есть некая опция, которая позволяет зарегистрироваться в сети LTE Мегафона, но включить ее могут только сотрудники Мегафона в офисе обслуживания или операторы колл-центра. Практика показала, что в абонентской службе мало кто разбирается в этом вопросе. В результате, после того как я получил U-SIM и подключил тарифную опцию Internet XXL через сервис-гид, в колл-центре меня уверили, что у меня должно работать 4G, и я целый день безуспешно сражался с драйверами, Watcher'ами и AT-командами. Вечером, приехав в офис обслуживания, я поделился своей проблемой и попросил, чтобы мне продемонстрировали, что моя сим-карта может подключиться к LTE хоть с каким-нибудь устройством. Но сотрудник оператора взял мой паспорт, зашел в настройки моей учетки в мегафоне, грустно вздохнул, сказал что у меня была не включена та самая магическая опция LTE, которую самостоятельно никак нельзя включить. После этого у меня все отлично заработало.
Что нужно сделать, тобы подключиться к Yota
- Нужно прошить модем вот этой штукой: Прошивка Yota для MC7710.
- Сходить туда, где продают оборудование Yota (подойдет стойка в торговом центре), и получить SIM-карту Yota.
- Уговорить сотрудников Yota произвести первоначальную регистрацию сим-карты в сети Yota. (для этого нужно выйти в интернет через эту симкарту с официального устройства Yota)
Внешняя Антенна
LTE без внешней антенны или не ловится совсем, или ловится еле-еле. Очевидно моя встроенная 3G антенна совсем не подходит для диапазона 2600, а вот Wi-Fi'ная антенна Planet 5dbi обеспечивает отличную скорость.
Потому что, как говорил drunken, «Антенны для вафли … имеют низкую эффективность, но работают в широком диапазоне.» А 2.6ГГц от 2.4ГГц не так уж далеко :)
Лично мне нравится то, что я могу поэксперементировать с антеннами при наличии удобного коаксиального разъема и радует трушный вид моего umpc .
Тем кому не хочется, чтобы из его ноутбука торчала такая штука, подходящим решением будет подключение к разъему aux внутренней Wi-Fi антенны, типа той, что я подключил к GPS.
Тесты с внешней антенной и без оной я приводить не стану, так как разница выглядит как «совсем не работает/ого-го как работает!»
Тестирование*
Windows Mobile Broadband
Отличная технология, которая позволяет использовать данный модем без запуска родного приложения, которое на мой взгляд не отличается особой эстетичностью. Мне вообще импонирует, когда аппаратное обеспечение управляется средствами операционной системы, а не bells and whistles от его разработчиков.
Эта технология поддерживается в Windows 7 и Windows 8. На КДПВ в заголовке поста — фрагмент панели Networks в Windows 8, которая появляется при нажатии на значок беспроводных подключений из области уведомлений:
Благодарность
Многим устройствам на базе встраиваемых систем необходим интернет. Проводное подключение к интернету для них не всегда возможно, и если устройства находятся в зоне действия сотовой связи, то к интернету можно подключиться с помощью GSM/3G/4G-модемов.
В этой заметке описан процесс создания дистрибутива ОС Linux для встраиваемой системы при помощи инструментария Yocto Project, позволяющий подключать устройство к интернету через GSM/3G/4G-модем и протокол PPP.
Содержание
Оборудование и программное обеспечение
Дистрибутив ОС Linux для встраиваемой системы будем собирать с помощью Yocto Project версии THUD 2.6.4 на ПК под управлением ОС Ubuntu 18.04.
Роль встраиваемой системы будет играть устройство BeagleBone Black Rev. C с подключенным к нему LTE-модемом Quectel EC21-E. Для этого мы воспользуемся отладочным набором UMTS<E EVB для тестирования UMTS и LTE модулей Quectel. Структурная схема стенда, с которым мы будем экспериментировать, приведена на рис. 1.
Рисунок 1 — Структурная схема стенда
Подготовка ПК для сборки дистрибутива
Убедитесь, что на вашем ПК есть 50 ГБ свободного дискового пространства и на нем установлены:
- Git версии 1.8.3.1 или новее;
- Tar версии 1.27 или новее;
- Python версии 3.4.0 или новее.
Установим необходимые пакеты:
Создание проекта и сборка дистрибутива
Создадим в домашней директории каталог, где у нас будет хранится репозитории Poky и мета-слои с рецептами. Назовем его habr-yocto-lte :
Перейдем в директорию habr-yocto-lte и создадим пустой git репозиторий:
Добавим в созданный git -репозиторий, в виде подмодулей, проект Poky и слой meta-ti :
Poky это как раз тот самый инструмент, с помощью которого мы будем собирать наш дистрибутив, а meta-ti – это слой, который объединяет в себе наборы рецептов, классов и конфигурационных файлов для процессоров Texas Instruments. Подробнее о том, что такое Poky и мета-слои можно узнать из Yocto Project Overview and Concepts Manual.
Создадим файл oe-init-build-env и сделаем его исполняемым:
Добавим в него следующий код:
Файл oe-init-build-env мы будем запускать всякий раз, при открытии нового окна терминала. Давайте запустим его командой:
При первом выполнении скрипта в папке ~/habr-yocto-lte будет создана папка build , содержащая конфигурационные файлы и результаты сборки дистрибутива, а в окне терминала мы увидим нечто вроде этого:
В принципе, теперь у нас все готово для сборки дистрибутива, но мы сделаем еще несколько «штрихов»:
- Добавим слой meta-ti и удалим слой meta-poky-bsp . Для этого запишем в переменную BBLAYERS , которая находится в файле ~/habr-yocto-lte/build/conf/bblayers.conf , следующее значение:
- В качестве целевой системы, на которой будет работать наш дистрибутив выберем beaglebone . Разрешим запись истории сборки, это поможет нам понять какие пакеты были установлены в дистрибутив, узнать их размер и др. Формат пакетов сделаем ipk и разрешим модули ядра. Вместо sysvinit будем использовать systemd . Обновим конфигурацию дистрибутива, добавив в конец файла ~/habr-yocto-lte/build/conf/local.conf следующие строки:
Запустим сборку дистрибутива:
Пока собирается дистрибутив можете пойти вздремнуть, у вас есть на это часа 4 :). Потом будет собираться всё гораздо быстрее.
Дистрибутив сохранится в каталоге ~/habr-yocto-lte/build/tmp/deploy/images/beaglebone
Добавление поддержки протокола PPP в ядро ОС
Устройство, на котором будет установлен дистрибутив, созданный в предыдущем разделе, уже сможет распознать LTE-модуль Quectel EC21-E, т.к. его драйвера есть в ядре Linux. Однако для подключения устройства к интернету нам необходимо добавить поддержку протокола PPP в ядро Linux, а также добавить в наш дистрибутив пакет ppp и написать для него файл расширения рецепта, который «расскажет» bitbake как и куда установить в нашем дистрибутиве необходимые файлы для pppd и chat , являющиеся частью пакета ppp .
Для конфигурирования ядра выполним команду:
Откроется стандартное окно menuconfig в котором надо выбрать:
Сохраняем конфигурацию и выходим из menuconfig . Учтите, что эта конфигурация будет применяться только на том ПК, на каком она была сохранена. Для того что бы она применялась на любом ПК при клонировании проекта из репозитория, необходимо сохранить конфигурацию в файле defconfig и написать рецепт расширения для recipes-kernel .
Сохраним конфигурацию ядра в файле defconfig :
Файл defconfig сохранится в каталоге ~/habr-yocto-lte/build/tmp/work/beaglebone-poky-linux-gnueabi/linux-ti-staging/4.19.94+gitAUTOINC+5a23bc00e0-r22a/build
Все рецепты расширения и рецепты, написанные нами, будем хранить в отдельном мета-слое. Создадим и назовем его meta-habr :
В каталоге ~/habr-yocto-lte появится директория meta-habr – это и есть наш мета-слой. В этой директории будет пример рецепта recipes-example , он нам не нужен, удалим его, а затем добавим наш мета-слой в файл bblayers.conf :
Пришло время сделать рецепт расширения для ядра Linux. Создаем необходимые каталоги и файлы:
Копируем ранее созданный файл defconfig в каталог ~/habr-yocto-lte/meta-habr/recipes-kernel/linux/linux-ti-staging/beaglebone
и добавляем в файл linux-ti-staging_%.bbappend следующий код:
Теперь конфигурация ядра, определенная в файле defconfig будет применяться всегда при сборке дистрибутива. Соберём его и убедимся, что требуемые модули PPP установлены:
Добавление в дистрибутив пакета ppp
Пакеты программ добавляются в дистрибутив с помощью переменной IMAGE_INSTALL_append . Добавим её в конец файла local.conf и присвоим ей значение соответствующее имени пакета:
Соберём дистрибутив и убедимся, что пакет ppp установлен:
Теперь в нашем дистрибутиве есть все для того чтобы подключить устройство к интернету через LTE-модем. Однако мне лично не очень хочется настраивать pppd и chat , входящие в пакет ppp , непосредственно на устройстве. Поэтому давайте добавим необходимые скрипты для этих программ в наш дистрибутив с помощью расширения рецепта ppp .
Скрипты для pppd и chat
Создадим три файла скриптов habrppp , habr-chat-connect и habr-chat-disconnect со следующим содержимым:
Несколько комментариев по представленным выше скриптам.
LTE-модуль Quectel EC21-E определятся в системе в виде четырёх последовательных портов:
Если в вашей системе есть другие USB-устройства, то нумерация портов, возможно, будет отличаться от приведенной выше, но последовательность останется та же. Поскольку в нашей системе нумерация портов соответствует выше приведенной, то в скрипте habrppp мы указали в качестве порта для соединения по протоколу PPP порт /dev/ttyUSB3 .
Обратите внимание на поля user и password в скрипте habrppp , а также на APN в команде AT+CGDCONT в скрипте habr-chat-connect , они должны быть установлены согласно рекомендациям сотового оператора.
Рецепт расширения для пакета ppp
Осталось совсем чуть-чуть. Создадим каталоги и файл для рецепта расширения ppp :
Скопируем скрипты, написанные в предыдущем разделе в папку ~/habr-yocto-lte/meta-habr/recipes-connectivity/ppp/ppp/beaglebone и добавим следующее содержимое в файл ppp_%.bbappend :
Заключение и ссылка на проект
Осталось собрать наш дистрибутив, с помощью программы balenaEtcher записать его образ на microSD карту памяти и запустить на устройстве. Теперь наше устройство подключено к интернету:
Подключением к интернету через протокол PPP можно управлять вручную, с помощью команд pon и poff . Для установления соединения выполните команду:
Напомним, что основным компонентом Intel ME является встроенный в чипсет микроконтроллер с кастомной архитектурой. Известна лишь базовая модель, это 32-х разрядный ARCtangent-A4 (ME 1.x — 5.x), ARCtangent-A5 (ME 6.x — 10.x), SPARC (TXE) или x86 (ME 11.x — . ).
Начиная с 6-й версии, ME-контроллер встраивают во все чипсеты Intel.
[рисунок взят отсюда]
Загрузчик его прошивки хранится во внутренней ROM и недоступен для анализа. Сама прошивка располагается в регионе ME во внешней SPI флэш-памяти (т.е. в той же памяти, где хранится BIOS). Структура этой прошивки такова, что весь исполнимый код разбит на модули, которые хранятся в сжатом виде (либо кастомной реализацией алгоритма Хаффмана, либо LZMA). Эти кодовые модули криптографически защищены от модификаций.
Если есть желание поревёрсить прошивку, рекомендуем воспользоваться этими двумя инструментами для изучения её структуры и распаковки кодовых модулей.
Итак, рассматриваемая подсистема является аппаратно-программной основой для различных системных функций (некоторые раньше реализовывали в BIOS) и технологий Intel. Их имплементация включается в состав прошивки Intel ME. Одной из таких технологий, использующих несколько особых привилегий Intel ME, является Active Management Technology (AMT).
AMT – технология удалённого администрирования компьютерных систем, для которых заявлена официальная поддержка Intel vPro (это бренд, объединяющий несколько технологий, в том числе, AMT). Речь идёт о системах с чипсетами линейки Q (например, Q57 или Q170).
Учитывая высокую стоимость таких платформ, вряд ли кто-то случайно приобретёт компьютер с AMT для того, чтобы принципиально этой технологией не пользоваться. Тем не менее, если под рукой именно такой продукт, и есть необходимость убедиться, что AMT на текущий момент выключена, следует воспользоваться утилитой ACUwizard:
[рисунок взят отсюда]
или средством Intel Management and Security Status (входит в состав ПО Intel ME для vPro-платформ, можно обнаружить в трее):
В продуктах, не относящихся к разряду vPro-платформ AMT включить нельзя, однако в состав прошивки Intel ME входят сетевые драйверы:
Это означает, что ME-контроллер (не будем забывать, что он всегда включен) имеет техническую возможность использования сетевого интерфейса.
Поэтому проблему стоит решать основательно – пытаться выключить подсистему Intel ME.
- Прошивку Intel ME в бинарном виде;
- Модули MEBx для BIOS;
- ПО Intel ME для ОС;
- Intel System Tool Kit (STK) — комплект программных средств и документации для сборки образов SPI флэш-памяти, применения этих образов и получении информации о текущем состоянии Intel ME.
Несмотря на то, что этот комплект распространяется по NDA (судя по меткам «Intel Confidential» в прилагаемых документах), многие вендоры забывают его вырезать из архива с ПО Intel ME, который передаётся пользователям. А ещё не закрывают свои ftp-серверы от внешнего доступа. В результате, утекших версий STK очень много. Здесь можно слить комплект для любой версии Intel ME.
Важно, чтобы major и minor version (первая и вторая цифры) используемого STK совпадала с версией Intel ME целевой системы, информацию о которой можно получить, например, воспользовавшись ME analyzer:
Проверять текущее состояние Intel ME можно при помощи утилиты MEinfo, которая через Management Engine Interface (MEI) получает информацию о работе этой подсистемы:
Напомним, что MEI является интерфейсом для связи основного CPU с подсистемой Intel ME и представляет собой набор регистров в конфигурационном пространстве PCI и в MMIO. Команды этого интерфейса не документированы, как и сам протокол.
Flash Image Tool
На старых платформах (Intel ME версии 5.x и ниже) выключить данную подсистему можно, воспользовавшись Flash Image Tool (утилита из STK, предназначенная для сборки образов SPI флэш-памяти из отдельно взятых регионов BIOS, ME, GbE). При сборке задаются параметры, которые прописываются в этих регионах и в регионе Flash Descriptors. В последнем есть один очень интересный флаг, «ME disable»:
Таким образом, для выключения Intel ME на целевой компьютерной системе, в её SPI флэш-память следует записать (программатором) новый образ с выставленным флагом «ME disable».
Работает ли этот способ, нам неизвестно. Но звучит правдоподобно, учитывая, что ME-контроллер в тех версиях интегрировался только в чипсеты линейки Q, т.е. был не обязательным компонентом для всех платформ.
Flash Programming Tool
Начиная с Intel ME 9 версии, в утилиту Flash Programming Tool, предназначенную для программирования SPI флэш-памяти компьютерных платформ, была добавлена возможность временно выключать Intel ME:
Выключение выполняется отправкой команды в MEI. После отработки Intel ME не подаёт «признаков жизни», не отвечает даже MEI:
Согласно документации, в таком состоянии подсистема Intel ME находится до следующего запуска компьютера или перезагрузки.
На vPro-платформах возможность отправки этой команды есть и в более ранних версиях. Для этого необходимо воспользоваться разделом конфигурирования ME/AMT в BIOS, где должна быть опция «Intel ME disable»:
[рисунок взят отсюда]
Нельзя говорить о том, что этот способ позволяет полностью отключить Intel ME, хотя бы потому, что до момента принятия команды на отключение ME-контроллер успеет загрузиться, а значит, выполнить некоторую часть кода прошивки.
Несмотря на то, что Intel ME не подаёт «признаков жизни» после этой операции, неизвестно, может ли эту подсистему заново включить какой-нибудь сигнал извне. Также неясно, насколько Intel ME выключена.
В интересах исключения возможности исполнения ME-контроллером кода прошивки, логично попробовать ограничить ему доступ к ней. А что? Нет кода – нет проблемы.
Проанализировав документацию, которая прилагается к STK, и, немного подумав, мы предположили, что это можно сделать следующими способами.
1. Вырезать (обнулить) ME регион из SPI флэш-памяти.
Те, кто пробовал так делать сообщают о том, что их платформа либо не загружалась без наличия подлинной прошивки ME, либо выключалась ровно после 30 минут работы.
Отказ компьютерной системы грузиться без прошивки Intel ME можно объяснить важностью ME-контроллера в процессе инициализации аппаратной составляющей. А 30-минутный таймаут наводит на мысль о WDT (Watch Dog Timer).
- стереть первые 0x20 байт в ней (таким образом повредив сигнатуру 0x0FF0A55A, которая определяет режим работы флэш-памяти);
- выставить джампер HDA_SDO (если он есть).
Таким образом, ME-контроллер не получит доступ к своему региону, и, следовательно, не будет исполнять прошивку.
С одной стороны, ME-контроллер так же, как и в предыдущем случае, может препятствовать нормальной работе компьютерной системы. С другой стороны, не дескрипторный режим включает т.н. manufacturing mode, который используется вендорами в отладочных целях, и есть шанс, что система запустится.
3. Известно, что прошивка Intel ME распаковывается в выделенную и скрытую от основного CPU область оперативной памяти – ME UMA. Выделение и блокировку этой области осуществляет BIOS во время конфигурирования карты памяти. Тогда почему бы не вырезать эти фрагменты кода из BIOS, чтобы данная область не выделялась. Тогда прошивка ME не будет распаковываться и исполняться.
Проведённые эксперименты показали, что такой способ тоже не годится, и система не запускается. К тому же, у ME-контроллера есть внутренняя SRAM, которая используется при недоступности ME UMA. Поэтому часть прошивки всё равно будет исполняться.
- отключение при каждом старте командой в MEI или отключение флагом в регионе flash descriptors (в зависимости от версии);
- ограничение доступа ME-контроллеру к своей прошивке либо перевод компьютерный платформы в manufacturing mode.
- препятствование нормальной работе ME-контроллера не обеспечивая его runtime-памятью.
Очевидно, что некоторые предложенные решения влекут за собой неработоспособность компьютерной системы, остальные не дают никакой гарантии того, что подсистема Intel ME действительно выключена. В связи с этим, мы пришли к выводу, что полностью выключить Intel ME крайне сложно.
Вероятно, это связано с тем, что, отключая Intel ME, мы нейтрализуем важный компонент в архитектуре компьютерной системы. Например, без ME некому будет решать важные системные задачи вроде ACPI или ICC (которые когда-то реализовывались в BIOS). Чтобы заставить платформу стабильно работать без ME, как минимум, необходимо вернуть реализацию этих технологий в BIOS.
Так или иначе, вопрос о том, как отключить Intel ME без потери работоспособности компьютерной системы, остаётся открытым.
Читайте также: