驱动开发前期准备工作(NFS挂载): 那为什么要用NFS挂载来作为驱动开发的首选呢?因为你在未开发正确的驱动的时候,你要不停地做修改,如果你每改一次就要烧写一次根文件系统这样很浪费时间,而NFS挂载是把你的根文件系统放在你的开发机上,而开发板上并没有,所以有修改,立刻可以体现在开发板上。 言归正传,首先讲一下应该怎样NFS挂载根文件系统,我也是网上搜集了一些资料和跟同事要了一些资料,如果跟别人写的一样的,那请见谅,因为这些资料我也不知道来源。
平台:Windows7用虚拟机Fedora14 准备已经编译好的u-boot.bin uImage rootfs。
一、u-boot编译与烧写 1、打开DNW,选择NOR端口,输入“v”,讲u-boot.bin烧写进nand flash 2、选择NAND端口,重启开发板,出现以下界面:(此为超级终端下运行)
二、U-BOOT相关设置 1、在超级终端下键入u-boot的命令 # setenv ipaddr ****** (开发板IP) (以上为设置环境参数) # saveenv (保存环境参数到flash) (由于要进行tftp下载,所以要先搭建tftp服务器)
三、TFTP服务器搭建(Linux环境下) 1.安装以下两个软件(安装程序见TFTP安装包) [root@localhost Packages]# rpm -ivhxinetd-2.3.14-32.fc14.i686.rpm 2.修改配置文件 修改文件vi /etc/xinetd.d/tftp。
service tftp
3.创建tftp根目录,启动tftp-server
4.测试
四、下载内核到开发板内存 1、先确定开发板是否能ping通虚拟机下的Linux,如果是:host192.168.1.111 is alive,那么就表示连接 成功。 2、将编译好的uImage放入/home/user/tftpboot目录中。(Linux下) 3、在超级终端下输入: # tftp uImage (将uImage镜像下载到开发板的SDRAM的0x30008000位置)
五、利用nfs挂载根文件系统 1、在Linux下设置共享目录 运行命令:gedit/etc/exports 编辑nfs服务的配置文件(第一次打开时文件是空的),添加以下内容 /opt/rootfs *(rw,sync,no_root_squash) //自己根文件系统路径 *:表示所有的客户机都可以挂载此目录 rw:表示挂接此目录的客户机对该目录有读写的权限 no_root_squash:表示允许挂接此目录的客户机享有该主机的root身份 2、运行命令:service iptables stop 关闭防火墙 3、启动NFS 服务
六、在U-BOOT设置环境变量 1、setenv bootargs "noinitrd root=/dev/nfs rw nfsroot=192.168.1.232:/opt/rootfs/ ip=192.168.1.25:192.168.1.232:192.168.1.254:255.255.255.0 console=ttySAC0,115200 init=/linuxrc mem=64M" (192.168.1.25)是开发板的临时IP (192.168.1.232)开发主机IP (192.168.1.254)目标板上网关 (255.255.255.0)子网掩码 注意:如果使用的是虚拟机,则使用虚拟机的IP。 2、# setenv bootcmd “nand read 30008000 80000500000;bootm 30008000” (将bootcmd命令改成上面的内容,因为我们内核镜像在Nand Flash的位置是80000,所以u-boot执行完之后,内核的入口点就在80000这个位置。) 3、重启开发板。
只要保持网络联通,就能够启动Linux内核及其根文件系统了,第一次写博客,有什么错误敬请谅解。
|
|