간단한 커널모듈을 컴파일 할려고 합니다.
커널 버전은 2.6.28-14-generic 입니다.
소스 화일은 test.c 입니다.
// ============ test.c
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
static int hello_init(void)
{
printk("Hello, world\n") ;
return 0 ;
}
static void hello_exit(void)
{
printk("Goodbye, world\n") ;
}
module_init(hello_init) ;
module_exit(hello_exit) ;
MODULE_LICENSE("Dual BSD/GPL") ;
// Makefile 입니다.
obj-m := test.o
KDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default :
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
rm -rf .ko
rm -rf .mod.
rm -rf ..cmd
rm -rf *.o
// make 시 에러 화면입니다.
make -C /lib/modules/2.6.28-14-generic/build SUBDIRS=/home/galaxy/work/base modules
make[1]: Entering directory /usr/src/linux-headers-2.6.28-14-generic' rm:
/home/galaxy/work/base/.tmp_versions/*‘를 지울 수 없음: Protocol error
make[1]: *** [crmodverdir] 오류 1
make[1]: Leaving directory `/usr/src/linux-headers-2.6.28-14-generic’
make: *** [default] 오류 2
apt-get update 는 했습니다.
답변 부탁 드립니다.