Porta seriale \ parallela su Hyper-V per chiave licenza hardware

Un secondo articolo dove lascio appunti in merito a piccoli problemi con hyper-v e le relative soluzioni.
In questo caso, una volta convertito un vecchio server fisico con sistema operativo Linux Red Hot Enterprise 2.4 in macchina virtuale, avevo l’esigenza di collegarci una chiave hardware su porta seriale/parallela permettere l’avvio di un software gestionale di contabilità contenuto sul server.
Di primo acchito ho pensato  che la funzionalità COM virtuale fosse una sorta di passthrough dove definire la porta da redirezionare nella macchina virtuale, in realtà bisogna generare un ponte tra la porta COM sul server host e la virtualizzazione.

Soluzione

Anzitutto è necessaria una porta parallela sull’host hypervisor, altrimenti dove si connette la chiave hardware?!

Da un po’ di tempo a questa parte sono presenti solamente porte seriali D-SUB a 9 PIN, in quel caso è necessario acquistare un cavo che va da D-SUB 9 femmina a D-SUB 25 maschio.

In alternativa, se sull’host non è presente alcun connettore D-SUB, è sufficiente acquistare un adattatore USB a D-SUB 25.

Ho messo due link qui a lato.

Con una rapida ricerca ho localizzato un ottimo software chiamato PipeDream, che mi ha permesso di generare un pipe in pochi passaggi ed ho avuto modo di verificare se il software rilevava la chiave hardware ed attivava la sessione.
Ottimo ma… è un software trial. Non ho problemi a pagare strumenti, specialmente quando sono risolutivi, ciò che non mi piace è la scarsa trasparenza, il dover inviare una mail per ottenere una quotazione mi non mi piace un granché.
Cosi mi son messo a cercare esperienze di altri utenti ed ho trovato un progetto su GitHub chiamato PipeToCom. Devo ammettere che PipeDream permette una configurazione più rapida, è più intuitivo, ma fondamentalmente PipeToCom permette di ottenere lo stesso risultato.
 

Scaricato il software nell’ultima release a questo link e decompresso in una cartella definitiva (sono solito gestire tutti i tool delle macchine virtuali in una cartella dove sono ospitati gli elementi delle macchine virtuali, es.: c:\Hyper-V\NP2COM\), installato .NET 3/3.5/4.4.5, si apre il prompt dei comandi come amministratore e si registra il servizio con questa stringa:

c:\windows\microsoft.net\framework\v4.0.30319\installutil.exe -t C:\Hyper-V\NP2COM\NP2COMS.exe

Non ho utilizzato lo strumento NP2COMV.exe per generare un file di configurazione, mi sono limitato a modificare il file test.n2c già presente nella cartella, dove l’unico elemento da sostituire è la COM sotto <ComPort>, va impostata la COM fisica dove è connessa la chiave hardware.

<?xml version="1.0"?>
<Settings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MachineName>.</MachineName>
<NamedPipe>comport</NamedPipe>
<ComPort>COM1</ComPort>
<BaudRate>9600</BaudRate>
<StopBits>One</StopBits>
<Parity>None</Parity>
<DataBits>8</DataBits>
</Settings>

Infine ho attivato la COM sulla macchina virtuale, impostando come nome pipe lo stesso impostato nella configurazione del servizio.

Ho generato quindi uno script Powershell per effettuare avviare contemporaneamente il servizio NP2COM e la macchina virtuale:

Start-VM -Name "nome macchina virtuale"
Start-Service -Name "NP2COMService"

In questo modo ho risolto ed ho la possibilità di attivare la sessione con la chiave hardware senza problemi.
L’unico difetto è il fatto che se la macchina virtuale viene spenta, alla riaccensione per qualche motivo il servizio NP2COMService sembra non comunicare più correttamente con la macchina virtuale (non vede la chiave di licenza hardware), ma ho risolto inserendo uno Stop-Service -Name “NP2COMService” -Force in testa allo script, così da forzare un riavvio del servizio ad ogni riavvio della macchina virtuale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *