主题 : LINUX内核交叉编译怎么做呀? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 36464
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-01-16
最后登录: 2011-01-19
楼主  发表于: 2011-01-16 19:54

 LINUX内核交叉编译怎么做呀?

刚买了哟个mini2440在原来2410上的内核动态加载模块,现在移植到2.6上,一塌糊涂的错误!怎么写MAKEFILE呢?
级别: 新手上路
UID: 35518
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2011-01-03
最后登录: 2011-02-27
1楼  发表于: 2011-01-16 22:22
内核自带的Makefile不要乱改吧,除非你很熟悉Makefile,我只会用make menuconfig
图形界面的配置一下,可否把你的错误说详细些啊,错误不是说该makefile就能解决啊
兴趣转移
级别: 新手上路
UID: 36464
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-01-16
最后登录: 2011-01-19
2楼  发表于: 2011-01-17 00:08
# make
make -C /opt/FriendlyARM/mini2440/linux-2.6.32.2/ M=/dwid/TestSys_2.6/src/driver modules -I../../include/
make[1]: Entering directory `/opt/FriendlyARM/mini2440/linux-2.6.32.2'

  WARNING: Symbol version dump /opt/FriendlyARM/mini2440/linux-2.6.32.2/Module.symvers
           is missing; modules will have no dependencies and modversions.

  CC [M]  /dwid/TestSys_2.6/src/driver/s_driver.o
  Building modules, stage 2.
  MODPOST 1 modules
/bin/sh: scripts/mod/modpost: 没有那个文件或目录
make[2]: *** [__modpost] 错误 127
make[1]: *** [modules] 错误 2
make[1]: Leaving directory `/opt/FriendlyARM/mini2440/linux-2.6.32.2'
make: *** [default] 错误 2

#

删除大部分程序,留下init_modules之类,以及头文件,错误少多了,但是出现上面的错误!系统头文件丝毫不改!
级别: 新手上路
UID: 36464
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-01-16
最后登录: 2011-01-19
3楼  发表于: 2011-01-17 00:12
obj-m = s_driver.o

CC := arm-linux-gcc

KERNELBUILD := /opt/FriendlyARM/mini2440/linux-2.6.32.2/

PWD := $(shell pwd)
INCLUDE = ../../include/

default:$(OBJ) $(INCLUDE)s_driver.h $(INCLUDE)k_driver.h $(INCLUDE)function.h $(INCLUDE)dwid_normal.h

make -C $(KERNELBUILD) M=$(shell pwd) modules -I$(INCLUDE)

clean:
    rm -rf *.o *.ko *.mod.c .*.cmd .tmp_versions
级别: 新手上路
UID: 36464
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-01-16
最后登录: 2011-01-19
4楼  发表于: 2011-01-17 00:28
我遇到的问题很多,只问一个:我自己写的头文件,和源代码程序不在一个目录,怎么办?(按2.4是的没有问题),在2.6就找不到了(由于共享头文件的地方很多,不可能把它们拿到源代码一个目录,如这样的话,其它文件呢?岂不是头文件要到处复制?)