Чтение информации об устройстве из proc модуля

Я хочу считать информацию о видеокарте в proc модуле. Я создал proc модуль и загрузил его в ядро. То, что я хочу, должно показать информацию о видеокарте, когда я называю proc от терминала. Такой как "кошка/proc/myprocname" я знаю, что мой код является неверным ниже. Но это поможет Вам понять то, что я хочу.

#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);
0
задан 12 December 2013 в 00:55

1 ответ

Вы можете cat любой файл процесса:

➜  ~  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

Вы не сказали, какая у вас графическая карта, но это должно поставить вас на правильный путь.

0
ответ дан 12 December 2013 в 00:55

Другие вопросы по тегам:

Похожие вопросы: