
RK3399
KrisFei
工作记录.
展开
-
[RK3399][Android7.1] 调试笔记 --- 三颗以上USB Camera的支持
Platform: RK3399OS: Android 7.1Kernel: v4.4.83需求需要支持三个USB Camera,系统默认支持的是两颗。解决方法:以下是rockchip给的patch,不过是有缺失的:diff --git a/CameraHal/CameraHal_Module.cpp b/CameraHal/CameraHal_Module.cppindex 2...原创 2020-03-27 17:34:36 · 3721 阅读 · 1 评论 -
[RK3399][Android7.1] 调试笔记 --- SDK使用tar打包成gz包出错
Platform: RK3399OS: Android 7.1Kernel: v4.4.83需求:压缩rk3399 sdk做备份。问题:使用 tar zcvf 命令一直失败。提示Exiting with failure status due to previous errors。按照网上说的调换tar参数 tar cvfz同样无效。解决方法:kris@ecobas:~/di...原创 2019-11-21 15:51:05 · 1037 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 显示画面出现mirror的问题
Platform: RK3399OS: Android 7.1Kernel: v4.4.83现象:添加好LVDS屏幕之后,显示画面mirror.解决方法:diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.cindex 087034...原创 2019-11-13 15:05:23 · 3008 阅读 · 1 评论 -
[RK3399][Android7.1] Ubuntu编译环境OpenJDK 8安装
Platform: RK3399 OS: Android 7.1 PC: Ubuntu 14.04 LTSAndroid7.1以上版本官方推荐用openjdk 8, 以下为各个系统版本对应的jdk安装方式有两种:在线安装: 1. 添加openjdk仓库 sudo add-apt-repository ppa:openjdk-r/ppa 2. 更新仓库 sudo ...原创 2017-11-29 13:44:12 · 1657 阅读 · 0 评论 -
[RK3399][Android7.1] Ubuntu 编译环境之Jdk版本切换
Platform: RK3399 OS: Android 7.1 PC: Ubuntu 14.04 LTS默认是OpenJDK 7 kris@eco:~/Downloads$ java -version java version “1.7.0_131” OpenJDK Runtime Environment (IcedTea 2.6.9) (7u131-2.6.9-...原创 2017-11-29 15:07:00 · 1930 阅读 · 0 评论 -
[RK3399][Android7.1] Ubuntu编译环境内存要求
Platform: RK3399 OS: Android 7.1 Platform: Firefly-RK3399 现象: 本地编译Android 7.1时出现如下错误:[ 2% 764/34600] Building with Jack: out/targe...framework_intermediates/with-local/classes.dexFAILED...原创 2017-12-01 11:23:49 · 3221 阅读 · 0 评论 -
[RK3399][Android7.1] Ubuntu查看具体内存信息
Platform: RK3399 OS: Android 7.1 Platform: Firefly-RK3399之前因为编译环境需求的原因需要查看当前物理内存条,一开始我直接是打开机箱查看的, 后来同事发现Ubuntu上有命令可以查看当前内存数量以及其他具体信息。 kris@eco:~$ sudo dmidecode -t memory# dmidecode ...原创 2017-12-01 17:01:14 · 1296 阅读 · 1 评论 -
[RK3399][Android7.1] 调试笔记 --- 默认板子无法亮屏
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399现象: 官网下载了最新固件,烧写进去后系统虽然起来了,但是屏幕无法点亮。原因: 系统默认编译使用的是 dp版本对应dts是rk3399-firefly.dts, 而我用的是edp屏。注意: rk3399是64位平台,dts的路径是在 kernel/arch/a...原创 2017-12-19 16:31:08 · 4976 阅读 · 13 评论 -
[RK3399][Android7.1] Uboot所用交叉编译工具链
Uboot: v2017.02 Board: Firefly-RK3399Uboot的交叉编译工具链通过宏CROSS_COMPILE来定义,在Makefile中。ifeq ($(ARCHV),aarch64)ifneq ($(wildcard ../toolchain/aarch64-linux-android-4.9),)CROSS_COMPILE ?= $(shell ...原创 2017-12-04 09:48:57 · 3354 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 串口打印输出乱码
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399刚拿到FireFly的板子,开机后输出乱码,原因在于波特率设置不对。一般的板子平台设置的都是115200,而这块板子设置的1500000, 当然,你可以在source code中修改。Ubuntu上, Kermit是不支持这个速率的,而minicom可以。波特率的...原创 2017-12-19 14:11:31 · 3758 阅读 · 1 评论 -
[RK3399][Android7.1] Ubuntu 编译环境安装依赖包失败
Platform: RK3399 OS: Android 7.1 PC: Ubuntu 14.04 LTS在安装的时候遇到如下错误:root@build–machine:/home# apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386Reading package lists... DoneBuilding ...原创 2017-11-29 13:30:11 · 1566 阅读 · 4 评论 -
[RK3399][Android7.1] 调试笔记 --- 模块编译32位动态库
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399需求: 系统HAL的camera库camera.rk30board.so使用的是32位版本的。 而单独编译模块(命令是#make camera.rk30board_32 -j8 )出来却只有64位版本,位于 system/lib64/hw下面。理论上根据Android.m...原创 2017-12-28 16:37:45 · 2908 阅读 · 0 评论 -
[RK3399][Android7.1] Uboot display 加载过程小结
OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02显示模块主要分 vop, edp, panel三大模块,另加gpio, 背光的控制,另外还有logo的解析和加载。整个流程基本上就是解析各个模块参数,然后准备,使能各个模块。fdt_path_offset(gd->fdt_blob, "/display-subsys...原创 2018-01-08 15:58:12 · 6254 阅读 · 35 评论 -
[RK3399][Android7.1] Display中的VOP模块介绍
OS: Android 7.1 Board: Firefly-RK3399 Uboot: v2017.02什么是VOP ? 全称 Visual Output Processor, 是Rockchip系列Soc的Display Controller(显示控制器), 用来将video memory中的image data传送到外部lcd 接口,如edp, dp, hdmi等。RK3...原创 2018-01-11 09:12:10 · 16590 阅读 · 36 评论 -
[RK3399][Android7.1] Display中的DRM模块介绍
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55DRM介绍: DRM全称 Direct Rendering Manager, 是device-independent内核级别驱动,内核提供直接访问硬件的权限, 原本是设计提供给PC使用来支持复杂的图形设备,后来也用于嵌入式系统上。 PC一般都有显卡并且有自己的video mem...原创 2018-01-12 17:21:01 · 15799 阅读 · 39 评论 -
[RK3399][Android7.1] Display模块配置屏幕时序方法
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55rk3399平台上提供了两种方法来配置屏的时序参数,uboot也一样。时序参数写在源代码中:比如当前用的edp屏, dts只有背光,gpio这些配置。 rk3399-firefly-edp.dts: edp_panel: edp-panel { ...原创 2018-01-17 13:47:05 · 8560 阅读 · 21 评论 -
[RK3399][Android7.1] Display中的Component System
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55上一篇文章介绍了DRM的概念,有CRTC, Encoder, Connector等好多个模块,各个模块都作为一个组件添加到组件系统中,通过组件驱动来管理。关于component system,下面是作者的一段话:Subsystems such as ALSA, DRM ...原创 2018-01-16 17:10:52 · 5702 阅读 · 42 评论 -
[RK3399][Android7.1] Display中的screen type定义
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55在rk3288平台, screen type是定义在dts中,例如 lcd-LP097Qx1.dtsi 中disp_timings: display-timings { native-mode = <&timing0>; ...原创 2018-01-18 10:52:17 · 2378 阅读 · 4 评论 -
[RK3399][Android7.1] Display中的edp驱动调用流程
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55edp驱动被分成两个文件,一个是rk驱动文件: analogix_dp-rockchip.c, 另一个是drm驱动文件analogix_dp_core.crockchip_dp_bind -> analogix_dp-rockchip.c of_graph_get...原创 2018-01-18 17:52:01 · 8666 阅读 · 39 评论 -
[RK3399][Android7.1] Display中的DRM Framebuffer
OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55内核驱动提供了两种方法给用户空间完成显示功能。 一种是通过DRM,可以通过ioctl,也可以通过用户空间封装的DRM库libdrm来完成。 还有一种方法是通过以往标准的framebuffer去做,也是通过ioctl完成。通过DRM: 驱动文件:rockchip_drm...原创 2018-01-17 19:11:27 · 6647 阅读 · 32 评论 -
[RK3399][Android7.1] Camera HAL初始化流程
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83rk3399对HAL的处理基本上和rk3288一样没什么变化,详细可参考 [RK3288][Android6.0] Camera HAL流程小结camera_get_number_of_cameras -> //camera service会在开机的时候从HAL层获取came...原创 2018-02-02 11:30:45 · 6561 阅读 · 30 评论 -
[RK3399][Android7.1] Camera HAL打开流程
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83以ov13850为例:camera_device_open -> CameraHal_Module.cpp camera_device = malloc(sizeof(*camera_device)); //分配一个struct rk_camera_device, 包含标...原创 2018-02-08 10:37:11 · 3353 阅读 · 0 评论 -
[RK3399][Android7.1] Android Ninja编译系统介绍
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83Android7.0以后开始使用Ninja替代GNU make编译系统。概念:Ninja: 用于提高编译速度的编译系统。 可执行文件位于 prebuilts/ninja/linux-x86/ninjaKati: 用于把Makefiel转成成ninja file,自身...原创 2018-02-28 15:39:25 · 3589 阅读 · 6 评论 -
[RK3399][Android7.1] Camera各个层源文件路径记录
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83从上往下架构如下:rk3399使用的是Camera API v1以及HAL1版本,各个层的文件路径如下:应用框架: 利用 android.hardware.Camera API 来与相机硬件进行互动。在内部,此代码会调用相应的JNI以访问与该相机互动的原生代码。 路径: f...原创 2018-02-26 13:22:13 · 2572 阅读 · 2 评论 -
[RK3399][Android7.1] 调试笔记 --- 如camera API版本使用确认
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83Camera API版本分V1和V2两个版本。Camera API1 Android 4.4 及更低版本设备上的应用级相机框架,通过 android.hardware.Camera 类提供。 Camera API2 Android 5.0 及更高版本设备上的应用级相机框架,通过 a...原创 2018-02-24 16:36:54 · 2829 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- camera中的cam_board.xml
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83camera board xml 位于hardware/rockchip/camera/Config 目录下编译之后生成到system/etc下,名为cam_board.xml,此文件用于配置dvp mipi接口的sensor, 如果用的都是usb camera,那么此文件可以直接...原创 2018-02-08 10:57:56 · 6769 阅读 · 6 评论 -
[RK3399][Android7.1] Camera HAL中的几个adapter
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83HAL中在new CamaerHal对象的时候会根据不同类型的sensor创建不同的adapter,以下是区别:CameraUSBAdapter: USB接口类型的摄像头,走v4l2.CameraIspSOCAdapter:dvp接口,isp控制器接收。CameraIspAdapt...原创 2018-02-09 15:34:30 · 3388 阅读 · 2 评论 -
[RK3399][Android7.1] Camera中的不同api版本介绍
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83概述: 随着系统的升级,Camera的版本也跟着一起升级,升级的本质无非就是接口的更新或增加,以下的相机框图可以看到各个层的版本差异以及调用过程。不同层次有不同类型的api版本,依次是Camera API, Module API, Device API, HAL API...原创 2018-02-11 13:50:49 · 1816 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- tablet版本sdk下载
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83repo工具:git clone ssh://git@www.rockchip.com.cn:2222/repo-release/tools/repo源代码: 注意:下载代码需要rockchip对应的ssh key授权才可以。kris@eco:~$ ./repo/repo...原创 2018-01-25 15:11:21 · 3147 阅读 · 11 评论 -
[RK3399][Android7.1] Audio中的Ducking模式
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83概念: Ducking就是当其他应用在使用音频时降低自身音量的过程。 举例: 当你开车在边听车载音乐边导航时,当导航发声时,音乐会自动变小,等当行播放完毕,音乐又正常恢复到原来的音量。背景: 摘网友一段话来描述AudioFocus的来历,Ducking属于其中的一种模式:...原创 2018-03-02 14:18:45 · 3092 阅读 · 2 评论 -
[RK3399][Android7.1] 调试笔记 --- 修改默认Camera preview size
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83有些Sensor的分辨率中并没有640x480的支持,而在camera初始化的时候是写死的。 CameraUSBAdapter.cpp:void CameraUSBAdapter::initDefaultParameters(int camFd){...... para...原创 2018-03-12 16:31:48 · 7050 阅读 · 8 评论 -
[RK3399][Android7.1] 调试笔记 --- 设置Camera的facing属性
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83在rk3288平台上有讲过区分两颗不同以及两颗型号相同的uvc camera, 可参考如下两篇文章: [RK3288][Android6.0] 调试笔记 — 同时支持两颗USB UVC Camera [RK3288][Android6.0] 调试笔记 — 如何区分两颗相同的USB UVC...原创 2018-03-14 09:48:24 · 3546 阅读 · 8 评论 -
[RK3399][Android7.1] 系统相关识别号获取小结
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 Board: Firefly-RK3399Serial Number: kris@eco:~/firefly_rk3399$ adb devicesList of devices attached COG03YGZSN deviceIMEI: 拨号键盘输入 *#...原创 2018-03-27 16:36:43 · 2079 阅读 · 0 评论 -
[RK3399][Android7.1] TSADC驱动流程小结(With thermal core)
Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 Board: Firefly-RK3399背景: 和RK3288一样,RK3399上有两路TSADC通道分别用于监测CPU和GPU的温度。 不同的是RK3399结合kernel thermal core框架来管控,而RK3288直接是写了一个独立驱动控制硬件。 RK3288平台可...原创 2018-03-30 17:23:05 · 4898 阅读 · 0 评论 -
[RK3399][Android7.1]调试笔记 --- 添加一个新的Product/Device
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399标准实现是要创建device/<company>/<device>, 这里我们可以仿照firefly的方式在device/rockchip/rk3399下直接添加,省去全部重新创建的麻烦。首先入口是AndroidProducts.mkkri...原创 2017-11-30 14:08:47 · 3520 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 修改串口波特率1500000为115200
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399rk3399默认使用的波特率是1500000, 而我在ubuntu上习惯了使用kermit,此工具不支持1500000,所以作如下修改,包括uboot和kernel两个地方。uboot:diff --git a/u-boot/configs/rk3399_defcon...原创 2018-03-14 11:38:18 · 12352 阅读 · 24 评论 -
[RK3399][Android7.1] 调试笔记 --- sdk本地环境搭建
Platform: rk3399 OS: Android 7.1 Kernel: v4.4.83拿到官方sdk之后需要在本地gerrit服务器上搭建环境。manifest.xml过滤:cat manifest.xml | sed 's;revision=.*/>;/>;g' | sed 's;remote=.*/>;/>;g' | sed 's;re...原创 2018-01-29 17:20:53 · 3460 阅读 · 4 评论 -
[RK3399][Android7.1] 调试笔记 --- 系统使用的zygote.rc文件
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399先说结果: 系统使用 system/core/rootdir/init.zygote64_32.box.rc 此文件。原理: 系统里有好几个关于zygote相关的rc文件那么到底用的是哪个? 先看编译到rootfs中的只有两个:开机后init.rc会...原创 2017-12-22 15:02:38 · 1940 阅读 · 0 评论 -
[RK3399][Android7.1] 调试笔记 --- 确定用32还是64库
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399背景: 在调试usb camera的时候,因为有异常,因此单独编译了so库调试,第一反应是系统用的是64位库, 路径是 out/xxx/system/lib64/hw下,但是测试发现,系统用的是out/xxx/system/lib/hw下的camera so库。分析:...原创 2017-12-26 15:03:04 · 1963 阅读 · 4 评论 -
[RK3399][Android7.1] 调试笔记 --- 检测应用是32还是64位方法
Platform: RK3399 OS: Android 7.1 Board: Firefly-RK3399应用分APK和后台服务进程两种。APK: 这部分有zygote孵化出来,zygote有32和64位两种,分别用于启动32和64位应用,因此只要看对应的父进程是哪个就可以了,方法如下:后台服务: 后台服务由于是由init进程直接加载,不能使用上面的方法,可以...原创 2017-12-26 15:30:00 · 2949 阅读 · 0 评论