2007年11月20日 星期二

Linux Device Drivers

因為研究需求,剛踏 Linux Device Drivers 的領域,
http://lwn.net/Kernel/LDD3/ 可下載免費的 PDF 檔。

今天終於把第一個 hello world 的範例給試出來了,
把遇到的問題和大家分享一下。

剛開始照 LDD3 的書建了一個 Makefile,
======================================
ifneq ($(KERNELRELEASE),)
    obj-m := hello.o

else
    KERNELDIR ?= /lib/modules/$(shell uname -r)/build
    PWD := $(shell pwd)

default:
    $(MAKE) -C $(KERNELDIR)
    M=$(PWD) modules

endif
=======================================

不過執行時出現了下面的訊息,
make: Nothing to be done for `default'.

後來上網查,在 $(MAKE) 前面加個 tab 就行 ( 我原本用 space )。

另外 insmod 或 rmmod 時應該會出現的字串,
如果是遠端操作的話,可能不會顯示出來,
可以打 dmesg 來顯示。

沒有留言: