linux 2.6.26内核在GEC2410上的移植
时间:2009-07-28 来源:yuanfu
ARCH ?= $(SUBARCH)
CROSS_COMPILE ?= 将它修改为 ARCH ?= arm CROSS_COMPILE ?= arm-linux- 注:我的编译器路径解压在 /usr/local/arm/ 目录下,修改环境变量/etc/environment,把自己的bin文件路径添加在此文件里,就行啦!就可以在任何一个地方直接使用arm-linux-gcc来进行编译啦!如: $pwd /etc $more environment PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/gcc-3.4.5-glibc-2.3.6/bin" LANGUAGE="zh_CN:zh:en_US:en"
LANG="zh_CN.UTF-8"
2.修改arch/arm/plat-s3c24xx/common-smdk.c文件,修改NAND FLASH的分区信息 $vi common-smdk.c 在smdk_default_nand_part[]中进行如下修改:
static struct mtd_partition smdk_default_nand_part[] = { |
3、配置内核
在配置内核前,可以拷贝s3c2410默认的配置文件到内核源代码根目录下,以简化配置过程。
$cp arch/arm/configs/s3c2410_defconfig .config
$make menuconfig
再在此基础上配置一些选项,其具体的每项代表什么意思,可以参照如下网址,有比较详细的介绍。
http://lamp.linux.gov.cn/Linux/kernel_options.html
General setup --->
[*] Configure standard kernel features(for small systems)
System Type ---->
S3C2410 Machines --->
[*] SMKD2410/A9M2410
其余在此目录的全部按“N”。
而S3C2400 Machines、S3C2412 Machines、S3C2440 Machines、S3C2442 Machines、S3C2443 Machines全部选择 “N”。
Boot options --->
将 (root=/dev/hda1 ro init=/bin/bash console=ttySAC0) Default kernel command string
改成 (console=ttySAC0 root=/dev/nfs init=/linuxrc nfsroot=192.168.0.50:/home/yuaf/root_nfs ip=192.168.0.100:192.168.0.50:192.168.0.1:255.255.255.0:www.yuaf.com:eth0:off) Default kernel command string
也就是网络启动nfs文件系统的命令。init=/linuxrc,很重要!!!
Networking --->
Networking options --->
<*> Packet socket
[*] Packet socket:mapped IO
File systems --->
[*] Network File Systems --->
<*> NFS file system support
[*] Provide NFSv3 client support
[*] provide client support for the NFSv3 ACL protocol extension
[*] provide NfSv4 client support
<*> NFS server support
[*] NFS server support for the NFSv3 ACL protocol extension
[*] Root file system on NFS
[*] support for rpcbind version 3 & 4
保存退出。
4.编译内核
$make
就可以在 arch/arm/boot 目录下生成 zImage文件啦。
下一步就是通过TFTP下载内核到SDRAM,运行之。