大型工程软件如
Ansys
、
Fluent
、
Unigraph
、
ProE
等安装需要经过注册程序
Flexlm
才可以使用,而
Flexlm
中涉及到很多知识、技巧,也存在许多问题。本篇文章就是针对上述软件安装中的常见问题作一些探讨与解决。
Flexlm 介绍 — 常见 EDA 软件的 license 管理
一、什么是 Flexlm?
Flexlm 是由 Globetrotter 公司发明的软件加密方法 Flexible License Manager 。 Globetrotter 公司向软件厂商出售相关开发软件,软件厂商把此加密程序集成到自己的软件中。可以锁定机器的硬盘号,网卡号,使用日期,支持加密狗,以保护软件的知识产权。被 80% 以上的 EDA 软件公司所采用,是目前最流行的 EDA 软件加密方法,保护着世界上价值几百亿美元的 EDA 软件。了解 Flexlm 可以使我们正确的安装,管理和使用多个 EDA 软件。
Flexlm 所管理的是 License 文件,所以我们首先要了解 License 文件的结构,以便于运行 Flexlm 管理 License 文件。
二、 License 文件的结构
License 文件由注释行 ,Server 行 ,Demon 行 , 以及 Feature 行构成。
注释行: 当一行的开始是 "#" 符号时 , 该行被 License Manager(lmgr32xx) 认为是注释行 , 有时候 "|" 也可以作为注释行的开始。
Server 行 : Server 行用来标识一台特定的主机 , 其格式是 : :
SERVER nodename id port-number
TCP 端口号 , 如 1700
主机的 ID 号 ,Win95/98/NT 平台下通常是网卡物理地址
主机的名称 ,win95/98/NT 下可以用 ipconfig 命令看到
Server 行开头的关键字 , 标识该行为 Server 行 , 不能更改 .
例如: SERVER hostname 000012345678 TCP:1700
Daemon( 或 Vendor) 行: Deamon 行是用来标识不同的卖主, 或者说是用来标识不同的软件商吧。其常见格式是:
DAEMON daemon_name daemon_path
daemon 的路径
daemon 的名字
Deamon 行的关键字 ,FLEXlm6.0 以后的版本也支持用 VENDOR
例如 :
DAEMON cdslmd c:/cdslic/bin/cdslmd.exe
Cadence License Daemon 的路径
Daemon 的名字为 cdslmd (Cadence License Manager Daemon 的简称 )
Feature 行: Feature 行是用来对软件特定的功能进行限制的 , 其常见的格式为:
FEATURE name vendor version expiration_date n Key "Vendor_String" hostID
版本号 过期时间 主机 ID ,可省略
厂商标识 厂商定义的字符串
Feature 名称 20 个字节的密码
Feature 行的关键字 许可的终端用户个数
例如 FEATURE CADV_256SUPUC_ALL cdslmd 8.000 1-jan-0 9 2884F2781DB8 "J"
Vendor string
密码
允许 9 个终端用户
0 年 1 月 1 日过期 ,0 年表示永久有效
版本 8.0 ,可以是时间,也可以是版本号 .
厂商标识
Feature 名称 ,即允许开通的功能
详细的 FLEXlm 文件格式可以参考 FLEXlm 的 End-User-Manual.
又如:
FEATURE maxplus2 alterad 2001.12 25-sep-2002 uncounted E71125CEA376 /HOSTID=GUARD_ID=T000072362
? FEATURE :关键字
? maxplus2 : FEATURE 名
? alterad :厂商标识
? 2001.12 :版本标记
? 25-sep-2002 : 2002 年 9 月 25 日超期,如:是 permanent 或 0 ,表示永不过期
? uncounted :使用人数限制
? E71125CEA376 :密码
? HOSTID=GUARD_ID=T000072362 :运行机器的特征, 只有检测到存在 T000072362 的加密狗时,软件才可以使用。这里也可以指定硬盘号,网卡号等等
三、 Flexlm License manger 工具的安装
一些软件并不需要安装专门工具来管理 license, 如: MaxplusII 等。但更多 EDA 软件需要专门工具进行管理。安装很多 EDA 软件的时候 , 会有一个安装 License Server 的选项 , 安装完成后会在控制面板中发现一个 FLEXlm License Manager 的工具 .
四、 Flexlm License manger 工具的使用
点击 Flexlm License manger ,出现如下窗口中,找到相应 lmgrd.exe ,并指定 license. 如果有多个 License 文件 , 要用分号隔开。有的 EDA 软件没有 License Server 安装选项 . 但软件本身就自带 FLEXlm License Manager, 如 Leonado Spectrum 程序组下可以找到 FLEXlm Manager 这个程序,用鼠标点击运行就会出现上面提到的那个管理窗口。 Win95/98 下还需要在 autoexec.bat 中加入如下一行 :
- SET LM_LICENSE_FILE=c:/flexlm/license.dat
如果有多个 License 文件 , 可以用分号隔开 , 如 :
- SET LM_LICENSE_FILE=c:/flexlm/license1.dat ; d:/altera/license2.dat
Win2000 和 NT, 则需要在系统环境变量中设定这些参数。设置完以后需要重新启动计算机
注意事项
? 不要随意更改系统时间!
- Flexlm 加密系统会监测系统文件的时间
? 更改系统时间导致的常见错误信息:
- Flexlm error, system clock has been set back
? 解决方法
- 查找 C:/windows/ 下所有时间不正确的系统文件文件,在正常的系统时间下将其修改保存
- 应用专用文件时间管理软件修改文件时间,我们可以在互联网上下载这类软件,我已经下载了一个这样的软件
- 重装系统
如需了解关于 FLEXLM 更详细的资料请参考 FLEXlm 的 End-User-Manual 或浏览 :
[url]http://www.globetrotter.com[/url]
Flexlm 介绍 — 常见 EDA 软件的 license 管理
一、什么是 Flexlm?
Flexlm 是由 Globetrotter 公司发明的软件加密方法 Flexible License Manager 。 Globetrotter 公司向软件厂商出售相关开发软件,软件厂商把此加密程序集成到自己的软件中。可以锁定机器的硬盘号,网卡号,使用日期,支持加密狗,以保护软件的知识产权。被 80% 以上的 EDA 软件公司所采用,是目前最流行的 EDA 软件加密方法,保护着世界上价值几百亿美元的 EDA 软件。了解 Flexlm 可以使我们正确的安装,管理和使用多个 EDA 软件。
Flexlm 所管理的是 License 文件,所以我们首先要了解 License 文件的结构,以便于运行 Flexlm 管理 License 文件。
二、 License 文件的结构
License 文件由注释行 ,Server 行 ,Demon 行 , 以及 Feature 行构成。
注释行: 当一行的开始是 "#" 符号时 , 该行被 License Manager(lmgr32xx) 认为是注释行 , 有时候 "|" 也可以作为注释行的开始。
Server 行 : Server 行用来标识一台特定的主机 , 其格式是 : :
SERVER nodename id port-number
TCP 端口号 , 如 1700
主机的 ID 号 ,Win95/98/NT 平台下通常是网卡物理地址
主机的名称 ,win95/98/NT 下可以用 ipconfig 命令看到
Server 行开头的关键字 , 标识该行为 Server 行 , 不能更改 .
例如: SERVER hostname 000012345678 TCP:1700
Daemon( 或 Vendor) 行: Deamon 行是用来标识不同的卖主, 或者说是用来标识不同的软件商吧。其常见格式是:
DAEMON daemon_name daemon_path
daemon 的路径
daemon 的名字
Deamon 行的关键字 ,FLEXlm6.0 以后的版本也支持用 VENDOR
例如 :
DAEMON cdslmd c:/cdslic/bin/cdslmd.exe
Cadence License Daemon 的路径
Daemon 的名字为 cdslmd (Cadence License Manager Daemon 的简称 )
Feature 行: Feature 行是用来对软件特定的功能进行限制的 , 其常见的格式为:
FEATURE name vendor version expiration_date n Key "Vendor_String" hostID
版本号 过期时间 主机 ID ,可省略
厂商标识 厂商定义的字符串
Feature 名称 20 个字节的密码
Feature 行的关键字 许可的终端用户个数
例如 FEATURE CADV_256SUPUC_ALL cdslmd 8.000 1-jan-0 9 2884F2781DB8 "J"
Vendor string
密码
允许 9 个终端用户
0 年 1 月 1 日过期 ,0 年表示永久有效
版本 8.0 ,可以是时间,也可以是版本号 .
厂商标识
Feature 名称 ,即允许开通的功能
详细的 FLEXlm 文件格式可以参考 FLEXlm 的 End-User-Manual.
又如:
FEATURE maxplus2 alterad 2001.12 25-sep-2002 uncounted E71125CEA376 /HOSTID=GUARD_ID=T000072362
? FEATURE :关键字
? maxplus2 : FEATURE 名
? alterad :厂商标识
? 2001.12 :版本标记
? 25-sep-2002 : 2002 年 9 月 25 日超期,如:是 permanent 或 0 ,表示永不过期
? uncounted :使用人数限制
? E71125CEA376 :密码
? HOSTID=GUARD_ID=T000072362 :运行机器的特征, 只有检测到存在 T000072362 的加密狗时,软件才可以使用。这里也可以指定硬盘号,网卡号等等
三、 Flexlm License manger 工具的安装
一些软件并不需要安装专门工具来管理 license, 如: MaxplusII 等。但更多 EDA 软件需要专门工具进行管理。安装很多 EDA 软件的时候 , 会有一个安装 License Server 的选项 , 安装完成后会在控制面板中发现一个 FLEXlm License Manager 的工具 .
四、 Flexlm License manger 工具的使用
点击 Flexlm License manger ,出现如下窗口中,找到相应 lmgrd.exe ,并指定 license. 如果有多个 License 文件 , 要用分号隔开。有的 EDA 软件没有 License Server 安装选项 . 但软件本身就自带 FLEXlm License Manager, 如 Leonado Spectrum 程序组下可以找到 FLEXlm Manager 这个程序,用鼠标点击运行就会出现上面提到的那个管理窗口。 Win95/98 下还需要在 autoexec.bat 中加入如下一行 :
- SET LM_LICENSE_FILE=c:/flexlm/license.dat
如果有多个 License 文件 , 可以用分号隔开 , 如 :
- SET LM_LICENSE_FILE=c:/flexlm/license1.dat ; d:/altera/license2.dat
Win2000 和 NT, 则需要在系统环境变量中设定这些参数。设置完以后需要重新启动计算机
注意事项
? 不要随意更改系统时间!
- Flexlm 加密系统会监测系统文件的时间
? 更改系统时间导致的常见错误信息:
- Flexlm error, system clock has been set back
? 解决方法
- 查找 C:/windows/ 下所有时间不正确的系统文件文件,在正常的系统时间下将其修改保存
- 应用专用文件时间管理软件修改文件时间,我们可以在互联网上下载这类软件,我已经下载了一个这样的软件
- 重装系统
如需了解关于 FLEXLM 更详细的资料请参考 FLEXlm 的 End-User-Manual 或浏览 :
[url]http://www.globetrotter.com[/url]
设置环境变量
以下都是针对 Win95/98 以及 NT 来说的 .
一般说来 ,License Manager 需要在设置一个环境变量才能找到 License 文件 . ( 有的软件不需要设置环境变量 , 只需将 license 文件放置到它的某个目录下面就可以了 , 如 Active VHDL3.3, 只需将 license.dat 放在它的 dat 目录下 .)
通常环境变量名称是 LM_LICENSE_FILE, 大小写无关 ,Win95/98 下的设置方法是在 autoexec.bat 中加入一行 : ( 不包括下面那些说明 )
SET LM_LICENSE_FILE=c:/flexlm/mylicense.dat
环境变量路径 : 该例是 License 文件的名称及路径
变量名称
如果有多个 License 文件 , 可以用分号隔开 , 如 :
SET LM_LICENSE_FILE=c:/flexlm/license1.dat;d:/flexlm/license2.dat
应用软件的 License Manager 会自动遍历环境变量指定的所有 License 文件 , 查找它所需要的 Feature, 不同 License 文件路径的先后次序无关 , 只有 WorkviewOffice7.5 比较特殊 , 必须将它的环境变量放在第一个才能工作 , 否则它就不工作:
SET LM_LICENSE_FILE=c:/WVO75/license.dat;c:/flexlm/mylicense.dat
除了 LM_LICENSE_FILE 这个环境变量名称外 , 有些软件还使用自己特定的环境变量名称 . 安装软件的时候 , 安装程序会一般会自动添加这些环境变量 . 如 Specctra8.0 使用 CDS_LIC_FILE 环境变量名称 :
SET CDS_LIC_FILE=c:/cdsLic/license.dat
MentorGraphicsRenoir 以及 ModelSimEE 如果安装的时候选择 Mentor Graphics License Manager, 软件会使用 MGLS_LICENSE_FILE 环境变量 :
SET MGLS_LICENSE_FILE=c:/flexlm/license.dat
如果 License 是由 Server 提供的 , 那么环境变量的路径应该给出 Server 的名称以及端口 , 而非 License 文件的路径以及名称 , 如 :
SET LM_LICENSE_FILE=1700@[url]www.myhost.edu.cn[/url]
让 License Manager 去 [url]www.myhost.edu.cn[/url] 的 1700 端口获取 License
WinNT 下设置环境变量需要在控制面板里面添加 , 格式相同 .
License 文件使用技巧
这次想解决的问题是 -- License 文件多了怎么办 ? 不知道为什么 FLEXlm 很流行 , 机器里面装得 EDA 软件多了 , 会有若干个 License.dat. 由于环境变量只是告诉 Lmgr(license manager) 从哪儿找它所需要的 license 文件 , 所以 :
第一个解决办法是可以将 License.dat 换个名字 , 如 pwpcb.Lic, cct80.Lic 等等 , 然后用设置多个 License 文件环境变量的办法将每一个文件的路径添加到环境变量中 :
SET LM_LICENSE_FILE=c:/flexlm/pwpcb.Lic;c:/flexlm/cct80.Lic
License 文件的名称 / 后缀可以任意选取 , 只要保证变量设置正确以及 License 文件有效即可。
还可以这么做 : ---- 不推荐使用 :)
只设置一个环境变量设置 : SET LM_LICENSE_FILE=c:/flexlm/license.dat ,然后把所有的 License 文件都 copy 到 FLEXlm 目录下 , 为了便于区分 , 取比较容易记的名字,例如 PowerPCB2.1.Lic, ModelSimEE5.2e.Lic, Specctra8.0.Lic, 等等 , 需要用哪个软件的时候 , 把相应的 License 文件 copy 一份然后改名为 license.dat 即可。 Copy, Rename, Copy, Rename... 太麻烦了 :(, 于是采用第二种解决办法 -- 合并 License.( 注 : 仅用于没有 Server Line 的 License 文件 , 且软件用的环境变量名为 LM_LICENSE_FILE)
前面介绍过 License 文件的格式 , License 文件的内容不再是陌生的了 , 可以用文本编辑器打开所有的 License 文件 , 把它们的内容统统 copy&paste 到 license.dat 里面 . 然后只设置一个环境变量 : SET LM_LICENSE_FILE=c:/flexlm/license.dat
FLEXlm Server 方式的 License 应该如下设置 :
License.dat 文件放在主机中 , 主机运行 Server 提供 License 服务 , 客户端的环境变量设置为 SET LM_LICENSE_FILE=[TCP/IP 端口 ]:[ 主机名称 ], 其中端口和主机名称应该和主机的 License 文件中的 Server Line 一致 , 前面已经简单介绍过 , 这里便不再赘述。
启动 Server 的方式有两种 , 一是 Dos 命令行方式 , 二是 Windoz 的窗口方式
1. Dos 方式
在 c:/flexlm 目录下可以找到一个 Lmgrd.exe 文件 ---License Manager Daemon, 这个 Daemon 是 FLEXlm Server 。 License.dat 文件需要和 Daemon 文件放在同一个目录下 , 启动 license server ,可在 c:/flexlm 目录下执行: c:/flexlm/lmgrd -app -c ;关闭 license server ,可在 c:/flexlm 目录下执行: c:/flexlm/lmutil lmdown : lmutil.exe 是 License Manager Utility.
2. Windoz 的窗口方式
安装某些软件的时候 , 会有一个安装 License Server 的选项 , 选中它安装完成后会在控制面板中发现一个 FLEXlm License Manager 的小工具 . 在 FLEXlm License Manager Setup 的 TAB 里可以选择 Daemon, License 文件 , 以及输出的日志文件 ; Control 的 TAB 中可以启动 / 关闭 Server 以及查看 Server 状态 , 另外几个 TAB 还提供了一些其它辅助功能。
Windoz 下的这个 FLEXlm License Manager 要比命令行方式的方便一些 , 至少它可以浏览以选取 Daemon/License 文件 , 不过有时候发现控制面板里面找不到 . 事实上它是一个控制面板的扩展应用程序 , 如在 PowerPCB 目录下可以找到 FLEXlm.cpl 这个文件 , 用鼠标双击它就运行出上面提到的那个管理窗口。没有研究过解决一个主机运行多个 Server 分别对应不同的软件的问题。
1. 设定环境变量 ( 控制面板 ---> 系统 --> 环境 )LM_LICENSE_FILE, 多数软件都使用这个变量 , 这也是冲突根源。但也有一些软件用别的名称,如:
UG--------->UGII_LICENSE_FILE=27000@CAD
ESRD------->ESRD5_LICENSE_FILE=F:/ESRD/STRESSCHECK5
以下变量由软件安装时或第一次设定后自动保存在注册表里:
MASTERCAM----->MCFLEX_LICENSE_FILE=F:/MILL72/LICENSE
COSMOS 系列 ---->BRNI_LICENSE_FILE=F:/COSMOSM/LICENSE/FLEXLM/LICENSE.DAT
MSC 系列 ------->MSC_LICENSE_FILE=F:/MSC/FLEXLM/LICENSES/LICENSE.DAT
MAPLE6-------->MAPLELMG_LICENSE_FILE=F:/MAPLE 6/LICENSE/LICENSE.DAT
注意事项:
1. 没有设好会出现错误如:
I-DEAS:DETECTED LOSS OF COMMUNICATION WITH I-DEAS LICENSE DAEMON.
2. :PRO/E 好像不用设定 LM_LICENSE_FILE 安装自动设 <COMPUTER NAME>@7788;
3. LM_LICENSE_FILE 变量可设置多个路径如:
F:/FEMAP80/LICENSE.DAT;F:/MARC/security/license.dat; 中间用 ";" 格开
4. 若是 I-DEAS 和别的软件冲突可在 /IDEAS/MS7/bin/setup_varbs.cmd 中加 set LM_LICENSE_FILE=%SDRC_INSTL%/sec/license.dat
5. MASTERCAM7.2B 安装后好像应清除 LM_LICENSE_FILE 设置 , 软件第一次运行时会让你查找 LICENSE.DAT, 然后自动保存在注册表里。
6. FEMAP8.0A 的 LICENSE.DAT 应设在路径最前面 , 否则会出现以下错误 INVALID LICENSE INFO, 可能是它采用 FLEXLM7.1b 的原因 ?
7. : 若设定多个 LM_LICENSE_FILE 路径有问题 , 可先设一个调试 , 确定是否是 LM_LICENSE_FILE 的原因 ?
8. 在控制面板 -->FLEXLM LICENSE MANAGER-->SETUP 中设 SERVICE NAME, 详细可到 CAMONLINE([url]http://go.163.com/~camonline/)[/url] 查看
9. 若控制面板没有 FLEXLM LICENSE MANAGER 可从 /PTC/FLEXLM/OBJ OR/UG160/UGFLEXLM 拷贝一个 FLEXLM.CPL 到 /WINNT/SYSTEM32, 当然对 FLEXLM7.0 可直接用 LMTOOLS.EXE, 但是其 START/STOP SERVER 和查询 SERVER STATUS 不在一组内我感觉不如 6.1 方便 , 也可到控制面板 --> 服务中查询 SERVER STATUS, 更加直观
10. SERVICE NAME 有时要手工设定 , 这取决于安装时选 SERVER 或 CLIEN, 详细可看 .NFO 文件 ,SERVICE NAME 最好取与软件及版本相关如 :I-DEAS8.0, 因为软件安装时可能自动取相同的 SERVICE NAME
11. 对 PTC Pro/E 和 UG 设一个 SERVICE NAME 就可以了 , 因为其高版本 LICENSE 可用于低版本 ,PTC PRO/E2000i 的 FLEXLM6.1 不用 UNINSTALL, 可直接用于代替 PRO/E2000i2 FLEXLM7.0, 对于 UG 带 PACKAGE 的 license 得用 UG FLEXlm Licensing 选择不同 PACKAGE 好像最多只能选两个 ?
12. 对 MSC 和 COSMOS(SRAC) 系列可能要合并 LICENSE, 设一个 SERVICE NAME 并用最新的 LMGRD.EXE 及 DAEMON(MSC.EXE,SRAC.EXE), 对于 NASTRAN FOR WIN4.6 还要多设一个 FEAMAP7
13. 若是对同一软件设多个 SERVICE NAME, 会使 LMGRD.EXE 不断调用 DAMON, 系统会很慢 ,CPU 近 100%, 应 REMOVE 一个 SERVICE NAME
14. 有些软件不用设 SERVICE NAME 如 :IMAGWARE SURF,ESRD STRESSCHECK,MASTERCAM , MAPLE6 直接 COPY LICENSE.DAT 到安装目录或 C:/FEXLM, 不知道是何原因?
15. 要查看 LICENSE 是否正确可 STOP SERVER,START SERVER 再看 Debug.log 信息