4. License配置与管理:License文件类型说明、环境变量设置方法、License服务器配置、License验证与故障排查
说到License,我估计不少刚入行的朋友都在这上面栽过跟头。其实说白了,License就是一把钥匙——没有它,Diamond软件连启动都别想。我自己刚用Diamond那会儿,就因为License配置不对,折腾了整整一个下午。嗯,今天咱们就把这块彻底讲清楚。
4.1 License文件类型说明
Lattice Diamond的License主要有两种形式,我分别说一下:
- 节点锁定License(Node-Locked):绑定到一台电脑的MAC地址或硬盘序列号。适合个人使用,一台机器一个License。
- 浮动License(Floating License):安装在服务器上,局域网内的多台客户端可以共享使用。适合团队协作,我之前的项目组就是用这种方式。
文件后缀通常是.lic或.dat。你拿到License文件后,别急着双击——先拿记事本打开看看。里面会有一段类似这样的内容:
SERVER your_server_name 001122334455 27000
DAEMON lmgrd
FEATURE diamond_lic lmgrd 2024.12 31-dec-2024 5 \
VENDOR_STRING=... HOSTID=ANY
注意看HOSTID字段。如果是节点锁定,这里会写你的MAC地址;如果是浮动License,一般是ANY。我在项目中遇到过有人拿浮动License当节点锁定的用,结果怎么都激活不了——其实就是没搞懂这个区别。
4.2 环境变量设置方法
环境变量是Diamond找到License的“导航仪”。设置不对,软件就报错。我个人习惯用两种方式:
方式一:设置LM_LICENSE_FILE变量
这是最通用的方法。在系统环境变量里新建一个:
- 变量名:
LM_LICENSE_FILE - 变量值:License文件的完整路径,比如
C:\Lattice\license.dat
方式二:设置LICENSE_FILE变量
有些老版本Diamond认这个变量。我建议两个都设上,反正不冲突:
- 变量名:
LICENSE_FILE - 变量值:同上
设置完记得重启电脑,或者至少重启一下命令行窗口。我曾经犯过一个低级错误——设完变量没重启,直接打开Diamond,结果报错“找不到License”。嗯,这种坑踩过一次就记住了。
LM_LICENSE_FILE变量。这时候变量值里要用分号隔开多个路径,例如:C:\Lattice\license.dat;D:\Intel\license.dat
4.3 License服务器配置
浮动License需要配置服务器端和客户端。我简单说一下流程:
服务器端配置
- 把License文件放到服务器的一个固定目录,比如
C:\Lattice\License\ - 安装Lattice自带的License管理工具
lmgrd.exe(一般在Diamond安装目录下) - 启动服务:
lmgrd -c license.dat -l logfile.log - 检查服务是否启动:
lmstat -a
你想想看,服务器端其实就这几步。但要注意防火墙——端口27000默认用于License通信,如果被防火墙挡住了,客户端连不上。我遇到过一回,排查了半天才发现是防火墙的问题。
客户端配置
客户端不需要安装License文件,只需要设置环境变量指向服务器:
LM_LICENSE_FILE=27000@server_ip_address
比如服务器IP是192.168.1.100,就写成27000@192.168.1.100。
lmgrd管理License,客户端用环境变量指向服务器。说白了就是“服务器管钥匙,客户端来借用”。
4.4 License验证与故障排查
配置完了怎么知道好不好使?我一般用这几个方法验证:
验证方法
- 打开Diamond:如果能正常进入主界面,不弹License错误,基本就OK了。
- 运行lmstat命令:在命令行输入
lmstat -a,能看到License的详细信息,包括过期时间、已用数量等。 - 查看Diamond的About页面:Help → About → License Information,这里会显示当前激活的License类型。
常见故障排查
我整理了几个高频问题,你遇到了可以直接对照:
| 错误现象 | 可能原因 | 解决办法 |
|---|---|---|
| “Cannot find license file” | 环境变量没设对,或路径写错了 | 检查LM_LICENSE_FILE变量值,确认路径存在 |
| “License server does not support this feature” | License文件不包含Diamond的feature | 联系Lattice重新申请正确的License |
| “Unable to checkout license” | 浮动License数量用完了 | 等别人释放License,或增加License数量 |
| “Invalid host” | 节点锁定License的MAC地址不匹配 | 检查本机MAC地址,重新申请License |
我曾经遇到一个特别诡异的问题——Diamond能打开,但综合时报错“License check failed”。后来发现是License文件里少了一个diamond_syn的feature。说白了,License也分模块,不是所有功能都包含在一个文件里。所以申请License时,一定要说清楚你需要哪些功能。
知识体系总览
下面这张图把License配置与管理的核心逻辑串起来了,你可以对照着看:
这张图把License配置的四个环节串起来了。你从文件类型入手,然后设置环境变量,再配置服务器(如果是浮动License),最后验证。每一步都走通了,Diamond就能正常工作了。
好了,License这块就讲这么多。配置这东西,说白了就是细心——路径别写错,变量名别拼错,防火墙别挡住。你按上面的步骤走一遍,基本不会出问题。如果真遇到报错,也别慌,对照表格排查,八成能解决。