BASELINE — Synopsys 项目根(稳定层)¶
稳定层:换 cell / 换项目 / 下个会话仍成立的环境事实与机制陷阱。动态快照见
docs/HANDOFF.md;工程全景与任务路由见docs/PROJECT-MAP.md。 2026-10-08 建立:自docs/HANDOFF.md拆出稳定层(环境事实 / 机制陷阱与红线 / 命令速查 / 跨项目关联 / 文档地图)。
1. 环境事实¶
- 操作机 = 本机(Ubuntu 24.04.3,NFS server + KVM 宿主,
192.168.31.249)。 - 六台 work = KVM 虚机:
.18/.19/.20(slurm)、.25/.26/.27(lsf),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 秒恢复监听。 - 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命中。 - 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;七台 el7 binutils 2.27 在/opt/compat/,做成独立模块以免老ld污染常规会话。
2. 机制性陷阱与红线¶
2.1 兼容层三根因(Rocky 9)¶
① glibc ≥2.34 移除 __pthread_unwind@GLIBC_PRIVATE → libpthread.so.0 shim(LD_PRELOAD,放不参与 ldconfig 的 libexec/);
② 老 zlib 与系统 libpng16 冲突 → LD_PRELOAD 系统 libz;
③ pt/pwr 段错误源于 nss-myhostname → hosts 行移除 myhostname。
2.2 红线¶
- 【红线】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),勿删。 - ⚠️ 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(实测踩到)。 - ⚠️ 方法论:工具自带开关联网查不到、随包文档不写 —— 先 grep 工具自己的
bin/、etc/;gdb backtrace常一击命中。见 skillsynopsys-legacy-on-modern-linux。
3. 命令速查¶
# 一键加载(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 入口
4. 跨项目关联¶
本项目的部分红线与待办涉及其他项目;详情读对应项目的 HANDOFF / SOP。
| 关联项 | 关系 | 关键信息 |
|---|---|---|
| Cadence OA | Synopsys custom_compiler 缺 OpenAccess,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);回退读错会超时拖慢启动 |
5. 文档地图¶
根 docs/ 三件套分工;子项目 SOP / RUNBOOK 全量索引与任务路由在 PROJECT-MAP,不在此重复。
| 文件 | 管什么 |
|---|---|
docs/HANDOFF.md |
动态快照:当前状态、未完成事项(SessionStart 全文注入) |
docs/BASELINE.md(本文件) |
稳定层:环境事实、机制陷阱与红线、命令速查、跨项目关联、文档地图 |
docs/PROJECT-MAP.md |
静态全景:分层依赖图、任务路由表、16 个工程身份卡片、工程命名约定 |
docs/backup/README.md |
HANDOFF 历次整体重写版本的备份台账 |
来源:
/home/rain/Documents/eda_tools_ins/Synopsys/docs/BASELINE.md| 最后更新:2026-10-08 22:56(由build/sync.py同步,请勿在站点侧修改)