お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-09-02 16:52:41

Pokota
新しいメンバ
登録日: 2013-09-02

デバイスドライバのmakeができません。

学習のため、Ubuntu12.04上で簡単なデバイスドライバ"hello.c"を作成し、makeしようとしましたが
"make: `all' に対して行うべき事はありません."と言われてしまいます。
ソース"hello.c"は、

http://www.cyberciti.biz/tips/compiling-linux-kernel-module.html

の"hello.c"を参考にしました。
また、Makefileの内容は下記の通りです。

obj-m = hello.o
KVERSION = $(shell uname -r)
all:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
        make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

ソースコードとMakefileを作成した後の1回目のmakeから"make: `all' に対して行うべき事はありません."と言われてしまいます。
Linuxとデバイスドライバにはあまり詳しくないので、何か良いアドバイスをよろしくお願いします。

オフライン

 

#2 2013-09-02 22:15:13

Mocchi
管理者
登録日: 2009-05-17

Re: デバイスドライバのmakeができません。

たぶん、ターゲットのコマンド行頭がタブになっていないのではないでしょうか?

コード:

obj-m = hello.o
KVERSION = $(shell uname -r)

all:
(ここにスペースではなくタブをひとつ)make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
clean:
(ここにスペースではなくタブをひとつ)make -C /lib/modules/$(KVERSION)/build M=$(PWD) clean

このタブの使い方ですが、Linuxやローダブルモジュール、デバイスドライバとは関係なく、Makefileの作法となります。

オフライン

 

#3 2013-09-03 08:40:30

Pokota
新しいメンバ
登録日: 2013-09-02

Re: デバイスドライバのmakeができません。

Mocchiさん回答ありがとうございます。
教えて頂いた通り、makeの先頭にtabを入れてみましたが結果は同じで、
"make: `all' に対して行うべき事はありません."と言われてしまいます。
何か他に良いアドバイスはありませんでしょうか?
よろしくお願いします。

オフライン

 

#4 2013-09-03 08:52:34

Pokota
新しいメンバ
登録日: 2013-09-02

Re: デバイスドライバのmakeができません。

Pokota による投稿:

Mocchiさん回答ありがとうございます。
教えて頂いた通り、makeの先頭にtabを入れてみましたが結果は同じで、
"make: `all' に対して行うべき事はありません."と言われてしまいます。
何か他に良いアドバイスはありませんでしょうか?
よろしくお願いします。

エディタの設定を改めて確認した所、tabの代わりにスペースを挿入する設定になっていました。
この設定をやめて、makeの前にtabを挿入した所、makeが成功しました。
Mocchiさんどうもありがとうございました。

オフライン

 

Board footer

Powered by FluxBB