Pagina 1 di 1

Host Linux - Container con Windows per far girare driver

Inviato: ven 10 ott 2025, 0:25
da joe
In altra discussione monologa ho riportato un mio tentativo di utilizzare un dispositivo, una stampante, che ha driver solo per Windows, utilizzando però Linux.

La mia soluzione testata, funzionante e quasi accettabile è la seguente:
- su slackware installo libvirt
- creo una VM con installato il guest Windows
- nel sistema guest win installo i driver della stampante
- la collego via USB e da libvirt passo la gestione della USB alla VM windows.

Il risultato è che dalla VM windows la stampante funziona. OK, molto bene.
Però fare una stampa non è proprio comodissimo e soprattutto richiede una VM, un intero sistema operativo installato appositamente ecc...

Allora mi chiedevo, da grande ignorante di container, docker e roba del genere...
Ma se invece di una intera VM, provassi a containerizzare il driver della stampante?
Non so neanche se la domanda così posta abbia senso, perché appunto non mi intendo di containers e simili.

Però ci siamo capiti no?
Cioè, si può bypassare il kernel linux per far parlare direttamente l'hardware attraverso un container windows per il driver della stampante?

È chiara la domanda?
Voglio pilotare la stampante col driver windows ma senza dover installare un'intero SO win su una VM messa in piedi solo per quello scopo.
La tecnologia "container" può servire allo scopo?
Grazie in anticipo! :D

Re: Host Linux - Container con Windows per far girare driver

Inviato: ven 10 ott 2025, 10:33
da ponce
joe ha scritto:
ven 10 ott 2025, 0:25
È chiara la domanda?
Voglio pilotare la stampante col driver windows ma senza dover installare un'intero SO win su una VM messa in piedi solo per quello scopo.
La tecnologia "container" può servire allo scopo?
i container servono ad isolare processi che girano su un kernel linux: windows ha il suo kernel (NT), non puo' usare quello di linux, per questa ragione i container non possono essere utilizzati per far girare windows sotto linux ed e' necessaria invece un emulazione hardware come quella offerta da qemu (un hypervisor, per intenderci).
lo stesso vale, per esempio, se vuoi far girare FreeBSD o OpenBSD (che hanno entrambi anche loro un kernel diverso da quello di linux), e' indispensabile un sistema che virtualizzi l'hardware.

quindi la risposta alla tua domanda, in estrema sintesi, e': "no".

Re: Host Linux - Container con Windows per far girare driver

Inviato: ven 10 ott 2025, 11:25
da joe
Grazie mille per la risposta!
Immaginavo... non trovando nulla in tal senso, ma ho chiesto comunque per conferma vista la mia ignoranza in tema.

Per cui non si scappa, per pilotare accettabilmente quella stampante da Linux, serve una VM completa con Windows.

Offtopic: Oppure migliorare il driver Gutenprint, che c'è sì, e prova a gestirla come può, ma non ci riesce tanto bene.
Oppure ancora si butta giù ex novo un driver artigianale a colpi di reverse engineering copiando quello Windows.

Si scherza eh! Non saprei da dove cominciare... poi non si sa mai che sia un'impresa più abbordabile di quello che si pensa, chissà...
Solo per curiosità, qualche link o chiave di ricerca per farsi un'idea?
O se c'è qualcuno qui che ha esperienza diretta in tema e vuole buttare lì un'indicazione su dove si potrebbe sbirciare per farsi un'idea sommaria di come viene creato un driver per una stampante...


Niente, per il momento mi accontento del sentiero dispendioso, ho creato uno script bash che:
- avvia la vm windows con libvirt
- aggancia la stampante via usb
- monta una directory condivisa che funge da spool di stampa
- copia il PDF nello spool
- da lì la palla passa a windows dove c'è uno script batch che controlla lo spool
- quando vi trova un PDF lo stampa sfruttando il comando "sumatrapdf -prin-to", comando che può essere usato al prompt
- infine il PDF viene spostato in un'altra directory con i "jobs done"

Sembra funzionare tutto, l'unico problemino l'ho riscontrato con libvirt. Sembra che spegnendolo e riavviandolo diverse volte, in qualche occasione random non si spenga del tutto e poi on si avvii più come atteso, ma lo fa raramente, per cui alla fine ci può anche stare così.