移植Linux内核到s3c6410(配置内核make menuconfig)

1、准备:

由于调试阶段要经常修改内核,烧写flash比较耗时,准备采用u-boot+uImage+initrd机制,内核基础版本采用linux 2.6.38

单板需要支持的:

CPU: S3C6410 ARM1176JZF-S
DDR: 256MB
FLASH:MLC 2   NAND FLASH 2GB

串口 4
网口 DM9000
RTC驱动
看门狗
音频驱动
USB
(USB HOST,摄像头,无线网卡,3G上网卡,键盘,鼠标,优盘,移动硬盘)
SD卡
SD WIFI
SPI
I2C
GPIO
按键8个
DA输出
LCD
CMOS 

由于一次配置后所有驱动比较困难,计划先配置编译出一个可用的内核,后面再对每一个驱动进行配置和确认,初步考虑第一次需要配置的地方有:

CPU体系/支持initrd机制 

2、内核代码下载地址: 

ftp://ftp.kernel.org/pub/linux/kernel/v2.6/ 

3、配置: 

3.1 make menuconfig是出现2个错误:

A、安装CentOS时没有安装gcc工具 

B、安装centos时没有安装ncurses 

3.2具体配置: 

配置CPU和单板,先不深究单板做了哪些修改:

System Type-->ARM system type-->Samsung S3C64xx

System Type-->MINI 6410 

initrd机制:

General setup-->Initial RAM filesytem and RAM disk(initramfs and initrd)support 

后面需要调试驱动模块,对于加载模块需要修改选项:

取消下面两个选项:

Enable loadable module support-->Module versioning support

Enable loadable module support-->Source checksum for all modules 

确定不需要的,取消配置,这是给笔记本电脑使用的内存卡总线:

Bus support -->PCCard (PCMCIA/CardBus) support 

4、make menuconfig出现的错误解决: 

[root@localhost linux-2.6.38]# make menuconfig
  HOSTCC  scripts/basic/fixdep
/bin/sh: gcc: command not found
make[1]: *** [scripts/basic/fixdep] 错误 127
make: *** [scripts_basic] 错误 2

这个真是折磨了我好几天,因为我总是把注意力集中在交叉编译链arm-linux-gcc上,一直以为这个没有安装好,可是我前面都已经编译过用户态程序了啊,为什么?终于想到这个配置界面是运行在虚拟机的linux系统上的,也就是他不应该用arm-linux-gcc来编译,而是要用linux系统本身的gcc工具来编译,一是使用命令which gcc,果真我安装的centos5.5,并没有安装gcc工具。手动安装后,问题解决。 

应用程序-->添加/删除 centos安装gcc工具

移植Linux内核到s3c6410(配置内核make menuconfig) 

相关推荐