天天看點

Flexlm介紹—常見EDA軟體的license管理

大型工程軟體如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或浏覽:

<a href="http://www.globetrotter.com/">[url]http://www.globetrotter.com[/url]</a>

設定環境變量

以下都是針對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檔案的路徑以及名稱, 如: 

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&amp;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.設定環境變量(控制台---&gt;系統--&gt;環境)LM_LICENSE_FILE,多數軟體都使用這個變量,這也是沖突根源。但也有一些軟體用别的名稱,如:

UG---------&gt;UGII_LICENSE_FILE=27000@CAD

ESRD-------&gt;ESRD5_LICENSE_FILE=F:\ESRD\STRESSCHECK5

以下變量由軟體安裝時或第一次設定後自動儲存在系統資料庫裡:

MASTERCAM-----&gt;MCFLEX_LICENSE_FILE=F:\MILL72\LICENSE

COSMOS系列----&gt;BRNI_LICENSE_FILE=F:\COSMOSM\LICENSE\FLEXLM\LICENSE.DAT

MSC系列-------&gt;MSC_LICENSE_FILE=F:\MSC\FLEXLM\LICENSES\LICENSE.DAT

MAPLE6--------&gt;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安裝自動設&lt;COMPUTER NAME&gt;@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的原因?

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友善,也可到控制台--&gt;服務中查詢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資訊

本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/83148,如需轉載請自行聯系原作者

上一篇: Django安裝

繼續閱讀