当前位置: 代码迷 >> 驱动开发 >> 新人报道,Makefile交叉编译小疑点,先多谢各位
  详细解决方案

新人报道,Makefile交叉编译小疑点,先多谢各位

热度:99   发布时间:2016-04-28 11:04:25.0
新人报道,Makefile交叉编译小问题,求助!先谢谢各位
源码如下:

#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
  printk(KERN_ALERT "Hello, world\n");
  return 0;
}

static void hello_exit(void)
{
  printk(KERN_ALERT "Goodbye, cruel world\n");
}

module_init(hello_init);
module_exit(hello_exit);


自己写虚拟机的可以过。
obj-m := hello.o
KERNELDIR := /lib/modules/2.6.18/build
#KERNELDIR := /usr/src/linux-headers-2.6.24-21-generic/
#KERNELDIR := /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
.PHONY: modules modules_install clean

想放到arm板子上,s3c2440,尝试加上cc=*************也不行,还有网上的一些版本也不行,求助

------解决方案--------------------
你是什么错好像也没有贴出来,
不过你可以把模块加载到内核里,这样就不用自己这么麻烦去写makefile了
加入内核里只是修改相应的makefile文件和kconfig
------解决方案--------------------
obj-m += input.o

KERNEL = /nfs_rootfs/threeway/linux-2.6.30.4

all:
make -C $(KERNEL) M=`pwd` modules
clean:
make -C $(KERNEL) M=`pwd` modules clean
install:
make -C $(KERNEL) M=`pwd` modules_install INSTALL_MOD_PATH=/nfs_rootfs/threeway/

-------------------------------------------------
硅谷芯微技术学院 www.threeway.cc 芯片级IT教育第一品牌
电子类技术培训机构,培训单片机、ARM、嵌入式LINUX等
------解决方案--------------------
obj-m += input.o

KERNEL = /nfs_rootfs/threeway/linux-2.6.30.4

all:
make -C $(KERNEL) M=`pwd` modules
clean:
make -C $(KERNEL) M=`pwd` modules clean
install:
make -C $(KERNEL) M=`pwd` modules_install INSTALL_MOD_PATH=/nfs_rootfs/threeway/

-------------------------------------------------
硅谷芯微技术学院 www.threeway.cc 芯片级IT教育第一品牌
电子类技术培训机构,培训单片机、ARM、嵌入式LINUX等
------解决方案--------------------
obj-m += input.o

KERNEL = /nfs_rootfs/threeway/linux-2.6.30.4

all:
make -C $(KERNEL) M=`pwd` modules
clean:
make -C $(KERNEL) M=`pwd` modules clean
install:
make -C $(KERNEL) M=`pwd` modules_install INSTALL_MOD_PATH=/nfs_rootfs/threeway/

-------------------------------------------------
硅谷芯微技术学院 www.threeway.cc 芯片级IT教育第一品牌
电子类技术培训机构,培训单片机、ARM、嵌入式LINUX等
------解决方案--------------------
你编译的模块用的应该是你的板子上的内核源码,而不是你自己PC机上的内核,你应该在Makefile指定板子上内核源码的路径。LZ这样的回答中不?
  相关解决方案