硬件:s3c2410
内核:2.6.32.2
交叉编译器 :3.4.1
这篇文档只记录内核的移植,相应的bios和根文件系统请自己准备,网上的资料很多的。等以后我也会把我自己做的根文件系统的记录整理一下,不多说了,进入正题
第一,修改bios里的启动参数,将控制台改为ttySAC0(2.4下为ttyS0),生成一个新的bios。
第二,下载内核源码linux-2.6.32.2.tar.bz2,并且准备一个yaffs的补丁cvs-root.tar.gz
第三,开始移植
(1)解压缩内核和yaffs补丁
假定现在所在目录为/home/cxf/
tar -jxvf linux-2.6.32.2.tar.bz2
tar -zxvf cvs-root.tar.gz
(2)将补丁打上
cd cvs/yaffs2
./patch-ker.sh c /home/cxf/linux-2.6.32.2/
(3)修改内核Makefile
cd /home/cxf/linux-2.6.32.2
修改Makefile,183和184行
改为
ARCH ?= arm
CROSS_COMPILE ?= /usr/local/arm/3.4.1/bin/arm-linux-
(4)修改内核源码
修改nand flash分区使之与bios中设置一致
vi linux-2.6.32.2/arch/arm/plat-s3c24xx/common-smdk.c,其中有一个结构体 smdk_default_nand_part[],即flash分区。结构体 smdk_nand_sets中的.nr_chips成员表示分区的数量,如实赋值即可
去掉ECC校验
vi driver/mtd/nand/s3c2410.c
查找关键字NAND_ECC_SOFT,将其改为NAND_ECC_NONE
(5)将默认的配置文件copy到内核的根目录下
cp arch/arm/configs/s3c2410-defconfig .config
(6)配置内核
make menuconfig 进入配置界面
Load an Alternate Configuration File
输入.config
Boot options --->
(0x0) Compressed ROM boot loader BSS address //此项下面
│noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0,115200
File systems --->//这几个选项去掉吧,没什么用,减小内核体积
<> Second extended fs support
<> Ext3 journalling file system support
<> The Extended 4 (ext4) filesystem
[*] Miscellaneous filesystems ---> //选上这个
<*> YAFFS2 file system support
Device Drivers ---> //选上
<*> Memory Technology Device (MTD) support --->
[*] MTD partitioning support
说明:这个只是最基本的配置,你可以自己再裁剪以下,去掉自己不需要的,使生成的内核文件更小一些
保存退出,make即可生成zImage,在arch/arm/boot目录下
将生成的内核烧进板子,就可以跑起来了
linux-2.6.32.2移植到s3c2410 之一--------使系统跑起来
最新推荐文章于 2022-02-23 15:02:25 发布