嵌入式系统分析:引导加载程序(u-boot移植) ;linux内核(内核定制);根文件移植 。
Nand Flash分区:Boot loader / Boot parameters / Kernel / Rootfilesystem
建立交叉编译环境:arm-linux-gcc
安装: 先解压 tar xvzf arm-linuc-gcc -4.3.2.tgz
将其自动安装到/usr/local/arm/4.3.2 包含交叉编译的工具、然后将其添加到路径PATH当中,即/usr/local/arm/4.3.2/bin当中。(可以自己随便设置,但是要将其添加到路径当中)
一:U-boot:两种模式::::下载模式,引导模式。
1 :获取u-boot源码包,解压。
Tar xvzf u-boot-*********.tgz (解压目录自定)
解压之后有一个目录u-boot-2010.03
Make distclean
配置 make smdk2440a_config
Make 生成u-boot.bin文件
通过nor flash中自带的supervivi下载u-boot.bin.通过’n’下载到nandflash第零块,最起始块。重启自动进入u-boot界面。在界面当中输入相应的命令就可执行相应的命令。
Printenv 可查看相应的u-boot配置,引导方式,主机,服务器ip地址,网关等相应的参数
二:配置内核:
1安装tftp 软件。配置相应脚本文件:/etc/xinetd.d/tftp(server_args = -s /tftpboot -C)设置tftp的根文件。 .
2 创建tftpserver根目录:mkdir /tftpboot. 设置目录权限,使其具有可读可写的权限。
移植可以选网线直连或者通过网络连接。网络直连就要设置好相应的ip地址。网关使其能相互联网。网线直连只要设置好相应的ip地址,只要ip地址在同一网段内就可以了。
3 获取源码包。解压缩
《虚拟机内》1: ##cp config_mini2440_x35 .config
2:vim Makefile 配置硬件平台,编译环境。
3 make menuconfig 定制内核相应的驱动,文件系统等等。
4 make zImage 生成 vmlinux (u-boot不能直接支持)
(用mkz2uimage打包)
在生成的u-boot-2010.03文件tools目录下将mkimage拷贝到/usr/local/bin目录下。
将mkz2uimage拷贝到之前内核解压的文件/arch/arm/boot/中
执行脚本 # . / mkz2uimage
生成uImage
《开发板串口上》然后用u-boot下载、
# tftp 0x30008000uImage
# nand erase 60000500000
# nand write0x30008000 60000 500000
3 挂载根文件系统类型
《虚拟机内》Nfs
文件获取根文件系统解压得到文件root_qtopia将其决定绝对路径添加到nfs共享文件当中。
《串口当中》。设置引导方式
###setenvbootargsconsole=ttySAC0root=/dev/nfsnfsroot=192.168.1.102:/home/student/root_qtopiaip=192.168.1.226:192.168.1.102:192.168.1.102:255.255.255.0:SMDK2440A.arm9.net:eth0:off
### saveenv
重启(boot)
系统重nfs文件系统启动
《虚拟机内》yaffs
文件系统将其解压得到的文件打包成后缀为img形式。
Mkyaffs2image-128M root_qtopia/ root_qtopia.img
但首先得解压mkyaffs2image.tgz –C / 将被安装到PATH当中。
拷贝到/tftpboot/文件当中。
通过u-boot下载。设置:
setenv bootargsnoinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySAC0
saveenv
##tftp 0x30008000root_qtopia.img
##nand erase0x560000 $filesize
##nand write.yaffs0x30008000 0x560000 $filesize
重启(boot)