Заливаем Windows IoT Core на Raspberry Pi 3 (что в результате и зачем)

микрокомпьютер, raspberry, broadcom, hdmi, ethernet

Плата микрокомпьютера Raspberry Pi 3

Честно говоря, идея опробовать одноплатный компьютер Raspberry пришла ко мне неожиданно. Опыт по Arduino и прочим ESP имеется, с «большими» ПК и серверами тоже. А вот промежуточный вариант, представленный сонмой разнокалиберных устройств, мной как-то совсем не изучен. А еще мне хотелось опробовать в деле, что же такое Windows IoT и для чего можно применить новинку от Microsoft. Выбор устройства оказался совсем очевидным: Raspberry Pi 3 с 1 Гб ОЗУ на борту, самое что ни на есть популярнейшее устройство. Конечно, различные Pine64 поджимают, но тут популярность играет на руку. Чем выше популярность, тем меньше проблем совместимости.

печатная плата, e305654, jx02, 94v-0, 4316, 400774, 1501,1645, 160519e

Обратная сторона Raspberry Pi 3. Виден чип ОЗУ.

И вот, спустя месяц ожидания, хорошо упакованная коробчонка с Raspberry обосновалась на моем столе. Я сразу же взял полный комплект: плата, мощный блок питания, радиаторы для чипов и пластиковый корпус. Придраться к комплектации и качеству изготовления сможет только самый мерзкий и дотошный критик. Все оборудование сделано на совесть. Плата с отмытым флюсом, пайка надежная, USB-порты на месте все, как и должно быть. Блок питания не свистит и не греется с избытком. Радиаторы чистые, с комплектным скотчем 3M для приклейки их к чипам. Корпус из пластика, хоть и маркий, но удобный в использовании. Если требуется, его можно открыть и протереть плату тряпочкой. А через многочисленные отверстия отлично подключаются кабеля для внешних устройств. Ладно, хватит описывать то, что давно всем известно. Настало время установки Windows.

Ставим Windows IoT на Raspberry Pi 3

Я еще помню времена, когда Windows устанавливался с дискетки. Потом уже операционка поставлялась на CD-диске, затем на DVD. А сейчас же все делается посредством простых «флешек». С Windows IoT и Raspberry все немного иначе.

корпус, печатная плата, радиаторы, raspberry pi 3

Микрокомпьютер Raspberry Pi 3 в пластиковом блестящем корпусе и с установленными радиаторами

Существует как минимум два способа установки Windows IoT на Raspberry. Первый способ — воспользоваться услугами официального сайта Raspberry и скачать либо готовый образ Windows IoT, либо загрузить его через специализированный установщик NOOBS. Второй способ изобретен Microsoft. Он немного хитрее и именно им я и воспользуюсь. Да, способ применим только если на вашем рабочем компьютере используется зарегистрированная версия Windows 10. Иначе путь может быть осилен только первым способом.

Шаг 1. Скачиваем Windows IoT Dashboard

Dashboard — специальная утилита, позволяющая подготавливать носители, а в случае Raspberry Pi 3 это MicroSD, для запуска Windows IoT. Скачать утилиту можно с сайта Microsoft. Для бесплатной загрузки и использования доступны только две версии Windows IoT: Core и Insider Preview. Различий между ними не так много. Core — стабильная система, подходящая для большинства разработчиков, а Insider Preview позволят энтузиастам испытывать легкое волнение от новых «фич» и «багов».

Для версии Core существует одно, не очень существенное ограничение. Тут можно запускать только одно приложение UWP (Universal Windows Platform). Вернее, запускать их можно несколько, но активным в один момент времени будет только одно. Аналогичным образом работает и Insider Preview. В общем-то обе эти системы ориентированы на устройства с ограниченными ресурсами, к которым относится и Raspberry. Поэтому ограничение вполне разумное. А если хочется большего, то придется приобретать версию Enterprise.

Шаг 2. Подготавливаем карту памяти, устанавливаем на нее систему

Все делается в том же Dashboard. Выбираем тип платы, вставляем карту памяти, вводим сетевое имя устройства, меняем пароль. Кстати, по умолчанию, а иногда пароль, введенный на стадии подготовки карты не срабатывает, используется связка Administrator/p@ssw0rd в качестве пары логина и пароля. Тут же можно прописать и подключение к вашей Wi-Fi сети.

Если выбранный дистрибутив не был ранее скачен на компьютер, то Dashboard автоматически его скачивает. Далее происходит запись на карту памяти.

Шаг 3. Первый запуск Raspberry с Windows IoT на борту

После установки карты памяти, можно смело подключать плату к сети Ethernet (или не подключать, если настроен Wi-Fi), да подавать питание. Первая загрузка происходит дольше, чем все последующие, поскольку происходит первичное развертывание операционной системы. В моем случае первичная загрузка заняла минуты три или четыре. Первичная настройка может производиться в полностью Headless режиме, нет необходимости подключать дисплей или клавиатуру. Что, согласитесь, очень удобно, особенно если устройство у вас уже физически интегрировано куда-нибудь в подвал и приварено стальной арматурой к бетонному блоку, чтобы вандалы не уволокли.

антенна, WiFi, BlueTooth, чип, керамика, плата, микросхема, raspberry pi 3

Антенна с поддержкой Wi-Fi и Bluetooth на чипе у Raspberry Pi 3

Кстати, на Raspberry 3 есть два светодиода. Красный сигнализирует, что питание на плату подается. А зеленый горит, когда есть обращения к карте памяти. С Windows IoT зеленый светодиод бесполезен, по крайней мере в текущей редакции системы. Он ничего не сигнализирует, просто не горит и все.

Шаг 4. Дальнейшая настройка

После прохождения первоначальной настройки к устройству уже можно обращаться по сети и использовать его на полную. Если же в сети его, по каким-то причинам, не видно. То тогда придется подключить монитор и клавиатуру, а затем выполнить настройку сети через интерфейс Windows IoT.

Если же с сетью все в порядке, то основным способом настройки системы является Web-интерфейс. Попасть в него можно через тот же Dashboard. В разделе My Devices отображаются все ваши Windows IoT устройства доступные в вашей сети. Жмакаем правой кнопкой и выбираем панель управления устройством.

raspberry pi 3, termogramma, термограмма

Под нагрузкой (установка апдейтов) плата греется до существенных значений. Радиаторы холоднее, чем сама плата, видимо используемый скотч 3M не очень здорово проводит тепло. Необходимо отклеить радиаторы от чипов, заменить скотч на нормальный термоинтерфейс.

Кстати, на удивление, отрабатывает Web-сервер в Windows IoT куда быстрее, чем даже на моем микросервере. Через интерфейс можно настроить все, что положено настраивать обычному пользователю, включая пароль доступа, пин-код для удаленной отладки и прочее вкусности. Не обойдены стороной и любимые Microsoft обновления для системы. Да, Windows IoT обновляется аналогично своим собратьям для больших ПК. Процесс обновления кстати не быстрый, а железо раскаляется от нагрузки.

Отдельно хочу упомянуть про мониторинг нагрузки на плату. На соответствующей вкладке доступны различные показометры, что вполне удобно, хотя бы с целью определения нагрузки на плату самой операционной системой. Графики наглядны и отображают сведения в режиме реального времени.

Что еще? Я заметил, что Dashboard хитро подготавливает карту памяти для записи. Вне зависимости от ее объема он ее форматирует как карту на 64 Гб. Возможно, что такой подход нужен для установки Windows IoT, но вот после, когда передумаете использовать Windows IoT, стоит не забыть и переформатировать карту под ее истинный размер. Иначе могут возникать различные коллизии, например, операционная система видит, что на карте осталось еще куча места, поэтому не ограничивает себя и пишет множество данных на карту, не стирая старое. А потом бац и система становится нестабильной, вплоть до невозможности ее загрузки.

Как управлять Raspberry с установленной Windows IoT

Вариантов тут несколько. Самое первое и самое простое, что может прийти в голову — использование монитора и клавиатуры. Подключаем и попадаем в интерфейс Windows IoT. Тут же можно слегка подшаманить сетевые настройки, перезагрузить плату, запустить установленные приложения.

Если вариант прямого управления не подходит, то можно (и даже нужно) управлять платой по сети. В настоящее время для этих целей присутствует целых три способа. Можно управлять Windows IoT через штатное средство Windows PowerShell. Легче всего подключиться к удаленной системе все через тот же Dashboard. Либо можно воспользоваться подключением по SSH. Тут уж подключаться можно вообще с любой системы, хоть из-под Windows, хоть с Android, а в Linux SSH так вообще стандартное средство. Даю наводку, для Windows можно использовать сверхпопулярный терминал PutTTY.

Но к плате можно подключиться и иным способом. Прямиком в графический интерфейс. Для этого необходимо включить удаленный доступ на плате, лучше всего это сделать через веб-интерфейс (самая нижняя вкладка). А затем скачать через Windows Store приложение для доступа к Windows IoT. Его вызов возможен так же через Dashboard. К моему стыду, мне так и не удалось подключиться к плате при помощи графического интерфейса. Приложение просто отказывалось подключаться и все, а все советы по поводу модификации конфигурационного файла не помогали, т.к. в актуальной версии Windows IoT эти советы уже внедрены в конфигурацию. Тем не менее, такая возможность существует.

Что можно запускать на Windows IoT?

Самый интересный для меня вопрос. На текущий момент (начало весны 2017), Windows IoT очень стремительно развивается и постоянно модернизируется. Но выбор ПО, вернее программных платформ, для системы ограничен. Microsoft делает ставку исключительно на UWP, как на новую парадигму ПО, работающего одинаково на всех устройства экосистемы Windows. Поэтому приложения UWP должны работать на Windows IoT Core почти без вопросов. Другое дело, что они будут так работать, но на текущий момент могут наблюдаться несовместимости, связанные с неполноценной поддержкой всех API доступных в UWP. Кроме UWP можно попробовать запустить Win32 приложения, по слухам от очевидцев, работать нормально с ними все равно не выйдет. Никакого ввода-вывода от приложений Win32 добиться не выйдет, только доступ извне, например, по сети на каком-то порту.

Для чего и выводы

Эксперимент по скрещиванию продукции Microsoft и крошечного компьютера Raspberry можно считать успешным. Связка работает, обновления ставятся, в сети видно. Вот только совсем непонятно для чего его использовать. Запустить нужное мне ПО под Windows IoT не представляется возможным. Тот же SoftEther VPN или FAR даже и не установить на плате. Нужных мне UWP приложений под рукой тоже нет. Остается только заниматься разработкой. А вот тут у Microsoft запасен такой козырь в рукаве, против которого мало кто сдюжит. Разрабатывать приложения, на множестве языков, для Windows IoT можно с использованием среды Visual Studio. С использованием всей ее мощи, включая развитые средства профилирования и отладки.

Но и тут есть одно, небольшое «но». Да, Raspberry обладает хорошо развитым интерфейсом связи с внешним миром. К плате можно подключить, хоть черта лысого. Да и производительности предостаточно. Но на мой взгляд, при наличии копеечных плат ESP8266 делающий все тоже самое, только куда дешевле и немного проще, целесообразность использования почти полноценного компьютера с реальной операционной системой и чрезмерной производительностью, излишне. Для реализации простых проектов по автоматизации ресурсов ESP8266 более чем достаточно. Впрочем, наверняка найдутся задачи, в которых Windows IoT вкупе с платами типа Raspberry придутся как нельзя кстати, но произойдет сие скорее всего в корпоративном секторе, например, некоторые банкоматы, наконец-то перейдут с уже устаревшей OS/2 на современную платформу.

Если же попытаться сформулировать вывод, например, для чего мне нужна плата Raspberry, то очень быстро приходишь к выводу, что в принципе ни для чего. Все, что мне нужно запрограммировать в плане автоматизации или поумневшего дома, отлично реализуется на чипах ESP и куда дешевле. Делать из Raspberry какой-то Hub при наличии полноценных серверов — тоже смысла не много. Разве что только установить на Raspberry операционную систему семейства Linux и организовать очередной серверок? Кстати, именно так я и поступлю.

Полезные ссылки:
Официальный FAQ по Windows IoT от Raspberry
Официальный сайт Microsoft по Windows IoT
Официальные образы операционных система для Raspberry и загрузчик NOOBS.



Добавить комментарий