Obtener dirección fisica de un dispositivo (/dev/usb/lp0)

Imagen de LopeLH
0 puntos

Hola buenas, estoy creando un pequeño programa destinado a controlar las salidas del puerto paralelo, el programa es este:

#include <stdlib.h>
#include <sys/io.h>

int main(void){
ioperm(0xCD00,1,1);
outb(0,0xCD00);
return 0;    
    } 

Como pueden ver es la cosa mas simple del mundo, la dirección 0xCD00 es la dirección del puerto paralelo en mi ordenador de sobremesa (es una placa PCI, por eso la dirección es rara). El caso es que para usar el programa en un portatil sin puerto paralelo he comprado un adaptador Usb-Puerto paralelo, y no se la dirección que tiene y por tanto no puedo provar a enviar información para ver si funciona, en /dev aparece como /dev/usblp0 pero no se como obrener la dirección fisica del dispositivo, ¿alguna idea?

gracias de antemano, un saludo!

Imagen de tRaCk3r
+1
0
-1

¿No te vale abrir el puerto normalmente?

fd = open("/dev/usblp0", O_RDWR | O_NOCTTY | O_NDELAY);

O simplemente:

input = fopen("/dev/usblp0", "r");
output = fopen("/dev/usblp0", "w");

Por otro lado, aquí tienes mucha ayuda al respecto:
http://www.usb.org/developers/docs/

Por último, aquí tienes un método para encontrar el hex del puerto, aunque no se si vale en tu caso:
http://stackoverflow.com/questions/2000724/finding-device-base-address-t...

+1
0
-1

 


tRaCk3r
http://tetosoft.com
ubuntu user #007044
linux user #319025
PC number #309252
Imagen de razaAztk
+1
0
-1

Conecta tu puerto paralelo-usb y en terminal ejecuta dmesg a lo mejor se muestra la info que requieres.

Saludos!

+1
0
-1

void hey(int x,int y)
{
if (x && y)
 printf("http://libertadhack.blogspot.com/");
else
 printf("http://libertadpunk.blogspot.com/");
}