适配adv7280m相机到rk3588的安卓平台

步骤

  1. 增加驱动adv7280m.c文件到kernel/driver/media/i2c
  2. 修改kernel/driver/media/i2c/Makefile

obj-$(CONFIG_VIDEO_ADV7180) += adv7280m.o

  1. 设备树增加相机的设置,见附录

第一次编译,设备树报错,注释掉13.dts里面的第2行

//#include "rk3588-firefly-itx-cam-8ms1m.dtsi"

启动后dmesg没有发现加载了驱动adv7280m

  1. config增加配置CONFIG_VIDEO_ADV7280=y

Kernel-5.10/arch/arm64/configs/firefly_defconfig里面增加配置CONFIG_VIDEO_ADV7180=y

第二次编译,仅仅刷新boot.img。

dmesg | grep adv

驱动已经成功运行。

su

v4l2-ctl --list-devices检查又出现问题

:/ # v4l2-ctl --list-devices

rk_hdmirx (fdee0000.hdmirx-controller):

        /dev/video11

Failed to open /dev/video0: No such device

  1. (额外的)顺手关闭hdmi-in

&hdmiin_sound{

status = "disabled";

};

&hdmirx_ctrler {

status = "disabled";

};

  1. 使用虚拟相机驱动对比测试

上面的driver/media/i2c/Makefile

obj-y += rd-virtual-camera.o

设备树13.dts中

 //compatible = "adi,adv7280-m";

compatible = "rockchip,virtual-camera";

第三次编译,虚拟相机测试正常

:/ # v4l2-ctl --list-devices

rkcif (platform:rkcif-mipi-lvds2):

        /dev/video0

:/ # dmesg | grep virtual

[   10.029343] virtual-camera 3-0021: get dts res: 0x0, select best res: 1920x1080

[   10.029350] virtual-camera 3-0021: get dts fmt: 0x0, select default fmt: 0x2006

[   10.029369] virtual-camera 3-0021: link freq ctrl->val: 11 freq: 500000000

  1. Failed to open /dev/video0: No such device

此前在linux上也是遇到此问题,后来是解决掉的,怎么又出现了。

adv7280->subdev.entity.function = MEDIA_ENT_F_CAM_SENSOR; //MEDIA_ENT_F_ATV_DECODER;

把MEDIA_ENT_F_ATV_DECODER改回MEDIA_ENT_F_CAM_SENSOR

第四次编译, video0成功出现

  1. camera3_profiles.xml

adb root

adb remount

adb pull /vendor/etc/camera/camera3_profiles.xml到本地修改后push回去

adb logcat发现provider服务一直报错

10-11 15:44:03.820     1     1 I init    : starting service 'vendor.camera-provider-2-4'...

10-11 15:44:03.823     1     1 I init    : Created socket '/dev/socket/camera_tool', mode 666, user 1047, group 1006

10-11 15:44:03.835  7559  7559 W libprocessgroup: Failed to open /dev/stune/top-app/tasks: No such file or directory

10-11 15:44:03.835  7559  7559 W libprocessgroup: Failed to apply MaxPerformance task profile: No such file or directory

10-11 15:43:55.464  7559  7559 I android.hardware.camera.provider@2.4-service: CameraProvider@2.4 legacy service is starting.

10-11 15:43:55.479  7559  7559 W mpp_log : warning: use new logx function

10-11 15:43:55.479  7559  7559 I vpu_api : dlopen vpu lib /vendor/lib/librk_vpuapi.so success

10-11 15:43:55.492  7559  7559 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 7559 (android.hardwar), pid 7559 (android.hardwar)

10-11 15:43:55.509  7562  7562 I crash_dump32: obtaining output fd from tombstoned, type: kDebuggerdTombstoneProto

10-11 15:43:55.509   387   387 I tombstoned: received crash request for pid 7559

10-11 15:43:55.510  7562  7562 I crash_dump32: performing dump of process 7559 (target tid = 7559)

10-11 15:43:55.513  7562  7562 E DEBUG   : failed to read process info: failed to open /proc/7559

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chenyq14

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值