常見EDA軟體的license管理

admin @ 2014-03-26 , reply:0

大型工程軟體如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或瀏覽:
http://www.globetrotter.com

 

設置環境變數
以下都是針對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@www.myhost.edu.cn
              讓License Manager去www.myhost.edu.cn的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-DEASETECTED LOSS OF COMMUNICATION WITH I-DEAS LICENSE DAEMON.
2. RO/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(http://go.163.com/~camonline/)查看
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信息




[admin via 研發互助社區 ] 常見EDA軟體的license管理已經有3420次圍觀

http://cocdig.com/docs/show-post-43521.html