找回密码
 立即注册
首页 业界区 业界 告别依赖地狱:Win11 25H2 + WSL2 CentOS 7 搭建 Synops ...

告别依赖地狱:Win11 25H2 + WSL2 CentOS 7 搭建 Synopsys EDA 工具链实践

赶塑坠 2 小时前
本文是一份针对 Windows 11 25H2 用户的 WSL2 IC 开发环境 搭建指南。通过选用兼容性更佳的 CentOS 7,详细演示了如何避开 glibc 陷阱,成功运行 Synopsys VCS、Verdi 等主流 EDA 工具。内容包含 CentOS 7 停服后的软件源修复技巧、32 位兼容库安装以及针对 WSL2 内核的环境变量优化。
致谢与前置阅读

本文在搭建过程中深度参考了以下文章,该文对 Synopsys 工具链的安装逻辑有极其详尽的描述,强烈推荐读者优先阅读:
推荐阅读: 【保姆级教程】在 Win11 WSL2 (Ubuntu 20.04) 上搭建 Synopsys 数字 IC 设计 EDA 工具链——踩坑全记录
在此亦对互联网上无数提供技术方案的开发者表示由衷感谢。
说明:
上述教程基于 Ubuntu 20.04。笔者曾尝试在 WSL2 Ubuntu 24.04 上进行复现,但由于该版本的系统库过于“激进”(如彻底弃用 libpng12、glibc 版本过高等),导致大量 2018 至 2021 版的 EDA 工具陷入依赖地狱。
因此,本文定位为 WSL2 CentOS 7 环境下的针对性补遗。
为什么选择从 Ubuntu 24.04 转向 CentOS 7?


  • 工具原生适配性: 主流 IC EDA 工具(VCS、Verdi、DC、PT 等)大多基于 RHEL/CentOS 体系进行闭源开发。Ubuntu 24.04 的底层链接与版本号变动剧烈,强行打补丁极易引发仿真结果的不可预知偏差。
  • 工业界基准对齐: 企业级服务器环境几乎是 RHEL/CentOS 的天下。采用 CentOS 7 能最大程度还原工业环境,确保脚本在本地与服务器间无缝迁移。
  • 规避 GLIBC 兼容性陷阱: Ubuntu 24.04 的 glibc 版本过高,常被 EDA 工具的内核检查机制拦截。相对而言, CentOS 7 具有长周期的稳定 ABI(Application Binary Interface).
个人开发环境参数 (含重要提示)

重要提示: 通常要求Windows 11 22H2 及更高版本的计算机, 以确保能开启 WSL2 的 镜像模式网络, 这是后续固定 WSL MAC 地址的关键 (用于 Synopsys EDA 工具 License). 若无法固定 MAC 地址, 每次都需要重新生成一个 license. 具体可以参考微软这篇文档.
类别项目详细参数 / 版本宿主机硬件设备型号HP Omen 9 (暗影精灵 9)CPUIntel Core i5-13500HX内存 (RAM)32GB (建议 16GB+)宿主机系统Windows 版本Windows 11 家庭版 25H2WSL2 环境内核版本5.15.x 或更高WSL 发行版CentOS 7网络模式Mirrored (镜像模式)磁盘空间虚拟磁盘建议预留 200GB+ 空间安装 CentOS 7 WSL 镜像

下载镜像

由于微软官方商城不提供 CentOS,推荐使用开源项目 CentOS-WSL。

  • 下载地址: GitHub Releases
执行安装


  • 将下载的压缩包解压到你打算存放虚拟磁盘的目录(例如 D:\WSL\CentOS7)。
  • 双击运行目录下的 CentOS7.exe。


  • 注意: 安装程序会在当前目录下生成虚拟磁盘(ext4.vhdx),请确保该磁盘分区有足够的空间(IC 工具包通常很大)。
基础用户配置

新建普通用户
WSL2 CentOS 默认以 root 用户登录。在 IC 开发中,建议新建普通用户:
  1. useradd -m -s /bin/bash <your_username>
  2. passwd <your_username> # 设置密码
  3. usermod -aG wheel <your_username> # 赋予 sudo 权限
复制代码
设置默认登录用户
编辑 /etc/wsl.conf:
  1. sudo vi /etc/wsl.conf
复制代码
输入内容:
  1. [user]
  2. default=<your_username>
复制代码
在 Windows PowerShell 中执行 wsl --shutdown 重启后即可生效。
核心网络优化 (Windows 11 25H2 镜像模式)

在 Windows 用户目录下(%USERPROFILE%)修改 .wslconfig。
注意: 镜像模式(Mirrored)是 Windows 11 近期版本的黑科技,它让 WSL 与 Windows 共享 IP,极大优化了访问 Windows 代理及 License 端口冲突的问题。
  1. [wsl2]
  2. networkingMode=mirrored
  3. autoProxy=true
  4. dnsTunneling=true
  5. [experimental]
  6. autoMemoryReclaim=gradual # 自动回收空闲内存
复制代码
修复 CentOS 7 软件源 (与 Ubuntu 的主要差异)

CentOS 7 特有步骤: 由于 CentOS 7 已于 2024 年 6 月 30 日停止维护(EOL),其官方源已失效。你需要切换到阿里云的归档镜像源(Vault)才能继续使用 yum:
  1. # 1. 备份旧配置
  2. sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
  3. # 2. 下载阿里云提供的基础配置文件
  4. sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
  5. # 3. 删除内网专用域名(防止非阿里云环境报错)
  6. sudo sed -i '/aliyuncs.com/d' /etc/yum.repos.d/CentOS-Base.repo
  7. # 4. 清理并生成缓存
  8. sudo yum clean all
  9. sudo yum makecache
复制代码
安装 EDA 工具必备依赖库

下表展示了 CentOS 7 与 Ubuntu 在依赖管理上的核心不同:
差异点UbuntuCentOS 7包管理器aptyumLSB 标准库lsb-coreredhat-lsb-core (启动 lmgrd 必备)32位支持dpkg --add-architecture i386直接安装 .i686 后缀的包即可遗留图形库24.04 已移除 libpng12依然完美支持 libpng12CentOS 7 补全命令:
  1. # 1. 基础开发组
  2. sudo yum groupinstall -y "Development Tools"
  3. sudo yum install -y wget git tcsh xterm screen net-tools python3
  4. # 2. X11 图形支持 (解决 Verdi 无法弹出、缺失 libXt.so, libXmu.so 等问题)
  5. sudo yum install -y libX11 libXext libXrender libXtst libXi libXp libXft \
  6.       libXmu libXt libICE libSM libuuid libXinerama libXcursor libXrandr \
  7.       libXcomposite libXdamage libXScrnSaver fontconfig freetype
  8. # 3. 32 位兼容库 (License Manager lmgrd 启动必备)
  9. sudo yum install -y glibc.i686 libstdc++.i686 zlib.i686 ncurses-libs.i686 \
  10.       redhat-lsb-core redhat-lsb-submod-security
复制代码
Synopsys 工具链环境变量配置

将以下内容添加到新用户的 ~/.bashrc 中。请注意 VCS_ARCH_OVERRIDE 这个关键变量,它是绕过 WSL2 内核检查的“神药”。
  1. # .bashrc
  2. # Source global definitions
  3. if [ -f /etc/bashrc ]; then
  4.     . /etc/bashrc
  5. fi
  6. # --- Synopsys Root ---
  7. export SYNOPSYS_ROOT=/opt/synopsys
  8. # --- Home Directories ---
  9. export SCL_HOME=$SYNOPSYS_ROOT/scl/2018.06
  10. export VCS_HOME=$SYNOPSYS_ROOT/vcs/O-2018.09-SP2
  11. export VCS_ARCH_OVERRIDE=linux # 关键:强制 VCS 绕过现代内核检查
  12. export VCS_MX_HOME=$SYNOPSYS_ROOT/vcs-mx/O-2018.09-SP2
  13. export VERDI_HOME=$SYNOPSYS_ROOT/verdi/Verdi_O-2018.09-SP2
  14. export SYN_HOME=$SYNOPSYS_ROOT/syn/O-2018.06-SP1         # DC
  15. export PT_HOME=$SYNOPSYS_ROOT/pts/O-2018.06-SP1           # PrimeTime
  16. # --- Path 变量 ---
  17. export PATH=$VCS_HOME/bin:$VCS_MX_HOME/bin:$VERDI_HOME/bin:$SYN_HOME/bin:$PT_HOME/bin:$SCL_HOME/linux64/bin:$PATH
  18. # --- Library 路径 ---
  19. export VCS_RUNTIME_LIBDIR=$VCS_HOME/linux64/lib
  20. export LD_LIBRARY_PATH=$PT_HOME/linux64/pt/shlib:$LD_LIBRARY_PATH
  21. export LD_LIBRARY_PATH=$VERDI_HOME/share/PLI/VCS/LINUX64:$LD_LIBRARY_PATH
  22. export LD_LIBRARY_PATH=$VCS_HOME/linux64/lib:$LD_LIBRARY_PATH
  23. # --- License 设置 ---
  24. export SNPSLMD_LICENSE_FILE=27000@localhost
  25. export LM_LICENSE_FILE=27000@localhost
  26. # --- 别名 Aliases ---
  27. alias lmg='/opt/synopsys/scl/2018.06/linux64/bin/lmgrd -c /opt/synopsys/scl/2018.06/admin/license/Synopsys.dat -l ~/lmgrd.log > /dev/null 2>&1 &'
  28. alias vcs='vcs -full64 -debug_access+all -LDFLAGS "-Wl,--no-as-needed"'
  29. alias vcs_mx='vcs -full64 -debug_access+all -LDFLAGS "-Wl,--no-as-needed" -sysv'
  30. alias python='python3'
  31. # --- 自动启动 License Server (避免重复启动) ---
  32. if ! pgrep -x "lmgrd" > /dev/null
  33. then
  34.     /opt/synopsys/scl/2018.06/linux64/bin/lmgrd -c /opt/synopsys/scl/2018.06/admin/license/Synopsys.dat -l ~/lmgrd.log > /dev/null 2>&1 &
  35.     echo "Synopsys License Server: STARTED"
  36. else
  37.     :
  38. fi
复制代码
结语

EDA 环境的搭建往往充满挫败感, Linux 发行版生态的割裂更是放大了这种痛苦. 希望这篇文章对读者有帮助.

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册