最近利用一切业余时间学习,确实是考验意志的过程,呵呵。
系统:Ubuntu10.04
开发板:飞凌OK6410
软件下载地址:www.witech.com.cn
1. 准备 NFS 文件系统目录
启动 nfs 服务之前,必须在 Linux 虚拟机上准备好 NFS 共享目录。
例如我们采用 ubuntu 的“/forlinx/root”作为 NFS 共享目录,将用户基础资料光盘中
“linux2.6.28/filesystem/OK6410_yaffs2_v1.0.tgz”压缩文件拷贝到这个目录下,
然解压缩,得到根文件系统所需要目录。
在虚拟机上打开一个终端,输入以下命令:
mkdir /forlinx/root
将 OK6410_yaffs2_v1.0.tgz 文件拷贝到该目录下,解压:
tar –zxf OK6410_yaffs2_v1.0.tgz
2. 设置主机 IP
这里我们将 Linux 虚拟机的 IP 设置为 192.168.0.231
3. 配置 NFS 服务
在虚拟机上新建一个终端,依次输入以下命令:
sudo apt-get install portmap
sudo apt-get install nfs-kernel-server
sudo gedit /etc/exports
在弹出的文本编辑器中编辑 exports 文件,在最后一行添加:
/forlinx *(rw,sync,no_root_squash)
4. 启动 NFS 服务
sudo /etc/init.d/portmap restart
sudo /etc/init.d/nfs-kernel-server restart
5. 在开发板上设置并保存启动参数
在 u-boot 命令行下输入以下命令设置 u-boot 启动参数:
setenv bootargs "root=/dev/nfs rw nfsroot=192.168.0.231:$rootpath
ip=192.168.0.232:192.168.0.231:192.168.0.201:255.255.255.0:witech.com.cn:eth0:off console=ttySAC0,115200"
saveenv
(这个Uboot变量参数最为关键,依次为NFS文件系统所在目标机的IP,开发板IP,
NFS文件系统所在目标机的IP,路由网关,掩码)
重新启动开发板,Linux 内核启动后会自动挂载 NFS 文件系统。
-------------------------------------------------------分割线---------------------------------------------------
最近发现网上有了Linux版本的DNW,而且已经是DNW2了,研究了下,的确是蛮用的。
虽然是针对2410及2440开发板的,但是修改后,6410的开发板也是能使用的,并且已经在ok6410上试验过了。
1.准备工作
首先要安装libusb,这在ubuntu底下非常方便,只要使用命令:
sudo apt-get install libusb-dev
就可以
其次是获取源码,去http://fayaa.com/code/view/13007/下载源码,另存为dnw2.c,存放到自定义目录即可
2.编译dnw2
编译dnw2也是十分简单,进入存放dnw2.c的目录,然后使用命令
gcc dnw2.c -o dnw2 -lusb
只要前面libusb顺利安装了,就可以编译成功
编译后,会有dnw2可执行文件产生
3.使用dnw2烧写镜像文件
3.1使用kermit连接到开发板后,打开开发板电源,然后按回车进入uboot的命令行模式
3.2顺利进入命令模式后,输入 dnw c0008000,回车
3.3在存放dnw2可执行文件的目录下,执行 ./dnw2 path/file,pat/file指的是镜像位置的所在目录和命令,顺利的话,文件就开始向开发板上传
3.4上传完毕后,就擦除 Nandflash:在命令行中输入 nand erase 100000 300000 ,回车,这里的erase后两个参数指的是物理地址,根据文档里是要烧写的镜像文件决定,切勿照搬
3.5将内存的内核映像文件烧写到 Nandflash:
在命令行中输入 nand write.e c0008000 100000 300000 ,回车,这里 write.e后面两个参数也跟遵循上面所述。
按照这样的步骤完成后,就可以顺利完成烧写,我在ok6410上试验一次即顺利通过,有了这个dnw2这个小程序,以后就不用切换到windows环境下去了,对于开发的效率有着极大的帮助。
PS:其实查看了dnw2的源码,整个实现不是很复杂,关键是熟悉这些东西的人才能写出来,第一个奉献者总是伟大的,后面还有使用Qt加了GUI界面的dnw2,不过十分简陋。打算研究透彻后使用Qt重写一边,以便同时支持2440和6410。
本文出处:http://blog.cnnbboy.com/?cat=26,欢迎大家一起交流。 |