次の簡単なHello Worldドライバを作成したいと思います。2ページそしてMakefileを使ってコンパイルします。
obj-m := hello.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
しかし、私は次のようになります。
作る1: *** /lib/modules/4.3.5-300.fc23.x86_64/build: そのファイルやディレクトリはありません。
これは論理なので立てるリンク/usr/src/kernels/4.3.5-300.fc23.x86_64
で、私の/usr/src
ディレクトリは空です。しかし、カーネル開発インストール済みrpm -qa|grep kernel
::
kernel-headers-4.3.5-300.fc23.x86_64
kernel-modules-4.3.5-300.fc23.x86_64
kernel-core-4.2.3-300.fc23.x86_64
kernel-devel-4.3.5-300.fc23.x86_64
kernel-4.2.3-300.fc23.x86_64
kernel-modules-extra-4.3.5-300.fc23.x86_64
kernel-modules-extra-4.2.3-300.fc23.x86_64
kernel-core-4.3.5-300.fc23.x86_64
libreport-plugin-kerneloops-2.6.4-1.fc23.x86_64
abrt-addon-kerneloops-2.8.0-2.fc23.x86_64
kernel-4.3.5-300.fc23.x86_64
kernel-modules-4.2.3-300.fc23.x86_64
私はこれらのパッケージがすでにそこに保存されている可能性があることを読んでおり/usr/include
、インストールしようとすると当然すでにインストールされているというメッセージが表示され続けます。
質問:hello.cをhello.koに正しくコンパイルするには、makefileまたはインストール中に何をすべきですか?
私はFedora 23を使用しています。
ベストアンサー1
いいですね。私の使命は、カーネルとすべてのkernel-Xモジュールをアップグレード/インストールすることです。その後、カーネル(適切なバージョン)ディレクトリが下に表示されます。/usr/src/kernels/