Navigation

    VEYE IMAGING Forum

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Recent
    • Popular
    • Users
    • WIKI
    • veye.cc
    1. Home
    2. RuiMin Huang
    R
    • Profile
    • Following 0
    • Followers 0
    • Topics 2
    • Posts 3
    • Best 0
    • Groups 0

    RuiMin Huang

    @RuiMin Huang

    0
    Reputation
    1
    Profile views
    3
    Posts
    0
    Followers
    0
    Following
    Joined Last Online
    Email 1447364060@qq.com

    RuiMin Huang Follow

    Latest posts made by RuiMin Huang

    • 经验分享:如何为树莓派交叉编译特定版本的支持v4l2的.ko以及.dtb

      0 背景

      我在以前一个版本的64bit树莓派系统上,搭建了很多环境,现在,这个64bit的树莓派系统需要接入IMX385,目前只有v4l2这种方案(64bit的树莓派系统删除了一些库,树莓派原生相机也就不支持)。

      但悲催的是,目前veye在Github提供的源码,只支持内核版本为5.10.92-v8+的树莓派,也就是只支持比较新版本的树莓派进行,然而我的树莓派系统内核版本为5.10.63-v8+,veye官方的源码也就不支持。

      解决方法一:更换内核版本为5.10.92-v8+的树莓派系统,但有点不太现实,我搭建了很多环境,特别是很多深度学习的推理环境,这样再折腾明显不现实。

      解决方法二:交叉编译一个支持5.10.63-v8+的.ko以及.dtb,这个工作量会少很多,接下来就开始。

      1 准备工作

      开发环境准备,在虚拟机Ubuntu18.04中操作

      sudo apt install git bc bison flex libssl-dev make libc6-dev libncurses5-dev
      
      sudo apt install crossbuild-essential-arm64
      

      确认自己的树莓派上的piOS版本,以下动作在树莓派上面完成

      uname -r
      

      cd /home/pi/ko_dev
      
      cp /usr/share/doc/raspberrypi-bootloader/changelog.Debian.gz ./
      
      vi changelog.Debian
      

      从下面的连接下载源码

      Github源码链接

      将获取到的源码放虚拟机上

      2 给源代码打补丁

      以下动作在虚拟机中进行,打补丁

      进入到第一个需要打补丁的地方

      cd /home/book/RPi/linux-oldstable_20211201
      
      cd ./drivers/media/i2c/
      

      先删掉要被替换的文件

      rm -rf ./Kconfig
      rm -rf ./Makefile
      

      将以下文件copy到虚拟机中

      继续拷贝文件

      进入到第二个需要打补丁的地方

      cd /home/book/RPi/linux-oldstable_20211201
      
      cd ./arch/arm/boot/dts/overlays
      

      删除需要被替换的文件

      rm -rf ./Makefile
      

      拷贝文件

      其中要去替换的Makefile中是多了以下内容

      csimx307-dual-cm4.dtbo\
      csimx307.dtbo\
      cssc132-dual-cm4.dtbo\
      cssc132.dtbo\
      veye327-dual-cm4.dtbo\
      veye327.dtbo\
      veyecam2m-dual-cm4.dtbo\
      veyecam2m.dtbo
      

      3 开始编译源码

      首先是编译准备

      cd /home/book/RPi/linux-oldstable_20211201
      
      KERNEL=kernel8
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2711_defconfi
      

      然后是增加编译选项

      5.10版本kernel的路径是Device Drivers --> Multimedia Support --> Media ancillary drivers --> Camera sensor devices

      cd /home/book/RPi/linux-oldstable_20211201
      
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig
      

      接着是开始编译内核,模块,设备树

      cd /home/book/RPi/linux-oldstable_20211201
      
      make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image modules dtbs -j4
      

      4 将编译结果导出

      导出模块文件

      cd /home/book/RPi/linux-oldstable_20211201
      
      cd ./drivers/media/i2c/
      

      以下为需要导出的文件

      导出设备树二进制文件

      cd /home/book/RPi/linux-oldstable_20211201
      
      cd ./arch/arm/boot/dts/overlays
      

      以下为需要导出的二进制文件

      最终导出的驱动模块文件,设备树二进制文件,放在PC的下列文件夹中

      需要将最终导出的文件放到树莓派的Veye V4L2源码的路径下

      cd /home/pi/Veye_Camera_V4L2/raspberrypi_v4l2-main/release/driver_bin/5.10.63-v8+
      

      然后通过脚本在树莓派上安装驱动模块以及设备树二进制文件

      cd /home/pi/Veye_Camera_V4L2/raspberrypi_v4l2-main/release
      
      sudo ./install_driver.sh veyecam2m
      
      dmesg
      

      此时,重新开机还不能用,只有内核,以及驱动模块,还有设备树二进制文件都替换掉了,才有用,也就是下一步

      5 将编译结果导出到TF卡

      首先查看tf卡是否正常插入

      lsblk 
      

      然后,建立挂载目录

      cd /home/book/RPi
      mkdir mnt
      mkdir mnt/fat32
      mkdir mnt/ext4
      

      挂载文件

      cd /home/book/RPi
      sudo mount /dev/sdb1 ./mnt/fat32
      sudo mount /dev/sdb2 ./mnt/ext4
      

      安装驱动模块到TF卡

      
      cd /home/book/RPi/linux-oldstable_20211201
      
      sudo env PATH=$PATH make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- INSTALL_MOD_PATH=../mnt/ext4 modules_install
      

      备份原版kernel

      
      cd /home/book/RPi/mnt/fat32
      
      cp ./kernel8.img ./kernel8_bak.img
      
      

      安装kernel,以及设备树二进制文件到TF卡

      
      cd /home/book/RPi/linux-oldstable_20211201
      
      sudo cp arch/arm64/boot/Image ../mnt/fat32/kernel8.img -f
      
      sudo cp arch/arm64/boot/dts/broadcom/*.dtb ../mnt/fat32/ -f
      
      sudo cp arch/arm64/boot/dts/overlays/*.dtb* ../mnt/fat32/overlays/ -f
      
      sudo cp arch/arm64/boot/dts/overlays/README ../mnt/fat32/overlays/ -f
      
      

      卸载挂载的TF卡

      
      cd /home/book/RPi/linux-oldstable_20211201
      
      sudo umount ../mnt/fat32
      
      sudo umount ../mnt/ext4
      

      6 虚拟机,主机弹出TF卡,插入到树莓派

      到这一步,即完成IMX385的V4L2的移植了

      dmesg
      

      posted in VEYE MIPI camera
      R
      RuiMin Huang
    • RE: VEYE-MIPI-IMX385在新版Raspberry Pi Zero 2 W上无法使用

      非常感谢,确实可以了,问题得到了解决:

      posted in VEYE MIPI camera
      R
      RuiMin Huang
    • VEYE-MIPI-IMX385在新版Raspberry Pi Zero 2 W上无法使用

      1 VEYE-MIPI-IMX385在Raspberry Pi 4 Model B 4GB上的测试是OK的:

      1.1 软硬件环境:

      • 镜像版本:为了保留Raspicam apps,特意下载了最新的Buster版本:2021-12-02-raspios-buster-armhf,如下图所示:


      下载地址:https://downloads.raspberrypi.org/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2021-12-02/2021-12-02-raspios-buster-armhf.zip

      • 应用软件版本:于2021年12月12日Clone到本地,属Github上的最新版本https://github.com/veyeimaging/raspberrypi

      • 硬件版本:Raspberry Pi 4 Model B 4GB

      1.2 硬件连接:

      1.3 软件测试过程截图:

      1.4 测试结果:

      可以看出,Raspberry Pi 4 Model B 4GB成功驱动了VEYE-MIPI-IMX385,并拍摄了一个12M大小的视频,该视频导出Windows后可以正常播放。

      说明VEYE-MIPI-IMX385本身是没问题的

      2 VEYE-MIPI-IMX385在Raspberry Pi Zero 2 W上测试是有问题的:

      2.1软硬件环境:

      • 镜像版本:为了保留Raspicam apps,特意下载了最新的Buster版本:2021-12-02-raspios-buster-armhf,如下图所示:


      下载地址:https://downloads.raspberrypi.org/raspios_oldstable_armhf/images/raspios_oldstable_armhf-2021-12-02/2021-12-02-raspios-buster-armhf.zip

      • 应用软件版本:于2021年12月12日Clone到本地,属Github上的最新版本https://github.com/veyeimaging/raspberrypi

      • 硬件版本:树莓派官方最新出的:Raspberry Pi Zero 2 W

      2.2硬件连接:

      2.3 软件测试过程截图:

      2.4 测试结果:

      在调试过程中:

      通过Raspberry Pi Zero 2 W的CSI接口已经成功驱动了树莓派官方摄像头OV5647,可以排除是Raspberry Pi Zero 2 W硬件的问题;也通过前面1.4章节排除了是VEYE-MIPI-IMX385硬件本身的问题;也更换过其它软排线,排除了软排线的问题;总而言之,已经排除了是硬件问题。

      软件测试过程也反复执行了多次,安装的还是Buster版本的镜像,带Raspicam apps的,但还是在Raspberry Pi Zero 2 W上得不到VEYE-MIPI-IMX385的图像。

      可以看出,VEYE-MIPI-IMX385目前在Github上提供的程序暂不支持Raspberry Pi Zero 2 W,希望可以早日支持。

      2.5 怀疑出问题的地方:

      新出的Raspberry Pi Zero 2 W在CSI摄像头接口那个地方的I2C引脚与老版本的不一样,而VEYE-MIPI-IMX385的驱动程序依然使用老版本的I2C引脚。

      当然上面仅仅是一种猜想,我们更相信官方的研发实力以及技术支持,期望VEYE-MIPI-IMX385早日支持Raspberry Pi Zero 2 W

      posted in VEYE MIPI camera
      R
      RuiMin Huang