linux2.6.22.6下编译配置linux内核之前出现“checklist.c”的问题

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

1.修改Makefile

cd crosstool-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 := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
-e s/arm.*/arm/ -e s/sa110/arm/ \
-e s/s390x/s390/ -e s/parisc64/parisc/ \
-e s/ppc64/powerpc/ )
前每句前加#,将它注销掉。

#SUBARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ \
# -e s/arm.*/arm/ -e s/sa110/arm/ \
# -e s/s390x/s390/ -e s/parisc64/parisc/ \
# -e s/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

cp arch/arm/configs/s3c2410_defconfig ./.conf
make menuconfig

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

sudo apt-get install libncurses5-dev

安装ncurses-devel,这个是红帽或者FC的安装程序,Ubuntu的需要安装libncurses5-dev




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

HOSTCC scripts/kconfig/lxdialog/checklist.o 


scripts/kconfig/lxdialog/dialog.h:32:20: 错误: curses.h:No such file or directory 

In file included from scripts/kconfig/lxdialog/checklist.c:24: 

scripts/kconfig/lxdialog/dialog.h:97: 错误: expected specifier-qualifier-list before ‘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: 错误: ‘struct dialog_color’ 没有名为 ‘atr’ 的成员 

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

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

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

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

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

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

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

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

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

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

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

scripts/kconfig/lxdialog/checklist.c:171: 错误: ‘struct dialog_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 

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

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

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

3.编译内核:
make clean
不能用make mrproper,如果使用了它,它将刚才的config清理掉
make dep 

编译相关依赖文件
make zImage
最终的编译命令,有时可以直接用make(2.6.x版本以上).
最后编译好的镜像文件放在/linux-2.6.24/arch/arm/boot/zImage
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值