201107261611
Altera 發行的 Quartus 進展很快,現在(2011.07.26)已經發行到11版了。基於經濟因素,只能用試用版,進行學術上的研究,所以使用舊一點的版本,比較能夠找到多一點的資源。賺錢之後,請記得要多多支持軟體廠商。現在就來裝 9.1 版吧。
感謝 Altera 的大方,雖然知道有人長久試用該軟體,還是能夠下載歷史版本的安裝套件,就先至官方網站下載安裝套件吧。
https://www.altera.com/download/software/quartus-ii-se/9.1
下載的速度還蠻快的,下載完就可以安裝了,安裝方式與之前的版本一樣,不多說了。
安裝好之後,上網找一下破解檔,裡面會有 license.dat 的。在實際安裝之後, 發現之前 7.2 版的license.dat 會自動抓進來, 在裝之前, 我還花了很多時間找 9.1 的 license 檔呢!
更改網卡的 MAC 可以這樣做
sed -i 's/c86000709ffb/000c29878d03/g' license
裝好之後, 要對其中一個檔加工一下, 才能正常編譯。
要修改的檔案是 libsys_cpt.so文件,在linux的目錄下。具體的作法,是先用 shell 的 GNU 除錯程式 (gdb) 找出 l_pubkey_verify 函数的位置,記錄下來,例如其位置為 0x000a61af。然後使用十六進制的编輯器,例如 GHex 或 UltraEdit,將 l_pubkey_verify (0x000A61AF) 的位置起始的 3 個byte,原為 "55 89 E5",改成 "31 C0 C3"。
輸入下列指令進入gdb
$ gdb libsys_cpt.so
然後在 gdb 輸入下列指令找出 l_pubkey_verify 函数的位置
(gdb) info function l_pubkey_verify
Non-debugging symbols:
0x000a61df l_pubkey_verify
嗯,裝了 sp1 和 sp2 後,位址變了,小心點。
或者,也可以用 nm 指令找出 l_pubkey_verify 函数的位置
$ nm libsys_cpt_org.so | grep l_pubkey_verify
另外,有好奇寶寶問 31 C0 C3 是什麼,翻成 assembly code 是
(gdb) disassemble l_pubkey_verify
Dump of assembler code for function l_pubkey_verify:
0x000a61df <+0>: xor %eax,%eax
0x000a61e1 <+2>: ret
不曉得懂它在做什麼嗎? 總之再高竿的保護,被猜穿之後,只要幾個 byte 就破解了。不過私下可以破解來試用,正式的公司就不能冒這險,還是得買正版的。
更進一步,Quartus II 在 8.1 版之後,即已支援 64 bit,若出現下列的錯誤時,可以考慮使用 64 位元的模式
Out of memory in module quartus_map(2127 megabytes used).
要使用 64位元時,需要在命令列加上 --64bit 的選項。或者,從其 bin/quartus 追蹤到的,可以設定環境變數。
setenv QUARTUS_64BIT 1
或是以單獨一行指令來執行
QUARTUS_64BIT=1 /opt/altera9.1/quartus/bin/quartus
在使用64位元的模式之前,還是得先對 linux64 目錄下的 libsys_cpt.so 文件開一下刀,步驟如前,machine code 也是一樣。
不過,我加上此選項後,就開不了GUI 的環境了,只能用命令列的指令了。但有時候又要如此才進得了GUI,只能看運氣了。
For example, to create a new project named filtref that targets the Stratix device family and optimize Analysis & Synthesis of that project for speed, you can type the following:
quartus_map --64bit --family=stratix --optimize=speed
或者不加參數,直接執行 /opt/altera9.1/quartus/bin/quartus_map --64bit proj.qpf
要 direct the Fitter to place and route a design for a specific device, 可用下列的指令
quartus_fit --64bit --part=EP1S10F780C5
命令列下可用的指令有 quartus_map, quartus_fit, quartus_sta, quartus_tan, and/or quartus_cdb。
要使用 Tcl 指令可以用 quartus_sh --64bit -s
Simulation 的軟體,舊的元件可以直接使用 Quartus 內附的 simulator,新的元件則改用 ModelSim,可以安裝 ModelSim-Altera Starter Edition v6.5b,這是對應 Quartus 9.1 的免費版本,限制是 1萬行的程式碼,這真正的意思,我沒搞懂,但我的測試可以在上面跑就是了。
===============
之前的筆記
===============
# gdb
(gdb) file libsys_cpt.so
Reading symbols from /opt/altera7.2/quartus7.2/linux/libsys_cpt.so...(no debugging symbols found)...done.
Using host libthread_db library "/lib/libthread_db.so.1".
(gdb) info function l_pubkey_verify
All functions matching regular expression "l_pubkey_verify":
Non-debugging symbols:
0x000c617b l_pubkey_verify
(gdb) x/b 0x000c617b
0xc617b : 0x55
0xc617c : 0x89
0xc617d : 0xe5
so find the "55 89 E5" at 0xc617b in file libsys_cpt.so, change the content to "31 C0 C3"
Also that russian post: http://www.telesys.ru/wwwboards/fpga/247/messages/13858.shtml
1) run gdb
gdb> file quartus
gdb> info function checkout
.... adresok record l_checkout
gdb> file quartus_sh
... adresok write this fax-tions in quartus_sh
... ............................... libsys_cpt.so
After the first three bytes of harvested addresses to replace the 33 CO C3. All.
最後這一段是透過 Google 翻譯的俄國網頁,神奇吧!
2012/11/05
在64位元的linux下重裝後,執行/opt/altera9.1/quartus/bin/quartus,會出現下面的錯誤訊息:
rpm: Command not found.
quartus: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory
可以改成 QUARTUS_64BIT=1 /opt/altera9.1/quartus/bin/quartus,就OK了。那行 rpm: Command not found. 就別理它了。
不過,只要加裝 emul-linux-x86-xlibs,就可以究竟的解決了。不然在跑 modelsim 時也會碰到此問題。
(2012/11/28) 系統升級後,總會帶來一些新的問題。這次是 xorg-server 升級至 1.13.0 之後,出現下面的錯誤訊息。
quartus: symbol lookup error: /usr/lib32/libXext.so.6: undefined symbol: _XGetRequest
在網路上,用盡各種不同的觀點來搜尋,不經意的看到 Altera 內附的 libX11.so.6 會和系統衝突,把它刪掉就可以了,檔案為 /opt/altera9.1/quartus/linux/libX11.so.6。
這樣又可以安心的用好一陣子了。
2013-06-14 的錯誤訊息。
Internal Error: Sub-system: ATCL, File: /quartus/ccl/atcl/atcl_root.cpp, Line: 497
Unable to load Tk library
2014-01-27 網卡設定息。
必須取消 Predictable Network Interface Names 的功能,不然會抓不到網卡,也就無法使 License 生效。
2014-04-18 測試 Quartus 10.1,步驟同上,OK 可用。
下載網址 https://www.altera.com/download/software/quartus-ii-se/10.1
必須安裝 10.1sp1,不然在 build 時,系統和畫面會 hang 住。
沒有留言:
張貼留言