questasim2024.1 wsl2 ubuntu22.04 安装

之前一直在 wsl2 上用 vcs 进行开发,但是最近想看一下覆盖率,发现破解有些问题,看不了😅。而且 vcs 老给我报错说系统不兼容,让我很是恼火。开源的 verilator 的验证逻辑又和传统的工具有一些区别,不能完全替代,就想着使用 questasim 来代替vcs。

参考资料

  1. 2024的版本资源(本人安装的是 2024.1)
    1. 分享linux版本QuestaSim_2024.2 - EDA资源使用讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - Powered by Discuz!
    2. 分享linux版的questasim-2024.1安装包,附件链接期限永久 - EDA资源使用讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - Powered by Discuz!
  2. Crack 来源 安装Mentor QuestaSim 2021 Linux 在ubuntu 20 LTS - EDA资源使用讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - Powered by Discuz!
  3. 其他的参考
    1. 2024版本的questasim的crack问题 - EDA资源使用讨论 - EETOP 创芯网论坛 (原名:电子顶级开发网) - Powered by Discuz!
    2. linux matlab r2025a以及questasim 2024.1资源以及安装 - Heyeger - 博客园

破解过程

  • 找到 Questasim 安装目录下的 linux_x86_64/salt_mgls_asynch 文件。
  • salt_mgls_asynch 单独移到一个文件夹内(为了安全可以新建一个)
  • 将 pubkey_verify 工具也移动到该文件夹内,对该文件执行 patch 操作,命令为 pubkey_verify -y <文件名>
  • 操作成功后,将修改过的文件复制回原目录,覆盖原始文件。

[!NOTE] 注意
仅仅只要改动一个文件,和 2021 不一样。不要所有的文件都变动!本人卡在了这里好久

添加路径

# 在~/.bashrc添加以下内容;
export PATH="/path/to/questasim/linux_x86_64":$PATH
export SALT_LICENSE_SERVER="/path/to/license.dat"   # 许可证计划放置的位置

生成许可证时

  • 生成脚本使用python2操作,先要下载一下 Python 2,命令为 sudo apt install python2 。Ubuntu 22.04 暂时还有 python 2 的库,如果是更新版本已经移除了。需要重新编译,可以见附录。

  • 这里需要注意,虚拟机的hostid与真实的MAC地址区别;QuestaSim实际使用的是MAC地址格式的hostid,而不是 hostid 命令显示的值。可以使用 questasim 自带的工具查看一下地址。

lmhostid # 这是questasim自带的命令,需要设置好linux之后才可以使用


# 下面为输出例子,可能有多个,questasim说选择其中一个即可,具体我没有试,一次就成功了
lmhostid - Copyright (c) 1989-2019 Flexera. All Rights Reserved.
The FlexNet host ID of this machine is ""0012f2121212 0050565a6a9c""
Only use ONE from the list of hostids.

也可以使用 ifconfig 获取 hostid,具体方法网上有,不再过多说明。

  • 将许可证移动至对应位置。

附录

Python 2 编译安装过程

# 安装依赖
sudo apt update
sudo apt install -y build-essential zlib1g-dev libncurses5-dev \
    libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev \
    wget curl libbz2-dev libsqlite3-dev tk-dev libc6-dev

# 检查现有 Python 3
python3 --version  # 应显示 3.11.x 或 3.12.x
which python3      # 应显示 /usr/bin/python3


cd ~   # 找一个文件夹,放一下下载的库,不影响后续
sudo wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz
sudo tar xzf Python-2.7.18.tgz
cd Python-2.7.18

# 安装到 /usr/local(与系统 /usr/bin 隔离)
sudo CFLAGS="-std=c11" ./configure \
    --prefix=/usr/local \
    --enable-optimizations \
    --with-ensurepip=no  # 稍后手动安装 pip,避免冲突

sudo make -j$(nproc)
sudo make altinstall  # 生成 python2.7,不创建 python 链接

# 添加 python2 命令,也可以不添加,直接使用python2.7,这里为了和python3对应链接了一下
sudo ln -sf /usr/local/bin/python2.7 /usr/local/bin/python2

# 检查版本隔离
python2 --version   # Python 2.7.18
python3 --version   # Python 3.11.x(系统版本)

# 检查路径隔离
which python2  # /usr/local/bin/python2
which python3  # /usr/bin/python3

路径配置好后无法使用 lmhostid 报错为 command not found: lmutil

# 我这里经过检查是因为缺少解释器,补上就好
      [Requesting program interpreter: /lib64/ld-lsb-x86-64.so.3]
      
# 链接到现有的,先查看一下
ls -l /lib64/ld-lsb-x86-64.so.3
ls -l /lib64/ld-linux-x86-64.so.2

# 链接
sudo mkdir -p /lib64
sudo ln -s /lib64/ld-linux-x86-64.so.2 /lib64/ld-lsb-x86-64.so.3

# 验证
ls -l /lib64/ld-lsb-x86-64.so.3
posted @ 2026-04-03 11:44  飞絮匆匆  阅读(40)  评论(0)    收藏  举报