Younix's Studio.

Younix's Studio.

do one thing and do it well.

Android6.0 启动流程(从开机到第一个程序)
[TOC] 概述总得来看有这样几个阶段: BootROM 上电 BootLoader 引导 Linux 内核 init 进程 Zygote 启动 展开一点来看 板子上电后运行固化在 ROM 中的代码,加载 Bootloader 到 RAM。 Bootloader 启动,引导进入 Linux 内核。 Kernel 启动 swapper 进程。即 idle 进程,pid = 0,系统初始化过程中的第一个进程,用于初始化 进程管理、内存管理、加载 Display、Camera Driver、Binder Driver 的工作。Kernel 启动 init 进程(用户进程的祖宗)。pid...
Android property_get 及 property_set 系统属性
[TOC] 概念属性 这个概念被大量用于 Android 当中。属性 是用来记录系统设置或进程之间的信息交换。每个属性都有名称和值,他们都是字符串的格式。属性在整个系统中是全局可见的,每个进程都可以 get/set 属性。 创建过程系统初始化 init在系统初始化时,Android 将分配一个共享内存区来存储属性。这些是由“init” 守护进程完成的,其源代码位于:sysrtem/core/init/。“init” 守护进程将启动一个属性服务。 属性服务在“init”守护进程中运行。每一个客户端想要设置属性时,必须连接属性服务,再向其发送信息。属性服务将会在共享内存区中修改和创建属性。任...
Android6.0 RK3399 IR(红外线)移植步骤
OrangePi RK3399 IR Porting Guide Platform: RK3399OS: Android 6.0SDK Version: v2016.08 by Xunlong® Younix.Zhang [TOC] 一、 红外介绍IR(Infrared Radiation)现有的红外遥控有两种方式,PWM(脉冲宽度调制)和PPM(脉冲位置调制)。对应的两种编码形式的代表分别为NEC和PHILIPS的RC-5、RC-6、RC-7Linux 内核中,IR 驱动仅支持 NEC 编码格式。 二、 驱动移植与验证1. 修改 dts 打开 pwmkernel/arch/arm6...
Android6.0 RK3399 U-boot启动流程分析(准备)
Platform: RK3399OS: Android 6.0Version: v2016.08 [TOC] 工具 Source Insight 阅读源码工具 通过编译时产生的 System.sym 查看 通过反汇编生成的可执行文件来查看 我们分析 u-boot 分为六个阶段: 一、Makefile 与 lds从认识内存分配开始,链接脚本,*.lds。从Makefile与config.mk中的变量,得到对应的脚本的位置,根据链接脚本,画出内存分配图。主要得到信息:1、开始进入点命令(ENTRY),得到程序的开始点。2、程序的内存开始地址3、程序的内存分段信息与对齐方式、对应的功能。 ...
Android6.0 RK3399 PWM Backlight 驱动分析
Platform: RK3399OS: Android 6.0Kernel: 4.4 DTS12345678910111213141516171819202122232425262728293031323334353637383940backlight: backlight { status = "disabled"; compatible = "pwm-backlight"; pwms = <&pwm0 0 25000 0>; brightness-levels = < 0 1 2 3 4 5 6 7 ...
Android6.0 RK3399 更换64GeMMC后无法启动的问题
Author: YounixPlatform: RK3399OS: Android 6.0Kernel: 4.4Version: v2018.05 [TOC] 错误日志123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107...
Android6.0 RK3399 PCIe 转 SATA 调试步骤
Platform: RK3399OS: Android 6.0Kernel: 4.4Version: v2017.04 PCI 基本调试手段busybox lspcilspci 命令查看 pci 设备。出现如下信息:10c:00.0 0100: 1000:0056 (rev 02) 0c:00.0 表示含义为 bus number: device number.function number 三者组合成一个 16bit 的识别码 bus number:8bits 最多连接到 256 个 bus device number:6bits 最多连接到 32 种装置 function numb...
Android 文件系统分区挂载流程
//DRAFT//TODO 最近在玩 RK 的板子,想要将 Ubuntu 移植上去,对比之前做 Android 的时候,发现他们的 Kernel 部分完全一样。那么 Linux 发行版 和 Android 系统他们之间的差别究竟是怎样的呢?差别在于 Kernel 启动后,挂载的分区有所差别。所进入的 rootfs(根文件系统)不同。之前有写一篇关于 Android 启动流程的文章。 分区挂载配置文件 fstabAndroid 5.1 & 6.0 的分区挂载配置文件是 fstab.*.* ,比如 ./device/rockchip/rk3399/fstab.rk30board.b...
Android6.0 RK3399 设置系统默认不会休眠
Platform: RK3399OS: Android 6.0Version: v2017.04 [TOC] 需求默认系统开机休眠时间为 60000 ms,需要设置为 Never (不会休眠)。 原理设置 ro.rk.screenoff_time 参数。和网上所说的设为 -1 不同,rk 平台应该设为 2147483647 。 步骤1$ grep screenoff_time ./device/ -nir 看到12./device/rockchip/common/device.mk:484: ro.rk.screenoff_time=2147483647./device/rockc...
Android6.0 RK3399 PCIe 接口 4G模块 EC20 调试记录
Platform: RK3399OS: Android 6.0Kernel: 4.4Version: v2017.044G Module: EC20-CE [TOC] 一、基本概念1. USB 部分的功能接口Quectel 3G/4G模块(UMTS/HSPA/LTE)的 USB 部分包括了几个不同的功能接口。 USB SerialttyUSB0 代表 DMttyUSB1 代表 GPS NMEA (GPS导航设备统一的RTCM标准协议)信息输出ttyUSB2 代表 AT commandsttyUSB3 代表 PPP 连接 GobiNet 在移植了 GobiNet 驱动后,会产生一个网络设备...
avatar
Younix
do one thing and do it well.
FRIENDS