2017-04-04 18 views
0

私は私のカーネルソースに見て、kerneldir /アーチ/ x86の/含める/ ASM/processor.hで、次の定義が見つかりました:LinuxカーネルモジュールでCPU情報を取得する方法は?

extern void cpu_detect(struct cpuinfo_x86 *c); 

私は私の外の木カーネルでこれを使用しようとしましたこのコードを使用してモジュール:

#include <asm/processor.h> 
struct cpuinfo_x86 cpu; 
cpu_detect(&cpu); 
if(cpu.x86_model == 28) // Intel Atom 
{ 
    // do stuff 
} 

私は私のソースコードをビルドすると、私は次の警告を得る:

Building modules, stage 2. 
MODPOST 1 modules 
WARNING: "cpu_detect" [<my-kernel-module-path>.ko] undefined! 

です私のモジュール内のカーネルスペースからCPU情報を取得するより良い方法はありますか?私がやっていることが正しければ、オブジェクトコードを得るために渡す必要のある特別なリンクオプションがありますか? 、

kallsyms_lookup_name("print_cpu_info")に関数ポインタを使用します。

答えて

0

は私がcpu_detect上の任意の情報を見つけるが、(そのヘッダ内にも存在) print_cpu_info を探して解決策を持っているStackOverflowの質問を、見つかりませんでした関数がモジュール用にエクスポートされていないため(コアカーネルのみ使用)

How my custom module on linux 3.2.28 can make a call to print_cpu_info?

関連する問題