全志 V853 开发:lunch 不显示项目列表问题排查与解决

问题现象

在全志 V853 平台源码环境下,执行source build/envsetup.sh后运行lunch,项目列表完全不显示,无法选择编译目标,直接影响编译流程启动。

排查环境

  • 系统:Ubuntu 22.04
  • 源码:全志 V853 melis 源码
  • 问题命令:lunch

排查步骤

1. 基础目录与文件检查

首先确认target目录存在且权限正常:

复制代码
ls -ld target
# 输出:drwxr-xr-x 7 geoffrey geoffrey 4096 Aug  6  2025 target

手动执行find查找vendorsetup.sh,能正常找到文件:

复制代码
# 不带-L
find target -name vendorsetup.sh | head -5
# 带-L(与脚本一致)
find -L target -maxdepth 4 -name vendorsetup.sh | head -5

结果均能输出target/allwinner/xxx/vendorsetup.sh,说明文件存在、find 命令本身无问题。

2. 脚本逻辑定位

查看envsetup.sh中lunch菜单生成逻辑:

复制代码
# 核心代码片段
awchips=$(ls $(pwd)/device/config/chips | awk '{print " -e "$1"-"}')
verdors=$(find -L target -name vendorsetup.sh | grep $awchips | sort)
  • awchips:生成 grep 匹配规则
  • verdors:筛选有效项目路径
  • 日志显示verdors=为空,说明grep 匹配失败。

3. 根因定位

排查发现:系统别名ls --color=auto导致输出带 ANSI 颜色转义码 ,这些不可见字符被带入awchips变量,grep 无法匹配纯文本路径,最终verdors为空,lunch无列表。

验证:

复制代码
echo "$awchips" | cat -A
# 若出现^[[等转义字符,确认颜色码干扰

解决方案

修改build/envsetup.sh,禁用 ls 颜色输出、绕过系统别名。

1. 修复 awchips 生成行

将:

复制代码
awchips="$(ls $(pwd)/device/config/chips | awk '{print " -e "$1"-"}')"

改为:

复制代码
# 方法1:使用\ls绕过别名
awchips="$(\ls $(pwd)/device/config/chips | awk '{print " -e "$1"-"}')"

# 方法2:显式禁用颜色
awchips="$(ls --color=never $(pwd)/device/config/chips | awk '{print " -e "$1"-"}')"

2. 同步修复 PLATFORM_CHOICES 行

复制代码
export PLATFORM_CHOICES="$(\ls $(gettop)/target/allwinner 2>/dev/null | grep common | sort | uniq | sed 's/-common//g')"

3. 生效验证

复制代码
source build/envsetup.sh
lunch

此时lunch正常显示全志平台项目列表。


问题总结

  1. 根本原因 :shell 别名导致ls输出颜色转义码,污染 grep 匹配规则。
  2. 关键现象:find 能找到文件,但 grep 无输出,verdors 变量为空。
  3. 通用经验 :shell 脚本中调用系统命令,建议用\command或--color=never避免环境干扰。
相关推荐
俊昭喜喜里30 分钟前
理解全局跨域CORS配置
前端
锋行天下3 小时前
DeepSeek写Langgraph就是个大傻逼,一本正经胡说八道
前端·人工智能·后端
jktantan4 小时前
每个节点 41 字节:把一棵百万节点树拆进 14 个 typed array
前端·javascript·vue.js·算法·typescript
计算机魔术师4 小时前
Anthropic官方插件被「寄生」,背后是同一类攻击又来了
前端
我命由我123454 小时前
访客系统形式(有用户概念、无用户概念)
java·开发语言·前端·javascript·python·产品运营·产品经理
key_3_feng5 小时前
评估与对齐:Agent 自我进化的护栏
前端·数据库·agent
LaughingZhu5 小时前
Product Hunt 热榜 2026-10-30:Empacer、Scape、Floot in ChatGPT
java·前端·数据库·人工智能·chatgpt·notion
Lank_M5 小时前
抠图结果缩放后边缘发脏,该怪的不是插值
前端
jerrywus5 小时前
Skill、MCP、Workflow、Rules、Memory 有什么区别?拿几次真实开发任务讲清楚
前端·agent·claude
补码缩写5 小时前
canvas 与 sharp 缩放透明图:默认预乘,非预乘得拆通道
前端