本文档适应于GEC210开发板系统移植项目。
本文档介绍的内容包括uboot移植,uboot环境变量设置,内核移植,文件系统移植
本文档使用环境:
宿主机环境:Ubuntu14.04
开发板平台:GEC210开发板
交叉编译环境:arm-linux-gcc4.4.1
以下操作分为宿主机操作和开发板操作:
宿主机环境操作(以下简称主机环境):(宿主机中linux命令一律使用黄色背景)
1.使用虚拟机打开ubuntulinux环境
2.打开terminal 终端(下图中左侧栏提示终端的部分左键单击打开),使用基本的linux命令操作。
成功打开后,出现以下界面:
注意ubuntu主机的ip地址
使用ifconfig命令查看,随便ping一下ip是否能顺利上网(组合键ctrl+c结束ping命令)
如果没有ip地址,sudo ifconfig eth0 192.168.1.20 (密码输入为123456)
开发板环境操作(以下简称开发板)(开发板命令一律使用灰色背景)
1.开发板需连接电源线,网线和串口线(需连接到电脑的串口或usb转串口)
2.windows电脑上打开SecureCRT软件(没有安装需要自行安装,使用默认安装即可)
3.查看电脑端的设备管理器(计算机右键—管理—设备管理),查看串口号,注意下图中红色框部分。
4. SecureCRT软件中点击file—quickconnet...(由于版本差异,界面可能有些不同,但是命令是一样的。)
弹出的界面中,第一行下拉菜单选择serial
做如下配置,注意port为刚刚在设备管理器看到的串口号,其他参数与图中的一样即可。
配置好后,点击connet就好。
出现下图的界面,注意那个绿色的勾,表示连接正常(背景颜色默认是白色,我这个黑色截图是我自己设置了,你们的颜色和我不同也是正常)
5.打开开发板电源,开发板的电源开关在电源线连接处附近,其他开关不要随意使用
注意在SecureCRT界面出现字符时按任意键停止启动,并按字母‘e’键进入命令模式
打印的内容大致相同,大家最后的界面需要出现GEC210# 然后有光标闪烁就是好的。
如果没有出现该界面,请断电重启重复以上步骤。
备注:以下位置开发板命令输入环境均表示使用SecureCRT软件中GEC210#的环境
进入正式操作前还有几个uboot的命令(ip地址根据实际情况设置,开发板ip和服务器ip必须保持在同一网段,同一个局域网不得出现相同ip)
setenv ipaddr 192.168.1.88 (设置开发板的ip地址,开发板重启后需重复该命令配置)
setenv serverip 192.168.1.99 (设置tftp服务器的ip地址,一般就是虚拟机的ip,开发板重启后需重复该命令配置)
ping 192.168.1.99 (测试网络通断,只能从开发板ping电脑ip,不可从电脑ping开发板的ip)
出现下图的提示(alive)表示网络连接正常,其他情况表示异常
使用printenv命令可以查看环境变量的设置
第一部分 uboot移植 (主机环境)
1. 解压:(一定不能解压到共享目录中,一定要解压到linux文件系统目录中)
tar xjfuboot-gec21020130916.tar.bz2 -C /home/work/ (-C指定解压的路径)
2.配置
(进入uboot源代码目录中 cd /home/work/uboot-gec210)
make gec210_nand_config
3.编译
make
4.拷贝u-boot.bin到tftp目录中。
cp u-boot.bin /home/gec/tftp/
下载更新到开发板 (开发板环境)
在SecureCRT的GEC210#的界面中
1. 下载到内存中
tftp30008000 u-boot.bin
出现连续#表示下载成功,(如果下载不成功,请详细查看开发板环境搭建部分)
2. 擦除flash,这个步骤小心,使用这个步骤时不得重启,不得断电,否则开发板成砖
nand erase 080000
3. 把下载的内容烧写到flash中
nand write 30008000 0 80000
4. 重启开发板,可以看到时间信息(我这编译的时间是2017-05-23),如果你看到的信息是你编译的时间那就说明uboot移植成功。
课堂练习
1.为什么我擦除了flash中的程序,uboot还可以正常使用?
2.一旦擦除了flash,为什么就重新启动不了了?
第二部分:内核移植
1.解压:(一定不能解压到共享目录中,一定要解压到linux文件系统目录中)
进入源代码目录中(cd /home/work/src)
tar xjf linux-2.6.35.7-gec-v3.0-ft5206.tar.bz2 -C /home/work/ (-C指定解压的路径)
2.编译 进入linux源代码目录(cd/home/work/linux-2.6.35.7-gec-v3.0-gt110/)
make
(编译的时间大约15-30分钟,耐心等待)
编译好的内核在arch/arm/boot/目录中,拷贝编译好的内核镜像到tftp目录
cp arch/arm/boot/zImage /home/gec/tftp
下载更新到flash中(开发板环境)
此处省略截图咯。
tftp 30008000 zImage
nand erase 600000 500000
nand write 30008000 600000 500000
更新后重启开发板即可,在内核启动时可以看到内核编译的时间(应该是你刚刚编译的时间):
第三部分:更新文件系统
解压自带文件系统(只能解压到linux目录中)(主机环境)
进入源代码目录中(cd /home/work/src)
tar xjf rootfs-iot20130916.tar.bz2 -C /home/work/
将文件系统打包为flash支持的镜像文件(先到文件系统目录 cd /home/work/)
mkyaffs2image rootfs_iotrootfs.img
拷贝镜像文件到tftp目录中
cp rootfs.img /home/gec/tftp/
chmod 777 /home/gec/tftp/rootfs.img (修改文件属性)
更新文件系统(开发板环境)
tftp 40000000 rootfs.img (下载结束可以看到下载文件的大小)
nand erase e00000 f200000
nand write.yaffs 40000000 e00000 (这个参数填文件大小,16进制形式)
更新完后即可上电重启了。
系统启动后应该会提示触摸屏校准程序。
其他事项:
不能下载的情况较多:
1. ip是否设置正确?板卡ip和服务器ip同时检查。可以使用ping命令ping服务器的ip。
2. 如果ping命令不能ping通,可以考虑网线是否连好,连好的网线使用ping命令的时候会闪烁。Win7以上的版本不支持ping,关闭防火墙试试。Ip地址是否同一网段?ping其他可以正常联网的电脑ip试试
3. 如果ping没有问题,但是还是不能下载,重启linux中tftp服务器(sudo service tftpd-hpa restart).其他比如文件没找到(file no found),文件名有错误,或者文件不在服务器目录,还有权限不够(permission denied),修改文件权限(sudo chmod 777 文件名)。
4. 虚拟机尽量使用桥接模式。
5. 笔记本请关闭wifi。
6. 手动配置虚拟机的ip地址。