Ho un oscilloscopio per PC Instrustar ISDS205X che ho usato su Windows 10. Ora che sono passato a Linux, non riesco a trovare i rispettivi driver per esso. Ho provato a installarlo su PlayOnLinux ma il software non si installa, così come i suoi driver.
Esiste un metodo convertire tali driver di Windows per lesecuzione su Linux?
(La mia CPU è i5-4570 e Distro è Debian 10 KDE Plasma)
Commenti
Risposta
In breve: no.
Per andare oltre, un driver è un pezzo di software che interagisce con il kernel del sistema operativo. Quando si lavora nel mondo del kernel, linteroperabilità non esiste. Neanche POSIX. Tutto è totalmente specifico del sistema operativo: larchitettura, i sottosistemi e il modo in cui sono stati costruiti e progettati, la libreria standard offerta dal kernel allautore del driver, non cè niente in comune tra Linux e Windows.
Lunico modo per far funzionare il tuo oscilloscopio sotto Linux è:
-
utilizzando una macchina virtuale Windows e inoltrandovi il dispositivo USB (possibile con virtualbox o qemu).
-
eseguendo il reverse engineering quando lo si utilizza con una workstation Windows: analizzare gli scambi USB, provare a indovinare il protocollo utilizzato e il comando passato per ottenere questa o questa operazione … “è un lavoro molto duro e lungo …
Commenti
- Unaltra alternativa è fare il contrario , ovvero il flashing di un nuovo firmware sul dispositivo che è nativamente supportato da Linux.
- Molti " driver " sono in realtà un pacchetto di un vero driver di dispositivo e un file fi blob rmware che deve essere inviato allhardware al momento dellinizializzazione, caricandolo nella RAM anziché archiviarlo su ROM / flash (EEP). (Possono effettivamente avere un file separato per il blob del firmware, semplificando il reverse engineering). Ricordo di avere dispositivi su un sistema dual-boot che potevo lasciare inizializzare il driver di Windows, quindi fare un riavvio a caldo in Linux, e il driver Linux ha funzionato bene fino a quando il sistema è stato spento e lhardware ha perso quel blob dalla memoria.
ndiswrapper
fa esattamente questo, ad esempio.