当前位置: 首页 > news >正文

系统的“预备阶段”配置了 USB,这抢占了底层硬件探测的时机

软件执行的时序抖动:init 进程在加载 rc 脚本时,并不是每次都严格在同一个毫秒点完成初始化。这个init进程加载rc脚本是启动在kernel层吗?usb_config配置是启动在kernel层吗?meta模式启动的顺序是什么先bootloader再init.rc也就是 kenel层? 再Android adb?usb调试模式呢,还需要用户去点击呢?

 

Kernel 层 (内核):这是操作系统的核心,负责硬件驱动(USB 控制器驱动、串口驱动、GPIO 驱动)。

Kernel 启动时:它首先初始化硬件。如果硬件支持 Meta 模式,Kernel 的 USB 驱动通常会先探测 CC 引脚的电压状态。

 

Init 进程(用户空间的“管家”):

这是用户空间的第一步。init 是由 Kernel 启动的第一个用户空间进程(PID=1)。

它不是 Kernel 层,它是 Android 系统层的起点。

init.rc 脚本就是由这个进程负责解析和执行的。所以,init.rc 的配置是在 Kernel 启动完成之后才开始执行的。

 

USB Configfs 配置:

它跨越了两个层级。configfs 是内核提供的接口,但必须由用户空间的 init 进程去写配置。当你执行 write /config/usb_gadget/g1/UDC 时,你是从“用户空间”命令“内核空间”去挂载 ADB。

标准的启动顺序(由早到晚)这是你问题的核心,请看这个时间轴:

B

http://www.jsqmd.com/news/895177/

相关文章:

  • 芯片架构设计能力,才是卡住大多数工程师的真正瓶颈
  • WebMCP DevTools:可视化调试工具,提升浏览器AI工具开发体验
  • 如何在Windows 10/11中为HEIC照片添加缩略图预览:终极解决方案指南
  • CenToken官网开发者接入教程|零改代码,快速对接全品类 AI 模型
  • AI智能体安全实战:从MCP协议漏洞到供应链攻击的深度防御
  • 警惕AI思维水蛭:构建人机协作的防寄生心智模型
  • LeftMenu.ocx文件丢失找不到 免费下载方法分享
  • 射频功率放大器PA核心指标实战测量指南
  • Matlab Stateflow枚举实战:从建模到代码生成的完整指南
  • 从发光原理到应用场景:LED、LCD、OLED、miniLED与MicroLED技术全解析
  • 医用不锈钢脚踏凳厂家综合评估及选购指南
  • 年产值 1.2 亿设备厂,30 万 ERP 上线一年,库存依旧不准
  • SAP PP顾问必看:如何用NOTE 309050和SE37记录COGI删除操作,防止用户误删AFFW记录
  • Quarkus与POJO-actor模式构建高并发LLM聊天应用实战
  • 如何3步搞定Windows“此电脑”中删不掉的顽固快捷方式?
  • 生成式AI背后的数学:概率、推断与世界建模
  • Bolt-On工程哲学:非侵入式模块化扩展的设计与实践
  • Git 代码误删除恢复
  • Keil µVision构建流程中运行外部程序的配置指南
  • 手机热点办公必看:一招解决Win10后台svchost疯狂偷跑流量的烦恼
  • 避坑指南:Unity 2019/2020导入Standard Assets后脚本报错?两步快速修复GUIText过时问题
  • 一步到位的宝塔面板修复与重装命令清单
  • 贝叶斯联合建模:小区域估计中连续与二元数据的协同推断
  • 超越官方手册:用CoppeliaSim 4.6.0搞科研?这些隐藏技巧和实战配置你必须知道
  • 从负载变化到模式切换:一个实际案例,讲透Buck电路DCM与CCM的边界
  • AetherPane:AI生成前端代码的视觉质量自动化评审工具
  • 「新品发布」全新Alicona µCMM NEO微米级三坐标测量系统正式亮相
  • 用Unity UGUI打造游戏内的可折叠技能树或背包系统:基于Hierarchy视图的UI设计思路
  • 告别枯燥教程!用Unity复刻《超级马里奥》第一关:Tilemap实战拆解与性能优化心得
  • Jmeter 性能压测 —— 分析定位2