02 aprile 2020

Windows7 Embedded - funzioni avanzate per arcadecab (ewf+HORM)

Guida per l' installazione di Windows7 Embedded con l'attivazione e configurazione di ewf (Enhanced Write Filter) ed HORM (Hibernate Once, Resume Many) che questa versione di Windows ci mette a disposizione nativamente e che risultano molto utili per i nostri amati arcadecab.

Ecco il da farsi e qualche considerazione su cosa aggiungere per poter configurare tutto al meglio.

Iniziamo la nostra installazione scegliendo l'opzione "Build an Image"



dopo aver accettato i termini di licenza, scegliamo di non usare un template già pronto, creeremo una nuova immagine



scegliamo la lingua italiana (in automatico verranno selezionati orario e tipo di tastiera)



ora possiamo fare due scelte, far trovare automaticamente i driver oppure no, nel caso si vogliano utilizzare i crtemu driver io preferisco di no, quindi farò tutto manualmente (se alla fine rimarrete su un LCD potete fare in automatico), a voi la scelta



ora potremo scegliere i pacchetti da aggiungere alla nostra immagine ma prima click su "resolve dependencies" per fare i primi aggiustamenti, ed ecco le prime scelte da fare

spunta su "Enhanced Write Filter Boot Environment"



spunta su "Unbranded Startup Screens"



spunta su "Windows Explorer Shell"



spunta su "Standard Windows USB Stack"



ora aggiungiamo manualmente alcuni pacchetti
sotto Feature Packages
.NET Framework, spuntiamo il 3.5



sotto Embedded Enabling Features
spunta su Dialog Box Filter
spunta su Enhanced Write Filter with HORM
spunta su Hide Boot Screens
spunta su Message Box Default Reply



sotto fonts
spunta su True Type Fonts
spunta su Bitmap Fonts



sotto management
spunta alla catella System Manageent
spunta a Power Management
spunta a Windows Application Compatibility

sotto User Interface
->Windows Shell, spuntare la cartella per selezionare tutto



spunta su Photo viewer
togliere spunta su Search Indexing



cliccare di nuovo su "resolve dependencies" ed automaticamente verranno spuntati altri pacchetti necessari

siamo pronti, next 2 volte e scegliamo il disco su cui installare windows, la mia abitudine è quella di creare due partizioni, in C installerò il sistema operativo e in D inserirò tutti gli emulatori con le roms. (in questo caso questa disposizione può essere vantaggiosa per alcuni motivi che spiegherò più avanti)
La partizione C sarà di 20Gb (più che sufficienti), il restante lo assegnamo a D, finiti questi settaggi aspettiamo che la prodecura venga conclusa.

Una volta avviato Windows ed installati eventuali drivers mancanti, possiamo copiare emulatori, frontend e quant'altro in D, così abbiamo tutto già pronto, come se il nostro cab fosse finito.

Ora passiamo alla configurazione dei servizi ewf ed horm.

Prima di tutto andiamo in Pannello di Controllo -> Sistema e Sicurezza -> Opzioni Risparmio Energia
click su "Modificare le impostazioni attualmente non disponibili" e poi facciamo scendere il menu "Mostra combinazioni aggiuntive"
scegliamo Prestazioni elevate e poi "Modifica impostazioni combinazione"

click di nuovo su "Modificare le impostazioni attualmente non disponibili" ed impostiamo su Mai la Disattivazione dello Schermo, salviamo i cambiamenti.

Apriamo un prompt dei comandi come amministratore e per abilitare la funzionalità di Ibernazione digitiamo

powercfg -h on

riavviate

Ora sempre dal pannello di controllo dobbiamo impostare l'ibernazione quando viene premuto il tasto di alimentazione e disabilitare la richiesta della password alla riattivazione del computer



Ricordate di togliere la spunta da eventuali periferiche abilitate a "risvegliare" il pc dall'ibernazione, come mouse o tastiere, da Gestione Dispositivi.

A questo punto, dopo che abbiamo configurato tutto (frontend, emulatori, roms) possiamo attivare l' HORM

apriamo un prompt dei comandi come amministratore e digitiamo

ewfmgr c: -activateHORM



ora come configurato prima, ogni volta che premeremo il tasto di accensione il pc andrà in ibernazione, quindi non ci resta che avviare il frontend (già configurato) e premere il tasto di accensione, verrà creata una immagine di ibernazione ed il pc si spegnerà.

riaccendiamo la macchina, se andiamo a curiosare in c: vedremo il file hyberfile.sys creato poco fa, adesso dobbiamo attivare il filtro ewf.

er fare questo apriamo un prompt dei comandi come amministratore e digitiamo

ewfmgr c: -enable

la risposta che avremo ci indica che al momento il filtro non è attivo ma al prossimo riavvio verrà attivato



riavviamo e verifichiamo la situazione digitando da cmd

ewfmgr c:
avremo conferma che il filtro di scrittura è attivo e che al prossimo riavvio non ci saranno modifiche



da questo momento dovremo spegnere il pc direttamente dall'interruttore posteriore del cab, proprio come se avessimo una semplice scheda arcade ed alla successiva accensione verrà caricata l'immagine fatta in precedenza, ovvero da frontend avviato.

Requisito fondamentale, impostare da bios l'accensione automatica al ripristino dell'allimentazione.

FAQ

Perchè ho attivato il filtro di scrittura solo su c?
Per permettere agli emulatori o al frontend, di aggiornare i file relativi ai record, alle statistiche di utilizzo etc. Se tale caratteristica non vi interessa potete sempre attivare il filtro su tutti i dischi o non partizionare direttamente, a voi la scelta.
nel caso il comando da utilizzare sarà
ewfmgr -all -enable
Ma se abilito il filtro su tutto e voglio solo salvare i record?
Utilizzate una pendrive USB ed impostate nel mame.ini il percorso della cartella hi nella chiavetta

Spegnendo il pc "brutalmente" non spacco il mio HDD?
No, normalmente gli errori si verificano se spegniamo il pc e windows sta scrivendo qualcosa sul disco (sempre), in tal caso i file che si stavano scrivendo rimangono corrotti, provocando errori più o meno gravi. La normale procedura di shutdown prevede che windows una volta finito di aggiornare i file tolga alimentazione, avendo attivato il filtro ewf, windows non scrive niente, quindi possiamo togliere l'alimentazione quando ci pare.

Voglio effettuare delle modifiche ad alcuni file o aggiornare mame, come faccio?
basta disattivare l' ewf, fare le modifiche e riattivarlo, la procedura è la seguente:
aprire il prompt dei comandi come amministratore e digitare

ewfmgr -all -commitanddisable

riavviamo
per verificare lo stato dei servizi, digitiamo

ewfmgr c: (per vedere se la protezione in scrittura è attiva)
ewfmgr (per vedere se horm è attivo)

facciamo le nostre modifiche e riattiviamo il filtro come descritto nella guida, ricordatevi anche di spegnere dal tasto di accensione seguendo la procedura fatta all'inizio (con il frontend avviato) perché creeremo una nuova immagine di ibernazione.