最近公司准备做视频开发的方案,上淘宝发现这种开发板的选择并不多:飞凌、志远(周立功)。飞凌的i.mx6Q有OV5640摄像头与触摸屏一起配套提供,技术支持估计2家都一样,还是得靠自己,最后选的飞凌的开发板。
飞凌自带的uboot、kernel(3.0.15)等用的都是挺老的版本,本来想上freescale官网下载最新的kernel来用(linux Kernel 4.1.15),但用Mfgtools烧写时,要么提示emmc flash没有发现,要么提示格式化错误。绕了不少弯路,最后都不成功,所以还是老老实实用飞凌自带的开发工具吧。
开发时如果每次都用U盘把程序拷贝到板子上太耗时间了,这里教下大家怎么通过NFS将开发板的文件系统挂载到ubuntu上,这样开发板运行后,其实就是在操作ubuntu的文件,速度快很多。
虚拟机是自己用virtualbox安装的Ubuntu 14.04。先将飞凌提供的开发板文件系统解压到/home/volfull/Workspace/rootfs(修改成你自己想要解压的路径)。
1. Ubuntu客户端操作
- 安装NFS服务端:
$ sudo apt-get install nfs-kernel-server
-
设置NFS-Server目录
修改/etc/exports文件,在其中增加NFS服务器目录。 一个NFS服务器可以共享多个NFS目录,在/etc/exports文件中,每个目录的设置独占一行。
$ sudo vi /etc/exports
在里面加入一行:
$ /home/volfull/Workspace/rootfs 192.168.1.*(rw,sync,no_root_squash)
/home/volfull/Workspace/rootfs 改成你的文件系统rootfs路径,192.168.1.* 为允许192.168.1网段的IP连接本机。
Ubuntu这边的事就结束了,下面开始i.mx6开发板的设置。
2. i.mx6开发板Uboot设置
开发板上电在uboot处按回车,进入uboot的命令行,输入:
$ printenv
打印出原来的参数:
baudrate=115200
ipaddr=192.168.1.103
serverip=192.168.1.101
netmask=255.255.255.0
loadaddr=0x10800000
rd_loadaddr=(0x1300000)
netdev=eth0
ethprime=FEC0
uboot=u-boot.bin
kernel=uImage
nfsroot=/opt/eldk/arm
bootargs_base=setenv bootargs console=ttymxc0,115200 video=mxcfb0:dev=lcd,AT070-WVGA,if=RGB24,bpp=32 video=mxcfb1:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 video=mxcfb2:off
bootargs_nfs=setenv bootargs ${bootargs} root=/dev/nfs ip=dhcp nfsroot=${serverip}:${nfsroot},v3,tcp
bootcmd_net=run bootargs_base bootargs_nfs; tftpboot ${loadaddr} ${kernel}; bootm
bootargs_mmc=setenv bootargs ${bootargs} ip=none root=/dev/mmcblk0p1 rootwait
bootcmd_mmc=run bootargs_base bootargs_mmc; mmc dev 3; mmc read ${loadaddr} 0x800 0x2900; bootm
bootcmd=run bootcmd_mmc
stdin=serial
stdout=serial
stderr=serial
ethact=FEC0
输入以下命令:
MX6Q SABRESD U-Boot > setenv serverip 192.168.1.222
MX6Q SABRESD U-Boot > setenv nfsroot /home/volfull/Workspace/rootfs
MX6Q SABRESD U-Boot > setenv bootcmd run bootcmd_net
MX6Q SABRESD U-Boot > setenv bootcmd_net run bootargs_base bootargs_nfs\; mmc dev 3\; mmc read \${loadaddr} 0x800 0x2900\; bootm
MX6Q SABRESD U-Boot > saveenv
Saving Environment to MMC...
Writing to MMC(3)... done
MX6Q SABRESD U-Boot >
- 192.168.1.222 为你的Ubuntu主机的IP;
- /home/volfull/Workspace/rootfs 为你的开发板文件系统路径;
- 记得命令里面的"\",这个转义字符要加上;
- 此处用的是DHCP方式获取开发板IP;