Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1432712
  • 博文数量: 823
  • 博客积分: 10000
  • 博客等级: 上将
  • 技术积分: 5002
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 17:39
文章分类

全部博文(823)

文章存档

2011年(1)

2008年(822)

我的朋友

分类: LINUX

2008-08-28 17:48:42

 
如何配置并编译可以在ARM9下运行的linux内核。

1.修改Makefile

cdcrosstool-0.43/build/arm-9tdmi-linux-gnu/gcc-4.1.1-glibc-2.3.2/linux-2.6.24

我在建立交叉编译工具时crosstool-0,43将linux-2,6.24解压到这个目录下了,你可以选择把内核放在其他目录下。进入liunx-2.6.24目录

修改Makefile
.在Makefile中找到下面这一行:
SUBARCH:=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/\
-es/arm.*/arm/-es/sa110/arm/\
-es/s390x/s390/-es/parisc64/parisc/\
-es/ppc64/powerpc/)
前每句前加#,将它注销掉。

#SUBARCH:=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/\
#-es/arm.*/arm/-es/sa110/arm/\
#-es/s390x/s390/-es/parisc64/parisc/\
#-es/ppc64/powerpc/)

.找到下列行:
ARCH?=$(SUBARCH)
CROSS_COMPILE?=
改成:
ARCH:=arm
CROSS_COMPILE:=arm-9tdmi-linux-gnu-
注:这里的CROSS_COMPILE就是让你指定交叉编译器的路径,如果你设置好了PATH那么直接把这句加上就可以,若没有那么请指定路径,arm-unknown-linux-gnu是我编译的交叉工具名称,如果你指定的编译工具叫arm-linux那么CROSS_COMPILE:=arm-linux-。

2.内核配置

从arch/arm/configs中拷贝一份s3c2410_defconfig到linux-2.6.24目录下并改为config

cparch/arm/configs/s3c2410_defconfig./.config

makemenuconfig

如果有以下错误出现,请输入以下命令:

sudoapt-getinstalllibncurses5-dev

HOSTCCscripts/kconfig/lxdialog/checklist.o

在包含自scripts/kconfig/lxdialog/checklist.c:24的文件中:

scripts/kconfig/lxdialog/dialog.h:32:20:错误:curses.h:Nosuchfileordirectory

Infileincludedfromscripts/kconfig/lxdialog/checklist.c:24:

scripts/kconfig/lxdialog/dialog.h:97:错误:expectedspecifier-qualifier-listbefore‘chtype’

scripts/kconfig/lxdialog/dialog.h:187:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:194:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:196:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:197:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:198:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:199:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/dialog.h:201:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/checklist.c:31:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/checklist.c:59:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/checklist.c:95:错误:expected‘)’before‘*’token

scripts/kconfig/lxdialog/checklist.c:在函数‘dialog_checklist’中:

scripts/kconfig/lxdialog/checklist.c:116:错误:‘WINDOW’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:116:错误:(即使在一个函数内多次出现,每个未声明的标识符在其

scripts/kconfig/lxdialog/checklist.c:116:错误:所在的函数内只报告一次。)

scripts/kconfig/lxdialog/checklist.c:116:错误:‘dialog’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:116:错误:‘list’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:116:警告:逗号表达式的左操作数不起作用

scripts/kconfig/lxdialog/checklist.c:129:警告:隐式声明函数‘getmaxy’

scripts/kconfig/lxdialog/checklist.c:129:错误:‘stdscr’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:130:错误:‘KEY_MAX’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:131:警告:隐式声明函数‘getmaxx’

scripts/kconfig/lxdialog/checklist.c:137:错误:‘COLS’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:138:错误:‘LINES’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:140:警告:隐式声明函数‘draw_shadow’

scripts/kconfig/lxdialog/checklist.c:142:警告:隐式声明函数‘newwin’

scripts/kconfig/lxdialog/checklist.c:143:警告:隐式声明函数‘keypad’

scripts/kconfig/lxdialog/checklist.c:143:错误:‘TRUE’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:145:警告:隐式声明函数‘draw_box’

scripts/kconfig/lxdialog/checklist.c:146:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:146:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:147:警告:隐式声明函数‘wattrset’

scripts/kconfig/lxdialog/checklist.c:147:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:148:警告:隐式声明函数‘mvwaddch’

scripts/kconfig/lxdialog/checklist.c:150:警告:隐式声明函数‘waddch’

scripts/kconfig/lxdialog/checklist.c:151:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:154:警告:隐式声明函数‘print_title’

scripts/kconfig/lxdialog/checklist.c:156:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:157:警告:隐式声明函数‘print_autowrap’

scripts/kconfig/lxdialog/checklist.c:164:警告:隐式声明函数‘subwin’

scripts/kconfig/lxdialog/checklist.c:171:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:171:错误:‘structdialog_color’没有名为‘atr’的成员

scripts/kconfig/lxdialog/checklist.c:189:警告:隐式声明函数‘print_item’

scripts/kconfig/lxdialog/checklist.c:192:警告:隐式声明函数‘print_arrows’

scripts/kconfig/lxdialog/checklist.c:195:警告:隐式声明函数‘print_buttons’

scripts/kconfig/lxdialog/checklist.c:197:警告:隐式声明函数‘wnoutrefresh’

scripts/kconfig/lxdialog/checklist.c:199:警告:隐式声明函数‘doupdate’

scripts/kconfig/lxdialog/checklist.c:202:警告:隐式声明函数‘wgetch’

scripts/kconfig/lxdialog/checklist.c:210:错误:‘KEY_UP’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:210:错误:‘KEY_DOWN’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:220:错误:‘FALSE’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:221:警告:隐式声明函数‘scrollok’

scripts/kconfig/lxdialog/checklist.c:222:警告:隐式声明函数‘wscrl’

scripts/kconfig/lxdialog/checklist.c:232:警告:隐式声明函数‘wrefresh’

scripts/kconfig/lxdialog/checklist.c:293:警告:隐式声明函数‘delwin’

scripts/kconfig/lxdialog/checklist.c:297:错误:‘KEY_LEFT’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:298:错误:‘KEY_RIGHT’未声明(在此函数内第一次使用)

scripts/kconfig/lxdialog/checklist.c:310:警告:隐式声明函数‘on_key_esc’

scripts/kconfig/lxdialog/checklist.c:312:错误:‘KEY_RESIZE’未声明(在此函数内第一次使用)

make[1]:***[scripts/kconfig/lxdialog/checklist.o]错误1

make:***[menuconfig]错误2

运行成功就可以按照需要配置内核选项了,具体配置选项的作用说明稍后介绍。

这里有几个重要的地方需要注意:
SystemType-->ARMsystemtype()-->
这个地方一定要选择和你的板子相同的类型,我们针对的开发板是s3c2410这里选择s3c2410。
在内核为2.4的时候,minicom默认的串行端口为ttyS0,在2.6里为ttySAC0
所以BootOption-->Defaultkernelcommandstring里输入
console=ttySAC0,115200(115200为波特率)

关闭consoledisplaydriversupport所有相关选项否则编译出错。
配置好以后,退出保存,默认保存在.config里.

3.编译内核:
makeclean
不能用makemrproper,如果使用了它,它将刚才的config清理掉
makedep

编译相关依赖文件
makezImage
最终的编译命令,有时可以直接用make(2.6.x版本以上).
最后编译好的镜像文件放在/linux-2.6.24/arch/arm/boot/zImage

Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核Ubuntu7.10下用Gcc4.1.1交叉编译工具编译linux-2.6.24内核
阅读(442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~