Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Programar Un Driver

Iniciado por marcode, 23 de Enero de 2006, 10:32:46 PM

« anterior - próximo »

marcode

 Tengo una tarjeta de sonido Korg Oasys PCI que es una maravilla, y que adquirí de segunda mano.

Pero resulta que la puñetera tiene un problema, debido al elevado coste, dejaron de producirse y de dar soporte, por lo que solo tiene drivers para 98/ME.

He mirado en foros y al parecer nunca se va desarrollar el driver para XP/2K, a pesar de que muchos usuarios pagaron más de 2.000 dolares por ella cuando salió. Pero al parecer somos tan pocos los que la tenemos que es seguro que nunca saldrá el driver.

Entonces, nunca he programado un driver ni para un ratón pero creo que la tarjeta valdría la pena el aprender. Mis preguntas son:

1. ¿hay alguna forma de convertir un driver para 98/ME en uno para XP o 2000?

2. ¿Tendría mucha dificultad el programar un nuevo driver, al menos para usar algunas de sus características teniendo como única información el driver antiguo?. controlo el C y el C++.

3. si me decido a hacerlo, ¿por donde debo empezar y como?

4. ¿Estaré enamorado de la tarjeta?

Agradeceré los consejos de los programadores de drivers, o de los que les guste el tema del sonido y quieran comentarme algo, o darme ánimos.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

ethernet

Cita de: "marcode"4 . ¿Estaré enamorado de la tarjeta?
No me extraña, solo le falta unas puetas de ruido XD

Pogacha

 Una utilidad conversosra de drivers no conozco ...

Te diria que es casi imposible ... tendrias que conseguir el codigo fuente del driver para win98 y ver que sea entendible ... despues tener suerte de que no viole ninguna de las normas de seguridad del nt/xp ... luego de esto bajarte el DDK de microsoft que ya no lo entregan distribuyen libremente y creo que ademas tendrias que hacer unos cursos ...

Yo preferiria gastar 2000 en otra cosa ...

Yo estube viendo para hacer un driver de adquisición de datos por USB y me gano por cansancio luego de 3 semanas ...

Saludos.

Fanakito

 Por lo que he leido no es que no lo hayan escrito ... es que parece haber algun problema tecnico de dificil solución (por lo que mi rapida investigacion ha descubierto). Asi que, como consejo, olvidate del driver y busca otra alternativa ¿quizas montarte un pequeño equipo con Win98? ¿comprar un Powermac (pero con MacOS9) de segunda mano? Es lo que parece que han hecho los otros usuarios...

marcode

 Gracias, os responderé a todos.

Ethernet:
Citar
Citar
4 . ¿Estaré enamorado de la tarjeta?
No me extraña, solo le falta unas puetas de ruido XD
La verdad es que no uso muchas de sus características ya que no me dedico a esto más que para pasar unos ratos, de todo lo que tiene me gusta especialmente su modelado físico que dista mucho de parecer un sintetizador. Saxo Viejo (suena horriblemente bien)

Pogacha:
Citar
Una utilidad conversosra de drivers no conozco ...
Utilidad o algún procedimiento para convertir aunque me lleve mucho tiempo, con paciencia, no tengo prisa.

Citar
Yo preferiria gastar 2000 en otra cosa ...
No, ahora ya no vale eso, ya no la venden. Fue cuando salió al mercado, después la bajaron a 1000, y finalmente adiós, yo la compré hace un par de años de 2ª mano por 280€ sabiendo que no me valdría para XP, ahora se puede encontrar incluso por 250€ de gente que no la quiere solo por el tema del driver. Un auténtico chollo para los que usen W98 o quieran dar utilidad a su viejo P2.

FANatiko:
Citar
Por lo que he leido no es que no lo hayan escrito ... es que parece haber algun problema tecnico de dificil solución (por lo que mi rapida investigacion ha descubierto).
También me parecié leer algo de eso, pero tampoco estoy seguro de si ese problema técnico es más de dinero para que alguien se ponga a solventarlo. Aunque también podría deberse al sistema de protección que aludía Pogacha.

Citar
Asi que, como consejo, olvidate del driver y busca otra alternativa ¿quizas montarte un pequeño equipo con Win98? ¿comprar un Powermac (pero con MacOS9) de segunda mano? Es lo que parece que han hecho los otros usuarios...
De momento tengo W98 en otra partición y cuando quiero usarlo me toca reiniciar, es un poco incómodo pero soy consciente de que si no llega a ser por el tema del driver nunca hubiera podido disfrutar de esta tarjeta.

Parece claro que está complicado el tema de programar un driver, más despues de leeros, pero hace ya tiempo que me rondaba esa idea y quería escuchar vuestra opinión.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

tamat

 y crear una maquina virtual con w98 no funcionaria? suena un poco burro pero quien sabe.
Por un stratos menos tenso

ethernet

Cita de: "tamat"y crear una maquina virtual con w98 no funcionaria? suena un poco burro pero quien sabe.
Imagino que la máquina virtual usará los drivers del SO sobre el que corre y vuelves a tener el mismo problema.

[EX3]

Cita de: "ethernet"Imagino que la máquina virtual usará los drivers del SO sobre el que corre y vuelves a tener el mismo problema.
Me parece que no, aunque no estoy seguro del todo, ya que mi escaner no tira en XP por los dirvers varias personas me dieron como solucion arrancar una maquina virtual con Win98, que quizas si me funcionase. Supongo que pasaria lo mismo con la tarjeta de sonido, todo es probar supongo.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

ethernet

Cita de: "[EX3"]
Cita de: "ethernet"Imagino que la máquina virtual usará los drivers del SO sobre el que corre y vuelves a tener el mismo problema.
Me parece que no, aunque no estoy seguro del todo, ya que mi escaner no tira en XP por los dirvers varias personas me dieron como solucion arrancar una maquina virtual con Win98, que quizas si me funcionase. Supongo que pasaria lo mismo con la tarjeta de sonido, todo es probar supongo.

Salu2...
Pero te ha funcionado o nO ?XD

marcode

 Yo creo que al ser una máquina virtual, también son virtuales los dispositivos, excepto los básicos que permita usar (disco, teclado, raton, red), que seguramente estarán bien aislados y protegidos por una interfaz de comunicación.

...Digo yo.
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

[EX3]

Cita de: "ethernet"Pero te ha funcionado o nO ?XD
No habido ganas aun de instalarse una maquina virtual para comprobarlo (lo se, soy muy perro xDD), por eso digo que no estoy seguro xDDD

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

ZüNdFoLGe

 Utilidad conversora de drivers ??? :ph34r:  

La salvacion sería una maquina virtual como vpc , en tu caso el invitado seria w98 y el anfitrión xp.  Al espacio que ocupen los drivers sumale adicionales unos 600mb que es el costo de la invitacion...No conozco maquinas que se ejecuten en el api 32 bits, la vpc se ejecuta en xp pro o nt4.0+, tambien se puede integrar w98 con nt dentro de xp por ejemplo...pero esto tiene un costo por arriba del gb de espacio.

CitarImagino que la máquina virtual usará los drivers del SO sobre el que corre y vuelves a tener el mismo problema.

no, la gracia de la maquina virtual es permitir trabajar en varios sistemas operativos simultaneamente, cada uno independiente de otro pero todos en el contexto de una "simulación" de sistema único.

Salu2

Astharoth

 Hola

Por partes.

-Maquina virtual.
Siento desilusionaros, pero las maquinas virtuales (virtual pc / vmware) son bastante "limitadas" en ese sentido.
Independientemente del hardware que tengas instalado te emulan de grafica una S3 y de sonido una sound blaster.
No solo eso, sino que cualquier otro hardware adicional lo ignoran y no es reportado a la maquina virtual.
Solamente soportan usar la unidad de cd, la disquetera y en algunos casos una particion fisica de disco duro en vez de un fichero de "disco duro virtual"... asi que la solucion de maquina virtual descartada.

-El driver.
Bueno, yo no estoy puesto particularmente en drivers de tarjetas de sonido pero aun asi, a bote pronto no me viene a la cabeza un motivo por el cual no se pueda desarrollar un driver para tal dispositivo hardware en plataforma NT. Es posible que el hardware sea retorcido de cojones , pero vamos, desconociendo el hardware (si usa memory mapped io ports, si usa canales dma, si las transferencias se le indican asi o asa,etc) poco puedo decir al respecto.
Si el driver de 98 fuera un WDM otro gallo cantaria, ya que los WDM son "compatibles" entre plataformas (aunque yo no soy muy amigo de ellos tampoco, pero bueno).
La info necesaria para realizar el driver seria:
*Databook del hardware (eso iria muy bien)
*El driver de 9x (y una buena dosis de ingenieria inversa... a base de IDA o similar)
*Conocimientos de programacion de drivers de hardware en NT (evidentemente el DDK es muy extenso, hay muchos tipos de drivers y es necesario controlar al menos un minimo de eso)
*Conocimientos de arquitectura de NT (como va el sistema, que es una IRP, que es un IRQL... vamos, saber como funciona)
*Paciencia y ganas
*Sobre todo tiempo, un driver no se desarrolla en 3 semanas (ni tampoco se aprende en ese tiempo) y aun asi, desde que esta terminado hasta que esta correctamente depurado pasa tambien un tiempo (vamos, corregir incidencias de blue screen :). Que yo sepa no existe ningun curso de drivers, solo hay cursos de especializacion (por ejemplo en USA, la OSR) pero asumen que al menos "ya tienes base",  son cursos muy avanzados. La unica forma de aprender es tiempo (no 3 semanas, repito, un driver no es un ejemplo de nehe de opengl..) informacion (por ejemplo el Writting NT Device Drivers de viscarola y mason, navegar por los foros de OSR,etc) y practica (empezar a cacharrear como un burro con el ddk y depurando otros drivers a base de softice o windbg) :)


-Conclusion.
Es raro encontrar desarrollo de drivers "for free" (en plan opensource) para plataformas windows (hay casos como el driver opensource para las BT878 o el propio winpcap) pero es bastante raro. Encontrar persona o personas con conocimientos y motivacion suficiente para hacerlo for free va a ser como que complicado. Mucho me temo que tendras que mantener ese 9x.

Un Saludete


marcode

 Después de leer a Astharoth casi mejor me olvido de intentar el programar uno.

Los archivos del driver son un drv y un vxd de 150 Kb cada uno, y los programas para configurar y usar la tarjeta parecen funcionar bien, solo que no la detectan.

Miraré lo de vpc que propone ZüNdFoLGe a ver de que va
¿Lo del costo de 1GB es de memoria o de disco?
size=9]afortunadamente siempre ha habido alguien dispuesto a reinventar la rueda, de lo contrario seguiríamos usando un disco de piedra con un agujero.[/size]

ZüNdFoLGe

 Es de disco, de memoria te va bien con almenos 64 mb

CitarSiento desilusionaros, pero las maquinas virtuales (virtual pc / vmware) son bastante "limitadas" en ese sentido.

obviamente, por algo la simultaneidad de trabajo es 'virtual', y no creo que soporte solo una SB...tampoco creo que se limite a una S3, pero viendo la situación es una 'opcion' que puede salvarle la tarjeta.






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.