Toybrick

标题: v3.0固件无法连接imx258摄像头 [打印本页]

作者: segust    时间: 2021-3-4 17:17
标题: v3.0固件无法连接imx258摄像头
从这篇帖子过来的,http://t.rock-chips.com/forum.ph ... light=3A&page=2,烧录v3.0固件,替换toybrick-imx258.dtb,imx258摄像头插在mipi rx0接口,重启,/dev下面有10个video节点,用vlc播放都不能播放成功,什么原因呢?



作者: troy    时间: 2021-3-4 18:04
1.存在节点不一定代表mipi摄像头识别成功,有可能没插好没识别到摄像头,可以使用dmesg  | grep imx258查看日志信息,258的驱动是否正确加载。
2.播放的节点应该是rx0对应video0,rx1对应video5节点。
3.如果上面都成功,只是VLC播放不成功,可以执行以下操作进行抓图,会抓取3张NV12格式的图像保存到/tmp/NV12_640_480.out中,如果没提示保存,且文件大小不为0,imx258就是正常工作的。
  1. sudo apt-get install v4l-utils
  2. sudo v4l2-ctl -d /dev/video0 --set-fmt-video=width=640,height=480,pixelformat=NV12 --stream-mmap=3 --stream-to=/tmp/NV12_640_480.out --stream-count=3 --stream-skip=10 --stream-poll
复制代码

作者: segust    时间: 2021-3-4 18:33
本帖最后由 segust 于 2021-3-4 18:46 编辑
troy 发表于 2021-3-4 18:04
1.存在节点不一定代表mipi摄像头识别成功,有可能没插好没识别到摄像头,可以使用dmesg  | grep imx258查看 ...

这个摄像头之前用v1.8固件刷了设备树后是可以播放比较暗的画面的,但是刷了v3.0的固件后试了一下你给我的代码,NV12_640_480.out大小为0, 不像是摄像头问题呀
作者: troy    时间: 2021-3-4 19:48
segust 发表于 2021-3-4 18:33
这个摄像头之前用v1.8固件刷了设备树后是可以播放比较暗的画面的,但是刷了v3.0的固件后试了一下你给我的代 ...

dmesg有看到imx258的probe信息吗。Probe信息和v4l2信息贴上来看一下
作者: segust    时间: 2021-3-5 09:40
本帖最后由 segust 于 2021-3-5 10:03 编辑

是这样吗? 之前用v1.8固件的时候imx258@1a节点可以显示比较暗的画面,是不是dtb没编对?

[attach]1700[/attach]

[attach]1698[/attach]


作者: troy    时间: 2021-3-5 10:15
本帖最后由 troy 于 2021-3-5 10:17 编辑
segust 发表于 2021-3-5 09:40
是这样吗? 之前用v1.8固件的时候imx258@1a节点可以显示比较暗的画面,是不是dtb没编对?

日志好像看不出来,执行下sudo media-ctl -p,看一下有没有imx258的entity信息。你的imx258驱动已经开始probe了,所以dtb应该是对的,很可能是camera有问题,或者没插好。
  1. - entity 8: m00_b_imx258 1-0010 (1 pad, 1 link)
  2.             type V4L2 subdev subtype Sensor flags 0
  3.             device node name /dev/v4l-subdev2
  4.         pad0: Source
  5.                 [fmt:SRGGB10_1X10/4208x3120@10000/200000 field:none]
  6.                 -> "rockchip-mipi-dphy-rx":0 [ENABLED]
复制代码

作者: segust    时间: 2021-3-5 10:20
本帖最后由 segust 于 2021-3-5 10:21 编辑

没有看到imx258字样呢? 我试下换个摄像头
[attach]1702[/attach]

作者: segust    时间: 2021-3-5 10:41
本帖最后由 segust 于 2021-3-5 10:45 编辑

额,解决了,我用的是kernel里的rk3399pro-toybrick-rkisp1-imx258.dtsi设备树文件,把节点都换成了imx258@1a,编译之后用生成的toybrick.dtb替换了你之前发的那个dtb,摄像头可以读到彩色图了
作者: qfxx_toybrick    时间: 2021-3-5 11:15
@segust  我通过dmesg |grep imx258 和 v4l2-ctl --all打印的信息和你的是一样的。请问你的kernel文件在哪里的,怎么生成的新的dtb,是重新编译内核了吗?
作者: segust    时间: 2021-3-5 11:37
kernel在这https://github.com/rockchip-toybrick/kernel, arch/arm64/boot/dts/rockchip下有rk3399pro-toybrick-rkisp1-imx258.dtsi, 主要改的是这个, 然后改下rk3399pro-toybrick-prod-linux.dts #include的地方, 然后./make.sh linux prod, 之后在boot_linux/extlinux/下面会生成toybrick.dtb, 替换掉板子上的就行了
作者: qfxx_toybrick    时间: 2021-3-8 16:28
很棒,按照你的方法,跑了一下/usr/share/rockchip/example里的demo,终于跑起来了。请教下为什么把节点位置改成1a呢?
作者: tajor    时间: 2021-6-3 15:49
qfxx_toybrick 发表于 2021-3-8 16:28
很棒,按照你的方法,跑了一下/usr/share/rockchip/example里的demo,终于跑起来了。请教下为什么把节点位置 ...

can you give me "rk3399pro-toybrick-rkisp1-imx258.dtsi"
thanks!
作者: jieyi233    时间: 2021-6-9 10:29
segust 发表于 2021-3-5 10:41
额,解决了,我用的是kernel里的rk3399pro-toybrick-rkisp1-imx258.dtsi设备树文件,把节点都换成了imx258@1a, ...

请问除了这个文件还有哪里要把Imx258的地址换成1a,我把内核编译生成的toybrick.dtb反编译说
dts: Warning (i2c_bus_reg): /i2c@ff110000/imx258@1a: I2C bus unit address format error, expected "10"
作者: rensichao    时间: 2021-10-21 19:41
segust 发表于 2021-3-5 10:41
额,解决了,我用的是kernel里的rk3399pro-toybrick-rkisp1-imx258.dtsi设备树文件,把节点都换成了imx258@1a, ...

谢谢楼主,我修改从地址为1a,在prox上也实现了。
作者: gungnir    时间: 2021-10-26 17:18
segust 发表于 2021-3-5 11:37
kernel在这https://github.com/rockchip-toybrick/kernel, arch/arm64/boot/dts/rockchip下有rk3399pro-toy ...

你好 请问可以发一下编译后的.dtb文件吗 我这里编译了好多次都出错




欢迎光临 Toybrick (https://t.rock-chips.com/) Powered by Discuz! X3.3