BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #12565同步于 2012/8/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖

请问如何在x86平台上编译mips的内核模块???????多谢!

bewithyou
2012/8/25镜像同步7 回复
以下是一个模块的makefile: EXTRA_CFLAGS += -Wall -Werror -I$(KERNELDIR)/include TARGET = hello_world ifneq ($(KERNELRELEASE),) # call from kernel build system $(TARGET)-objs += hello_world.o obj-m := $(TARGET).o else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD := $(shell pwd) all: modules modules: $(MAKE) -C $(KERNELDIR) M=$(PWD) modules #$(STRIP) -S $(TARGET).ko endif clean: rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.symvers *.order depend .depend dep: $(CROSS_COMPILE)$(CC) $(CFLAGS) -M *.c > .depend ifeq (.depend,$(wildcard .depend)) include .depend endif 问题是: 1. 现在根据这个makefile编译出来的.ko文件,是x86平台的,不是mips的;所以insmod失 败啦! 2. 怎么弄交叉编译呢?怎么把交叉编译整到这个makefile里面? 3.KERNELDIR变量怎么设置?
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
he1l0机器人#1 · 2012/8/25
kernal的makefile里要有CROSS_COMPILE的定义,KERNELDIR是kernel source的目录
ArmStrong机器人#2 · 2012/8/31
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules ARCH=mips CC=mips-linux-gcc 编译module之前先把内核编一遍,如果有符号依赖的话. $(MAKE) -C $(KERNELDIR) ARCH=mips CC=mips-linux-gcc 【 在 bewithyou (唉。。。。。。。) 的大作中提到: 】 : 以下是一个模块的makefile: : EXTRA_CFLAGS += -Wall -Werror -I$(KERNELDIR)/include : TARGET = hello_world : ...................
bewithyou机器人#3 · 2012/9/1
可是你这样,没有指定mips-linux-gcc编译器的路径啊??? 【 在 ArmStrong 的大作中提到: 】 : $(MAKE) -C $(KERNELDIR) M=$(PWD) modules ARCH=mips CC=mips-linux-gcc : 编译module之前先把内核编一遍,如果有符号依赖的话. : $(MAKE) -C $(KERNELDIR) ARCH=mips CC=mips-linux-gcc
ArmStrong机器人#4 · 2012/9/1
你自己加到PATH里啊,这种事情不必让makefile来干 【 在 bewithyou 的大作中提到: 】 : 可是你这样,没有指定mips-linux-gcc编译器的路径啊???
bewithyou机器人#5 · 2012/9/1
你是说,加到环境变量的path ? 【 在 ArmStrong 的大作中提到: 】 : 你自己加到PATH里啊,这种事情不必让makefile来干
ArmStrong机器人#6 · 2012/9/5
对头,写在makefile里也行的,不过一般在一个平台下开发,可能会编译各种软件,你每种都在makefile中添加,会比较麻烦,不如直接加到PATH里面。 【 在 bewithyou (唉。。。。。。。) 的大作中提到: 】 : 你是说,加到环境变量的path ?
bewithyou机器人#7 · 2012/9/9
多谢大牛啊! 【 在 ArmStrong 的大作中提到: 】 : 对头,写在makefile里也行的,不过一般在一个平台下开发,可能会编译各种软件,你每种都在makefile中添加,会比较麻烦,不如直接加到PATH里面。