← 数字IC开发环境

Rocky Linux 8.10 虚拟机安装与配置完全指南

Rocky Linux 8.10 虚拟机安装与配置完全指南

本文是 Rocky Linux 8.10 EDA 开发环境系列的第一篇,主要介绍虚拟机系统的安装与基础配置。


一、安装 VMware Workstation Pro

登录博通账号,前往 VMware Workstation Pro 下载页面,选择对应平台的版本下载即可。 image-20250816033640432.png

VMware下载页面2


二、下载 Rocky Linux 8.10 安装镜像

推荐使用国内镜像源下载,速度更快。以下提供几个下载地址:

来源 地址
官网 rockylinux.org
中科大源(推荐) mirrors.ustc.edu.cn/rocky
阿里源 mirrors.aliyun.com/rockylinux

下载文件名为:

Rocky-8.10-x86_64-dvd1.iso

三、虚拟机安装 Rocky Linux 8.10

3.1 创建虚拟机

打开 VMware Workstation Pro,点击 创建新的虚拟机

创建虚拟机

选择 自定义(高级),点击下一步。

自定义安装

硬件兼容性保持默认,下一步。

硬件兼容性

选择 稍后安装操作系统,下一步。

稍后安装

客户机操作系统选择 Linux,版本选择 Rocky Linux 64 位,下一步。

选择操作系统

设置虚拟机名称,并点击浏览选择虚拟机文件的存放位置(示例中为 H:\Virtual Machine\Rocky8),下一步。

虚拟机命名

3.2 配置硬件参数

根据宿主机实际情况设置处理器数量和内核数量(参考:Windows 如何查看内核数量),下一步。

处理器配置

设置虚拟机内存大小,建议至少 8GB,下一步。

内存配置

网络类型选择 使用网络地址转换(NAT),下一步。

网络配置

I/O 控制器类型选择 LSI Logic,下一步。

IO控制器

磁盘类型选择 NVMe,下一步。

磁盘类型

选择 创建新虚拟磁盘,下一步。

创建磁盘

设置磁盘大小,选择 将虚拟磁盘拆分成多个文件,下一步。

磁盘大小

磁盘文件名保持默认,下一步。

磁盘文件

3.3 自定义硬件(重要)

点击 自定义硬件,有三处关键配置需要修改:

自定义硬件

1) 处理器 — 开启虚拟化引擎

在处理器栏,勾选 虚拟化 Intel VT-x/EPT 或 AMD-V/RVI。如果不勾选,虚拟机内键盘响应会有明显延迟。

虚拟化引擎

2) CD/DVD — 挂载 ISO 镜像

新 CD/DVD 栏选择 使用 ISO 映像文件,点击浏览选中之前下载的 Rocky-8.10-x86_64-dvd1.iso

挂载ISO

3) 显示 — 关闭 3D 加速

显示 栏取消勾选 加速 3D 图形,否则使用时可能会明显卡顿。

关闭3D

点击 关闭 返回,再点击 完成

完成创建

3.4 安装系统

点击 开启此虚拟机

注意:如果遇到开机失败,可能是处理器虚拟化选项的兼容性问题,参考 Intel 12 代处理器 VMware 键盘延迟解决方案 处理。

开启虚拟机

用方向键选择 Install Rocky Linux 8.10,按 Enter 确认。

安装选择

等待片刻后进入安装向导界面,向下滚动找到 中文 — 简体中文(中国),点击继续。

语言选择

3.5 安装选项配置

安装目标位置

点击 安装目标位置

安装目标

系统会自动选中虚拟磁盘,确认后点击 完成

确认磁盘

软件选择

点击 软件选择

软件选择

基础环境选择 带 GUI 的服务器,附加软件建议勾选 开发工具 即可,其他按需选择。

建议:附加软件不要选太多,可能会有兼容性问题。勾选一个 开发工具 就够了。

软件配置

网络和主机名

点击 网络和主机名

网络配置

将以太网开关打开,可以自定义主机名,然后点击 配置

网络详情

血泪教训:主机名千万不要用全大写!使用默认的 localhost.localdomain 或者小写名称可以避免很多不必要的麻烦。全大写的主机名曾导致我重装了一次物理机、两次虚拟机......

点击 常规 选项卡,勾选 可用时自动连接到这个网络,保存并完成。

自动连接

时间和日期

点击 时间和日期

时间设置

选择正确的地区和城市,确保 网络时间 已开启,点击完成。

时区选择

ROOT 密码

点击 ROOT 密码,为管理员账户设置密码。

ROOT密码

建议:ROOT 密码与普通用户密码设置为不同的值,提升安全性。

设置密码

创建用户

点击 创建用户

创建用户

填写用户名和密码,务必勾选"将此用户设为管理员",点击完成。

用户配置

3.6 开始安装

点击 开始安装,然后耐心等待。

开始安装

安装进度

安装完成后,点击 重启系统

重启

3.7 首次启动配置

重启后需要同意许可协议。点击 许可信息

许可信息

勾选 我同意许可协议,点击完成。

同意协议

点击 结束配置

结束配置

选择用户账户,输入密码登录。

登录

大功告成!强烈建议此时立即保存一个虚拟机快照,以备不时之需。

桌面

3.8 安装后的虚拟机设置

虚拟机关机后,点击 编辑虚拟机设置

编辑设置

1) CD/DVD — 切换回物理驱动器

点击 CD/DVD,选择 使用物理驱动器,释放 ISO 镜像。

物理驱动器

2) VMware Tools — 时间同步

点击 选项 → VMware Tools,勾选 将客户机时间与主机同步

时间同步

3) 共享文件夹

点击 共享文件夹,选择 总是启用,点击添加。

共享文件夹

点击下一步。

向导

点击浏览设置宿主机共享目录路径,配置完成后虚拟机可以访问该目录下的内容。

设置路径

勾选 启用此共享,点击完成。

启用共享


四、系统初始化配置

4.1 换源与系统更新

系统装好后的第一件事就是把默认源替换为国内镜像源,大幅提升软件安装速度。

# 切换到 root 用户
$ su
密码:

# 将默认源替换为中科大源
$ sed -e 's|^mirrorlist=|#mirrorlist=|g' \
    -e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/rocky|g' \
    -i.bak \
    /etc/yum.repos.d/Rocky-AppStream.repo \
    /etc/yum.repos.d/Rocky-BaseOS.repo \
    /etc/yum.repos.d/Rocky-Extras.repo \
    /etc/yum.repos.d/Rocky-PowerTools.repo

# 重建缓存并更新系统
$ yum clean all
$ yum makecache
$ yum update -y

# 安装 EPEL 源(提供更多第三方软件包)
$ yum install -y epel-release

4.2 防火墙配置

开放后续 EDA License 服务所需的 27000 端口:

$ firewall-cmd --zone=public --add-port=27000/tcp --permanent
$ firewall-cmd --reload

4.3 安装并配置 Gvim

$ sudo yum install -y gvim

Gvim 的详细配置可以参考:数字 IC 设计开发 Gvim 配置 - IC 攻城狮的摸鱼小屋

4.4 安装 tcsh

很多 EDA 工具的脚本基于 csh/tcsh,因此需要安装 tcsh:

$ sudo yum install -y tcsh

# 进入 tcsh shell
$ tcsh

4.5 配置 Shell 环境变量

这是整个环境配置中最核心的一步。我们需要配置 bashcsh 两套环境,并为不同厂商的 EDA 工具分别创建独立的环境配置文件。

~/.bashrc

# .bashrc

# Source global definitions
if [ -f /etc/bashrc ]; then
	. /etc/bashrc
fi

# User specific environment
if ! ["$PATH" =~ "$HOME/.local/bin:$HOME/bin:"](/wiki/"$PATH" =~ "$HOME/.local/bin:$HOME/bin:")
then
    PATH="$HOME/.local/bin:$HOME/bin:$PATH"
fi
export PATH

# User specific aliases and functions
alias share_dir="sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other"
alias g="gvim"
alias la="la -a"
alias ..="cd .."
cd() { builtin cd "$@" && ls; }
export PS1='[\u@\h `pwd`]\$'
alias sc="source ~/.bashrc"
alias vb="gvim ~/.bashrc"

~/.cshrc

# .cshrc

#-----------------------------------------------------------------------------
# 基础配置
#-----------------------------------------------------------------------------
alias   g               'gvim'
alias   la              'ls -a'
alias   ..              'cd ..'
alias   vc              'gvim ~/.cshrc'
alias   sc              'source ~/.cshrc'
alias   cd              'cd \!*; ls'
alias   python          'python3'
alias   pip             'pip3'
alias   grep            'grep --color=auto'

set     prompt  =       "%n@%m:%~%#"

setenv  LSCOLORS        ExGxFxdxCxegedabagExEx
setenv  CLICOLOR        yes
set     autolist
set     correct =       cmd
set     noclobber

alias   virtualip       'sudo ip link add vmnic0 type dummy && sudo ip link set vmnic0 addr 00:15:5d:f2:bc:d8'
alias   sharedir        'sudo mount -t fuse.vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other'

#-----------------------------------------------------------------------------
# EDA 工具环境(按厂商分离,按需加载)
#-----------------------------------------------------------------------------
alias scs           'source ~/synopsys.cshrc'
alias scc           'source ~/cadence.cshrc'
alias scx           'source ~/xilinx.cshrc'

设计思路:EDA 工具的环境变量按厂商拆分为独立文件(synopsys.cshrccadence.cshrcxilinx.cshrc),通过别名按需加载,避免启动 Shell 时加载大量不必要的环境变量。

~/synopsys.cshrc

#!csh
# Synopsys EDA Tool Settings

#-----------------------------------------------------------------------------
# Directory Settings
#-----------------------------------------------------------------------------
setenv SNPS_TOOLS_HOME      "${HOME}/EDA/Synopsys"

#-----------------------------------------------------------------------------
# Synopsys Client License (SCL)
#-----------------------------------------------------------------------------
setenv SCL_HOME             "${SNPS_TOOLS_HOME}/scl/2025.03"
setenv PATH                 "${PATH}:${SCL_HOME}/linux64/bin"
setenv VCS_ARCH_OVERRIDE    "linux"
setenv LM_LICENSE_FILE      "27000@bed"
alias lmg_synopsys          '${SCL_HOME}/linux64/bin/lmgrd -c ${SCL_HOME}/admin/license/Synopsys.dat -l ${SCL_HOME}/admin/lmg.log'
alias vlmg                  'gvim ${SCL_HOME}/admin/lmg.log'

#-----------------------------------------------------------------------------
# DVE
#-----------------------------------------------------------------------------
setenv DVE_HOME             "${SNPS_TOOLS_HOME}/vcs/W-2024.09-SP1"
setenv PATH                 "${PATH}:${DVE_HOME}/gui/dve/bin"
alias  dve                  'dve -full64'

#-----------------------------------------------------------------------------
# Formality
#-----------------------------------------------------------------------------
setenv FM_HOME              "${SNPS_TOOLS_HOME}/formality/V-2023.12-SP3"
setenv PATH                 "${PATH}:${FM_HOME}/bin"
alias  fm                   'fm_shell'

#-----------------------------------------------------------------------------
# IC Compiler II
#-----------------------------------------------------------------------------
setenv ICC2_HOME            "${SNPS_TOOLS_HOME}/icc2/V-2023.12-SP3"
setenv PATH                 "${PATH}:${ICC2_HOME}/bin"
alias  icc2                 'icc2_shell'

#-----------------------------------------------------------------------------
# Library Compiler
#-----------------------------------------------------------------------------
setenv LC_HOME              "${SNPS_TOOLS_HOME}/lc/V-2023.12-SP3"
setenv PATH                 "${PATH}:${LC_HOME}/bin"
alias  lc                   'lc_shell'

#-----------------------------------------------------------------------------
# Milkyway
#-----------------------------------------------------------------------------
setenv MW_HOME              "${SNPS_TOOLS_HOME}/milkyway/V-2023.12-SP3"
setenv PATH                 "${PATH}:${MW_HOME}/bin"
alias  mw                   'mw_shell'

#-----------------------------------------------------------------------------
# PrimeTime
#-----------------------------------------------------------------------------
setenv PT_HOME              "${SNPS_TOOLS_HOME}/pt/V-2023.12-SP2"
setenv PATH                 "${PATH}:${PT_HOME}/bin"
alias  pt                   'pt_shell'

#-----------------------------------------------------------------------------
# RTL Architect
#-----------------------------------------------------------------------------
setenv RTL_ARCH_HOME        "${SNPS_TOOLS_HOME}/rtl_arch/V-2023.12-SP5"
setenv PATH                 "${PATH}:${RTL_ARCH_HOME}/bin"
alias  rtl_arch             'rtl_arch_shell'

#-----------------------------------------------------------------------------
# SpyGlass
#-----------------------------------------------------------------------------
setenv SG_HOME              "${SNPS_TOOLS_HOME}/spyglass/V-2023.12-SP3"
setenv PATH                 "${PATH}:${SG_HOME}/SPYGLASS_HOME/bin"
alias  sg                   'spyglass'

#-----------------------------------------------------------------------------
# StarRC
#-----------------------------------------------------------------------------
setenv STAR_RC_HOME         "${SNPS_TOOLS_HOME}/starrc/V-2023.12-SP3"
setenv PATH                 "${PATH}:${STAR_RC_HOME}/bin"
alias  starrc               'starrc_shell'

#-----------------------------------------------------------------------------
# Design Compiler
#-----------------------------------------------------------------------------
setenv DC_HOME              "${SNPS_TOOLS_HOME}/dc/V-2023.12-SP3"
setenv PATH                 "${PATH}:${DC_HOME}/bin"
alias  dc                   'dc_shell'

#-----------------------------------------------------------------------------
# TetraMAX
#-----------------------------------------------------------------------------
setenv TMX_HOME             "${SNPS_TOOLS_HOME}/tetramax/V-2023.12-SP3"
setenv PATH                 "${PATH}:${TMX_HOME}/bin"
alias  tmx                  'tmx_shell'

#-----------------------------------------------------------------------------
# VCS
#-----------------------------------------------------------------------------
setenv VCS_HOME             "${SNPS_TOOLS_HOME}/vcs/W-2024.09-SP1"
setenv PATH                 "${PATH}:${VCS_HOME}/bin"
alias  vcs                  'vcs -full64'

#-----------------------------------------------------------------------------
# Verdi
#-----------------------------------------------------------------------------
setenv VERDI_HOME           "${SNPS_TOOLS_HOME}/verdi/W-2024.09-SP1"
setenv PATH                 "${PATH}:${VERDI_HOME}/bin"
alias  verdi                'verdi'
setenv LD_LIBRARY_PATH      "${VERDI_HOME}/share/PLI/VCS/LINUX64"

#-----------------------------------------------------------------------------
# 打印已加载的工具路径
#-----------------------------------------------------------------------------
foreach t ( dve fm icc2 lc mw pt rtl_arch sg starrc dc tmx vcs verdi)
    echo "Found $t at `which $t` "
end

~/xilinx.cshrc

#!csh
# Xilinx EDA Tool Settings

#-----------------------------------------------------------------------------
# Directory Settings
#-----------------------------------------------------------------------------
setenv XILINX_TOOLS_HOME    "${HOME}/EDA/Xilinx"

#-----------------------------------------------------------------------------
# License
#-----------------------------------------------------------------------------
setenv XILINX_LICENSE_FILE  "${HOME}/.Xilinx/xilinx_ise_vivado.lic"

#-----------------------------------------------------------------------------
# Tool Sources
#-----------------------------------------------------------------------------
source ${XILINX_TOOLS_HOME}/2025.1/PDM/.settings64-Power_Design_Manager__PDM_.csh
source ${XILINX_TOOLS_HOME}/2025.1/Vitis/.settings64-Vitis_Embedded_Development.csh
source ${XILINX_TOOLS_HOME}/2025.1/Vivado/.settings64-Vivado.csh
source ${XILINX_TOOLS_HOME}/2025.1/Model_Composer/.settings64-Model_Composer.csh
source ${XILINX_TOOLS_HOME}/DocNav/.settings64-DocNav.csh
source ${XILINX_TOOLS_HOME}/2025.1/Vitis/.settings64-Vitis_for_HLS.csh

#-----------------------------------------------------------------------------
# 打印已加载的工具路径
#-----------------------------------------------------------------------------
foreach t (vivado vitis pdm model_composer docnav vitis_for_hls)
    echo "Found $t at `which $t` "
end

五、开发环境搭建

5.1 安装 Git

$ sudo yum install git

5.2 配置 Python3

Rocky Linux 8.10 自带 Python3,可以通过 alternatives 命令管理多个版本:

# 查看当前 Python 版本
$ python -V
Python 3.6.8

# 切换 Python 版本(选择你需要的版本编号)
$ sudo alternatives --config python3
共有 3 个提供"python3"的程序。

  选项    命令
-----------------------------------------------
*  1           /usr/bin/python3.6
   2           /usr/bin/python3.11
 + 3           /usr/bin/python3.12

按 Enter 保留当前选项[+],或者键入选项编号: 3

$ python -V
Python 3.12.11

安装 pip

$ python -m ensurepip

安装常用 Python 库

# pyverilog:用 Python 分析 Verilog 代码的利器
$ python -m pip install pyverilog

总结

至此,我们完成了以下工作:

  1. VMware 虚拟机创建 — 合理配置了处理器虚拟化、内存、磁盘和显示参数
  2. Rocky Linux 8.10 系统安装 — 包括 GUI 桌面、网络、用户等基础配置
  3. 系统初始化 — 换源、防火墙、Shell 环境变量的完整配置
  4. 开发工具链 — Git、Python3 等基础开发环境

下一篇将介绍 EDA 工具的安装与 License 制作,包括 Synopsys、Cadence 和 Xilinx 全家桶的安装流程。

目录

Comments (0)

No comments yet. Be the first!