s3c2440linux构建移植文档.docx
《s3c2440linux构建移植文档.docx》由会员分享,可在线阅读,更多相关《s3c2440linux构建移植文档.docx(7页珍藏版)》请在冰豆网上搜索。
s3c2440linux构建移植文档
Linux构建移植文档
s3c2440
目录
一前言4
二交叉编译的移植5
2.1cross-tools工具的安装5
2.2Make工程的使用6
三uboot的移植6
3.1创建新开发板目录及配置文件(my2440)6
3.1.1新建目录board/my24406
3.1.2修改board/my24406
3.1.3修改board/my2440/Makefile6
3.1.4cpinclude/configs/smdk2410.h6
3.1.5在顶层Makefile中新增配置6
3.2修改SDRAM刷新频率6
3.2.1board/my2440/lowlevel_init.S6
3.3修改系统时钟分频及频率设定和机器类型ID7
3.3.1board/my2440/my2440.c中的board_init函数7
3.4修改获取系统时钟的函数7
3.4.1cpu/arm920t/s3c24x0/speed.c7
3.4.2include/s3c24x0.h7
3.5修正支持的NORFLASH类型为AMD_LV8007
3.5.1include/configs/my2440.h7
3.6定义cs8900的网卡地址及启用ping命令7
3.6.1include/configs/my2440.h7
3.7支持NANDFLASH命令7
3.7.1include/configs/my2440.h7
3.7.2include/s3c24x0.h7
3.7.3include/s3c2410.h7
3.7.48
3.7.5修改cpu/arm920t/s3c24x0/Makefile8
3.8配置传递给kernel的启动tag,自动启动kernel8
3.8.1include/configs/my2440.h8
3.8.2include/configs/my2440.h8
3.9配置其它锦上添花的U-boot参数8
3.9.1include/configs/my2440.h8
3.9.28
四linux裁剪与移植9
4.1安装ncurses.tar.gz9
4.1.1解压9
4.1.2安装9
4.2裁剪内核9
4.2.1解压内核9
4.2.2修改晶振频率9
4.2.3增加网卡驱动9
4.2.4修改顶层Makefile文件10
4.2.5makemenuconfig10
4.2.6make10
五根文件系统的制作10
5.1解压busybox10
5.2创建binlibdevetcmntproc等目录11
5.3裁剪配置busybox11
5.4解压mtd-utils-05.07.23.tar.bz211
5.5制作根文件系统11
一前言
硬件环境:
s3c2440开发板、pc机
软件环境:
xp3系统、WMworkstatus6.5、Ubuntu710虚拟机、H-JTAG、UEStudio、s3c2440硬件手册、SourceInsight、串口终端软件
目标:
通过以上提供的软硬件,在目标板-s3c2440开发板上构建一套稳定的系统平台
说明:
装有xp3系统的pc机,装备Ubuntu710虚拟机;
H-JTAG烧写引导程序;
UEStudio远程登录以及开发编辑的工具软件;
s3c2440硬件手册在移植u-boot中需要用到;
SourceInsight代码分析软件;
串口终端—调试必备
二交叉编译的移植
2.1cross-tools工具的安装
a)cpglibc-2.3.6-version-info.h_err.patch/work/tools/create_crosstools/crosstool-0.43/patches/glibc-2.3.6
说明:
这是一个补丁,修改Makefile所引起的BUG
b)进入crosstool-0.43,修改demo-arm-softfloat.sh
TARBALLS_DIR=/work/tools/create_crosstools/src_gcc_glibc
RESULT_TOP=/work/tools
说明:
TARBALLS_DIR为crosstool工具所要用到的源码包的目录
RESULT_TOP—安装路径
c)修改arm-softfloat.sh
TARGET=arm-linux
说明:
会影响到生成的gcc的名称
d)修改all.sh文件
PREFIX=${PREFIX-$RESULT_TOP/$TOOLCOMBO}
说明:
安装路径
2.2
Make工程的使用
三uboot的移植
3.1创建新开发板目录及配置文件(my2440)
3.1.1新建目录board/my2440
3.1.2修改board/my2440下的文件名称比如smdk2410.c改为my2440.C
3.1.3修改board/my2440/Makefile比如smdk2410.o改为my2440.o
3.1.4cpinclude/configs/smdk2410.hinclude/configs/my2440.h
3.1.5在顶层Makefile中新增配置目标my2440_config,格式如下
my2440_config:
unconfig
@$(MKCONFIG)$(@:
_config=)armarm920tmy2440NULLs3c24x0
注意:
Makefile的格式
3.2修改SDRAM刷新频率
3.2.1board/my2440/lowlevel_init.S中的REFCNT
3.3修改系统时钟分频及频率设定和机器类型ID
3.3.1board/my2440/my2440.c中的board_init函数
3.4修改获取系统时钟的函数
3.4.1cpu/arm920t/s3c24x0/speed.c中的get_HCLK、get_PLLCLK函数
3.4.2include/s3c24x0.h中增加2440分频新字段CAMDIVN
3.5修正支持的NORFLASH类型为AMD_LV800
3.5.1include/configs/my2440.h
3.6定义cs8900的网卡地址及启用ping命令
3.6.1include/configs/my2440.h
3.7支持NANDFLASH命令
3.7.1include/configs/my2440.h
3.7.2include/s3c24x0.h中增加S3C2440_NAND数据结构
3.7.3include/s3c2410.h中新增S3C2440_GetBase_NAND函数(仿s3c2410)
3.7.4新增(从linux内核源码移植)cpu/arm920t/s3c24x0/nand_flash.c
3.7.5修改cpu/arm920t/s3c24x0/Makefile
3.8配置传递给kernel的启动tag,自动启动kernel
3.8.1include/configs/my2440.h中定义CONFIG_SETUP_MEMORY_TAGS、CONFIG_CMDLINE_TAG、CONFIG_BOOTARGS
3.8.2include/configs/my2440.h中定义CONFIG_BOOTDELAY、CONFIG_BOOTCOMMAND
3.9配置其它锦上添花的U-boot参数
3.9.1include/configs/my2440.h
3.9.2CFG_PROMPT\CONFIG_AUTO_COMPLETE\CONFIG_CMDLINE_TAG\
CONFIG_CMDLINE_EDITING\CONFIG_SETUP_AUTO_MEMORY_TAGS
四linux裁剪与移植
4.1安装ncurses.tar.gz
4.1.1解压tarxzvfncurses.tar.gz
4.1.2安装./configure--with-shared--prefix=/usr
make
sudomakeinstall
4.2裁剪内核
4.2.1解压内核
tarxjvflinux-2.6.22.6.tar.bz2–C/work/system/
4.2.2修改晶振频率
Vimarch/arm/mach-s3c2440/mach-smdk2440.c+180
修改16934400为12000000
4.2.3增加网卡驱动
cs8900.ccs8900.h到drivers/net下
修改Kconfig文件,增加CS8900变量
修改drivers/net下Makefile文件,增加cs8900.o
4.2.4修改顶层Makefile文件
ARCH?
=arm
COMPILE?
=arm-linux
4.2.5makemenuconfig
支持网络通信
支持USB动态挂载与中文识别
支持NFS服务
支持RAMDISK
4.2.6make
sudocpmkconfig/bin
makeuImage
五根文件系统的制作
5.1解压busybox
tarxjvf****.bz2–C/work/system
5.2创建binlibdevetcmntproc等目录
5.3裁剪配置busybox
makemenuconfig修改安装路径,裁剪不必要的功能
cpbusybox所需要的库文件到lib目录下
配置etc下的inittab和init.d下的rcS
5.4解压mtd-utils-05.07.23.tar.bz2
生成mkfs.jffs2应用程序;
注意:
需要zlib库支持
5.5制作根文件系统
mkfs.jffs2-n–s512–e16KiB–dfs_mini–ofs_mini.jffs2