Quartus license 取不出来怎么办:Can not check out a license 报错速查
更新时间:2026-10-23。FAQ 速查页,属于 FPGA 入门 阶段最常见的一类拦路问题:Quartus Prime 启动、编译到 Analysis & Synthesis 或 Fitter 阶段时突然弹窗或日志红掉,提示 license 签不出来。本篇以 Quartus 日志里的真实风格 FlexNet 报错为锚,先教你分清 Lite 免费版到底要不要 license,再按环境变量、HOSTID、license 服务器、版本年份四条线逐条收敛。同目录 Quartus 上手流程见 Quartus 快速上手,同类 Xilinx 侧排错见 Vivado license 取不出来怎么办,EDA 排错总入口见 开源 EDA 报错排错中心。
本文要回答的问题
- 报错里的
Feature: quartus和Can't check out a license到底在说什么,先看哪几个词? - Quartus Prime Lite 免费版到底要不要 license?为什么有人装 Lite 也报签出失败?
LM_LICENSE_FILE该怎么写,node-locked 和 floating 写法差在哪?- 换了网卡、开了 VPN、Linux 下网卡叫 enp3s0 不叫 eth0,为什么 license 就失效了?
lmutil lmstat能查到什么,哪些事必须找 license 管理员?
一、报错原文与一句话根因
Quartus 的 license 报错出现在 Messages 窗口、编译报告或命令行输出里,常见形态如下(服务器地址与 hostid 一律占位):
Error: Current license file does not support the <device-family> device
Error: Can't check out a license.
Feature: quartus
License path: <port>@<server>;<path-to>/license.dat
FLEXnet Licensing error:-9,57Warning (292000): FLEXlm software error: Invalid host.
The hostid of this system does not match the hostid
specified in the license file. Feature: quartus Pro Edition三个词决定排查方向:Feature 名(quartus 是 Standard 版编译 feature;Pro 版、Questa 仿真、付费 IP 各有独立 feature)、License path(Quartus 实际去找 license 的位置,第一个找错就全盘皆错)、FlexNet 错误码(-9 是 hostid 不匹配,-15 是连不上服务器,-10 是 feature 过期或版本不符)。
一句话根因:Quartus 没坏,是「编译这个动作要签的 feature」与「当前能找到的 license」对不上。 对不上分两条主线:一是版本线——你以为装了 Lite 免费版不用 license,实际装的是 Standard/Pro 或开了 Lite 不支持的器件;二是链路线——环境变量指错、license.dat 里 HOSTID 与本机网卡对不上、服务器端 lmgrd/alterad 没起、maintenance 过期不支持当前 Quartus 版本。
二、先分清:Lite 免费版与付费版
Quartus Prime Lite Edition 面向主流 Cyclone 系列等器件完全免费、不需要任何 license 文件,装好即用;Standard 和 Pro Edition 必须签 license,Pro 版对 Stratix 10、Agilex 等新器件是唯一选择。新手最常见的乌龙是:在官网下载页拿错安装包,装了 Standard 版,一编译就报 Feature: quartus 签不出来——这不是 license 链路故障,是你根本没买这个版本。
先确认两件事:Help → About Quartus Prime 看版本是 Lite 还是 Standard/Pro;工程的器件型号在不在 Lite 支持清单里(Lite 只覆盖 Cyclone IV/V/10 LP、MAX II/V/10、部分 Arria II 等,清单以当版官方文档为准)。器件超出 Lite 范围又没有付费授权,正解是换回 Lite 支持的器件重开工程,调环境变量救不回来。
三、报错 → 原因 → 处置速查表
| 报错现象 | 最可能原因 | 快速确认 | 处置 |
|---|---|---|---|
| 任何编译都报 Feature: quartus 签不出 | 装了 Standard/Pro 却当 Lite 用 | About 窗口看 Edition | 改装 Lite,或装入付费 license |
Invalid host,hostid does not match | license.dat 的 HOSTID 与当前网卡 MAC 不符(换网卡/换主板/VPN 虚拟网卡冒头) | 对比 license.dat 里 HOSTID 与本机 MAC | 用绑定的网卡,或重签 license |
| 连不上服务器,FLEXlm error -15 | LM_LICENSE_FILE 主机/端口写错,或防火墙拦了 lmgrd 端口 | printenv LM_LICENSE_FILE;nc -vz <server> <port> | 改对指向;放行端口、连单位网络 |
| 端口通但 lmstat 查不到 alterad | lmgrd 起了、vendor daemon alterad 崩了或没读 license | 服务器上 lmutil lmstat -a -c <port>@<server> | 管理员重启 lmgrd 并重读 license.dat |
| 老 Quartus 能用、升级后签不出 | license 的 maintenance 到期日早于新 Quartus 发布日期 | license.dat 里 feature 行的日期字段 | 回退 Quartus 版本,或续 maintenance |
| 编译到 IP 才报错,主流程正常 | 付费 IP(如部分高速接口核)feature 未授权 | 报错里的 Feature 名是 IP 名而非 quartus | 申请对应 IP 授权,或换免费 IP |
| Linux 下重装系统后签不出 | 网卡命名从 eth0 变成 enpXsY,hostid 识别错 | ip link 看网卡名与 MAC | 按 license 绑定的 MAC 找对应网卡,或加 udev 规则固定命名 |
| GUI 能编译、命令行批处理签不出 | 非交互 shell 没加载 LM_LICENSE_FILE | 作业脚本里 printenv 打印变量 | 变量写进工程环境脚本,作业开头显式导出 |
四、排查决策图
按「先分 Lite 与付费,付费走变量 → HOSTID → 服务 → 年份」收敛,任何一步命中就地修复后立即复验:
读这张图抓住一个分叉:红色入口之后第一件事不是摸网卡,而是确认 Edition 与器件——Lite 覆盖范围内走绿色直通,压根没有 license 这回事;确认是付费版才进入授权链路的四环排查(变量、HOSTID、服务器、年份),其中服务器侧动作(重启 lmgrd、续期)都要管理员执行。图中红色是报错入口,蓝色是排查动作,橙色是修复,绿色是通过节点,颜色即语义。
五、逐条排查步骤
第一步:打印环境变量。 Quartus 用通用 FlexNet 变量 LM_LICENSE_FILE 找 license,值有两种形态:node-locked 本地授权写 license.dat 的绝对路径;floating 写 <port>@<server>(lmgrd 默认端口口径 27000 或管理员指定值),多个目标用分号(Windows)或冒号(Linux)分隔:
printenv LM_LICENSE_FILE
# /opt/licenses/quartus/license.dat ← node-locked 本地文件
# 27000@<server> ← floating 服务器高频事故是别的 EDA 工具(Synopsys、Mentor 系)安装时改写了 LM_LICENSE_FILE,Quartus 被带去一串无关服务器;第二个坑是 GUI 有值、命令行批处理没值——非交互 shell 不读个人 profile,把导出语句写进工程环境脚本最稳。
第二步:node-locked 核对 HOSTID。 license.dat 的 SERVER/DAEMON 行或 feature 行里绑定了 HOSTID(网卡 MAC)。报错 Invalid host(error -9)就是本机没有一个网卡的 MAC 与它匹配:换网卡、换主板、系统重装后网卡名变化都可能触发。查本机 MAC:
# Linux
ip link show | grep -A1 "state UP"
# Windows
ipconfig /all | findstr /i "physical"特别留意 VPN 客户端和虚拟机装出来的虚拟网卡:有些 FlexNet 版本枚举网卡顺序变化后,取到的「第一个 MAC」不再是当初登记的那块。处置要么插回绑定的网卡,要么向 Intel FPGA 自服务授权中心提交新 hostid 重签 license。Linux 下老 license 绑的是 eth0 时代的 MAC、新系统网卡叫 enp3s0 的场景,按 MAC 找网卡即可,名字不重要;必要时用 udev 规则把命名固定下来。
第三步:floating 查服务器。 在客户端先测端口连通(nc -vz <server> 27000),通不了找网络和防火墙;通了再查服务端状态:
lmutil lmstat -a -c 27000@<server>健康的输出里要同时看到 lmgrd is up 和 alterad: UP(alterad 是 Intel/Altera 的 vendor daemon)——常见故障是 lmgrd 活着但 alterad 崩了,或管理员更新了 license.dat 没重读(lmreread)。lmstat 还会列出每个 feature 的总席位数和当前占用,席位占满报错时从这里找是谁占着。遇到异常退出的客户端残留占用时,普通用户无法自行踢掉,把 lmstat 输出截给管理员,由管理员回收僵尸席位或重启 daemon。
插一步:确认 Quartus 实际用的 license 路径。 报错原文里的 License path: 一行就是 Quartus 这次真正去找的位置——很多人改了环境变量却忘了重开 Quartus,旧进程仍按启动时读到的值找;改完变量务必完全退出再启动。Windows 上还可以在 Tools → License Setup 对话框里直接看到当前生效的 license 路径与可用 feature 清单,这是判断「改对了没有」最快的界面,不用等一次完整编译。
第四步:核对版本年份。 license.dat 里每个 feature 行带 maintenance 到期日期,只支持该日期之前发布的 Quartus。全组人升级到新版 Quartus 后集体签不出,九成是 maintenance 没续;临时回退旧版 Quartus 编译,正式走续期流程。
六、修复后验证与防复发
修完别只看「这次没弹窗」:打开 Tools → License Setup,确认目标 feature 出现在列表且显示未过期,然后重跑完整编译——Analysis & Synthesis、Fitter、付费 IP 在不同阶段分别签出,启动能过不代表全程能过。防复发记四条:LM_LICENSE_FILE 进工程环境脚本不靠个人 profile;换硬件或重装系统前先记下 license 绑定的 MAC;Quartus 大版本升级前先确认 maintenance 覆盖;服务器侧 license.dat 更新后必须 lmreread 或重启 lmgrd。
这一篇在知识体系里的位置
本篇是 FPGA 工具排错速查簇的一员。同目录 Quartus 上手与工程流程见 Quartus 快速上手;Xilinx 侧同款 FlexNet 签到故障(错误码语义互通)见 Vivado license 取不出来怎么办;引脚分配类编译报错见 Quartus Fitter 引脚放不下怎么排查。license 是流程的前置门槛,签到过去之后的完整设计流程见 FPGA 入门目录。
一句话总结
Quartus license 取不出来,先分清 Edition——Lite 免费版对主流 Cyclone 器件根本不需要 license,报错往往是装成了 Standard/Pro 或器件超出 Lite 清单;确认是付费版再按四环排查:printenv LM_LICENSE_FILE 核对指向(本地 license.dat 路径或 <port>@<server>),报错 Invalid host 就对比 license.dat 的 HOSTID 与本机网卡 MAC(注意换网卡与 VPN 虚拟网卡),floating 用 lmutil lmstat -a 确认 lmgrd 与 alterad 都在线且席位有余,升级 Quartus 后集体失效先查 maintenance 年份;修完用完整编译流程复验,别只看启动不弹窗。