这期的主角是视洞R33智能摄像头,LT定制版。我们通过修改启动命令让它运行开放系统,并且搭建rkipc平台,通过WEB/VLC预览视频画面
硬件配置很高啊,主控使用RV1106G2(带0.5T NPU),传感器gc4023,宽视角分辨率2560x1440@30fps,实测4M分辨率能跑满。能连WiFi,支持双向对讲、红外夜视。咸鱼9.9捡回来一台(被绑定),目前被绑定的25左右,未绑定的要40+(不建议买,只能用LT平台,回放要开会员),不过画质真的比某些虚标的强
这个主控其实幸狐和Firefly也推过,因此可以将它们的系统移植到摄像头上。摄像头配置是内存128M,spi-nand 128M。需要准备电烙铁 USB转串口 一张空闲的TF卡
一.拆机飞出调试串口
收到货后拆开摄像头(上半部分的接缝翘一下),可以看到RX TX GND的丝印,飞出串口线,插上CH340,开搞~
二.制作SD卡根系统
一键刷入固件制作中(只适配8G/32G存储卡,某多15块钱左右的联想a2卡就够了)
下面的是手动刷入教程,比较繁琐,并且需要linux电脑/root过的手机
首先下载根系统,在幸狐SD 卡镜像烧录处下载buildroot镜像的sd卡版,解压缩后得到rootfs.img备用
在Firefly CT36B处下载CT36B的固件,解压缩后得到userdata.img oem.img备用
接下来需要将固件烧录进TF卡(为什么不烧录进设备?因为128M塞不下256M的系统,我不太懂rv的分区…如果有大佬能适配下就更好了)
唉,好麻烦,不写了,等我做包吧
三.修改启动参数 buildroot, 启动!
准备完成,接下来终于可以修改摄像头了~插入TF卡,接上串口线,打开PuTTY/Xterm,波特率115200,在终端内按住Ctrl+C,插上摄像头的电源。可以看到系统中断在了uboot阶段,接下来修改启动参数,输入以下命令
setenv sys_bootargs ' ubi.mtd=7 ubi.block=0,rootfs root=/dev/mmcblk1p3 rootfstype=ext4 rw rk_dma_heap_cma=66M'
saveenv
reset
系统应该会自动启动TF卡里的系统,当看到Luckfox login:
时,恭喜系统启动成功!
四.调试摄像头
如果刷入了一键包,本步骤跳过
由于适配原因,默认的系统并没有很好的适配这款摄像头,WiFi模块也没有启用,因此我准备了一个一键patch脚本,以下: (建议先使用vi存进一个脚本里再执行,以防串口出现错误)
# 首先通过串口登录系统
# 挂载oem userdata分区
echo '/dev/mmcblk1p1 /oem ext4 defaults 0 0
/dev/mmcblk1p2 /userdata ext4 defaults 0 0
' >> /etc/fstab
mount -a
# 挂载原系统
mkdir -p /mtd/rootfs /mtd/oem
mount -t squashfs /dev/ubiblock0_0 /mtd/rootfs
# 拷贝原系统内的ubitool,挂载oem分区
cp /mtd/rootfs/usr/bin/ubi* /usr/bin
ubiattach -m 8
ubiblock -c /dev/ubi1_0
mount -t squashfs /dev/ubiblock1_0 /mtd/oem
# 拷贝原系统内的内核模块及启动脚本
rm -r /oem/usr/ko
cp -a /mtd/oem/usr/ko /oem/usr/ko
cp /mtd/oem/usr/bin/customer_insmod* /oem/usr/bin
# 删除系统内USB相关自启动(没找到usb焊盘...而且内核也没有相关的模块)
rm /etc/init.d/*usb*
# 写入WiFi启动脚本和配置
# S99done
echo '#!/bin/shcase "$1" instart)/etc/rc.local &;;*)exit 1
esacexit 0' > /etc/init.d/S99done
chmod +x /etc/init.d/S99done
# rc.local
echo '#!/bin/sh
# rootfs
mount -t squashfs /dev/ubiblock0_0 /mtd/rootfs
# userdata
ubiattach -m 12
#mount -t ubifs /dev/ubi1_0 /mtd/userdata
# oem
ubiattach -m 8
ubiblock -c /dev/ubi2_0
mount -t squashfs /dev/ubiblock2_0 /mtd/oem
# resource
#ubiattach -m 10
#ubiblock -c /dev/ubi3_0
#mount -t squashfs /dev/ubiblock3_0 /mtd/resource
# gpio
# export ircut open gpio
echo 35 > /sys/class/gpio/export
# export ircut close gpio
echo 36 > /sys/class/gpio/export
# open green led in front of the camera
echo 3 > /sys/class/gpio/export
echo high > /sys/class/gpio/gpio3/direction
# wpa
chroot /mtd/rootfs mount -a
cp /etc/wpa_supplicant.conf /mtd/rootfs/tmp
cp /etc/start_wpa.sh /mtd/rootfs/tmp
chroot /mtd/rootfs /tmp/start_wpa.sh' > /etc/rc.local
chmod +x /etc/rc.local
# start_wpa.sh
echo '#!/bin/sh
mount -t devtmpfs udev /dev
# wait for insmod
while [ ! -d /sys/class/net/wlan0 ]
do
sleep 1
done
wpa_supplicant -Dnl80211 -i wlan0 -c /tmp/wpa_supplicant.conf &
sleep 5
udhcpc -i wlan0
exit 0' > /etc/start_wpa.sh
chmod +x /etc/start_wpa.sh
# wpa_supplicant.conf 根据自己wifi名称密码修改
echo 'ctrl_interface=/var/run/wpa_supplicant
update_config=1
network={ssid="YOUR WIFI SSID"psk="YOUR WIFI PASSWORD"priority=1
}' > /etc/wpa_supplicant.conf
sync
# 加载摄像头默认配置
cp /oem/usr/share/rkipc-400w.ini /userdata/rkipc.ini
# 此外需要修改RkLunch.sh,将199到226行全部删掉(因为默认不支持gc4023,会导致配置被删)
执行完成后,打开摄像头所在IP,应该就能看到rkipc的WEB界面了,rtsp地址是rtsp://<IP地址>/live/0
(第0码流, 高分辨率)和rtsp://<IP地址>/live/1
(低分辨率),推荐的播放软件是VLC/Onvier。NPU及其他配置请参考瑞芯微rkipc手册和rkipc.ini
五.一些参考资料
分析得到的引脚分配:
gpio4 wifipwr
gpio35 ircut open
gpio36 ircut close
pwmchip3/pwm0 irled
requested enabled period: 10000 ns duty: 5000 ns polarity: normal
pwmchip0/pwm0 led
requested enabled period: 1000000 ns duty: 1000000 ns polarity: normal
gpio3 led (正面G)
gpio2 led (正面R)
gpio32 key (正面按钮 按下为0)
未完待续