【发布时间】:2011-11-26 04:19:05
【问题描述】:
我正在尝试编译 Hello World 模块。我的系统中有一个新的 Ubuntu,它没有任何已编译的内核。
我的内核是:
2.6.32-34-通用
我给出了以下 Makefile 并得到了错误:
obj-m += hello-1.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
# make
make -C /lib/modules/2.6.32-34-generic/build M=/home/james/Desktop/hello modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.32-34-generic'
make[2]: *** No rule to make target `/home/james/Desktop/hello/hello-1.c', needed by `/home/james/Desktop/hello/hello-1.o'. Stop.
make[1]: *** [_module_/home/james/Desktop/hello] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.32-34-generic'
make: *** [all] Error 2
我的 /lib/modules/2.6.32-34-generic 的内容是
total 3864
lrwxrwxrwx 1 root root 40 2011-11-05 15:55 build -> /usr/src/linux-headers-2.6.32-34-generic
drwxr-xr-x 2 root root 4096 2011-11-05 15:49 initrd
drwxr-xr-x 10 root root 4096 2011-11-05 15:49 kernel
.......................................................
.......................................................
文件夹/usr/src/linux-headers-2.6.32-34-generic 存在。
由于它不起作用,我下载了linux-headers-2.6.32-34-generic source from Ubuntu并编译并将我的Makefile更改为:
obj-m += hello-1.o
all:
make -C /usr/src/linux-2.6.32/ M=$(PWD) modules
clean:
make -C /usr/src/linux-2.6.32/ M=$(PWD) clean
#make
make -C /usr/src/linux-2.6.32/ M=/home/james/Desktop/hello modules
make[1]: Entering directory `/usr/src/linux-2.6.32'
ERROR: Kernel configuration is invalid.
include/linux/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.
WARNING: Symbol version dump /usr/src/linux-2.6.32/Module.symvers
is missing; modules will have no dependencies and modversions.
make[2]: *** No rule to make target `/home/james/Desktop/hello/hello-1.c', needed by `/home/james/Desktop/hello/hello-1.o'. Stop.
make[1]: *** [_module_/home/james/Desktop/hello] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.32'
make: *** [all] Error 2
有人可以帮我解决这个问题吗?http://packages.ubuntu.com/lucid-updates/devel/linux-headers-2.6.32-34-generic
我有一些一般性问题要问。
全新安装后编译内核的最佳方法是什么。在我编译内核并构建一个模块之后,它更早地工作得完美无缺。但我不知道在这种情况下该怎么做
【问题讨论】:
标签: linux linux-kernel kernel kernel-module