修改Makefile
我们现在使用的是芯片是Hi3518EV200
,sensor是ar0130
于是将mpp中sample的Makefile.param
的内容进行修改
使能
CHIP_ID ?= CHIP_HI3518E_V200
SENSOR_TYPE ?= APTINA_AR0130_DC_720P_30FPS
再屏蔽掉没有用到的东西
进入/mpp/sample/venc
下面make
将编译出来的sample_venc
丢到nfs共享文件夹中,在开发板中跑起来
执行
./sampe_venc 0
选择第一种模式,
c
选择第一种码流模式
按两次回车
,停止录像,
在当前目录下得到三段h.264视频,分别对应1、2、3通道视频,内容一样,分辨率不一样。
放在vlc中可以看到相应的视频
重新制作rootfs
在最开始我们编译出来的rootfs是没有ko、lib的,如果如果想要ko和lib提前部署到根文件系统里面,就需要重新做一个根文件系统
参考原来编译osdrv的makefile
最后一步是将文件夹形式的根文件系统打包然后删除
于是我们的制作步骤如下
- 1、在
osdrv/pub
目录下解压rootfs_uclibc.tgz
,得到目录rootfs_uclibc
,进入目录rootfs_uclibc
,提前把/mpp
下的ko
及/mpp/lib
下的库复制到rootfs_uclibc
及user/lib
下 - 2、更改
rootfs_uclibc/etc/profile
,分配ip地址以及自动挂载 - 3、手工制作
rootfs
第一步
进入解压后的rootfs_uclibc
cp ../../../mpp/ko/ ./ -rf
第二步
cd usr/lib
cp ../../../../../mpp/lib/* ./
rm *.a
这样只剩下so
第三步
/Hi3518E_SDK_V1.0.3.0/osdrv/pub/rootfs_uclibc/root
将挂载脚本写在这里,内容如下
sleep 3
mount -t nfs -o nolock 192.168.2.63:/home/test/nfsShare /mnt
打开/rootfd_uclibc
中的/etc/profile
,文件末尾添加
ifconfig lo 127.0.0.1
ifconfig eth0 192.168.2.111
~/mount.sh &
最后一步
手动制作rootfs
退回到Hi3518E_SDK_V1.0.3.0
目录下执行
osdrv/pub/bin/pc/mkfs.jffs2 -d osdrv/pub/rootfs_uclibc -l -e 0x10000 -o osdrv/pub/rootfs_uclibc_64k.jffs2
于是在/Hi3518E_SDK_V1.0.3.0/osdrv/pub
下就会生成rootfs_uclibc_64k.jffs2
占用空间还是比较大的,我们是把所有的文件都放进来了,实际工作中是需要进行简化的,把不用的文件删掉
最终烧录
将新做出来的根文件系统拷贝到tftp
共享文件夹中
重启设备,用boot启动
设置设备ip与tftp服务器地址
hisilicon # set ipaddr 192.168.2.111
hisilicon # set serverip 192.168.2.63
hisilicon # save
检验能和虚拟机ping通后开始烧录
注意这里新根文件系统的名字和SDK提供的不一样,需要修改
mw.b 0x82000000 ff 0xc00000
tftp 0x82000000 rootfs_uclibc_64k.jffs2
sf probe 0
sf erase 0x400000 0xc00000
sf write 0x82000000 0x400000 0xc00000