linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx

上传人:b****6 文档编号:16809862 上传时间:2022-11-26 格式:DOCX 页数:13 大小:18.96KB
下载 相关 举报
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx_第1页
第1页 / 共13页
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx_第2页
第2页 / 共13页
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx_第3页
第3页 / 共13页
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx_第4页
第4页 / 共13页
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx

《linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx

CPU:

S3C2410ARM处理器,

NorFlash:

2MB的NorFlash,用于固化测试程序(用来下载bootloader,内核,或文件系统);

NANDflash:

64MB的NandFlash,用于存储Bootloader、Linux内核及文件系统、应用程序和数据;

++++++++++++++++++++++++++++++++++++++++++++++

==================================================================================================

一:

编译环境搭建

一:

搭建交叉编译环境

说明:

由于编译交叉编译环境比较繁琐,建议大家用已经编译好的交叉编译环境。

下面以3.3.2的交叉编译环境的搭建为例,其他的两个的编译器环境搭建一样。

1.解压文件命令:

tarjxvfcorss-2.95.3.tar.bz2

2.把解压的文件夹中的“2.95.3”文件夹拷贝到/usr/local/arm目录下

(如果没有arm目录就新建arm目录,但是一定要是拷贝到这个目录,不然不能运行)。

3.在命令窗口输入

exportPATH=/usr/local/arm/2.95.3/bin:

$PATH

或者:

#vi/etc/profile

添加pathmunage/usr/local/arm/2.95.3/bin

#source/etc/profile

4.如果输入arm-然后按下tab键能自动补全命令arm-linux-说明搭建成功。

===================================================================================================

二:

bootloader编译

二:

bootloader的修改

主要修改分区信息,如果要能下载yaffs文件系统还得另外打补丁,最近我会写编这样的文章。

具体修改:

1.解压vivi:

[root@localhostvivi]#ls

archCVSdriversinitMakefileRules.maketestvivivivi.map

COPYINGDocumentationincludelibMakefile.newSDKscrīptsutilvivi-elf

2.[root@localhostvivi]#vim./arch/s3c2410/smdk.c

修改NANDflash分区如下:

----------------------------------------------------------------------

mtd_partition_tdefault_mtd_partitions[]={

{

name:

"

bootloader"

offset:

0,

size:

0x00020000,

flag:

0

},{

param"

0x000E0000,

kernel"

0x00100000,

0x00300000,

root"

0x00400000,

0x01400000,

MF_BONFS

user"

0x01800000,

0x02C00000,

}

};

-------------------------------------------------------------------------

3.修改Makefile

[root@localhostvivi]#vimMakefile

修改ARCHLINUX_INCLUDE_DIRCROSS_COMPILE如下:

------------------------------------------------------------------------

ARCH:

=arm

LINUX_INCLUDE_DIR=/usr/local/arm/2.95.3/include/

CROSS_COMPILE=/usr/local/arm/2.95.3/bin/arm-linux-

3.编译

[root@localhostvivi]#make

会在vivi目录生成你要的vivi程序(bootloader)

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

我的nandfalsh的一块为16k,

所以上面的分区:

**************************************

分区信息

bootloader:

128k

param:

896k

kernel:

3M

root:

20M

user:

40M

bon操作

bonpart01M4M:

m24M:

m

解释一下上面的命令:

第1个分区从0开始;

第2个分区从0x30000(即192K)开始;

第3个分区从0x200000(即2M)开始;

第4个分区从0x400000(即4M)开始.

***********************************

bonpartinfo

BONinfo.(4partitions)

No:

offsetsizeflagsbad

---------------------------------------------

0:

0x000000000x001000000000000001M

1:

0x001000000x003000000000000003M

2:

0x004000000x0140000000000001020M

3:

0x018000000x027fc00000000001039M+1008k

partshow

***********************************

mtdpartinfo.(5partitions)

nameoffsetsizeflag

------------------------------------------------

bootloader:

0x000000000x000200000128k

param:

0x000200000x000e00000896k

kernel:

0x001000000x0030000003M

root:

0x004000000x01400000420M

user:

0x018000000x02c00000444M

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

三:

内核编译

三:

注意:

用的编译器是4.2.0的交叉编译器

1.修改Makefile

[root@localhostporting]#cdlinux-2.6.22

[root@localhostlinux-2.6.22]#vimMakefile

修改ARCH和CROSS_COMPILE

--------------------------------------------------------------

ARCH?

CROSS_COMPILE?

=/hoem/crosstoll/crosstool-gcc410-k26222/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/bin/arm-9tdmi-linux-gnu-

2.修改common-smdk.c文件

[root@localhostlinux-2.6.22]#vimarch/arm/plat-s3c24xx/common-smdk.c

------------------------------------------------------------------------------

staticstructmtd_partitionsmdk_default_nand_part[]={

[0]={

.name="

Boot"

.size=SZ_128K,

.offset=0,

},

[1]={

.offset=MTDPART_OFS_APPEND,

.size=SZ_1M-SZ_128K,

[2]={

.offset=SZ_1M,

.size=SZ_1M*3,

[3]={

.size=SZ_2M*10,

/*

[5]={

S3C2410flashpartition5"

.offset=SZ_1M*14,

.size=SZ_1M*10,

[6]={

S3C2410flashpartition6"

.offset=SZ_1M*24,

.size=SZ_1M*24,

[7]={

S3C2410flashpartition7"

.offset=SZ_1M*48,

.size=SZ_16M,

*/

---------------------------------------------------------------------------------

3.去掉nandflash的ECC

[root@localhostlinux-2.6.22]#vimdrivers/mtd/nand/s3c2410.c

1、打开drivers/mtd/nand/s3c2410.c

2、搜索关键字NAND_ECC_SOFT,在s3c2410_nand_init_chip函数里

3、修改NAND_ECC_SOFT为NAND_ECC_NONE

4.支持启动时挂载devfs

为了我们的内核支持devfs以及在启动时并在/sbin/init运行之前能自动挂载/dev为devfs文件系统。

[root@localhostlinux-2.6.22]#vifs/Kconfig

-----------------------------------------------------------------------------------

找到menu"

Pseudofilesystems"

添加如下语句:

configDEVFS_FS

bool"

/devfilesystemsupport(OBSOLETE)"

defaulty

configDEVFS_MOUNT

Automaticallymountatboot"

dependsonDEVFS_FS

----------------------------------------------------------------------------------

5.编译内核

[root@localhostlinux-2.6.22]#cp./arch/arm/configs/s3c2410_defconfig.config

[root@localhostlinux-2.6.21.5]#makexconfig

Userspacebinaryformats

[]Kernelsupportfora.outandECOFFbinaries(BINFMT_AOUT)(去除该选项)

Bootoptions

Defaultkernelcommandstring

改成:

noinitrdroot=/dev/mtdblock3console=ttySAC0,115200init=/linuxrc

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

再选上你想选的选项,如果编译通不过,对照着错误,看下把哪些选项去除,或添加哪些选项。

6.编译

[root@localhostlinux-2.6.22]#makezImage

四:

文件系统的制作

四:

注意:

交叉编译器3.3.2,busybox1.5.1,静态编译

编译更详细的内容:

1.busybox的编译

-----------------------------------------------------------------------------

一修改busybox中的Makefile文件

找到ARCH和CROSS_COMPILE修改成如下

=/usr/local/arm/3.3.2/bin/arm-linux-

二配置

[root@localhostbusybox-1.4.2]#makedefconfig

[root@localhostbusybox-1.4.2]#makexconfig

=============================================

修改配置主要修改如下

BusyboxSettings

BuildOptions

[*]BuildBusyBoxasastaticbinary

//选此项静态编译。

MiscellaneousUtilities

[]taskset//选了就会出错

-------------------------------------------------

三编译

[root@localhostbusybox-1.5.1]#makeallinstall

-----------------------------------------------------------------

最后会在busybox-1.5.1/_install/目录生成你要的binsbinusr目录

------------------------------------------------------------------

2.编写linuxrc文件

#!

/bin/sh

#echo"

mount/etcasramfs"

/bin/mount-n-tramfsramfs/etc

/bin/cp-a/mnt/etc/*/etc

echo"

re-createthe/etc/mtabentries"

#re-createthe/etc/mtabentries

/bin/mount-f-tcramfs-oremount,ro/dev/mtdblock/3/

#mountsomefilesystem

mount/dev/shmastmpfs"

/bin/mount-n-ttmpfstmpfs/dev/shm

#挂载/proc为proc文件系统

mount/procasproc"

/bin/mount-n-tprocnone/proc

#挂载/sys为sysfs文件系统

mount/sysassysfs"

/bin/mount-n-tsysfsnone/sys

/bin/mount-f-tramfsramfs/etc

yaffsismounted"

/bin/mount-tyaffs/dev/mtdblock/1/mnt/yaffs

exec/sbin/init

---------------------------------------------------------------------

3.权限修改

chmodchmod775linuxrc

4.编写inittab文件

:

sysinit:

/etc/init.d/rc

askfirst:

-/bin/sh

tty2:

tty3:

tty4:

tty0:

restart:

/sbin/init

ctrlaltdel:

/sbin/reboot

shutdown:

/bin/umount-a-r

/sbin/swapoff-a

-

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1