Per iniziare a testare le funzionalità di una nuova versione di Windows CE, si è sempre ricorso all’utilizzo di un target device emulato attraverso il Device Emulator che fino alla versione 6.0 R3 era basato sull’architettura ARM. Con Windows Embedded Compact 7, la Microsoft ha deciso di rilasciare un emulatore basato su piattaforma x86, la nota CEPC.
La motivazione di tale passaggio è legata soprattutto al fatto che molti sviluppatori, in passato, hanno sempre preferito testare le nuove funzionalità del sistema operativo su un hardware di tipo x86 (CEPC) e non di tipo ARM, per cui la Microsoft ha deciso di adattarsi a questo utilizzo e fornire direttamente un emulatore Virtual CEPC in modo da evitare i costi di acquisto di un hardware in fase di valutazione del prodotto.
Per poter utilzzare la piattaforma Virtual CEPC è necessario Virtual PC, con il quale possiamo emulare un hardware standard x86 sul quale poi poter eseguire il sistema operativo generato con il Platform Builder 7.
CREAZIONE DI UN PROGETTO PER L’OS DESIGN
Il primo passo da eseguire è quello di creare un nuovo progetto per il nostro OS Design. La procedura è la medesima della versione precedente :
- In Visual Studio 2008, andiamo sul menu File e poi clicchiamo su New e Project;
- Nell’elenco dei Project Types, selezioniamo la voce Platform Builder 2008 (che viene aggiunta in fase di installazione del Platform Builder 7) e quindi il template OS Design;
- Attraverso il campo di testo Name, assegniamo un nome al nostro progetto (ad esempio “VCEPC”);
- Utilizzando il campo Location, possiamo decidere di cambiare la posizione sul disco del progetto che verrà generato. In generale, è bene lasciare il percorso di default (C:\WINCE700\OSDesigns);
- Nel campo Solution Name, possiamo decidere di cambiare il nome alla solution (che di default sarà uguale a quello del progetto);
- Clicciamo sul tasto OK per passare alla configurazione dell’OS Design;
CONFIGURAZIONE OS DESIGN
Concluso lo step precedente, viene avviato l’OS Design Wizard, attraverso il quale dovremmo selezionare un template per il nostro sistema operativo ed eseguire poi la customizzazione aggiungendo o rimuovendo le features a noi non necessarie.
Cliccando su Next alla schermata di Welcome, ci verrà proposto l’elenco delle BSP fornite dall’installazione; selezioniamo Virtual PC;
A questo punto, dobbiamo selezionare un template di sistema operativo dal quale partire per poi eseguire una customizzazione, in base all’hardware che
avremo a disposizione. Un buon template di partenza per un Virtual CEPC è l’Enterprise WebPad che troviamo sotto PDA Device; selezioniamolo e clicchiamo su Next.
Nella schermata successiva Applications and Media, possiamo selezionare a piacimento le funzionalità da aggiungere al nostro sistema operativo oppure eventualmente rimuovere quelle selezionate di default. Successivamente clicchiamo su Next.
Per quanto concerne le funzionalità di Networking and Communications, selezioniamo laWired Local Area Network che troviamo sotto Local Area Network (LAN) per fornire al sistema le funzionalità di accesso alla rete; clicchiamo su Next.
Verrà visualizzata l’ultima schermata relativa al completamento del wizard. Deselezioniamo la checkbox Build the following configuration after I click Finish, in modo da evitare che parta in automatico il build dell’immagine del sistema operativo ed in modo da avere la possibilità di configurarlo in maniera più fine prima di avviarne la compilazione.
Cliccando su Finish, verrà visualizzata una schermata di warning in relazione ad alcuni component (OBEX Server) che sono stati inclusi nell’immagine; clicchiamo su Acknowledge.
A questo punto abbiamo la possibilità di customizzare la nostra immagine del sistema operativo, aggiungendo e rimuovendo i componenti utilizzando la Catalog Items View (se non risulta visibile andate sul menu View poi su Other Windows ed infine su Catalog Items View).
Ad esempio, se volessimo aggiungere il supporto per Silverlight dovremmo seguire il percorso Core OS -> Windows Embedded Compact -> Shell and User Interface -> Silverlight for Windows Embedded ed aggiungere il catalog item Silverlight for Windows Embedded.
Prima di concludere la configurazione, dobbiamo aggiungere il driver per la tastiera in base alla versione di Virtual PC che andremo ad utilizzare (nel mio
caso Virtual PC 2007). Sempre nella Catalog Items View, seguiamo il percorso BSP –> Virtual PC -> Device Drivers -> Keyboard e selezioniamo il driver.
A questo punto salviamo tutto e prepariamoci per il Build del sistema operativo.
BUILD OS DESIGN
Siamo pronti per eseguire il build del sistema operativo, lanciando il comando attraverso la voce Build Solution nel menu Build. Durante questa operazione, il Platform Builder compila tutti i moduli che saranno inclusi nel sistema operativo e possiamo vederne l’andamento attraverso la finestra di Output. Al percorso C:\WINCE700\OSDesigns (a meno che non lo abbiamo cambiato al primo step) viene creata una cartella relativa al nostro OS Design
(in questo caso VCEPC) ed all’interno di essa una sottocartella del tipo \RelDir\VirtualPC_x86_Release, all’interno della quale verrà creato il file binario finale (NK.bin) che rappresenterà l’immagine del sistema operativo.
CONFIGURAZIONE VIRTUAL PC 2007
Avviamo Virtal PC 2007 ed attraverso il relativo wizard, creiamo una nuova macchina virtuale specificandone il percorso ed il nome.
Alla schermata che chiede di specificare il sistema operativo guest, selezioniamo Other(Altro) mentre nella schermata successiva specifichiamo di voler utilizzare la quantità di RAM consigliato (default 128 MB).
L’ultimo passo necessario è quello di specificare un hard disk virtuale (file .vhd) che verrà utilizzato dal sistema operativo guest. Per questo scopo, l’installazione del Platform Builder ci fornisce un hard disk già predisposto al seguente percorso
C:\WINCE700\PLATFORM\VIRTUALPC\VM\hd0_sample.vhd; copiamolo nella cartella in cui stiamo creando la nostra macchina virtuale con Virtual PC 2007.
Nel wizard, selezioniamo di voler utilizzare un hard disk esistente (An existing virtual hard disk) ed individuiamo il file che abbiamo appena copiato.
La macchina virtuale è stata predisposta con successo, ora non ci resta che eseguire il nostro sistema operativo su di essa.
PREPARAZIONE PLATFORM BUILDER AL DOWNLOAD DELL’IMMAGINE
L’immagine NK.bin appena creata, va scaricata sul target che nel nostro caso è una macchina virtuale; per fare ciò è necessario preparare il Platform Builder
a tale operazione :
- In Visual Studio, andiamo sul menu Target poi Connectivity Options ed infine clicchiamo su Add Device;
- Assegnamo un nome al target (es. “VCEPC”) e selezioniamo Windows CE alla voceAssociated OS Design/SDK. Infine, clicchiamo su Add;
- Verranno visualizzate una serie di opzioni relative a Kernel Download, Kernel Transport e Kernel Debugger. Selezioniamo Ethernet in corrispondenza di
Kernel Download, per far eseguire il download dell’immagine via Ethernet;
- Infine, apriamo la dialog box Ethernet Download Settings cliccando su Settings in corrispondenza di Kernel Download. Lasciamo questa finestra aperta, perchè
sarà necessaria in seguito.
AVVIO VIRTUAL CEPC BOOT LOADER
Avviamo la macchina virtuale che abbiamo creato in Virtual PC 2007 e premiamo la barra spaziatrice nel momento in cui sulla console appaiono i seguenti messaggi :
Hit space to enter configuration menu 5…
Hit space to enter configuration menu 4…
Hit space to enter configuration menu 3…
Hit space to enter configuration menu 2…
Hit space to enter configuration menu 1…
A questo punto seguiamo la seguente procedura :
Il bootloader visualizzerà un menu nell’ambito del quale andiamo a selezionare la voce 2 (Select Boot Source). Verranno visualizzate le due seguenti voci
per selezionare il device di boot :
[1] Boot Drive
[2] DEC21140 at PCI bus 0 dev 10 fnc 0
Selezionando la voce 2, verrà utilizzata la scheda di rete del PC host per fornire le funzionalità di rete al bootloader ed attendere il download dell’immagine.
Dal menu principale selezioniamo la voce 1 per visualizzare i settaggi attuli e verifichiamo che siano uguali ad i seguenti :
Boot source: DEC21140 at PCI bus 0 dev 10 fnc 0
KITL device: DEC21140 at PCI bus 0 dev 10 fnc 0
KITL config: enabled, interrupt mode, VMINI enabled
DHCP: enabled
Display: 1024 x 768 x 16 / Full Screen
Debug Port: COM1 38400 baud
Se non dovesse essere disponibile un server DHCP nella vostra rete, sarà necessario impostare i parametri di rete attraverso la voce 4 (Network settings).
Selezioniamo la voce 7 per salvare ed infine 0 per avviare il processo di boot;
A questo punto, il bootloader invia in broadcast sulla rete un pacchetto di BOOTME, con cui fornisce la disponibilità di poter ricevere via rete un’immagine del sistema operativo da poter avviare.
DOWNLOAD IMMAGINE SISTEMA OPERATIVO
Tornando al Platform Builder, possiamo osservare che nella finestra Ethernet Download Settings che avevamo lasciato aperta, compare il nome dei target che sta inviando il messaggio di BOOTME; selezioniamolo e clicchiamo su Apply.
Per avviare il download :
- In Visual Studio, selezioniamo il nome del nostro device (“VCEPC”) nel drop-down menu Device;
- Andiamo sul menu Target e clicchiamo su Attach Device per avviare il download;
- Lo stato di avanzamento del download verrà visualizzato nella finestra di Download Status;
Nella console del Virtual PC, possiamo osservare che il bootloader ha accettato il file NK.bin e sta scaricando l’immagine per poi avviarla.
Al termine del downoload, ecco Windows Embedded Compact 7 in esecuzione.
Avviando Internet Explorer, possiamo navigare nel mio blog e vedere proprio l’articolo che state leggendo !!