Теперь вы можете запустить Windows 10 Home/Pro на Raspberry Pi 3

Raspberry Pi 3 Model B/B + SBC официально поддерживает Windows 10 IoT, но если вы когда-нибудь захотите запустить полную версию Windows 10, вам не повезет, поскольку Microsoft не предоставляет эту опцию.

Однако, теперь есть неофициальное приложение под названием WoA Installer для Raspberry Pi 3, позволяющее установить Windows 10 Home/Professional Arm64 на вашу плату Raspberry Pi 3 B/B +. WoA расшифровывается как Windows on Arm, а проект размещается на Github.

Windows-on-Arm-Raspberry-Pi-3.jpg

Все, что вам нужно, это компьютер с Windows 10 с .NET Framework 4.6.1, карта micro SD класса A1/A2, плата RPi 3 и образ Windows 10 ARM64.

Интересно то, что вам, нужно будет сгенерировать образ .wim через веб-браузер, перейдя по адресу https://uup.rg-adguard.net/, где вы сможете выбрать:

  • Тип — Windows (финальная версия), Windows (внутренняя версия), накопительное обновление для Windows 10
  • Версия — на выбор x86 или arm64 для Windows. Убедитесь, что вы получили сборку arm64
  • Язык
  • Версия — Windows 10 Home или Windows 10 Professional
  • Тип загрузки — Загрузить ISO-компиляцию в OneClick! (рекомендуется), Aria2, UpdateOS в OneClick !, или «ссылки для генерации по умолчанию»
Windows-10-Professional-Raspberry-Pi-3-1024x654.png

Будет сгенерирован сценарий .cmd, который необходимо запустить в терминале Windows 10 для создания образа ISO, который можно будет смонтировать в Windows, и где вы найдете файл install.vim, который будет записан на карту микро SD через Инструменты установки WoA, упомянутые выше.

У нас нет уверенности, что этот метод не нарушает условия лицензии Microsoft, и запуск Windows 10 Home/ Pro только на 1 ГБ оперативной памяти может быть безумным, но по крайней мере такой вариант существует. Однако, большинство людей, скорее всего, захотят придерживаться Raspbian.

Выражаем свою благодарность источнику из которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

1003.2018Рубрика:Всё о Raspberry PI

В нашей стране больше половины пользователей ПК на операционной системе Microsoft. Как раз для таких людей разработана система и для Raspberry PI. Таким образом разработчики позволяют делать различные устройства для интернет вещей (IoT) на операционной системе Windows. Самая последняя версия для Raspberry Pi 3 Windows 10. Вот её и будем устанавливать.

Приветствую всех, уважаемые читатели. В этой статье мы попробуем с вами установить новую ОС для «Малины». Мне самому очень интересно в чём заключается суть установки полностью закрытой оси на маленький одноплатный компьютер.

Установка и настройка Windows IoT

Установка и загрузка немного отличается от установки Raspbian на MicroSD c помощью NOOBS.

Нужно скачать и установить специальную утилиту Dashboard IoT. Скачать дистрибутив можно на официальном сайте по Raspberry.

Есть всего две версии Core и Insider Preview. Различий между ними совсем немного, Core стабильно работает. Insider Preview чуть поновее, но бывает виснет.

В оболочке Core можно установить только одно приложение UWP. Точнее запускать можно и несколько, но активный в один момент времени всегда будет одно.

А тем временем я скачал утилиту.

Подготавливаем нашу карту памяти и загружаем ОС. Естественно система предложит автоматически почистить диск.

Dashboard имеет особенность форматировать флешку на несколько томов на 64 Гб. Вот такая вот хитрая утилита. Не знаю зачем. Скорее всего для того, чтобы влез дистрибутив IoT, и избежать различных проблем.

Теперь можно пробовать запускать операционную систему.

Для чего нужна Windows IoT и что можно запускать?

Честно, эту статью я писал для души и по приколу. Я банально хотел установить данную операционную систему и посмотреть, что она из себя представляет. Я не буду загружать всякими научными терминами.

Для управления этой платой существует несколько вариантов, так же, как и на UNIX’e.

1. Управление напрямую, тупо подключаем мышку, клавиатуру и монитор. Как и простой персональный компьютер.

2. Управление через штатную утилиту. Можно управлять Windows IoT через штатное средство Windows PowerShell. Легче всего подключиться к удаленной системе все через тот же Dashboard.

3.Управление через SSH. Так же как и в Linux SSH, подключаемся с ПК к терминалу Raspberry.

Я не вижу особого смысла и пользы от операционной системы Windows. У Microsoft не очень удобная политика — их система полностью закрытая. Некий чёрный ящик, в который так просто не залезешь. Поэтому для интернета вещей не доступная система.

Microsoft делает ставку исключительно на программы UWP. Их основная идея, чтобы все программы и устройства вливались в экосистему Windows.

Эксперимент по скрещиванию продукции Microsoft и крошечного компьютера Raspberry можно считать успешным. Связка работает, обновления ставятся, в сети видно. Вот только совсем непонятно для чего его использовать? Может кто знает? Для чего Ось нужна? Подскажите в комментариях. В интернете, на самом деле очень мало информации.

В принципе для простейших операций, автоматизации умного дома и различных бытовых устройств такая супер система не нужна. С этими задачами отлично справляется Arduino и ESP8266. ESP8266 уже сама по себе самодостаточная плата. Её так же можно запрограммировать.

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

Вообще я читал много мнений и статей по поводу Малины. Лично для меня эта плата просто находка. Она выполняет все робототехнические задачи — машинное зрение, машинное обучение, голосовые команды.

Это идеальная вещь для разработки искуственного интеллекта.

С уважением, Гридин Семен

Привет, Хабр. Наверное каждый разработчик на определенном этапе задумывался о собственном IoT-проекте. Internet of Things сейчас поистине вездесущ и многим из нас хочется попробовать свои силы. Но не все знают, с чего начать и за что браться в первую очередь. Сегодня давайте посмотрим, как легко и непринужденно запустить свой собственный IoT-проект под Raspberry Pi 2, используя Windows 10 IoT Core и DeviceHive.

Деплоим Windows 10 приложения на Raspberry Pi 2

Для начала давайте установим Windows 10 IoT Core на Raspberry Pi. Для этого нам потребуется Windows 10 IoT Core Dashboard, который можно взять вот здесь. Там же можно при желании скачать отдельно ISO-образ, но особого смысла в этом нет — инструмент сделает это за вас. Затем мы загружаем образ на misroSD-флешку. Подключаем флешку к Raspberry и включаем. Первую загрузку ОС придется подождать, мгновенной она, конечно, не будет. Когда устройство «оживет» — подключаем Raspberry к локальной сети по Ethernet. Снова открываем Windows 10 IoT Core Dashboard и видим в списке «Мои устройства» заветную строчку. К слову, можно обойтись и без проводного подключения – список WiFi-донглов, поддерживаемых Windows 10 IoT Core, находится тут. Далее нам понадобится Visual Studio 2015. Если она у вас все еще не установлена (хотя вы бы вряд ли читали эту статью в таком случае), можно скачать Community Edition. Создаем новый или же открываем существующий Windows Universal проект. Кстати, если в проекте не нужен UI, можно создать Headless Application, выбрав тип проекта Windows IoT Core Background Application. Выбираем деплой на Remote Machine. Вводим адрес Raspberry. Посмотреть его можно на стартовом экране Win10 IoT Core или в Windows 10 IoT Core Dashboard.

Собственно, Internet of Things

Раз уж у нас статья о embedded — «моргать светодиодами» придется в любом случае. Хорошо, что мы имеем дело с DeviceHive, у которого заготовлены инструменты на все случаи жизни и все платформы. Поэтому светодиод будет виртуальный и тоже на .NET. Клонируем master-ветку DeviceHive.NET репозитория с GitHub. На момент написания статьи рабочие примеры для Win10 IoT были именно там. Открываем solution DeviceHive.Device и в файле Program.cs проекта VirtualLed настраиваем доступ к песочнице DeviceHive.

using (var service = new RestfulDeviceService("http://playground.devicehive.com/api/rest")) {     // create a DeviceHive network where our device will reside     var network = new Network("Network WPNBEP", "Playground Network", "%NETWORK_KEY%");      //... } 

Если вы интересуетесь IoT, но по какой-то немыслимой причине еще не обзавелись DeviceHive Playground – это можно сделать здесь. А управлять нашим «светодиодом» будет… Нет, пока не Raspberry, а клиент виртуального светодиода. Пример находится в проекте VirtualLedClient солюшена DeviceHive.Client. Его тоже нужно настроить в файле Program.cs:

var connectionInfo = new DeviceHiveConnectionInfo("http://playground.devicehive.com/api/rest", "%ACCESS_KEY%"); 

Самое интересное

Наше приложение на Raspberry Pi будет не просто кнопочкой включения/выключения светодиода, а практически полноценной админкой всех IoT-устройств нашей DeviceHive-сети. При желании, конечно, можно упростить его до той самой «кнопочки» или наоборот расширить, например, до клиента, управляющего роботом телеприсутствия. Готовое приложение находится в том же репозитории, в solution DeviceHive.WindowsManager.Universal. Не будем останавливаться на нюансах гайдлайнов Win10 – корни приложения растут еще из Win8. Не будет тут и MVVM – все и так знают, как его применять. Давайте сосредоточимся на главном: нам нужна консоль мониторинга и управления устройствами, подключенными к DeviceHive, под Windows 10 на Raspberry Pi2. Для DeviceHive реализовано три клиентских библиотеки:

  • DeviceHive.Client – для «большого» .NET 4.5 и выше. Использует WebSocket4Net.
  • DeviceHive.Client.Portable – для Windows 8.1 и Windows Phone 8.1. Использует нативные WebSockets.
  • DeviceHive.Client.Universal – для всех редакций Windows 10, в том числе для Win10 IoT Core. Именно она используется в нашем приложении.

Наследуем ClientService от DeviceHiveClient и инициализируем его сеттингами:

DeviceHiveConnectionInfo connInfo; if (!String.IsNullOrEmpty(Settings.Instance.CloudAccessKey)) {     connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudAccessKey); } else {     connInfo = new DeviceHiveConnectionInfo(Settings.Instance.CloudServerUrl, Settings.Instance.CloudUsername, Settings.Instance.CloudPassword); } current = new ClientService(connInfo, new RestClient(connInfo)); 

А также указываем не использовать LongPolling, а только WebSocket, дабы не упираться в лимит одновременных HTTP-запросов:

SetAvailableChannels(new Channel[] {     new WebSocketChannel(connectionInfo, restClient) }); 

Загружаем список девайсов и группируем их по сетям в MainPage:

var deviceList = await ClientService.Current.GetDevicesAsync(); var networkList = (await ClientService.Current.GetNetworksAsync()).FindAll(n => n.Id != null); foreach (Network network in networkList) {     var devices = deviceList.FindAll(d => d.Network?.Id == network.Id);     if (devices.Count > 0)     {         networkWithDevicesList.Add(new NetworkViewModel(network) { Devices = devices });     } } 

А вот и наш виртуальный светодиод: Переходим на DevicePage, подгружаем информацию о нем:

Device = await ClientService.Current.GetDeviceAsync(deviceId); 

Переключаемся на вкладку с уведомлениями. Уведомления отправляются от управляемого устройства к управляющему устройству. В нашем случае – от VirtualLedClient к VirtualLed. Инициализируем автоподгружающийся список с «бесконечным» скроллом:

NotificationFilter filter = new NotificationFilter() {     End = filterNotificationsEnd,     Start = filterNotificationsStart,     SortOrder = SortOrder.DESC }; var list = new IncrementalLoadingCollection(async (take, skip) => {     filter.Skip = (int)skip;     filter.Take = (int)take;     return await ClientService.Current.GetNotificationsAsync(deviceId, filter); }, 20); 

Если не определена конечная дата фильтрации списка нотификаций, подписываемся на новые уведомления, которые будут приходить через вебсокет:

notificationsSubscription = await ClientService.Current.AddNotificationSubscriptionAsync(new[] { deviceId }, null, async (notificationReceived) => {     await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>     {         lock (NotificationsObservable)         {             if (!NotificationsObservable.Any(c => c.Id == notificationReceived.Notification.Id))             {                 NotificationsObservable.Insert(0, notificationReceived.Notification);             }         }     }); }); 

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

CommandFilter filter = new CommandFilter() {     End = filterCommandsEnd,     Start = filterCommandsStart,     SortOrder = SortOrder.DESC }; var list = new IncrementalLoadingCollection<command>(asynskip) => {     filter.Skip = (int)skip;     filter.Take = (int)take;     return await ClientService.Current.GetCommandsAsync(deviceId, filter); }, 20); </command>

Аналогично подписываемся на новые команды:

commandsSubscription = await ClientService.Current.AddCommandSubscriptionAsync(new[] { deviceId }, null, async (commandReceived) => {     await Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>     {         lock (CommandsObservable)         {             if (!CommandsObservable.Any(c => c.Id == commandReceived.Command.Id))             {                 CommandsObservable.Insert(0, commandReceived.Command);             }         }     }); }); 

Поскольку мы делаем инструмент не только для мониторинга, но и для управления устройствами в DeviceHive сети, нужно реализовать возможность отправки команд:

var parameters = commandParams.Text != "" ? JObject.Parse(commandParams.Text) : null; var command = new Command(commandName.Text, parameters); await ClientService.Current.SendCommandAsync(deviceId, command, CommandResultCallback); 

При отправке команды мы подписались на ее обновление методом CommandResultCallback. Обрабатываем результат выполнения команды:

foreach (Command cmd in CommandsObservable) {   if (command.Id == cmd.Id)     {         // Command class doesn't implement INotifyPropertyChanded to update its result,         // so old command is replaced by command with result:         var index = commandsObservable.IndexOf(cmd);         commandsObservable.RemoveAt(index);         commandsObservable.Insert(index, command);         break;     } } 

Чтобы не копировать команды вручную, нужно предусмотреть клонирование команд. Выделяем, клонируем, если нужно – редактируем, отправляем. Задача выполнена! Как видите, Raspberry Pi 2 c Windows 10 IoT Core и DeviceHive – отличное решение для практически любой задачи в контексте Internet of Things. Прикрутите пару кнопок, dashboard и подключите Raspberry Pi к телевизору в гостиной – мониторинг и управление умным домом готово. Купили лишних Raspberry? Не вопрос, библиотека DeviceHive.Client умеет работать не только в качестве управляющего клиента, но и в качестве управляемого девайса – реализуем Headless Application, подключаем датчики/реле и устанавливаем Raspberry Pi по дому. Ограничивает вас лишь ваша фантазия.

Заключение

Появление Windows 10 IoT Core – это именно то, чего ждали embedded-разработчики. Когда ресурсов даже самого мощного микроконтроллера на .NET Micro Framework (для которого, кстати, тоже есть реализация DeviceHive) не хватает, а ставить полноценный компьютер на Windows – все равно, что стрелять из пушки по воробьям, то Windows 10 IoT Core – настоящее спасение. И пусть пока есть нюансы с аппаратным ускорением графики и недостатком драйверов для некоторых USB-устройств – это всё простительно. Ведь еще недавно мы только мечтали, чтобы Windows-приложения, работающие на настольных ПК и планшетах запускались не только на телефонах, но и на микрокомпьютерах. А теперь – это реальность, добро пожаловать в «сегодня».

Об авторе

Вы видели полноценный компьютер помещающийся на ладони? Если нет, то спешите познакомиться с миниатюрным ПК Raspberry Pi 3. Габариты уникального компьютера не превышают размеры среднестатистического мобильного телефона. Представляет собой плату, где размещаются все необходимые для полноценной работы компоненты. Несмотря на скромные размеры устройство способно превзойти по своим характеристикам многие современные ПК.

В первую очередь нужно подготовить все необходимые для использования ПК аксессуары. Монитор, мышь, клавиатура, кабели, карта Micro-SD. Перед установкой операционная система записывается на накопитель.

Порядок записи:

1.Скачивается файл в формате iso.

2.Устанавливается на виртуальный привод.

3.Происходит запуск файла в формате msi. и установка.

Для запуска установки на конкретный съёмный накопитель SD нужно найти в папке, где установлена предыдущая утилита файл с названием IoTCoreImageHelper.exe. Можно воспользоваться поиском в меню пуск и немного выждать. Система поможет найти файл достаточно быстро.

Запуск файла приводит к появлению окошка графической утилиты. Указывается расположение файла образа системы и накопитель для загрузки. После всех манипуляций карточка обязательно извлекается. Использовать нужно безопасное извлечение. В ином случае файлы могут быть повреждены.

Правильная установка операционной системы на Raspberry Pi 3

Происходит сборка миниатюрного компьютера. Подключается монитор, мышь и клавиатура. Включается система. Первый запуск операционной системы занимает достаточно много времени. Выполняется первичная установка параметров программы. После установки система перегружается для обеспечения полноценной работы.

После окончания перезагрузки появится стартовая заставка. Появление подобной заставки является сигналом успешного окончания установки операционной системы. Нужно лишь научиться правильно использовать установленную систему. Управлять ей можно с помощью использования веб-интерфейса.

В целом система работает довольно стабильно и не вызывает нареканий активных пользователей. Все приложения функционируют шустро без зависаний и подвисаний. Подобный миниатюрный ПК незаменимая вещь для современного человека. Занимает мало свободного места и отличается компактными размерами. Оптимальное соотношение доступной цены и высокого качества.

Пользоваться raspberry pi 10 Windows удобно и просто. Не требуется много свободного времени, чтобы привыкнуть. На сегодняшний день все большее количество пользователей выбирает миниатюрные ПК отличающиеся высоким уровнем производительности и надёжности.

Используемые источники:

  • https://cnx-software.ru/2019/02/17/теперь-вы-можете-запустить-windows-10-home-pro-на-raspberry-pi-3/
  • http://kip-world.ru/stavim-windows-iot-na-raspberry-pi.html
  • https://habr.com/post/280294/
  • https://raspberry3.ru/unikalnyiy-kompyuter-raspberry-pi-3-i-nastroyka-windows-10/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий