Sunteți pe pagina 1din 10

Facultatea de Electronica, Telecomunicații și Disciplina de Sisteme Embedded

Tehnologia Informațiilor, Iași Inteligente

8. Rularea programelor pe o mașină virtuală

Introducere

Atunci când utilizați o mașină virtuală pentru a rula SO Windows Embedded Compact 2013
(vECPC – virtual Embedded Compact PC), în cadrul SO Windows 10, aveți nevoie de Hyper-V. Hyper-
V este utilizat pentru a emula suportul hardware al sistemului de dezvoltare. Acest PC virtual va rula în
cadrul sistemului dumneavoastră de dezvoltare – calculatorul personal ce rulează Windows 10.
În cadrul acestui laborator vom:
1. Crea o imagine a SO Windows Embedded Compact 2013 (fișierul NK.bin) capabil să
ruleze pe o vECPC, pe un sistem virtualizat;
2. Configura Hyper-V pentru a rula vECPC;
3. Boot-a SO Windows Embedded Compact pe mașina virtuală;
4. Crea o aplicație în mediul Visual Studio capabilă să ruleze pe un SO Windows Embedded
Compact 2013;
5. Conecta mediul Visual Studio la sistemul virtual și executa aplicația în acest SO embedded
ce rulează pe mașina virtuală vECPC.
Scopul final al acestei prezentări este de a:
(1) interacționa cu vECPC într-un mod similar cu cel în care rulăm o aplicație pe un sistem
embedded real (precum OMAP3530EVM, BeagleBoard-xM sau eBox-3310), capabil să
susțină un SO Windows Embedded Compact și
(2) dezvolta, testa și verifica funcționarea corectă a respectivei aplicații dezvoltată în mod
special pentru acest SO.

Cerințe minimale pentru atingerea obiectivelor fixate

Pentru crearea unei mașini virtuale capabilă să ruleze SO Windows Embedded Compact 2013
(vECPC) aveți nevoie de:
1. Un PC cu următoarea configurație minimală: (1) un procesor pe 64 biți cu suport pentru (a) Second
Level Address Translation (SLAT) și (b) VM Monitor Mode Extension (cunoscut sub numele de
VT-c în cadrul procesoarelor din familia Intel); (2) minim 4 Gb de memorie RAM;
2. Un calculator pe care să ruleze unul din următoarele SO: Windows 10 Enterprise, Windows 10
Education sau Windows 10 Professional (sunt singurele versiuni care suporta Hyper-V);
3. Un mediu capabil să susțină mașini virtuale, de această dată vom folosi: Hyper-V;
4. Doar mediile Microsoft Visual Studio 2012, Microsoft Visual Studio 2013 și Microsoft Visual
Studio 2015 oferă suport pentru Platform Builder-ul sistemului de operare Windows Embedded
Compact 2013. Deci trebuie să instalați unul dintre ele;
5. Componenta Windows Embedded Compact 2013 instalată în cadrul mediul Microsoft Visual
Studio;
6. Componenta: AutoLaunch_v100_x86_Compact7.msi;

-1-
7. Componenta: CoreCon.
Pentru buna desfășurare a acestui laborator, componentele care necesită
instalare au fost deja instalate și configurate în mod corespunzător pentru
susținerea obiectivelor menționate anterior. Dumneavoastră, în cadrul
laboratorului, nu trebuie să instalați/reinstalți aceste componente. În schimb pe
calculatoarele personale (dacă doriți) trebuie să o faceți. Se vor menționa în mod
explicit pașii pe care dumneavoastră nu trebuie să îi realizați în cadrul
laboratorului deoarece aceștia au fost realizați anterior.
Mediul de virtualizare Hyper-V este o componentă, o facilitate opțională a sistemului de operare,
deci nu există un pachet individual ce trebuie descărcat și apoi instalat. Acest mediu de virtualizare este
oferit de firma Microsoft fără nici un cost asociat utilizatorului.
Instalați și validați funcționarea mediul Hyper-V – în cadrul laboratorului este instalat, deci nu
trebuie să faceți acest pas.
Descărcați și instalați Microsoft Visual Studio 2012 sau Microsoft Visual Studio 2013 sau
Microsoft Visual Studio 2015 – în cadrul laboratorului este instalat, deci nu trebuie să faceți acest
pas.
Descărcați și instalați Windows Embedded Compact 2013 – în cadrul laboratorului este
instalat, deci nu trebuie să faceți acest pas. Atunci când instalați Windows Embedded Compact alegeți
opțiunea Installs all required, optional, and 3rd party options în fereastra de dialog Install Options –
astfel includeți suport pentru Virtual CEPC. Dacă însă alegeți Customize your installation în fereastra
de dialog Install Options selectați următoarele opțiuni în fereastra Customize Installation pentru a instala
suportul pentru Virtual CEPC: (a) Platform Builder şi (b) x86 Architecture.

Instalare componente suport (pas deja realizat – nu îl realizați în laborator)

În acest moment presupunem că implicit mediul Microsoft Visual Studio și Windows Embedded
Compact 2013, cu cele două component de bază Platform Builder şi x86 Architecture, sunt deja instalate.

Figura 8.1. Poziționarea componentelor CoreCon și AutoLaunch


Pentru stabilirea unei comunicații între orice sistem embedded ce rulează SO Windows Embedded
Compact și sistemul de dezvoltare pe care rulează mediul Microsoft Visual Studio și pentru realizarea

-2-
operației de debug componentele CoreCon trebuie să se regăsească printre fișierele sistem ale SO
Windows Embedded Compact și să ruleze. Prin intermediul acestei conexiuni putem rula programele
dezvoltate în mediul Visual Studio pe dispozitivul embedded și, în plus, le putem testa (breakpoints,
vizualizare stare variabile etc.).
Componenta CoreCon pentru Windows Embedded Compact 2013 este inclusă în AutoLaunch
și o veți regăsi în Catalog Items View în secțiunea Third Party, vezi Figura 8.1 – AutoLaunch CoreCon.
Componenta CoreCon (de diferite tipuri, pentru diferitele arhitecturi – x86, ARM etc. – funcție de
tipul procesorului pe care Windows Embedded Compact 2013 rulează) este instalată pe sistemul de
dezvoltare al aplicațiilor (sistemul host), ca parte integrantă a mediului Visual Studio, în cadrul
următoarelor directoare:
 Pentru sistemele de operare pe 32 de biți (Windows 10 cu Visual Studio 2015), această
componentă este instalată în directorul:
\Program Files\Common Files\Microsoft Shared\\Embedded
Tools\CoreCon\14.0\Target\wce800\
 Pentru sistemul de operare Windows 10 pe 64-biţi diferitele fișiere ale modulului CoreCon,
pentru diferitele arhitecturi, sunt instalate în următorul director:
\Program Files (x86)\Common Files\Microsoft Shared\Embedded
Tools\CoreCon\14.0\Target\wce800\
Dacă în schimb utilizați Visual Studio 2013 din căile de mai sus câmpul “14.0” este înlocuit cu
“12.0”. De fapt Visual Studio 2013 este cunoscut și sub numele Visual Studio 12.0.
Componenta CoreCon este formată din mai multe fișiere de diferite tipuri. SO Windows
Embedded Compact 2013 necesită versiunea 3 a acestor fișiere. În mod normal toate aceste fișiere
(ClientShutdown.exe, CMAccept3.exe, ConmanClient3.exe, TcpConnectionA3.dll,
DeviceagentTransport3.dll și eDbgTL3.dll) trebuie incluse în imaginea SO Windows Embedded
Compact, iar atunci când SO se lansează, la început ConmanClient3.exe trebuie executat pentru a fi activ
și a aștepta o conexiune cu mediul de dezvoltare Visual Studio.
Componenta AutoLaunch a fost creată special pentru a ușura lansarea în execuție a diferitelor
componente software, ce rulează pe SO embedded, imediat după finalizarea operației de boot-are a acestuia.
Această componentă este înglobată într-un fișier independent pe care trebuie să îl instalați – fișierul se
găsește sub numele AutoLaunch_v320_Compact2013.msi. După instalare AutoLaunch devine o
componentă de sine stătătoare (una din multele componentele din care SO embedded poate fi construit) pe
care trebuie să o înglobați în imaginea SO – o găsiți tot la rubrica Third Party, vezi Figura 8.1.

Creare imagine SO Windows Embedded Compact – fișierul NK.bin

Pentru a crea imaginea SO urmați pașii1:


1. În mediul Visual Studio, alegeți din meniuri opțiunea File, selectând New, iar apoi dând click pe
Project;
2. Atunci când mediul Visual Studio afișează fereastra New Project, în cadrul opțiunii Installed →
Templates alegeți Platform Builder;
3. În câmpul Name introduceți numele proiectului dvs. – de exemplu, vWECPC;

1
În toți pașii care urmează presupunem că Visual Studio și Platform Builder sunt deja instalate

-3-
4. În câmpul Location acceptați selecția inițială existentă: C:\WINCE800\OSDesigns. Platform
Builder-ul va crea un nou director pentru design-ul vWECPC în cadrul căii anterior menționate;
5. Apăsați butonul OK;
6. Din acest moment Platform Builder-ul lansează OS Design Wizard și imediat va apare fereastra
Welcome to the OS Design Wizard, aici apăsați Next;
7. În cadrul ferestrei Board Support Packages în cadrul câmpului Select one or more BSPs alegeți
Generic CEPC: x86 iar apoi apăsați pe butonul de Next;
8. În cadrul paginii Design Templates puteți alege structura de bază a SO (componentele fundamentale
pe care le veți include în mod global, în bloc) prin selectarea unui șablon al proiectului imaginii SO
care aproximează cel mai corect caracteristicile și funcțiile dispozitivului fizic pe care dumneavoastră
doriți să îl emulați. Șablonul Win32 and WinForms UI Device este un foarte bun punct de start pentru
mașina virtuală vECPC. Apăsați butonul Next.

Sistemul de operare Windows Embedded Compact 2013 oferă utilizatorilor 3 tipuri diferite de shell-uri:
a. MinShell – un shell minimal care permite rularea programelor și lansarea în execuție a shell-ului
CMD (printr-un simplu meniu), vezi Figura 8.2. Acesta poate fi extins foarte ușor prin intermediul
meniurilor;
b. XAML Shell – un shell complex ce include și panouri de control;
c. CMD.EXE – “bătrânul” command comm, consola în linie de comandă prin care puteți afișa sau
configura starea diferitelor componente ale sistemului de operare.

Figura 8.2. Shell-ul MinShell: (a) interfața principală cu utilizatorul și (b) command comm-
ul lansat la apăsarea butonului stânga sus

9. În noua fereastră (Win32 and WinForms UI Device) selectați în plus componentele: (1) ALT and
MFC Suport, (2) Remote Tools Suport, (3) Application Debugging Suport și (4) din Netorking
alegeți Netorking Security Protocols și Network Utilities. Apăsați butonul Next.

-4-
10. În ultima pagină OS Design Project Wizard Complete debifați check box-ul Build the following
configuration after I click Finish (dacă este selectat) pentru ca ulterior să puteți configura în
continuare imaginea SO prin selectare și a altor componente. Apăsați Finish.
11. Vă puteți aștepta în continuare la o serie de notificări care vă atrag atenția că există o serie de breșe în
securitatea SO embedded datorită neconfigurării corecte a diferitelor componente (în special servicii)
existente. Răspundeți cu Acknowledge pentru a indica că ați citit și înțeles toate aceste atenționări.
În acest moment aveți posibilitatea să adăugați în mod manual diferite componente care să vă
răspundă diferitelor necesități și cerințe ale aplicațiilor care vor rula în cadrul acestui sistem embedded.
Introducerea de noi componente se realizează prin intermediul elementului Catalog Items View.
Dacă acest element nu există (Catalog Items View) urmați următorii pași pentru a-l introduce în cadrul
interfeței cu utilizatorul din mediul Visual Studio:
a. În mediul Visual Studio dați click pe meniul View;
b. Selectați Other Windows și apoi alegeți Catalog Items View. În acest mod panoul Catalog
Items View va fi vizibil în mediul Visual Studio.
În continuare pentru a include noi componente urmați pașii:
12. În panoul Catalog Items View selectați toate acele
component pe care doriți să le introduceți în imaginea SO.
Noi vom introduce Silverlight for Windows Embedded,
FTP server, Telnet server (în special în cazul serverelor
veți fi atenționați în legătură cu breșele de securitate
existente în situația în care aceste servicii nu sunt corect
configurate – răspundeți cu Acknowledge la fiecare) și
Remote Display Application. Pentru aceasta urmați pașii:
a. Configurați Interfața cu utilizatorul:
 Expandați Core OS → Windows
Embedded Compact → Shell and User
Interface → selectați toate
componentele ca în imaginea alăturată .
b. Remote Display Application
 Core OS → Windows Embedded
Compact → Core OS Services →
Debugging Tools;
 Bifați Remote Display Application.
 Această component ne va ajuta să ne
conectăm și să interacționăm de la
distanta cu SO.
c. FTP server și Telnet server
 Core OS → Windows Embedded Compact → Communications Services and
Networking → Servers;
 Iar aici selectați: FTP server și Telnet server
d. Pentru o funcționalitate corectă a diferitelor tipuri de dispozitive USB bifați în mod
corespunzător următoarele elemente:

-5-
Figura 8.3. Componentele USB
e. La final salvați toate modificările prin alegerea meniului File și apăsarea Save All (sau
apăsați combinația de taste Ctrl + Shift + S) pentru a salva modificările făcute.
13. Selectați, includeți și configurați componentele CoreCon şi AutoLaunch în imaginea SO:
a. Catalog Items View → Third Party → Embedded101;
b. Și bifați AutoLaunch_v320_Compact2013 și Autolaunch CoreCon;
c. Selectați tab-ul Solution Explorer și
d. Urmați firul vWECPC → Subprojects (aici au apărut componenta AutoLaunch) →
AutoLaunch_v320_Compact2013 → Parameter Files și dați click pe AutoLaunch.reg. În
acest moment se va deschide o nouă fereastră în care veți vizualiza conținutul acestui fișier
de tip registry. Eliminați comentariile din fața cheilor (vezi Figura 8.4) și modificați totul
de o așa natura a.î. ConmanClient3.exe să se lanseze prima și apoi cerdisp (folosiți-vă de
informațiile pe care le găsiți în cadrul acestui fișier):
[HKEY_LOCAL_MACHINE\Startup]
"Process0"="cerdisp -c"
"Process0Delay"=dword:00002710

"Process1"="ConmanClient3.exe"
"Process1Delay"=dword:00001388

-6-
Figura 8.4. Configurarea componentei AutoLaunch

14. La final salvați toate modificările prin alegerea meniului File și apăsarea Save All (sau apăsați
combinația de taste Ctrl + Shift + S) pentru a salva modificările făcute.
În acest moment ați finalizat crearea sistemului dumneavoastră de operare Windows Embedded
Compact doar din acele componente care vă sunt strict necesare pentru funcționarea dispozitivului și din
acelea pe care le-ați introdus pentru oferirea unor funcționalități suplimentare (de exemplu elemente de tip
multimedia). Dar, în acest moment, SO încă nu a fost creat, încă nu ați obținut imaginea SO care să poată
fi încărcată și lansată în execuție în cadrul mașinii virtuale.
15. Pentru construirea imaginii SO în cadrul mediului Visual Studio selectați meniul Bild;
16. Dați click pe opțiunea Build Solution (sau apăsați tasta F7) având simultan grijă să selectați anterior
și construirea unei imagini a SO de tip release (Generic CEPC x86 Release).
Din acest moment mediul Visual Studio va prezenta în fereastra de Output progresul operației de
compilare a SO. Acest proces va ține o durată destul de lungă de timp, direct dependent de performanțele
sistemului, de existenta diferitelor programe antivirus instalate sau a numărului de component selectate
pentru a fi incluse în cadrul imaginii SO.
În momentul în care compilarea se termină cu succes, Platform Builder creează imaginea SO în
directorul ales la început. De exemplu, dacă ați urmat pașii descriși, în directorul:
C:\WINCE800\OSDesigns\vWECPC\vWECPC\RelDir\CEPC_x86_Release\NK.bin

Creare SDK (pas realizat în laborator)

După finalizarea creării imaginii SO mai trebuie să construim și SDK-ul (Software Development
Kit) asociat acestui SO. SDK va conține toate acele fișiere de tip header care sunt asociate cu
funcționalitățile implementate în SO tocmai creat. Acest SDK va fi ales în momentul construirii proiectului
unei noi aplicații prin selectarea acestui SDK din cele instalate (Installed SDKs) – vedeți laboratorul 2,
Subcapitol 1.4, pasul 3, subpasul d. Deci pentru construirea SDK-ului urmați pașii:
1. În Solution Explorer → vWECPC → SDKs → click dreapta → Add New SDK
2. La opțiunea General puneți următoarele valori:

-7-
SDK Name: Virtual_SDK
Proruct Name: Virtual_SDK
Company Name: ETTI
Company Website: www.etti.tuiasi.ro
3. La Install:
MSI File Name: Virtual_SDK.msi
Apoi apăsați butonul OK.
4. Apoi construiți SDK-ul:
Solution Explorer → vWECPC → SDKs → Virtual_SDK → click dreapta → Build
5. În final instalați (prin lansare în execuție) componenta: Virtual_SDK.msi

Crearea maşinii virtuale

După crearea imaginii SO, vWECPC, trebuie să creați o mașină virtuală (un PC virtual) care să
aibă un hardisk virtual (VHD).
În pașii următori vom utiliza hardisk-ul virtual ce este inclus în cadrul SO Windows Embedded
Compact. Acest VHD include un bootloader cu care vom interacționa în primele momente atunci când
vom boot-a și vom selecta încărcarea imaginii SO prin intermediul conexiunii de ethernet și lansarea în
execuție a acesteia.

Hyper‐V

Dacă pe sistemul de dezvoltare este instalat SO Windows 10 trebuie instalată componenta software
Windows Virtual PC pentru a rula imaginea SO creată anterior – vWECPC. Pentru a configura Hyper-
V a.î. să fie capabil să ruleze vWECPC trebuie să creați o nouă mașină virtuală și apoi să o configurați.
Urmați pașii:
1. Instalați Hyper-V – în cazul laboratorului de față nu este necesar să realizați acest pas, deoarece
acest pachet software a fost instalat anterior !!!.
Se poate realiza în mai multe moduri.
i. În mod “manual”:

a. Dați click-dreapta pe icoana Windows (din stânga jos);


b. Selectați Apps and Features;
c. Din dreapta alegeți Programs and Features → Turn Windows features on or off;
d. Bifați Hyper-V – incluzân ambele componente Hyper-V Management Tools și Hyper-V
Platform;
e. Apăsați OK;
f. Hyper-V se va instala, iar la sfârșit veți fi rugați să restartați calculatorul;
g. Închideți toate programele și restartați sistemul.
ii. Prin intermediul PowerShell:
a. Lansați în execuție o consolă PowerShell cu drepturi de administrator (click-dreapta pe

icoana Windows - din stânga jos și de aici selectați Windows PowerShell(Admin));

-8-
b. Executați următoarea comandă:
Enable‐WindowsOptionalFeature ‐Online ‐FeatureName:Microsoft‐Hyper‐V ‐All

c. La încheierea instalării vi se va cere să reboot-ați calculatorul.


iii. Cu autorul shell-ului CMD.exe și a utilitarului DISM:
a. Deschideți o sesiune de PowerShell sau CMD ca administrator;
b. Executați următoarea comandă:
DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V
c. Răspundeți cu YES (Y) la întrebarea de sfârșit a încheierea instalării unde sunteți întrebați
dacă doriți să reboot-ați calculatorul acum.
În pașii următori vom crea mașina virtuală pe care o vom denumi vWECPC. Această mașină va utiliza
un hardisk virtual oferit de către BSP-ul mediului Windows Embedded Compact 2013.
2. Va trebui să copiem acest hardisk virtual în directorul nostru de lucru unde vom crea structura de fișiere
a sistemului virtual Hyper-V. Deci vom copia conținutul directorului
C:\WINCE800\platform\CEPC\vm în directorul D:\Embedded\vVMware\. Va trebui în principal să
copiați următoarele 2 fișiere: hd0_sample.vhd și vpc_bootce.vfd.
Din acest moment încep pașii necesari creării și configurării sistemului ce va realiza virtualizarea.
3. Lansați în execuție Hyper-V Manager;
4. Action → New → Virtual Machine… în acest moment se va lansa în execuție New Virtual Machine
Wizard, apăsați butonul Next;
5. Denumiți-vă sistemul virtual vWECPC;
6. Bifați Store the virtual machine in a different location și indicați directorul:
D:\Embedded\vVMware\ și apăsați butonul Next;
7. În următoarea fereastră (Specify Generation), specificați generația mașinii virtuale: Generation 1. În
situația alegerii tipului de mașină virtuală Generation 2 nu veți mai putea lucra cu un hardisk simplu
de tipul VHD (hd0_sample.vhd). Aceste sisteme lucrează cu hardisk-uri virtuale doar de tipul VHDX.
Apăsați butonul Next.
8. În următorul pas (Assign Memory) alegeți o valoare de 512MB pentru parametrul Startup memory
și bifați opțiunea Use Dynamic Memory for this virtual machine. Sistemul de operare WEC necesită
utilizarea unei memorii dinamice, în caz contrar nu veți putea lansa în execuție acest sistem de operare.
Apăsați Next.
9. Configurarea plăcii de rețea o vom face ulterior, deci treceți mai departe prin apăsarea butonului Next.
10. În fereastra Connect Virtual Hard Disk bifați Use an existing virtual hard disk și indicați calea
către hardisk-ul dumneavoastră virtual: D:\Embedded\vVMware\hd0_sample.vhd.
11. Apăsați butonul Finish.
Dacă porniți în acest moment sistemul virtual, veți observa că bootloader-ul de pe hardisk-ul virtual se
execută și începe o secvență de numărare inversă care vă va permite să apăsați spațiu (“Hit space to enter
configuration meniu 5 …”) pentru a intra în meniul de configurare. Deci:
a. Apăsați butonul de spațiu;
b. Apoi apăsați tasta 1 pentru a vizualiza setările implicite (“[1] Show Current Settings”);
c. Imediat veți observa că atât sursa de unde se va boot-a (de unde se va lua fișierul “nk.bin”) cât și
KITL-ul sunt pe NULL.

-9-
Toate acestea ne atenționează că încă nu putem boot-a sistemul virtual. Mai trebuie setat un Switch
virtual și o placă de rețea virtuală.

Crearea Switch‐ului Virtual

12. În fereastra principală a Hyper-V Manager, în câmpul Actions dați click pe Virtual Switch
Manager…
13. Aici urmați următoarea secvență de comenzi: New virtual network switch → External → Create
Virtual Switch.
14. Denumiți Switch-ul Virtual, Name: → myVirtualSwitch;
15. Selectați placa de rețea activă (cea care vă permite accesul la internet) în câmpul External network.
16. Bifați checkbox-ul: Allow management operating system to share this network adapter;
17. Apăsași butonul OK.
18. În final răspundeți cu Yes la Pending change may disrupt network connectivity.

Creare/configurare placă de rețea virtuală

19. Din Hyper-V Manager selectați mașina virtuală (vWECPC) și dați clic dreapta pe ea, selectând
opțiunea Settings…;
20. În dreapta, în lista echipamentelor hardware ce sunt înglobate de sistemul virtual selectați Network
Adapter (Not connected);
21. Apăsați butonul de Remove;
22. Apăsați butonul Apply;
Am eliminat acest adaptor de rețea deoarece încărcarea imaginii SO se poate realiza doar prin intermediul
unui adaptor de rețea mai vechi.
23. Selectați Add Hardware, în subfereastra Hardware, iar din lista din dreapta alegeți Legacy Network
Adapter
24. Apăsați butonul Add;
25. În câmpul Virtual switch selectați myVirtualSwitch;
26. Apăsați butonul OK.
27. Porniți mașina virtuală;
28. Singurul lucru la care trebuie să aveți grijă este de a da

Conectare Visual Studio la sistemul virtual și trimiterea imaginii SO

29. Din acest pentru a transfera imaginea sistemului de operare WEC7, pașii ce trebuie realizați sunt
similari ca la un sistem real (OMAP3530EVM sau BeagleBoard-xM sau eBox-3310) și au fost
prezenta în laboratorul 1. În plus, pentru comoditate și ușurința vizualizării puteți alege din
setările programului de boot de pe sistemul virtual o rezoluție de 800 pe 600.

- 10 -

S-ar putea să vă placă și