You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于AOSP的TinkerBoard2平台如何启用串口控制台?

解决TinkerBoard2 Android串口控制台登录问题

一、核心配置方案:基于init脚本添加ttyS2控制台服务

Android平台无需依赖getty(当然也可以用,后面会说明),直接通过init服务配置即可为/dev/ttyS2添加登录入口,参考你找到的ADB控制台配置,修改设备专属init脚本(比如device/rockchip/rk3399/tinkerboard2/init.tinkerboard2.rc):

  1. 添加针对ttyS2的控制台服务
# 在现有console服务下方添加
on fs && property:ro.debuggable=1
    start console_ttyS2

service console_ttyS2 /system/bin/sh
    class core
    console /dev/ttyS2
    disabled
    seclabel u:r:shell:s0
  1. 确保ttyS2设备权限正确
    在ueventd.tinkerboard2.rc中添加设备权限配置:
/dev/ttyS2 0660 root shell

二、SELinux权限适配(如果启用SELinux)

如果你的设备开启了SELinux强制模式,需要修改SEPolicy规则:

  1. 在file_contexts中添加ttyS2的上下文标签:
/dev/ttyS2    u:object_r:console_device:s0
  1. 在shell.te中添加shell进程访问ttyS2的权限:
allow shell console_device:chr_file rw_file_perms;

三、关于getty在Android的使用

Android平台可以使用getty,但AOSP默认编译产物不包含该工具,需要额外配置:

  1. 在设备的device.mk中添加编译规则,将getty纳入产品包:
PRODUCT_PACKAGES += getty
  1. 替换init服务为getty配置:
on fs && property:ro.debuggable=1
    start getty_ttyS2

service getty_ttyS2 /system/bin/getty 115200 /dev/ttyS2
    class core
    disabled
    seclabel u:r:getty:s0
  1. 同步添加getty对应的SEPolicy规则(需新增getty.te文件或修改现有规则),确保getty进程有权限访问ttyS2设备。

四、验证要点

  • 确认内核命令行参数console=ttyS2,115200 androidboot.console=ttyS2,115200已正确生效
  • 确保编译的是debuggable版本(ro.debuggable=1),否则init服务不会触发启动

内容的提问来源于stack exchange,提问作者mozcelikors

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:50:29