全志T113平台Uboot、内核、文件系统快速启动配置

哪些应用场景需要快速启动

很多应用场景对系统启动时间都有严苛的要求,例如在工业组态屏、工业HMI、机器人示教器、工业PLC、物联网网关、通讯管理机等应用场景对系统启动的时间都会有所要求。

当系统启动时间过长时,用户需要很长时间才能开始使用系统,不仅会对产品的精准度和实时性有所影响,而且过长时间的启动也会导致系统资源浪费,例如电力和硬件资源。而优化启动时间可节省这些资源,从而提高系统的效率和可靠性。另外,在某些嵌入式系统和设备中,启动时间对于系统的稳定性和可靠性至关重要,因此尽可能缩短启动时间,以确保系统能够在最短的时间内启动至关重要。

T113-i 系统快速启动实测数据

为了满足需求,对T113-i原生系统进行剪裁,得到一个可快速启动的程序镜像。经测试,eMMC配置核心板从上电至进入文件系统的时间为4.3秒,从上电至显示Qt界面的时间为7.7秒。详细数据请参考如下表格:

在这里插入图片描述

T113-i系统快速启动优化方法

本节内容对T113-i(其他嵌入式平台亦可参考)Linux系统快速启动优化方法进行说明,主要通过对U-Boot、内核以及rcS启动脚本的修改,实现系统快速启动。下面以NAND FLASH配置TLT113-EVM评估板为例进行方法示例,TLT113-MiniEVM或eMMC配置评估板注意修改的文件路径有所不同。

(1) U-Boot快速启动优化。

修改延时bootdelay为0秒,可缩减bootdelay延时。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:

"device/config/chips/t113_i/configs/tlt113-evm-nand/longan/env.cfg".

在这里插入图片描述

关闭boot0和U-Boot调试信息打印,启动时间可缩短约1秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:

"device/config/chips/t113_i/configs/tlt113-evm-nand/uboot-board.dts"

"device/config/chips/t113_i/configs/tlt113-evm-nand/sys_config.fex"

在这里插入图片描述

在这里插入图片描述

(2) 内核快速启动优化。

由于random设备初始化太慢,应用程序调用random的函数时可能被阻塞,导致应用启动慢,因此可通过关闭crng_ready()功能从而缩短启动时间,关闭crng_ready()功能后启动时间可缩短2~3秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:

"kernel/linux-5.4/drivers/char/random.c"

在这里插入图片描述

通过修改串口打印优先级,关闭串口内核启动信息打印从而缩短启动时间。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:

"device/config/chips/t113_i/configs/tlt113-evm-nand/longan/env.cfg"

在这里插入图片描述

(3) 文件系统快速启动优化。

通过取消相关服务启动以及自动挂载功能,优先执行Qt程序,并且延时一段时间再执行其他功能。启动时间可缩短约10秒。在LinuxSDK解压目录T113-i_v1.0下修改如下文件:

"platform/framework/auto/rootfs/etc/init.d/rcS"

在这里插入图片描述

如需关闭Qt Launcher,优化上电启动至进入文件系统的时间,需修改rcS脚本。修改内容如下:

在这里插入图片描述

修改完成后,请参考我司的T113-i产品资料《Linux系统使用手册》文档,重新编译生成Linux系统镜像,同时参考《Linux系统启动卡制作及系统固化》文档,将Linux系统镜像文件固化至NAND FLASH或eMMC,再从NAND FLASH或eMMC上电启动即可。

### 全志T113 ADB调试方法及支持情况 全志T113是一款基于ARM Cortex-A7架构的处理器,广泛应用于嵌入式设备中。对于ADB(Android Debug Bridge)的支持以及其调试方法,可以从以下几个方面进行说明。 #### 一、ADB工具简介 ADB是一个通用的命令行工具,用于通过USB或网络与运行Android系统的设备通信。它允许开发者执行各种操作,例如安装应用程序、传输文件、捕获日志等[^4]。在全志T113平台上,如果用了Android系统,则通常会内置对ADB的支持。 #### 二、用ADB服务的前提条件 为了能够在全志T113上使用ADB进行调试,需满足以下前提条件: - **操作系统支持**:确保目标板卡上的固件已加载完整的Android框架,并且内核模块支持USB Gadget功能[^5]。 - **驱动程序适配**:主机端需要正确安装对应平台版本的USB驱动以便识别设备作为“安卓复合设备”模式接入。 #### 三、具体配置流程 以下是针对全志T113系列开发板开并验证ADB连接的主要步骤: ##### 1. 修改启动参数以激活adb守护进程 进入uboot阶段修改kernel cmdline字符串加入`androidboot.selinux=permissive androidboot.debuggable=1`选项来降低SELinux权限控制级别同时声明该实例可被远程访问[^6]。 ##### 2. 配置usb网口映射关系 编辑位于路径下的init.rc脚本文件添加如下内容从而指定虚拟串口号供后续tcpip方式调用: ```bash service adbd /system/bin/adbd --root-seclabel=u:r:su:s0 class core socket adbd stream 660 root system writepid /dev/cpuset/foreground/tasks ``` ##### 3. 编译烧录新的镜像到存储介质里 按照标准文档指引完成交叉编译过程之后,最终产物存放在特定目录结构当中如:/home/forlinx/OK113i-linux-sdk/out/t113_i/OK113i/longan/boot.img [^2], 将此更新后的image刷写至eMMC或者SD card之中重生效. ##### 4. 测试连通性状态 当上述准备工作完成后,在PC侧打开终端窗口输入命令 `adb devices`, 如果一切正常应该能够看到新增加的一条记录代表成功握手建立关联通道[^7]. #### 四、常见错误排查指南 尽管遵循以上指导可以极大程度提高成功率但仍可能出现某些异常状况比如无法检测在线列表等问题此时建议尝试下列措施逐一排除干扰因素: - 确认物理连线紧密无松动现象; - 更换不同类型的线缆重新插拔确认兼容性良好; - 升级最新版SDK套件获取修复补丁优化体验效果; --- ### 提示代码片段展示如何动态切换监听地址范围 下面给出一段简单的Python脚本来辅助管理多台机器间的交互逻辑方便批量处理任务分配等工作场景应用场合. ```python import subprocess def toggle_adb_tcp(ip_address='192.168.x.y', port_number=5555): try: result = subprocess.run(['adb','tcpip', str(port_number)], check=True) print(f"Switched to TCP mode on {port_number}") connect_result = subprocess.run(['adb','connect',f"{ip_address}:{port_number}"],check=True) print(connect_result.stdout.decode()) except Exception as e: print(e) if __name__ == "__main__": ip_addr=input("Enter IP Address:") toggle_adb_tcp(ip_address=ip_addr) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值