大型工程软件如 OrCAD PADs, 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 2884F 2781DB8 "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 的名称以及端口