linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx
- 文档编号:16809862
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:13
- 大小:18.96KB
linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx
《linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《linux26221 的在s3c2410板子上的移植Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。
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
-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux26221 的在s3c2410板子上的移植 s3c2410 板子 移植