Linuxカーネルモジュール開発ビルドルート

Linuxカーネルモジュール開発ビルドルート

私はbuildrootを使ってbeaglebone black用のLinuxカーネルを構築しました。さて、Hello World Linuxカーネルモジュールアプリケーションを開発したいと思います。

#include <linux/init.h>
#include <linux/module.h>

MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
    printk(KERN_ALERT "Hello, world\n");
    return 0;
}

static void hello_exit(void)
{
    printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);

問題は、いくつかのヘッダファイルがまだ欠落していることです。最終的にすべてを収集した後、コードをコンパイルできないというエラーが発生します(エラーが多すぎてすべて貼り付けたくありません)。私が知りたいのは、実際に正しいファイルが含まれていることです。現在私は以下を持っています:

/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/include
/home/lukasz/brl/Machine/beaglebone/build/uboot-2018.01/arch/x86/include
/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/arch/arm/include/generated
/home/lukasz/brl/Machine/beaglebone/build/linux-headers-a75d8e93056181d512f6c818e8627bd4554aaf92/arch/arm/include
/home/lukasz/brl/Machine/beaglebone/build/linux-a75d8e93056181d512f6c818e8627bd4554aaf92/include

cインクルードファイルとasmファイルがディレクトリ全体に散らばっているのは私にとっては少し奇妙です。

私のLinuxバージョン:

# uname -a
Linux buildroot 4.9.59 #1 SMP Fri Oct 5 11:55:54 CEST 2018 armv7l GNU/Linux

ベストアンサー1

Linuxカーネルモジュールを構築する方法の詳細を十分に提供していません。次のガイドラインに従ってください。https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/kbuild/modules.txtカーネルモジュールを構築する方法を学びます。

おすすめ記事