1、首先将/osdrv/pub目录下的rootfs_uclibc.tgz解压到当前目录下。之前编译整个工程的时候,makefile在最后会将根文件系统打包起来,然后把打包前的文件夹删除,这里我们再将它解压出来。
执行:tar -xvf rootfs_uclibc.tgz,解压完后,就可以对根文件系统添加我们需要的文件了。
2、首先先让根文件系统能够自己挂载上nfs文件系统,这样我们就能将sample程序放到nfs文件系统中,方便我们的测试。
修改根文件系统etc目录下的profile文件,在后面追加以下命令。
ifconfig eth0 192.168.1.10
先进入到/ko文件夹中执行:./load3518e -i -sensor ar0130 -osmem 32 -total 64来部署ko文件
然后查看我们挂载的nfs文件的路径在哪,使用sudo showmount -e查看
之后追加挂在nfs服务器的命令:mount -t nfs -o nolock 192.168.1.141:/home/aston/rootfs /mnt
3、将我们需要用到的ko文件和lib文件拷贝进根文件系统中,而这些文件就是我们之前提及的mpp海思预先为开发者编译好的视频编解码的驱动。
首先将mmp文件下的ko文件夹拷贝到根文件系统的根目录下。
然后再将mmp文件夹下的lib文件夹内所有内容拷贝到根文件系统中的usr/lib中。
其中lib文件夹里面的所有.a文件可以删除,因为这些都是静态库文件,用不到,可以删除。
最后我们还需要将之前拷贝进来的文件都加上777的权限,这样以防出错。使用sudo chmod -R 777 到整个根文件系统目录下即可。
4、添加完需要用的文件之后,就需要手工打包根文件系统了。
在osdrv的上级目录下执行osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2
就可制作出了烧录用的根文件系统的镜像文件,生成的文件在osdrv/pub目录中,大小7.1M,比之前设定的根文件系统分区来的小,所以可以正常烧录。
5、烧录跟文件系统。
首先将编译好的根文件镜像放到tftp服务器的文件夹下,然后使用tftp命令下载到内存中去,然后再烧录到flash中。
tftp更新并重新烧写rootfs的命令序列:
mw.b 0x82000000 ff 0xc00000
tftp 0x82000000 rootfs_uclibc_64k.jffs2
sf probe 0
sf erase 0x400000 0xc00000
sf write 0x82000000 0x400000 0xc00000
6、开始部署samplc程序
sample程序在osdrv同级目录下的mmp文件夹中
首先先看一下Makefile.param,发现里面的两个需要修改的地方。
1、默认选中的事HI3516C,所以我们屏蔽掉默认的,打开我们的HI3518E_V200
2、镜头默认选中的是SONY的镜头,同样,我们屏蔽默认的,打开我们的镜头AR130
之后就没有什么需要改动的了。
接下来就是进入到/mpp/sample/venc目录下,然后执行make指令,然后会生成一个app程序
这个程序的功能就是录像,然后将录像的文件以h264形式保存在app所在的目录下。
之后在串口终端中,输入./sample_venc 0按照指示就可以进行录像了,然后按两次回车就可以退出程序了。
退出后会在在samle_venc目录下,也就是我们挂载的nfs文件夹下生成三个h264文件,使用vlc就可以对它们进行播放了。