有一个一两年前的行车记录仪,因为掉了固件,厂家也倒闭,就扔一边没管。最近有闲工夫,准备看看能不能改成一个网络摄像头用。
事实证明,想得太简单了。。。
行车记录仪是个山寨货,估计几年前类似的记录仪特别多。方案是全志A10或者A20的cpu,配合nt99141摄像头,128M内存,8M的spi flash。只有一个otg usb和sd卡接口,其它没啥可用的接口。sd卡可以改成sdio的wifi接口,就能改成无线摄像头。
源程序肯定是找不到,硬件也没图纸。早期的方案是裁剪版本的类似android系统,非常小,固件才8M,人家的方案一直保密。叫camlinux。后来新的方案,叫camdroid才是正规的android系统
只找到camlinux,没啥用。因为自己的目标不是恢复成一个简单行程车记录仪。而是完全能自主运行程序。
自己找的各种版本的全志A20 sdk。编译boot0 ,uboot。全志各个时期的软件方案特别多,试了一个又一个。uboot都是N种。。。最后确定一种boot0+uboot的方案。过程省略了。。。因为内存只有128M,所以调试了好几天。改boot0,uboot,kernel,让他能在这个局促的小硬件上跑起来。。。经历千难万险各种坑,最后得到可用的boot0,uboot,kernel和buildroot。能进linux系统了
然后调试摄像头驱动。。。在csdn买了一个源代码。肯定不能用,各种调试各种改。因为你不知道当前硬件的配置,gpio等等,各种坑,各种试。设备也原始。昏天黑地的kernel和驱动调试。。。
为了证实驱动和硬件是OK的,用buildroot编译ffmepg。。。各种坑,不多说了。结果ffmepg不输出结果,驱动各种通讯出错,又继续调整驱动和硬件。硬件和驱动的配合,如果出问题,真是让人绝望。途中想止损放弃,好几次。。。
然后驱动调整OK,ffmepg又没法截取视频,不知道为啥。。。
只能用另外软件来验证系统。。。fswebcam一个摄像头截图软件。又编译libjpeg,libpng,libgd来配合fswebcam。中间交叉编译一个各种坑。。。
最后用fswebcam截图成功。。。最终证实摄像头可用。因为没有调整摄像头参数,照片很黑,无所谓了。。。不重要
本来打算利用sd卡的sdio接口,接一个以前论坛1元支付器里面的wifi模块改成无线摄像头,现在暂时算了。。。以后有空再说。。。
图片:
板子:
板子:
linux:
照片: