HANDOFF — Synopsys 项目根(工具安装 + License + PDK + 运行期)¶
2026-09-29 整体重写(第三轮):本轮把老 ICC 装入工具树并登记 module(21 棵树);ICC2 侧
LIB-090已解、MW→NDM 转换成功,但 NDM 分组LIB-105未通。 2026-09-29 定点修订(距上次整体重写 0 轮):① 新增docs/PROJECT-MAP.md承载工程全景与任务路由;第 5 节工程清单迁入该文件。② 补「跨项目关联」小节(第 4 节后)。 2026-10-08 定点修订(距上次整体重写 1 轮):登记只读探测批量化(rocky9_eda_compat/synopsys_pdk_saed32/synopsys_install_2018)+ProbeBatch上移共享库。
1. 这份文件怎么用¶
SessionStart Hook 注入的项目级快照,只写「现在」(状态 / 待办 / 红线)。按需深入:
- 接任务先查
docs/PROJECT-MAP.md— 项目全景:分层依赖图、任务→工程路由表、全部子项目身份卡片(活工程 / 服务档案 / 留档 / 数据源)、工程约定。 - 各子项目的 SOP / RUNBOOK 索引统一由 PROJECT-MAP 第 1、3 节承载,本文件不再维护工程清单(见第 5 节)。
事实档位:【已确认】有实测证据;【用户自述】;【未验证】;【待决策】。凭据一律不入文档。
2. 当前状态与在做什么¶
工具、license、Rocky 9 兼容层、module 体系、PDK 全部就位;工具级验证四件套通过(DC/PT/VCS/ICC2)。
- 环境事实【已确认】:操作机=本机(Ubuntu 24.04.3,NFS server + KVM 宿主,
192.168.31.249);六台 work=KVM 虚机(.18/.19/.20slurm、.25/.26/.27lsf,Rocky 9.8);31.28=EDA-HPC(submit/GUI,TigerVNC:1~:4);31.29=Flexlm。三共享目录tools→/tools(ro)、modulefiles→/opt/modulefiles(rw)、pdk→/pdk(ro),七台均已挂载。 - 工具安装【已确认】:21 棵树(含老 ICC 1.5G)/ 约 42.5G / 幂等复跑零变更;license 在 31.29(Synopsys
lmgrd:2700+snpslmd:2701、Cadencelmgrd:5280+cdslmd:5281,同机 systemd 化,⚠️ 重启单元后约 60–70 秒恢复监听)。 - Rocky 9 兼容层【已确认】:三根因——① glibc ≥2.34 移除
__pthread_unwind@GLIBC_PRIVATE→libpthread.so.0shim(LD_PRELOAD,放不参与 ldconfig 的libexec/);② 老 zlib 与系统 libpng16 冲突 →LD_PRELOAD系统 libz;③ pt/pwr 段错误源于 nss-myhostname → hosts 行移除myhostname。 - module 体系【已确认】:
module load synopsys && module load eda2018/1.0一次得 license +LD_PRELOAD+ 20 个工具入口(含 SCL、ICCompiler)。 - 老 ICC【已确认】:
icc_shell可运行(31.28 实测-version→O-2018.06-SP1)、七台可见可执行、module 加载后command -v icc_shell命中;ICC2 侧LIB-090已消失、MW→NDM 转换成功(LIB-094),但 NDM 分组失败(LIB-105)→ Milkyway 路线暂不可用(见待办 5),取库走 LEF 路线。 - PDK【已确认】:
SAED32_EDK(19G)落/data/nfs/pdk/SAED32_EDK(root:root,七台经/pdkro 消费);入口module load pdk && module load saed32(先家族、后实体;模块名saed32),加载后SAED32_PATH=/pdk/SAED32_EDK。 - VCS 兼容层【已确认】:
module load vcs-el7解决 Rocky 9 上 VCS 编译失败(细节见该工程 SOP);七台 el7 binutils 2.27 在/opt/compat/,做成独立模块以免老ld污染常规会话。 - 文档体系【已确认】:
docs/PROJECT-MAP.md承载静态全景与任务路由,本文件只留动态快照;工程身份、依赖、路由以地图为单一源,状态/待办/红线以本文件为单一源。 - 只读探测批量化【已确认】(2026-10-08,C 类):
rocky9_eda_compat/synopsys_pdk_saed32/synopsys_install_2018的 precheck/drift 探测由「逐条往返」改为「同主机拼一段 shell + 主机间并发 + 进程内探测缓存」;ProbeBatch已上移共享库precheck_module(原utils/probe_batch.py副本删除)。代表值:rocky9 36→6 条 / 13.14→1.52 s、saed32 23→7 / 7.10→1.5 s、snps_state.probe_client_view5.30→0.41 s;报告逐行一致。档案:../../probe_batch_20261008/SOP.md;共享库变更py_public_modules_changes/probe_batch_upstream_20261008/。 - ⚠️ 方法论红线:工具自带开关联网查不到、随包文档不写 —— 先 grep 工具自己的
bin/、etc/;gdb backtrace常一击命中。见 skillsynopsys-legacy-on-modern-linux。
3. 未完成事项¶
| # | 事项 | 下一步 | 在哪拾起 |
|---|---|---|---|
| 1 | 2018 遗留 | ① ldd_anchors 为空(需逐产品确认主 ELF 后跑全量 ldd);② tar 型文档介质(Spyglass_docs/CustomSimADE/xa/bash配置.zip);③ scl_v2018.06/ 自建 checksum 基线 |
synopsys_install_2018/docs/HANDOFF.md §3 |
| 2 | License 探活告警 | 保留待定;用户计划后续统一对接 Prometheus | flexlm_systemd_20260928/docs/RUNBOOK.md |
| 3 | custom_compiler 缺 OpenAccess |
报 "OpenAccess is missing or improperly installed";树内无 OA,Cadence 侧有 oa_v22.50.036,需确认版本与来源 |
synopsys_module_fix_20260929/docs/SOP.md 附录 C |
| 4 | pt/pwr 的 MEM Error |
-version 时打印该告警,最小脚本实跑正常 → 暂记噪声,未定位 |
同上 |
| 5 | ICC2 Milkyway 路线(LIB-105) | 转换成功但分组 0 组;已排除 icc2_shell 层选项(Invalid option name)与 .db 直传(NDM-020)。方向:icc2_lm_shell 层注入 / Library Compiler 生成 NDM。现走 LEF 路线 |
synopsys_icc_install_20260929/docs/SOP.md 附录 D |
已结案:① 1patch 补丁;② 31.30(VM 已销毁);③ license Triad 冗余;④ 介质裁剪(删 11.75G);⑤ SpyGlass GUI(-ispy);⑥ module 体系修复;⑦ PDK 装载;⑧ 六台软件源切阿里云 + make/gcc;⑨ VCS 在 Rocky 9 编译失败;⑩ 老 ICC 安装(第 21 棵树 + module 入口 ICCompiler)。
环境遗留(非本任务引入):31.25 的 kmod-lustre/lustre 未安装(安装进程曾走代理隧道卡死,已终止)。
⚠️ modulefile 红线:① license 必须用厂商专用变量
SNPSLMD_LICENSE_FILE——Cadence 已把LM_LICENSE_FILE设为5280@192.168.31.29,Synopsys 老工具回退读它会超时重试、拖慢启动;② PDK 实体 modulefile 不得声明family()——家族由Core/pdk.lua声明,重复声明会让 Lmod 卸载pdk入口并连带撤销MODULEPATH与SAED32_PATH(实测踩到)。
4. 红线与命令速查¶
- 【红线】VCS 运行必须
VCS_USE_MALLOC=1;SpyGlass 必须SG_CONSOLE_SE=1+EDA_COMPAT_FAKE_UNAME=1(均已由 modulefile 设置,勿在会话里覆盖)。 - 【红线】兼容层 shim 绝不可放进被
ldconfig扫描的目录(会顶替全系统libpthread);只能经LD_PRELOAD注入。 - 【红线】
/usr/local/bin/uname是兼容层制品(占全机uname优先位):未设EDA_COMPAT_FAKE_UNAME=1时完全透传真实 uname,勿手改。 - 【红线】31.28 及六台的
/etc/nsswitch.confhosts 行已移除myhostname;勿"顺手恢复"。 - 【红线】两套 FlexLM 已 systemd 托管,按单元名操作;不要
pkill lmgrd/pkill -f(会杀掉承载命令的 SSH 会话)。重启后约 60–70 秒恢复监听;firewall-cmd变更不执行--reload;有作业的节点不动。 - 【红线】不手改
/opt/modulefiles/Core/*、不动 fstab/exports。容器方案救不了 VCS。 - 【红线】工具树新增产品:安装器拒绝 root(
-install_as_rootnot recommended,勿用);路径为「setfacl -m u:rain:rwx <目标目录及 .installer>→ 以 rain 安装 →setfacl -x→chown -R root:root+chmod -R u=rwX,go=rX」。 - 【红线】module 树与工具树(
/data/nfs/{modulefiles,tools})改动的唯一入口是宿主本机(NFS 服务端,需 root);客户端为 ro。slurm 部署器复跑会重建部分 module(含eda2018/1.0.lua,重建后须重跑apply_module_entry.py --apply补回 ICC 入口);工具重装会复原xa_fh。SAED32_EDK/是 PDK 源树(19G),勿删。 - 速查:
# 一键加载(31.28 及六台)
module load synopsys && module load eda2018/1.0 # license + LD_PRELOAD + 20 工具入口
command -v icc_shell # 老 ICC(O-2018.06-SP1)
module load pdk && module load saed32 # SAED32 PDK(纯数据)
# 许可服务与查证
ssh root@192.168.31.29 'systemctl is-active flexlm-cadence flexlm-synopsys'
lmutil lmstat -c 2700@192.168.31.29
# PDK 装载与验证(本机)
cd synopsys_pdk_saed32_20260929
.venv/bin/python main.py --config config/pdk.yaml {precheck,deploy,drift,verify}
# 六台推广工程(drift 只读)
cd rocky9_eda_compat_20260928 && .venv/bin/python main.py --config config/rollout.yaml drift
# module 修复(幂等;需 sudo)
sudo -n python3 synopsys_module_fix_20260929/fix_modules.py --apply
sudo -n python3 synopsys_icc_install_20260929/apply_module_entry.py --apply # 补 ICC 入口
4a. 跨项目关联¶
本项目的部分待办与红线涉及其他项目,以下为关键信息;详情读对应项目的 HANDOFF / SOP。
| 关联项 | 关系 | 关键信息 |
|---|---|---|
| Cadence OA | Synopsys custom_compiler 缺 OpenAccess(待办 3),Cadence 侧有 oa_v22.50.036 |
../Cadence/ic617_install_20260926/docs/SOP.md |
| module family 共存 | Cadence/Synopsys 厂商共存靠 slurm 项目的 Lmod family 作用域修复 | ../../slurm/slurm_ins/module_family_scope_20260927/SOP.md |
| FlexLM 共机 | 31.29 同时跑 Synopsys(2700/2701) + Cadence(5280/5281),互不干扰靠厂商专用变量隔离 | Synopsys 用 SNPSLMD_LICENSE_FILE,Cadence 用 LM_LICENSE_FILE(5280@192.168.31.29);回退读错会超时拖慢启动(见第 4 节红线) |
5. 文档地图¶
根 docs/ 三件套分工;子项目 SOP / RUNBOOK 全量索引与任务路由在 PROJECT-MAP,不在此重复。
| 文件 | 管什么 |
|---|---|
docs/HANDOFF.md(本文件) |
动态快照:当前状态、未完成事项、红线与速查(SessionStart 全文注入) |
docs/PROJECT-MAP.md |
静态全景:分层依赖图、任务路由表、16 个工程身份卡片、工程命名约定 |
docs/backup/README.md |
HANDOFF 历次整体重写版本的备份台账 |
来源:
/home/rain/Documents/eda_tools_ins/Synopsys/docs/HANDOFF.md| 最后更新:2026-10-08 13:24(由build/sync.py同步,请勿在站点侧修改)