ПРЕСС-ЦЕНТР

Разработка "cлепых узлов" в Windows XP Embedded

МКА 5/2005

С.В. Золотарёв

В нашей новой рубрике "Встраиваем вместе" будут рассматриваться конкретные технические вопросы, которые, с одной стороны, являются типовыми и часто встречаются в повседневной практике разработчика встраиваемых компьютерных систем, а с другой – недостаточно освещены в технической литературе. Наша новая рубрика рассчитана на достаточно опытных разработчиков и предполагает наличие определённых знаний в данной области, но будет полезна и начинающим пользователям. Материалы для данной рубрики основываются на реальном опыте работы разработчиков, а тематика освещаемых проблем порождена конкретными проектами.

Первые несколько заметок будут посвящены решению некоторых проблем при использовании (построении, отладке, конфигурировании, управлении, тиражировании) систем на основе операционной системы Windows XP Embedded.

Термин "слепой узел" (headless system) ссылается на систему, которая не имеет карты графического видеоадаптера (VGA), клавиатуры или мыши. Примером слепого узла может быть сетевое устройство хранения данных. Для выполнения функций графической подсистемы операционной системе Windows XP требуется видеодрайвер для того, чтобы взаимодействовать с аппаратными средствами. Все доступные в настоящее время видеодрайверы зависят от аппаратных средств, лежащих в их основе. Однако, для поддержки "слепой работы", ОС Windows XP Embedded (XPe) имеет драйвер Headless VGA Driver, который исключает потребность в реальных аппаратных средствах поддержки видео. Графическая подсистема может выполнять вызовы функций к драйверу, но драйвер не осуществляет доступа к каким-либо аппаратным средствам. Вместо этого видеоинформация держится в памяти, и на обращение к драйверу возвращается подтверждение, указывающее успешное завершение видеокоманды.

Компонента Headless VGA Driver может включаться в исполняемый образ с помощью её добавления явно или косвенно, через использование компоненты Terminal Services Core. Обе компоненты включают Headless VGA Driver, но только одна из них может существовать в конфигурации. Добавление терминальных сервисов значительно увеличивает размер исполняемого образа. Кроме того, исполняемый образ требует использования компоненты VGA Boot Driver, которая должна быть включена в конфигурацию, невзирая на то, присутствует ли VGA карта или нет. Для того, чтобы увидеть компоненту VGA Boot Driver в браузере компонент, пороговое значение видимости в окне параметра Target Designer должно быть не менее 200.

При построении слепого узла существует ряд аспектов, требующих обсуждения. Так, BIOS должен поддерживать работу без видеоадаптера и/или клавиатуры. Некоторые BIOS ы будут прекращать работу, если эти устройства не присоединены. Для поддержки слепого узла BIOS должен быть в состоянии отключить проверку наличия видеоадаптера и/или клавиатуры. Кроме этого, Windows XPe имеет встроенные возможности, которые обеспечивают решения для сценариев работы в режиме слепого узла. Мы детально обсудим эти вопросы.

Одно из таких решений – включить сетевую поддержку в системе. Сеть – это необязательная возможность во встраиваемой системе, но она может быть использована в качестве альтернативного ввода пользователя при работе слепого узла. Приложение, которое работает на слепом узле, может программироваться для получения ввода пользователя через сетевое соединение или из загружаемого файла. Сеть может использоваться в соединении с некоторыми средствами удалённого администрирования, включаемыми во встраиваемую систему с Windows XPe, такими как сервер Telnet и Terminal Server Remote Desktop, которые могут использоваться для удалённого управления системой. Система не обязательно должна быть слепой, чтобы поддерживать такие средства удалённой работы, но это часто бывает полезным для того, чтобы обеспечить дистанционный доступ к системе (слепой или нет).

Другая потенциальная проблема в использовании слепого узла, которая была решена в Windows XP Embedded, – это невозможность прямо ответить на интерактивные сообщения, диалоги и системные сообщения. Операционная система XPe может быть сконфигурирована для перехвата этих сообщений, выполняя отклик на них по умолчанию и записывая всю интерактивную информацию в файл протокола (log-файл). Эта концепция называется "Перехват системных сообщений" (System Message Intercept). Кроме того, вы можете создать специальное приложение для управления перехватом системных сообщений. Наиболее простой способ реализации в целевой системе перехвата системных сообщений – это использование базовой функции Enable Default Reply для установки отклика по умолчанию. Например, когда кнопка может иметь два значения OK и Cancel, в ваших силах установить автоматический выбор определённого ответа по умолчанию.

Возможности удалённого менеджмента в Windows XP Embedded

При реализации сценариев некоторых устройств (таких, как слепой узел), пользователь может столкнуться с рядом сложностей, связанных с отсутствием физического доступа к системе после того, как она была установлена ("прошита") на целевом устройстве (target). ОС Windows XPe предлагает инструментарий для помощи администратору такого устройства.

Сервер Telnet Server позволяет пользователю присоединиться к устройству с другого компьютера как клиенту Telnet и обеспечивает интерфейс пользователя из командной строки для работы с компьютером, который весьма похож на Command shell. По умолчанию, сервер Telnet может работать только при наличии корректной комбинации <имя пользователя/пароль> для входа в локальную систему сервера Telnet.

Использование сервера Telnet для удалённой работы с системой, которая использует Command shell, позволяет удалённому пользователю работать с любой задачей, которая выполняется на локальной системе. Если удалённая система использует Explorer shell, то сервер Telnet ограничивает удалённых пользователей использованием приложений с командной строкой. Компонента Terminal Server Remote Desktop обеспечивает удалённый доступ к рабочему столу компьютера, который выполняет терминальные сервисы. При присоединении удалённая машина будет иметь окно, которое отображает рабочий стол целевой системы с XPe, и позволит пользователю выполнять операции на целевой системе так, как будто он находится непосредственно на ней.

Одним из старейших применяемых протоколов является протокол FTP (File Transfer Protocol). Он был спроектирован для передачи файлов между компьютерами и преобразованием данных различных типов. Компонента IIS FTP Server позволяет пользователю присоединяться к локальному серверу с удалённой машины и передавать файлы между компьютерами в сети, используя TCP/IP. Кроме того, команды FTP могут использоваться для работы с файлами листингов и папками (директориями) на удалённой машине. Так как сервис FTP работает с IIS, то файлы могут передаваться за счёт использования web-браузера.

Для соединения с устройством и использования сервера Telnet, Terminal Server Remote Desktop или IIS FTP Server, пароль, используемый для входа в систему, не может быть пустой строкой или состоять из пробелов. Пароль может присваиваться в компоненте Administrator Account в конфигурации разрабатываемой системы. Выберите компоненту Administrator Account, кликните на кнопке Advanced на панели Details и отредактируйте поле расширенных свойств cmiUserPassword, введя пароль. То же самое может быть сделано для любой компоненты User Account, которая существует в конфигурации.

Кроме того, компонента, известная как Web Based Enterprise Management (WBEM) Windows Management Instrumentation (WMI), является инфраструктурой управления, которая обеспечивает менеджеров информацией и средствами контроля в среде предприятия. Используя WMI, информация может быть запрошена и установлена на настольных системах, приложениях, сетях и других компонентах предприятия. Возможности WMI могут встраиваться в приложения, которые информируют пользователя о возникновении важных событий. Компонента WMI предлагает разнообразные программные интерфейсы и средства, которые разработчик может использовать. Дополнительную информацию о WMI можно найти в Microsoft Platform SDK.

Simple Network Management Protocol (SNMP) – это стандартный протокол Internet для обмена управляющей информацией между средствами управления и элементами управления. Элементы управления могут включать хосты, роутеры, мосты и хабы. Протокол SNMP может использоваться для мониторинга производительности сети, конфигурирования удалённых устройств и поиска сбоев в сети или неправильного доступа. Дополнительную информацию о WMI можно найти в Microsoft Platform SDK.

Давайте построим конфигурацию системы в Windows XP Embedded, которая будет поддерживать работу по Telnet, FTP и обеспечивать возможность использования средства удалённого рабочего стола (Remote Desktop). Для этого в конфигурацию системы с помощью Target Designer надо включить ряд компонент (см. Таблицу)

Таблица

Для того, чтобы присоединиться к целевой системе и использовать возможности добавленных компонент, надо установить пароль Администратора в виде непустой символьной строки. Для этого в компоненте Administrator Account на панели Details надо "кликнуть" кнопку Advanced и в списке свойств поля cmiUserPassword ввести символьную строку (например, admin), которая будет определять пароль администратора.

В компоненте Automatic Logon, которую мы уже добавили в конфигурацию разрабатываемой системы, выберем поле Setting и в открывшейся панели в поле User name введём Administrator, а в поле Password - введём admin.

Конфигурация системы, поддерживающей удалённый менеджмент, создана. Выполнив в Target Designer последующие стандартные шаги Check Dependencies и Build Target Image, мы в директории C:\Windows Embedded Images (или аналогичной) получим образ нужной нам целевой системы. Все файлы из этой директории надо скопировать на жесткий диск (или его аналог, например DiskOnModule или Compact Flash) и загрузиться с этого диска.

Теперь давайте несколько слов скажем о тестировании построенной нами целевой системы (target), которое выполняется с тестирующего компьютера. Будем предполагать, что в целевой системе мы задали ip-адрес (например, с помощью утилиты netsh), и у нас установлена связь между тестирующим компьютером и целевой системой. Для тестирования удалённого доступа к рабочему столу целевой системы (Remote Desktop Connection) на целевой системе надо открыть доступ к этому рабочему столу. Делается это на целевой системе следующим образом: правым кликом на My Computers выбираем опцию Properties, на которой в закладке Remote устанавливаем флажок Allow users to connect remotely to this computer.

Клиента telnet можно вызвать на тестирующем компьютере из командной строки с помощью команды telnet <ip-адрес целевой системы>. На запрос имени пользователя и пароля надо ввести Administrator и admin. Аналогично ftp-клиента можно вызвать из командной строки на тестирующем компьютере с помощью команды ftp <ip-адрес целевой системы>. На запрос имени пользователя и пароля надо также ввести Administrator и admin.

Для тестирования возможностей удалённого доступа к рабочему столу целевой системы (Remote Desktop) можно воспользоваться следующей последовательностью на тестирующем компьютере: Start, All Programs, Accessories, Communications и Remote Desktop Connection. В поле Computer надо ввести ip-адрес целевой системы, после чего на запрос имени пользователя и пароля надо также ввести Administrator и admin.

Итак, мы рассмотрели ряд вопросов, связанных с удалённым мониторингом целевых систем на базе Windows XP Embedded, начиная с построения таких систем с помощью Target Designer a и кончая их настройкой и тестированием.

В cледующий раз мы поговорим о таких возможностях Windows XP Embedded, как расширенный фильтр записи (EWF) и создание загрузочных компакт-дисков в формате El Torito.