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

时间:2022-12-18 12:23:04

 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)

 

后面make menuconfig又报错,这次提示已经比较明显了:安装ncurses。

[root@localhost linux-2.6.38]# make menuconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
 *** Unable to find the ncurses libraries or the
 *** required header files.
 *** 'make menuconfig' requires the ncurses libraries.
 ***
 *** Install ncurses (ncurses-devel) and try again.
 ***
make[1]: *** [scripts/kconfig/dochecklxdialog] 错误 1
make: *** [menuconfig] 错误 2

 

应用程序-->添加/删除

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