Host Linux - Container con Windows per far girare driver

Postate qui per tutte le discussioni legate a Linux in generale.

Moderatore: Staff

Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Host Linux - Container con Windows per far girare driver

Messaggio 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

Avatar utente
ponce
Iper Master
Iper Master
Messaggi: 3107
Iscritto il: mer 5 mar 2008, 16:45
Nome Cognome: Matteo Bernardini
Slackware: slackware64-current
Kernel: 6.16.4
Desktop: lxde
Località: Pisa
Contatta:

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

Messaggio 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".

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3975
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

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

Messaggio 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ì.

Rispondi