Lendo informações do dispositivo de dentro do módulo proc

0

Eu quero ler as informações da placa gráfica no proc module.I criei um módulo proc e carreguei-o no kernel. O que eu quero é mostrar as informações da placa gráfica quando eu chamo o proc do terminal. Tal como "cat / proc / myprocname" Eu sei que meu código está errado abaixo.Mas ajudará você a entender o que eu quero.

#include <linux/init.h>        
#include <linux/module.h>  
#include <linux/proc_fs.h>       // proc filesystem

/* 
read proc function
*/
int read_proc(char *buf, char **start, off_t offset,
int count, int *eof, void *data){

   // !! **that's it.I want to read graphic card info in this function.**
   // !! this is wrong.but I want to do like this

   FILE *fd = popen("lspci | grep VGA", "r");
char buffer[16];
if (fread (buffer, 1, sizeof (buffer), fd) > 0) // if there is some result the     module must be loaded
printk (KERN_INFO buffer);
else
printf ("module is not loaded\n");
return 1;
}
/*
Module loading...
*/

static int baslat(void){

//  Registering..

create_proc_read_entry( "proc01",  // file name
              0,           //  (protection mode): default 
              NULL,        //  (parent dir): none
              read_proc,   // callback
              NULL);       //
 return 0;
}
/*
Module removing..
*  /

static void bitir(void){
// module register removing..
remove_proc_entry( "proc01",   // file name 
             NULL);        // (parent directory)
}
module_init(baslat);
module_exit(bitir);
    
por Mustafa 11.12.2013 / 15:53

1 resposta

0

Você pode cat de qualquer arquivo proc:

➜  ~  cat /proc/dri/0/vm
slot     offset       size type flags    address mtrr

➜  ~  cat /proc/dri/0/vma
vma use count: 0, high_memory = f79fe000, 0x379fe000
➜  ~  cat /proc/dri/0/gem_names 
  name     size handles refcount
     1  3145728       1        3
     2     4096       2        3
     3  3145728       2        3
     4  3145728       1        3
     5  3145728       2        3
     6  3035136       2        3
     7  1679360       2        3
     8  3035136       2        3
     9  1998848       2        3

Você não disse qual é a sua placa gráfica, mas isso deve colocá-lo no caminho certo.

    
por Braiam 11.12.2013 / 18:07