全志 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.shlunch菜单生成逻辑:

复制代码
# 核心代码片段
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避免环境干扰。
相关推荐
wjykp9 小时前
5.cypher语句组合与复杂操作
linux·前端·javascript
梦无矶9 小时前
nrm自动设置npm镜像源
前端·npm·node.js
鲤鱼_59910 小时前
记录——前端开发IDEA需要的插件
前端
摘星编程10 小时前
基于 JiuwenSwarm AgentTeam 构建混沌工程自动化实战
前端·chrome
nashane10 小时前
HarmonyOS 6学习:Web组件与JavaScript交互的三大高频问题与终极解决方案
前端·学习·harmonyos
顾随10 小时前
(2)达梦数据库--SQl基础实践
前端·数据库·sql
键盘飞行员10 小时前
Windsurf + Claude 4.7 前端开发:用 ui-ux-pro-max 根治 “AI 味”、实现全站 UI 统一
前端·ui·ai编程
IT_陈寒10 小时前
被JavaScript的隐式类型转换坑到怀疑人生,记录这次离谱经历
前端·人工智能·后端
梦无矶10 小时前
快速设置npm默认源为国内全局镜像源
前端·npm·node.js
aichitang202410 小时前
HTML 实时预览工具
前端·html