A23平台开发记录

1、提取第一张LOGO 

                        mkdir /a
        root@polaris-p1:/ # mount -t vfat /dev/block/nanda /a
                    mount -t vfat /dev/block/nanda /a
        root@polaris-p1:/ # ls /a
                    ls /a
                    bat
                    bootlogo.bmp
                    font24.sft
                    font32.sft
                    magic.bin
                    script0.bin

2、查看摄像头名称
      busybox find /sys/ -name name 
        cat /sys/devices/platform/twi.2/i2c-2/2-003c/name

3、查看摄像头配置(底层)
       echo csi0 >/sys/class/script/dump
       cat /sys/class/script/dump

      如下:
root@astar-y3:/ # echo csi0 >/sys/class/script/dump
echo csi0 >/sys/class/script/dump
root@astar-y3:/ # cat /sys/class/script/dump
cat /sys/class/script/dump
++++++++++++++++++++++++++__sysfs_dump_mainkey++++++++++++++++++++++++++
    name:      csi0
    sub_key:   name           type      value
               vip_csi_pck    gpio      (gpio: 0x80 / PE0, mul: 2, pull -1, drv -1, data -1)
               vip_csi_mck    gpio      (gpio: 0x81 / PE1, mul: 2, pull -1, drv -1, data -1)
               vip_csi_hsync  gpio      (gpio: 0x82 / PE2, mul: 2, pull -1, drv -1, data -1)
               vip_csi_vsync  gpio      (gpio: 0x83 / PE3, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d0     gpio      (gpio: 0x84 / PE4, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d1     gpio      (gpio: 0x85 / PE5, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d2     gpio      (gpio: 0x86 / PE6, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d3     gpio      (gpio: 0x87 / PE7, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d4     gpio      (gpio: 0x88 / PE8, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d5     gpio      (gpio: 0x89 / PE9, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d6     gpio      (gpio: 0x8a / PE10, mul: 2, pull -1, drv -1, data -1)
               vip_csi_d7     gpio      (gpio: 0x8b / PE11, mul: 2, pull -1, drv -1, data -1)
               vip_dev0_reset gpio      (gpio: 0x90 / PE16, mul: 1, pull -1, drv -1, data 0)
               vip_dev0_pwdn  gpio      (gpio: 0x91 / PE17, mul: 1, pull -1, drv -1, data 1)
               vip_dev0_flash_engpio      (gpio: 0x401 / GPIO1, mul: 1, pull -1, drv -1, data 0)
               vip_dev1_reset gpio      (gpio: 0x8e / PE14, mul: 1, pull -1, drv -1, data 0)
               vip_dev1_pwdn  gpio      (gpio: 0x8f / PE15, mul: 1, pull -1, drv -1, data 1)
               vip_dev0_pos   string    "rear"
               vip_dev0_lane  int       1
               vip_dev0_twi_idint       2
               vip_dev0_twi_addrint       120
               vip_dev0_isp_usedint       0
               vip_dev0_fmt   int       0
               vip_dev0_stby_modeint       0
               vip_dev0_vflip int       0
               vip_dev0_hflip int       0
               vip_dev0_iovdd string    "axp22_dldo3"
               vip_dev0_iovdd_volint       2800000
               vip_dev0_avdd  string    "axp22_ldoio0"
               vip_dev0_avdd_volint       2800000
               vip_dev0_dvdd  string    "axp22_eldo2"
               vip_dev0_dvdd_volint       1800000
               vip_dev0_afvdd string    ""
               vip_dev0_afvdd_volint       2800000
               vip_dev0_power_eninvalid type!
               vip_used       int       1
               vip_mode       int       0
               vip_dev_qty    int       2
               vip_dev0_flash_modeinvalid type!
               vip_dev0_af_pwdninvalid type!
               vip_dev1_mname string    "gc0308"
               vip_dev1_pos   string    "front"
               vip_dev1_lane  int       1
               vip_dev1_twi_idint       2
               vip_dev1_twi_addrint       66
               vip_dev1_isp_usedint       0
               vip_dev1_fmt   int       0
               vip_dev1_stby_modeint       0
               vip_dev1_vflip int       0
               vip_dev1_hflip int       0
               vip_dev1_iovdd string    "axp22_dldo3"
               vip_dev1_iovdd_volint       2800000
               vip_dev1_avdd  string    "axp22_ldoio0"
               vip_dev1_avdd_volint       2800000
               vip_dev1_dvdd  string    "axp22_eldo2"
               vip_dev1_dvdd_volint       1800000
               vip_dev1_afvdd string    ""
               vip_dev1_afvdd_volint       2800000
               vip_dev1_power_eninvalid type!
               vip_define_sensor_listint       0
               vip_dev0_mname string    "gc2035"
               vip_dev1_flash_eninvalid type!
               vip_dev1_flash_modeinvalid type!
               vip_dev1_af_pwdninvalid type!
--------------------------__sysfs_dump_mainkey--------------------------

4、Launcher如果没有重力感应要检查:
    <bool name="allow_rotation">true</bool>














wen_ov5640_r16_20161114_1744后插入UVC可以打开ov5640和USB摄像头.7z 20161114全志R16配置为前ov5640后UVC的双摄像头 1、 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\configs\camera.cfg 修改: number_of_camera = 1 为: number_of_camera = 2 如果不改这里,兄弟,你在camera这个APP里面是绝对看不到前后摄像头的切换选项的!!!!^_ 修改ov5640的分辨率: used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 640x480 key_default_picture_size = 640x480 为(根据你驱动里面的摄像头的寄存器配置分辨率而实际修改): used_preview_size = 1 key_support_preview_size = 2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 key_default_picture_size = 640x480 2、 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\astar_evb20.mk #include device/softwinner/polaris-common/prebuild/google/products/gms_minimal.mk 注释掉这里干掉Google Play。可以不改。 3、这里讲UVC配置为模块了,请注意UVC所需要的模块的加载顺序。 Z:\home\wwt\uvc_r16_project\android\device\softwinner\astar-evb20\init.sun8i.rc 默认为: #csi module insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko insmod /system/vendor/modules/cam_detect.ko # insmod /system/vendor/modules/actuator.ko # insmod /system/vendor/modules/ad5820_act.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko insmod /system/vendor/modules/gc0307.ko # insmod /system/vendor/modules/ov2035.ko insmod /system/vendor/modules/vfe_v4l2.ko 修改为: #csi module # /dev/video0 ov5640 insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko #insmod /system/vendor/modules/cam_detect.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko insmod /system/vendor/modules/ov5640.ko insmod /system/vendor/modules/vfe_v4l2.ko # /dev/video1 uvc insmod /system/vendor/modules/videobuf2-core.ko insmod /system/vendor/modules/videobuf2-memops.ko insmod /system/vendor/modules/videobuf2-vmalloc.ko insmod /system/vendor/modules/uvcvideo.ko 4、 Z:\home\wwt\uvc_r16_project\lichee\tools\pack\chips\sun8iw5p1\configs\default\env.cfg 推荐修改: bootdelay=0 为: bootdelay=3 5、不用修改: Z:\home\wwt\uvc_r16_project\lichee\tools\pack\chips\sun8iw5p1\configs\evb-20\sys_config.fex ;-------------------------------------------------------------------------------- ;vip (video input port) configuration ;vip_used: 0:disable 1:enable ;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer ;vip_dev_qty: The quantity of devices linked to capture bus ; ;vip_define_sensor_list: If you want use sensor detect function, please set vip_define_sensor_list = 1, and ; verify that file /system/etc/hawkview/sensor_list_cfg.ini is properly configured! ; ;vip_dev(x)_pos: sensor position, "rear" or "front", if vip_define_sensor_list = 1,vip_dev(x)_pos must be configured! ; ;vip_dev(x)_isp_used 0:not use isp 1:use isp ;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply ;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply ;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply ;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;x indicates the index of the devices which are linked to the same capture bus ;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00 vip_csi_mck = port:PE01 vip_csi_hsync = port:PE02 vip_csi_vsync = port:PE03 vip_csi_d0 = port:PE04 vip_csi_d1 = port:PE05 vip_csi_d2 = port:PE06 vip_csi_d3 = port:PE07 vip_csi_d4 = port:PE08 vip_csi_d5 = port:PE09 vip_csi_d6 = port:PE10 vip_csi_d7 = port:PE11 vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 vip_dev0_mname = "ov5640" vip_dev0_pos = "rear" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 1 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "axp22_dldo3" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1800000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = vip_dev0_reset = port:PE14 vip_dev0_pwdn = port:PE15 vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = [usbc1] usb_used = 1 usb_drv_vbus_gpio = port:PD12 usb_restrict_gpio = usb_host_init_state = 1 usb_restric_flag = 0 usb_regulator_io = "nocare" usb_regulator_vol = 0 usb_not_suspend = 0 编译内核之后, rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh config Welcome to mkscript setup progress All available chips: 0. sun8iw5p1 Choice: 0 All available platforms: 0. android 1. dragonboard 2. linux 3. tina Choice: 0 All available kernel: 0. linux-3.4 Choice: 0 All available boards: 0. bell-one 1. evb 2. evb-20 3. evb-rtl8723bs 4. sc3813r Choice: 2 rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh 配置USB摄像头为模块(也可以选择*直接编译进内核): rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd linux-3.4/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee/linux-3.4$ make ARCH=arm menuconfig Device Drivers ---> Multimedia support ---> [*] Video capture adapters ---> 修改: [ ] V4L USB devices ---> 为: [*] V4L USB devices ---> 修改: USB Video Class (UVC) (NEW) 为 USB Video Class (UVC) rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd linux-3.4/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee/linux-3.4$ cd .. rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ ./build.sh rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/lichee$ cd ../android/ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ source build/envsetup.sh including device/softwinner/bellone-sc3813r/vendorsetup.sh including device/softwinner/astar-evb20/vendorsetup.sh including device/softwinner/r16-bell-one/vendorsetup.sh including device/softwinner/astar-evb/vendorsetup.sh including device/softwinner/polaris-common/vendorsetup.sh including device/lge/mako/vendorsetup.sh including device/lge/hammerhead/vendorsetup.sh including device/samsung/manta/vendorsetup.sh including device/generic/x86/vendorsetup.sh including device/generic/mips/vendorsetup.sh including device/generic/armv7-a-neon/vendorsetup.sh including device/asus/tilapia/vendorsetup.sh including device/asus/deb/vendorsetup.sh including device/asus/grouper/vendorsetup.sh including device/asus/flo/vendorsetup.sh including sdk/bash_completion/adb.bash rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ lunch You're building on Linux Lunch menu... pick a combo: 1. aosp_arm-eng 2. aosp_x86-eng 3. aosp_mips-eng 4. vbox_x86-eng 5. bellone_sc3813r-eng 6. astar_evb20-eng 7. r16_bell_one-eng 8. astar_evb-eng 9. aosp_mako-userdebug 10. aosp_hammerhead-userdebug 11. aosp_manta-userdebug 12. mini_x86-userdebug 13. mini_mips-userdebug 14. mini_armv7a_neon-userdebug 15. aosp_tilapia-userdebug 16. aosp_deb-userdebug 17. aosp_grouper-userdebug 18. aosp_flo-userdebug Which would you like? [aosp_arm-eng] 6 ============================================ PLATFORM_VERSION_CODENAME=REL PLATFORM_VERSION=4.4.2 TARGET_PRODUCT=astar_evb20 TARGET_BUILD_VARIANT=eng TARGET_BUILD_TYPE=release TARGET_BUILD_APPS= TARGET_ARCH=arm TARGET_ARCH_VARIANT=armv7-a-neon TARGET_CPU_VARIANT=cortex-a7 HOST_ARCH=x86 HOST_OS=linux HOST_OS_EXTRA=Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty HOST_BUILD_TYPE=release BUILD_ID=KVT49L OUT_DIR=out ============================================ rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ extract-bsp rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ make -j12 rootroot@cm-System-Product-Name:/home/wwt/uvc_r16_project/android$ pack 编译好系统之后,刷机之后请注意先让开发板的Android4.4启动完成之后再插入USB摄像头。 全志R16的android4.4启动之后再插入USB摄像头。 这个配置就可以设置 ov5640为后置摄像头:/dev/video0 UVC为前置摄像头:/dev/video1 如果接上USB摄像头再启动,android是被: ov5640为前置摄像头,有设备节点/dev/video1,打开失败。 UVC为后置摄像头:/dev/video0 原因未知。 参考资料: http://blog.youkuaiyun.com/u010257920/article/details/49925807 A20 linux(dragonboard)同时使用Parallel CSI Camera及UVC http://blog.youkuaiyun.com/guoyihoney/article/details/46966603 A20平台增加camera http://blog.youkuaiyun.com/it_fish_man/article/details/17395469 Android usb camera设备添加 http://blog.youkuaiyun.com/zmnqazqaz/article/details/49535531 RK3288 uvc摄像头调试 http://blog.youkuaiyun.com/edsam49/article/details/8886543 USB Camera在android车机上应用前景及初试小结
R58点亮ov5640.txt 开发板:深圳市索智科技有限公司SC3817R开发板,全志R16(CPU:Quad-Core Cortex-A7 CPU) http://www.allwinnertech.com/clq/r/R16.html 全志官网R16的简介 android4.4.2/linux3.4.39 2016/7/18 16:38 1、配置ov5640在android层配置的分辨率为vga(预览/拍照/录像) 注意:系统自带的快拍APP就在这里查找分辨率参数发送到camera的HAL层。 这里得分辨率设置为:640x480 驱动里面搜索可以设置为:2592x1936, 2048x1536, 1600x1200, 1280x960, 1280x960, 1024x768, 1920x1080 ,1280x720, 800x600, 640x480 R:\wyb\wen_ov5640_r16\android\device\softwinner\astar-evb20\configs\camera.cfg ;------------------------------------------------------------------------------- ; 用于camera的配置 ; ; 采用格式: ; key = key_value ; 注意: 每个key需要顶格写; ; key_value紧跟着key后面的等号后面, 位于同一行中; ; key_value限制大小为256字节以内; ; ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; exif information of "make" and "model" ;------------------------------------------------------------------------------- key_camera_exif_make = MAKE_A31S key_camera_exif_model = MODEL_A31ST ;------------------------------------------------------------------------------- ; 1 for single camera, 2 for double camera ;------------------------------------------------------------------------------- number_of_camera = 1 ;------------------------------------------------------------------------------- ; CAMERA_FACING_BACK ; gc0307 ov2640 ;------------------------------------------------------------------------------- camera_id = 0 ;------------------------------------------------------------------------------- ; 1 for CAMERA_FACING_FRONT ; 0 for CAMERA_FACING_BACK ;------------------------------------------------------------------------------- camera_facing = 0 ;------------------------------------------------------------------------------- ; 1 for camera without isp(using built-in isp of Axx) ; 0 for camera with isp ;------------------------------------------------------------------------------- use_builtin_isp = 0 ;------------------------------------------------------------------------------- ; camera orientation (0, 90, 180, 270) ;------------------------------------------------------------------------------- camera_orientation = 90 ;------------------------------------------------------------------------------- ; driver device name ;------------------------------------------------------------------------------- camera_device = /dev/video0 ;------------------------------------------------------------------------------- ; device id ; for two camera devices with one CSI ;------------------------------------------------------------------------------- device_id = 0 used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 640x480 key_default_picture_size = 640x480 used_flash_mode = 0 key_support_flash_mode = on,off,auto key_default_flash_mode = on used_color_effect=0 key_support_color_effect = none,mono,negative,sepia,aqua key_default_color_effect = none used_frame_rate = 1 key_support_frame_rate = 10 key_default_frame_rate = 10 used_focus_mode = 0 key_support_focus_mode = auto,infinity,macro,fixed,continuous-video,continuous-picture key_default_focus_mode = auto used_scene_mode = 0 key_support_scene_mode = auto,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,barcode key_default_scene_mode = auto used_white_balance = 0 key_support_white_balance = auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight key_default_white_balance = auto used_exposure_compensation = 1 key_max_exposure_compensation = 3 key_min_exposure_compensation = -3 key_step_exposure_compensation = 1 key_default_exposure_compensation = 0 2、没有/dev/video1,只有/dev/video0 R:\wyb\wen_ov5640_r16\android\device\softwinner\astar-evb20\ueventd.sun8i.rc /dev/video0 0666 media media #/dev/video1 0666 media media 3、在init.rc(init.sun8i.rc)中加载ov5640.ko这个驱动模块。 R:\wyb\wen_ov5640_r16\android\device\softwinner\astar-evb20\init.sun8i.rc #csi module insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko insmod /system/vendor/modules/cam_detect.ko #insmod /system/vendor/modules/actuator.ko #insmod /system/vendor/modules/ad5820_act.ko insmod /system/vendor/modules/cci.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko #insmod /system/vendor/modules/gc0307.ko #insmod /system/vendor/modules/ov2035.ko #insmod /system/vendor/modules/ov2640.ko insmod /system/vendor/modules/ov5640.ko insmod /system/vendor/modules/vfe_v4l2.ko 启动之后实际加载的摄像头的驱动模块: shell@astar-evb20:/ $ lsmod gt82x 9849 0 - Live 0x00000000 bma250 7848 0 - Live 0x00000000 sunxi_schw 12559 0 - Live 0x00000000 (O) rtl8150 9023 0 - Live 0x00000000 sunxi_keyboard 3021 0 - Live 0x00000000 sw_device 13916 0 - Live 0x00000000 vfe_v4l2 445444 1 - Live 0x00000000 ov5640 27129 0 - Live 0x00000000 vfe_subdev 4523 2 vfe_v4l2,ov5640, Live 0x00000000 vfe_os 3951 2 vfe_v4l2,vfe_subdev, Live 0x00000000 cci 21775 2 vfe_v4l2,ov5640, Live 0x00000000 videobuf_dma_contig 5567 1 vfe_v4l2, Live 0x00000000 videobuf_core 16520 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000 bcm_btlpm 7442 0 - Live 0x00000000 bcmdhd 629907 0 - Live 0x00000000 mali 209314 20 - Live 0x00000000 (O) lcd 41263 0 - Live 0x00000000 disp 992816 8 mali,lcd, Live 0x00000000 nand 282774 0 - Live 0x00000000 (O) shell@astar-evb20:/ $ 4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov2640.c的编译选项,只需要修改device目录中的Makefile打开ov5640(默认打开)即可: R:\wyb\wen_ov5640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\ov5640.c R:\wyb\wen_ov5640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile obj-m += ov2640.o R:\wyb\wen_ov5640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\Kconfig R:\wyb\wen_ov5640_r16\lichee\linux-3.4\drivers\media\video\sunxi-vfe\Makefile 5、 R:\wyb\wen_ov5640_r16\lichee\tools\pack\chips\sun8iw5p1\configs\evb-20\sys_config.fex ;-------------------------------------------------------------------------------- ;vip (video input port) configuration ;vip_used: 0:disable 1:enable ;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer ;vip_dev_qty: The quantity of devices linked to capture bus ; ;vip_define_sensor_list: If you want use sensor detect function, please set vip_define_sensor_list = 1, and ; verify that file /system/etc/hawkview/sensor_list_cfg.ini is properly configured! ; ;vip_dev(x)_pos: sensor position, "rear" or "front", if vip_define_sensor_list = 1,vip_dev(x)_pos must be configured! ; ;vip_dev(x)_isp_used 0:not use isp 1:use isp ;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply ;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply ;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply ;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;x indicates the index of the devices which are linked to the same capture bus ;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00 vip_csi_mck = port:PE01 vip_csi_hsync = port:PE02 vip_csi_vsync = port:PE03 vip_csi_d0 = port:PE04 vip_csi_d1 = port:PE05 vip_csi_d2 = port:PE06 vip_csi_d3 = port:PE07 vip_csi_d4 = port:PE08 vip_csi_d5 = port:PE09 vip_csi_d6 = port:PE10 vip_csi_d7 = port:PE11 vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 vip_dev0_mname = "ov5640" vip_dev0_pos = "rear" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x78 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 0 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "axp22_dldo3" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1800000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = vip_dev0_reset = port:PE14 vip_dev0_pwdn = port:PE15 vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = 6、开发板上摄像头的I2C挂载在TWI2上面了,逻辑是需要打开的(但是不打开也能够用,很奇怪!): ;---------------------------------------------------------------------------------- ;i2c configuration ; twi_used = twix enable ;---------------------------------------------------------------------------------- [twi0] twi_used = 1 twi_scl = port:PH02 twi_sda = port:PH03 [twi1] twi_used = 1 twi_scl = port:PH04 twi_sda = port:PH05 [twi2] twi_used = 0 twi_scl = port:PE12 twi_sda = port:PE13 直接配置摄像头的I2C了: vip_csi_sck = port:PE12 vip_csi_sda = port:PE13 不过奇怪的是,摄像头并没有向其它平台那样生成这个设备节点: /sys/class/i2c-adapter/i2c-2/2-0030 shell@octopus-f1:/ $ shell@octopus-f1:/ $ cd /sys/class/i2c-adapter/i2c-2/ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ ll drwxr-xr-x root root 1970-01-02 08:06 2-003b --w------- root root 4096 1970-01-02 08:06 delete_device lrwxrwxrwx root root 1970-01-02 08:06 device -> ../../twi.2 -r--r--r-- root root 4096 1970-01-02 08:06 name --w------- root root 4096 1970-01-02 08:06 new_device drwxr-xr-x root root 1970-01-02 08:06 power lrwxrwxrwx root root 1970-01-02 08:06 subsystem -> ../../../../bus/i2c -rw-r--r-- root root 4096 1970-01-02 08:06 uevent shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ 可能是ov2640的驱动程序不完整,没有通过i2c_detect来注册2-003c这个节点。 直接在驱动程序中读取I2C,还是对的。device ID = 0x5640。 7、摄像头使用的是客户提供: 设置为VGA分辨率是: vsync=7.5hz href=15khz xclk=24mhz pclk=85mhz
R58点亮ov2640.txt 开发板:全志公板,全志R58(CPU:Octa-Core Cortex-A7 CPU) http://www.allwinnertech.com/clq/r/R58.html 全志官网R58的简介 android4.4.4/linux3.4.39 2016/6/30 9:36 1、配置ov2640在android层配置的分辨率为vga(预览/拍照/录像) 注意:系统自带的快拍APP就在这里查找分辨率参数发送到camera的HAL层。 cubieboard2开发板使用的是全志A20的CPU,自带两路CSI的摄像头接口。 一般使用CSI1,所有生成的设备节点是/dev/video1。 一般情况下,MIPI为主摄像头(后置摄像头),那设备节点就是/dev/video0。 没有接MIPI摄像头,那就空出来,像全志A20那样配置成为了/dev/video1了。结果被坑了。 后来想起来: insmod /system/vendor/modules/ov2640.ko insmod /system/vendor/modules/vfe_v4l2.ko 手工加载vfe_v4l2.ko驱动模块之后,生成了设备节点/dev/video0。 赶紧修改为/dev/video0。然后使用adb push进去。 修改属性之后,摄像头还是不显示。重启之后正常了。这里折腾了好久!!!! R:\wyb\r58_bmi160_bma250_ov2640_dev\android\device\softwinner\octopus-f1\configs\camera.cfg ;------------------------------------------------------------------------------- ; 用于camera的配置 ; ; 采用格式: ; key = key_value ; 注意: 每个key需要顶格写; ; key_value紧跟着key后面的等号后面, 位于同一行中; ; key_value限制大小为256字节以内; ; ;------------------------------------------------------------------------------- ;------------------------------------------------------------------------------- ; exif information of "make" and "model" ;------------------------------------------------------------------------------- key_camera_exif_make = MAKE_AllWinner key_camera_exif_model = MODEL_f1 ;------------------------------------------------------------------------------- ; 1 for single camera, 2 for double camera ;------------------------------------------------------------------------------- number_of_camera = 1 ;------------------------------------------------------------------------------- ; CAMERA_FACING_BACK ; ov8858 ov2640 ;------------------------------------------------------------------------------- camera_id = 0 ;------------------------------------------------------------------------------- ; 1 for CAMERA_FACING_FRONT ; 0 for CAMERA_FACING_BACK ;------------------------------------------------------------------------------- camera_facing = 0 ;------------------------------------------------------------------------------- ; 1 for camera without isp(using built-in isp of Axx) ; 0 for camera with isp ;------------------------------------------------------------------------------- use_builtin_isp = 0 ;------------------------------------------------------------------------------- ; camera orientation (0, 90, 180, 270) ;------------------------------------------------------------------------------- camera_orientation = 90 ;------------------------------------------------------------------------------- ; driver device name ;------------------------------------------------------------------------------- camera_device = /dev/video0 ;------------------------------------------------------------------------------- ; device id ; for two camera devices with one CSI ;------------------------------------------------------------------------------- device_id = 0 used_preview_size = 1 key_support_preview_size = 640x480 key_default_preview_size = 640x480 used_picture_size = 1 key_support_picture_size = 640x480 key_default_picture_size = 640x480 used_flash_mode = 0 key_support_flash_mode = on,off,auto,red-eye,torch key_default_flash_mode = off used_color_effect=0 key_support_color_effect = none,mono,negative,sepia,aqua key_default_color_effect = none used_frame_rate = 1 key_support_frame_rate = 25 key_default_frame_rate = 25 used_focus_mode = 1 key_support_focus_mode = auto,infinity,macro,fixed key_default_focus_mode = auto ;used_scene_mode = 0 ;key_support_scene_mode = auto,action,portrait,landscape,night,night-portrait,theatre,beach,snow,sunset,steadyphoto,fireworks,sports,party,candlelight,barcode,hdr ;key_default_scene_mode = auto used_scene_mode = 1 key_support_scene_mode = auto,hdr key_default_scene_mode = auto used_white_balance = 1 key_support_white_balance = auto,incandescent,fluorescent,warm-fluorescent,daylight,cloudy-daylight key_default_white_balance = auto used_exposure_compensation = 1 key_max_exposure_compensation = 3 key_min_exposure_compensation = -3 key_step_exposure_compensation = 1 key_default_exposure_compensation = 0 used_zoom = 1 key_zoom_supported = true key_smooth_zoom_supported = false key_zoom_ratios = 100,120,150,200,230,250,300 key_max_zoom = 30 key_default_zoom = 0 key_horizonal_view_angle = 64 key_vertical_view_angle = 39.4 2、R:\wyb\r58_bmi160_bma250_ov2640_dev\android\device\softwinner\octopus-f1\hawkview\sensor_list_cfg.ini #A80 sensor list configs # ##################bus config###################### # #used: 0: not used, 1: used; #csi_sel: 0: mipi, 1: parallel ; #device_sel: 0: dev0, 1: dev1; #sensor_twi_id: twi id, for example: sensor_twi_id = 0 # ##################power configs################### #power_settings_enable: 0: enable the power settings in sysconfig.fex; 1: enable the power settings in this file. # #iovdd The name of iovdd for this camera; #iovdd_vol The voltage value of iovdd in uV; # ###############detect sensor configs############## # #detect_sensor_num: The number of sensors need be detected in this bus. #sensor_name[x]: The sensor name in sensor driver. #sensor_twi_addr[x]: The i2c address of this sensor. #sensor_type[x]: The sensor type, 0: YUV, 1: RAW; #sensor_stby_mode[x]: Not used; #sensor_hflip[x] Horizontal flip; #sensor_vflip[x] Vertical flip; #act_name[x] The VCM name in vcm driver, only RAW sensor need be configured; #act_twi_addr[x] The i2c address of this VCM; # ################################################## [rear_camera_cfg] #bus configs used = 1 csi_sel = 1 device_sel = 1 sensor_twi_id = 2 #power configs power_settings_enable = 0 iovdd = "axp22_aldo2" iovdd_vol = 2800000 avdd = "axp15_aldo2" avdd_vol = 2800000 dvdd = "axp22_eldo1" dvdd_vol = 1500000 afvdd = "" afvdd_vol = 2800000 #detect sensor configs detect_sensor_num = 1 sensor_name0 = "ov2640" sensor_twi_addr0 = 0x60 sensor_type0 = 0 sensor_stby_mode0 = 0 sensor_hflip0 = 0 sensor_vflip0 = 0 act_name0 = act_twi_addr0 = 3、在init.rc(init.sun8i.rc)中加载ov2640.ko这个驱动模块。 R:\wyb\r58_bmi160_bma250_ov2640_dev\android\device\softwinner\octopus-f1\init.sun8i.rc #csi module insmod /system/vendor/modules/videobuf-core.ko insmod /system/vendor/modules/videobuf-dma-contig.ko insmod /system/vendor/modules/cam_detect.ko insmod /system/vendor/modules/cci.ko #insmod /system/vendor/modules/actuator.ko insmod /system/vendor/modules/vfe_os.ko insmod /system/vendor/modules/vfe_subdev.ko #insmod /system/vendor/modules/actuator.ko #insmod /system/vendor/modules/dw9714_act.ko #insmod /system/vendor/modules/hi253.ko #insmod /system/vendor/modules/ov8858_4lane.ko insmod /system/vendor/modules/ov2640.ko insmod /system/vendor/modules/vfe_v4l2.ko 启动之后实际加载的摄像头的驱动模块: shell@octopus-f1:/ $ shell@octopus-f1:/ $ lsmod cdc_ether 3163 0 - Live 0x00000000 rtl8150 9023 0 - Live 0x00000000 mcs7830 5644 0 - Live 0x00000000 qf9700 5904 0 - Live 0x00000000 asix 13590 0 - Live 0x00000000 usbnet 14128 4 cdc_ether,mcs7830,qf9700,asix, Live 0x00000000 bcm_btlpm 7658 0 - Live 0x00000000 ltr_501als 10649 0 - Live 0x00000000 bma250 7988 0 - Live 0x00000000 sw_device 14680 0 - Live 0x00000000 sunxi_schw 13015 0 - Live 0x00000000 (O) vfe_v4l2 786415 1 - Live 0x00000000 ov2640 14830 0 - Live 0x00000000 vfe_subdev 4695 2 vfe_v4l2,ov2640, Live 0x00000000 vfe_os 4113 2 vfe_v4l2,vfe_subdev, Live 0x00000000 cci 22800 2 vfe_v4l2,ov2640, Live 0x00000000 videobuf_dma_contig 4165 1 vfe_v4l2, Live 0x00000000 videobuf_core 16528 2 vfe_v4l2,videobuf_dma_contig, Live 0x00000000 pvrsrvkm 279691 38 - Live 0x00000000 (O) hdmi 38647 0 - Live 0x00000000 disp 1023342 6 hdmi, Live 0x00000000 sunxi_tr 9348 1 disp, Live 0x00000000 nand 299887 0 - Live 0x00000000 (O) shell@octopus-f1:/ $ 4、驱动程序:ov2640.c及其V4L2的适配层。 配置ov5640.c的编译选项,默认已经配置好,不用修改: R:\wyb\r58_bmi160_bma250_ov2640_dev\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\ov2640.c R:\wyb\r58_bmi160_bma250_ov2640_dev\lichee\linux-3.4\drivers\media\video\sunxi-vfe\device\Makefile obj-m += ov5640.o R:\wyb\r58_bmi160_bma250_ov2640_dev\lichee\linux-3.4\drivers\media\video\sunxi-vfe\Kconfig 5、 R:\wyb\r58_bmi160_bma250_ov2640_dev\lichee\tools\pack\chips\sun8iw6p1\configs\f1\sys_config.fex ;-------------------------------------------------------------------------------- ;vip (video input port) configuration ;vip_used: 0:disable 1:enable ;vip_mode: 0:sample one interface to one buffer 1:sample two interface to one buffer ;vip_dev_qty: The quantity of devices linked to capture bus ; ;vip_define_sensor_list: If you want use sensor detect function, please set vip_define_sensor_list = 1, and ; verify that file /system/etc/hawkview/sensor_list_cfg.ini is properly configured! ; ;vip_dev(x)_pos: sensor position, "rear" or "front", if vip_define_sensor_list = 1, ;vip_dev(x)_pos must be configured! ; ;vip_dev(x)_isp_used 0:not use isp 1:use isp ;vip_dev(x)_fmt: 0:yuv 1:bayer raw rgb ;vip_dev(x)_stby_mode: 0:not shut down power at standby 1:shut down power at standby ;vip_dev(x)_vflip: flip in vertical direction 0:disable 1:enable ;vip_dev(x)_hflip: flip in horizontal direction 0:disable 1:enable ;vip_dev(x)_iovdd: camera module io power handle string, pmu power supply ;vip_dev(x)_iovdd_vol: camera module io power voltage, pmu power supply ;vip_dev(x)_avdd: camera module analog power handle string, pmu power supply ;vip_dev(x)_avdd_vol: camera module analog power voltage, pmu power supply ;vip_dev(x)_dvdd: camera module core power handle string, pmu power supply ;vip_dev(x)_dvdd_vol: camera module core power voltage, pmu power supply ;vip_dev(x)_afvdd: camera module vcm power handle string, pmu power supply ;vip_dev(x)_afvdd_vol: camera module vcm power voltage, pmu power supply ;x indicates the index of the devices which are linked to the same capture bus ;fill voltage in uV, e.g. iovdd = 2.8V, vip_devx_iovdd_vol = 2800000 ;fill handle string as below: ;axp22_eldo3 ;axp22_dldo4 ;axp22_eldo2 ;fill handle string "" when not using any pmu power supply ;-------------------------------------------------------------------------------- [csi0] vip_used = 1 vip_mode = 0 vip_dev_qty = 1 vip_define_sensor_list = 0 vip_csi_pck = port:PE00 vip_csi_mck = port:PE01 vip_csi_hsync = port:PE02 vip_csi_vsync = port:PE03 vip_csi_d0 = vip_csi_d1 = vip_csi_d2 = port:PE06 vip_csi_d3 = port:PE07 vip_csi_d4 = port:PE08 vip_csi_d5 = port:PE09 vip_csi_d6 = port:PE10 vip_csi_d7 = port:PE11 vip_csi_d8 = port:PE12 vip_csi_d9 = port:PE13 vip_csi_sck = port:PE14 vip_csi_sda = port:PE15 vip_dev0_mname = "ov2640" vip_dev0_pos = "rear" vip_dev0_lane = 1 vip_dev0_twi_id = 2 vip_dev0_twi_addr = 0x60 vip_dev0_isp_used = 0 vip_dev0_fmt = 0 vip_dev0_stby_mode = 0 vip_dev0_vflip = 0 vip_dev0_hflip = 0 vip_dev0_iovdd = "" vip_dev0_iovdd_vol = 2800000 vip_dev0_avdd = "" vip_dev0_avdd_vol = 2800000 vip_dev0_dvdd = "" vip_dev0_dvdd_vol = 1500000 vip_dev0_afvdd = "" vip_dev0_afvdd_vol = 2800000 vip_dev0_power_en = vip_dev0_reset = port:PE4 vip_dev0_pwdn = port:PE5 vip_dev0_flash_en = vip_dev0_flash_mode = vip_dev0_af_pwdn = 6、开发板上摄像头的I2C挂载在TWI2上面了,注意打开: ;---------------------------------------------------------------------------------- ;i2c configuration ;---------------------------------------------------------------------------------- [twi0] twi_used = 1 twi_scl = port:PH0 twi_sda = port:PH1 [twi1] twi_used = 1 twi_scl = port:PH2 twi_sda = port:PH3 [twi2] twi_used = 1 twi_scl = port:PH4 twi_sda = port:PH5 不过奇怪的是,摄像头并没有向其它平台那样生成这个设备节点: /sys/class/i2c-adapter/i2c-2/2-0030 shell@octopus-f1:/ $ shell@octopus-f1:/ $ cd /sys/class/i2c-adapter/i2c-2/ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ ll drwxr-xr-x root root 1970-01-02 08:06 2-003b --w------- root root 4096 1970-01-02 08:06 delete_device lrwxrwxrwx root root 1970-01-02 08:06 device -> ../../twi.2 -r--r--r-- root root 4096 1970-01-02 08:06 name --w------- root root 4096 1970-01-02 08:06 new_device drwxr-xr-x root root 1970-01-02 08:06 power lrwxrwxrwx root root 1970-01-02 08:06 subsystem -> ../../../../bus/i2c -rw-r--r-- root root 4096 1970-01-02 08:06 uevent shell@octopus-f1:/sys/class/i2c-adapter/i2c-2 $ 可能是ov2640的驱动程序不完整,没有通过i2c_detect来注册2-0030这个节点。 直接在驱动程序中读取I2C,还是对的。device ID = 0x2642。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值