Autor
|
Tema: Puertos I/O (Leído 14,365 veces)
|
xv0
Desconectado
Mensajes: 1.026
|
Hola it0 at isa0 port 0x2e/2: IT8720F rev 8, EC port 0x228 Es el sensor de temperatura. Tengo el siguiente código: movb $0x2e, %dl ; movw $0x228, %dx in %dx, %eax
El resultado es un core dumped, que estoy haciendo mal? Un saludo.
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.937
Israel nunca torturó niños, ni lo volverá a hacer.
|
No tenes permisos, usa ioperm antes.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
0xDani
Desconectado
Mensajes: 1.077
|
Además necesitarás darle permisos al proceso.
Saludos.
|
|
|
En línea
|
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!
I code for $$$ Hago trabajos en C/C++ Contactar por PM
|
|
|
xv0
Desconectado
Mensajes: 1.026
|
Estoy utilizando openbsd, la función ioperm solo esta disponible en la arquitectura alpha, hay otra función llamada i386_set_ioperm, pero nada para la amd64.
¿Qué puedo hacer?
Un saludo.
P.D: Probaré esa función en un i386 que tengo, ya os contaré como fue.
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.026
|
Cuando compilo me dice que no encuentra referencia ala función. http://www.openbsd.org/cgi-bin/man.cgi?query=i386_set_ioperm&apropos=0&sektion=0&manpath=OpenBSD+Current&arch=i386&format=html Incluyo todas la librerias y al compilar ese -li386. ¿Por qué root no puede acceder a los puertos directamente, sin utilizar esas funciones? Un saludo.
|
|
|
En línea
|
|
|
|
Arkangel_0x7C5
Desconectado
Mensajes: 361
|
Porque es parte de la proteccion de los niveles de ejecucion (Modo usuario y modo kernel) Tendrias que darle permisos al proceso para poder usar los puertos I/O
Saludos
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.026
|
Gracias por las respuestas, pero no puedo hacer nada porque no dispongo de ioperm.
Un saludo.
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.026
|
Estoy intentando darle permisos desde ASM, leyendo los manuales me estoy enterando un poco de que va el tema, pero no hay manera de que funcione.
Tengo que tener CPL en 0 para poder acceder a la flag IOPL, con las instrucciones popf y iret, iret no funciona, y acceder ala base TSS que nose como acceder.
No encuentro ningun código ni nada, la verdad es que un ejemplo me ayudaría. Por cierto estoy en long mode, el manual casi todo lo que dice es para virtual-8086.
Un saludo.
P.D: Perdón por el doble post.
|
|
|
En línea
|
|
|
|
Arkangel_0x7C5
Desconectado
Mensajes: 361
|
lo primero, estas en modo kernel o ring0? si no lo estas, no vas a poder tocar nada de eso en asm
Saludos
|
|
|
En línea
|
|
|
|
xv0
Desconectado
Mensajes: 1.026
|
No, estoy en mode long.
Por lo que dices tengo que entrar en modo kernel, pero como? Al igual que in y out ese iret tampoco puedo ejecutarlo, sera por los permisos.
Pero ahora tambien tengo otra duda, como se accede a la base TSS?
Un saludo.
|
|
|
En línea
|
|
|
|
|
|