(重来重来(三)是内存部分,还在难产中(写的太少不想发表))
在攻克了网卡,内存,文件系统的问题之后,开始想办法开始驱动摄像头了。首先肯定要解决驱动问题,sdk当中包含了相关部分,需要自己编译,以为泡杯茶就解决的问题,又遇见了许多坑,在此记录。
1、*.h文件找不到在Makefile文件中找到添加路径的变量 “-I”为添加头文件的符号,找到相关语句,修改好路径,即可
2、function not link 在已经找到函数文件后已经可以进行编译了,然后需要进行符号链接,(突然开始学习编译原理)会提示undefined。此时可以使用ldd 或 nm命令查询编译文件中的符号都有什么,缺少链接的文件。
WARNING: "himedia_register" [/home/kaiheng/document/hi3159/Hi3519V101_SDK_V1.0.4.0/drv/extdrv/pwm/hi_pwm.ko] undefined! WARNING: "himedia_unregister" [/home/kaiheng/document/hi3159/Hi3519V101_SDK_V1.0.4.0/drv/extdrv/pwm/hi_pwm.ko] undefined!
然而经过操作发现,那些链接文件暂时还没出现什么问题。所以暂且不管了。先进行接下来的操作。
然后就可以修改ko/load3516av200文件了。
这部分可以先看开头的“Variables Definition”部分。该部分主要是变量定义,涉及内存和senor可以提前改好,后面命令就不用加了。贴出来输出部分的代码:
echo "Usage: ./load3516av200 [-option] [sensor_name]" echo "options:" echo " -i insert modules" echo " -r remove modules" echo " -a remove modules first, then insert modules" echo " -sensor sensor_name config sensor type [default: ar0130]" echo " -osmem os_mem_size config os mem size [unit: M, default: 64]" echo " -total_mem_size config total mem size [unit: M, default: 512]" echo " -offline vi/vpss offline" echo " -h help information" echo -e "Available sensors: imx274, imx226, imx290, mn34120 ,ov4689" echo -e "workmode: stitching,single_pipe,double_pipe" echo -e "notes: osmem option can't be used when mmz zone partition is enable\n\n" echo -e "for example online: ./load3516av200 -a -sensor0 ov4689 -sensor1 ov4689 -osmem 64 -total 512\n" echo -e " offline: ./load3516av200 -a -sensor0 imx274 -osmem 64 -total 512 -offline\n"
可以看出如果上面我们写好了senor和内存,这里不用重复写了。只用定义 -i -a -r 即可。一般使用-a即可。
这里自己遇到了个问题。会运行到一半卡死,然后提示nfs:server is not responding,still trying.这部分让我卡了许久,我以为是自己网络问题,然后开始排查网络链路问题。结果后来思索无果开始排查load3516代码后发现卡死的位置在
sh ./pinmux.sh -net -vi > /dev/null发现有net我大概就知道可能又是配置,果不其然,这是配置管脚复用寄存器的位置。他重新配置成了rgmii模式导致直接配置卡死了(因为没有卸载/mnt挂载会导致直接卡死的)
直接屏蔽即可
下面还有i2c驱动的显示器
sh ./pinmux.sh -vo BT1120 > /dev/null由于没有显示器也是直接屏蔽即可。
操作完这些重新运行就可以看见
==== Your input Sensor0 type is imx274 ======== Your input Sensor1 type is NULL ====证明加载驱动完成。当然,由于还没有重新修改senor的配置,所以直接跑例程还是会出错的。然后看了一下要加载新的摄像头好像要改的地方还不少,继续修改。
(必须要吐槽一下,上来就是地狱级难度。网卡重新配置,摄像头重新配置,还没有显示设备,我还得自己想办法改例程。。。。。亚历山大)


Comments NOTHING