2012年11月24日 星期六

真高興,發表了第一篇 paper

 2012-11-25 14:17

真高興,有了初步的結果,第一篇 paper 被登出來了。
Chien-Chi Chen and Sheng-De Wang, "A Multi-Character Transition String Matching Architecture Based on Aho-Corasick Algorithm ", IJICIC Vol. 8, No. 12, 2012, pp. 8367-8386.

連結: http://www.ijicic.org/ijicic-11-09097.pdf
目錄: http://www.ijicic.org/vol-8(12).htm

Abstract
A hardware string matching architecture is usually used to accelerate string matching in various applications that need to lter content in high speed such as intrusion detection systems. However, the throughput of the hardware string matching architecture inspecting data character by character is limited by the achievable highest clock rate. In this paper, we present a string matching architecture based on the Aho-Corasick algorithm. The proposed architecture is able to inspect multiple characters simultaneously and the throughput of string matching can be multiplied. We rst describe an intuitive algorithm to construct a multi-character nite state machine (FSM) that accepts multiple characters per transition based on an Aho-Corasick prex tree (AC-trie). Then we propose an architecture for multi-character transition string matching consisting of multiple matching units for processing the transition rules that are generated from the derived multi-character FSM. The design of proposed architecture utilizes the properties of the failure links of an AC-trie to reduce the transition rules derived from the failure functions linked to the initial state. As a result, the state growth rate is moderate in the number of the derived multi-character transition rules as the number of the characters inspected at a time increases. The proposed architecture was implemented on an ASIC device for evaluation and the resulting throughput can achieve 4.5 Gbps for a 4-character
string matching implementation operated at 142 MHz clock.

Keywords: String matching, Finite state machine, Aho-Corasick algorithm


後記,後來這雜誌被 SCI 除名,這篇不計入畢業論文點數,但終究是我發表的第一篇英文 paper。

經典對白 -- The Score 鬼計神偷

 2012-11-25 09:44

(01:06:28 開始)
Listen, tell me something. Tell me something.
告訴我…

All the years you've been doing this...
你幹了這麼久,最大的賭注

what's the biggest gamble you ever took?

On the job. You know, biggest long shot.
或最大的風險是什麼?

I don't take long shots.
我從不冒險

I know you're careful. You know, I'm careful too.
我知道你很小心,我也是

That's not what I mean. I mean...
我是說你剛入行時

When you were starting out, when you were just getting going...

you must have taken some fliers here and there.

Done something that was a little wild. I'm just curious.
一定也冒過險,做過瘋狂的事

Never took long shots.
我沒冒過險

I'm gonna say something to you.
我奉勸你一件事

You're smart, you're talented and you know a few things...
你很聰明,也很有才華

but talent means nothing if you don't make the right choices.
但若你只會鋌而走險 有才華也沒用

There's talented people out there who never see daylight anymore.
很多高手都沒有好下場

Last thing, it takes discipline..., because this whole game is one big long shot...
你想幹這一行就要能夠自律

and if you don't have the discipline to stay away from the fliers...
如果你想一步登天或賭運氣

or from the gambles or whatever else you wanna call a stupid move...

then, my friend, I'm afraid to say, one day you will go down.
你只要走錯一步路,我告訴你

It's inevitable.
你的下場一定會很慘

You want my advice?
你要我的建議?

Make a list of everything you want now...
把你要的東西列出來

and plan on spending the next 25 years of your life getting it.
計劃如何在25年內得到它們

Slowly, piece by piece.
一點一滴地累積

I see what you're sayin'.
我瞭解你的意思

But still, I'm lookin' at you, and you got all this already...
不過我看你已經擁有這些

and you're sittin' here with me, workin' with a partner...
你卻還跟我干最後一票

in the city where you live, on a job that's gotten more complicated...
這一票比你想像的更複雜

than you thought it was gonna be.

So I know you're still takin' a shot at something.
一定有什麼值得你冒險

I gotta go.
我得走了

See ya tomorrow.
明天見

2012年3月16日 星期五

別搭「微軟」開的船

2012-03-17 11:43

 工作了這些年,不禁要提醒自己,別搭「微軟」開的船。


最近,微軟提共給 PHP 的 sqlsrv extension 被發現有 memory leak 的問題,解決之道是換新版本的 sqlsrv extensio。只是新版本的 sqlsrv extensio 需要 SQL 2012 的 Native Clent (SNAC 11),也許這不是問題,但是 SQL 2012 的 Native Clent又需要 windows 7 或 windows 2008 server。天啊,我只不過想吃碗陽春麵,卻被告知得先買材火,然後得自己蓋個廚房。

這就是「微軟」的商業之道。它會告訴你,你使用的是不再被支援的產品,別使用 unofficial 的東西,或是,假如你不這樣這樣,那樣那樣的特異功能就會沒了。我只是要吃碗陽春麵,它卻告訴我非得點牛肉麵不可,不然我就吃不到不含瘦肉精的牛肉。可是我吃素,我本來就沒想要吃牛肉啊。

另外,最近 MVC 正紅,在玩過/用過 PHP 的 MVC 之後,總會想試一下微軟的 official 的 ASP.NET MVC,也許自己不用,但總能告訴微軟的支持者,也許那是個不錯的選擇。可惜,要走的路還是一樣曲折。不像大部分的 PHP 的 MVC,只要下載,解壓縮,然後用 plain text editor 寫個 "Hello, World!",就可以看到結果。微軟之道是,要先裝個 Visual Studio 2010,嗯,那需求是至少要有 xx GB的記憶體,xx GB 的硬碟空間,xx GHz 的 x 核心的 CPU。不過忘了說,假如你不是像在大學裡,有微軟半強迫半賣的系列產品,你得想辦法得到 Visual Studio。好不容易裝好了,終於可以 create 一個網頁,然後寫個 "Hello, World!",就可以看到結果了。

嗯,還有什麼需要考慮的嗎? 因為我不打換真的使用這個癡肥的軟體,所以我會先弄個 Virtual Machine,再裝它要求的 OS,才裝測試環境。嗯,這真的不只要蓋個廚房,還得先蓋棟房子,不然廚房要設在那呢。然後呢,還有嗎? 是的,然後,我在看到 "Hello, World!" 之後,我就覺得 PHP 的 MVC 真是不錯的選擇。然後我就裝個炸藥,按個鈕,把房子給炸掉 -- 把剛裝好的 Virtual Machine 丟進 trash box! A happy journey!

2012年3月7日 星期三

該選 CodeIgniter 還是 Yii 好呢?

 2012-03-07 20:20

使用 CodeIgniter 開發了一些程式之後,仍不斷的尋找比較相關各類 framework。
其中 YII 是一個讓我心動的,在純技術面來講,YII 是佔上風。但看到學習曲線較陡,還是不太敢隨意投入。等有空再找機會試試看 YII 吧。一點意見,謹供參考。

下面是從某個網站找到的大陸網友的看法 ,第二個意見,讓我目前安分的留在CI上。

    最近要自己一個人做一個網站,於是在 CI 和 YII 中選擇。
    由於 Ci 之前看過,所以簡單的看了下號稱速度最快的 Yii 的官方文檔,也下載了一個官方例子運行。
    發現 Yii 功能挺強大的,在功能方面和我以前看過的 Python 的 django 框架很相似。
    但是 Yii 的缺點也很明顯,所以如果有在兩者之間猶豫的同學可以藉鑑一下的思路。
    第一、Yii 的 OO 很純粹
    裡面各種接口、類、繼承、擴展,顯得很龐大,所以不適合對 OO 不是太理解的同學。當然如果你想以學習 OO 為目的,可以使用 Yii;如果是實際生產,注重開發效率還是 CI 好。加之我之前一直使用的 asp.net,所以我個人對 OO 不怎麼感冒。
    第二、Yii 的功能很强大
    功能強大是好事,也是壞事。我一直認為,框架雖然幫你做了很多,但是沒有萬能的框架,框架功能越多,符合實際需求預期效果的功能相對就越少,花費時間學習的成本就越高。這一點我在 ASP.net 上是深有體會。
    總結:Yii 自我標榜 easy,其實完整的學下來並不簡單,至少他需要你掌握 OO 的知識。所以我認為,Yii 適合業務邏輯相對複雜​​的業務系統開發,比如項目管理,OA 之類的,因為很多組件已經集成,不用你自己東拼西湊再花時間去找;CI 更適合做業務邏輯相對簡單的互聯網應用,簡單高效,自己動手。
    所以最後還是決定使用 CI,一點愚見,歡迎拍磚。

下面是英文的 http://firmy007.blogspot.com/2011/06/codeigniter-versus-yii-my-thoughts.html

Codeigniter versus Yii, now this may open a real can of worms, as most comparisons do, but I have used both and have to come to the conclusion that whilst Yii is probably that slightly more polished, Codeigniter is going to be my framework of choice for next few years to come when developing websites in PHP.

Let's take a look at Codeigniter, it's easy to learn, easy to grasp and now that it has been upgraded to version PHP5 only from version 2 onwards, much more future proof. I also really like the way that you can really, really customise it to do your bidding. No need to use the command line to get it up and running and it will run with a very small footprint. You can also cache the hell the out of it at multiple levels to squeeze every little bit of performance out of it, take a look here for a detailed look at this.

Now let's look at Yii, completely object oriented and its major, major advantage - The CRUD generator. My goodness, this saves you time, lots of time. You create your database, design your schema and bang the Gii tool produces (as if by magic :)) your create, read, update and delete pages. No mucking around no writing SQL, it's all done through the (Rails inspired) Active Record Pattern - it's fair to say I fell in love with this almost straight away, I couldn't believe how easy it was to create this code. And this is what got me thinking...

I like Codeigniter for its flexibility, the way you could use both an active record pattern or traditional SQL, You could keep your database results in arrays or as standards objects, they leave it up to you. But I wanted, no, no... I needed a CRUD generator after experiencing the wonders of the Gii tool. As a freelance web developer in Lancashire (I know this sounds cheesy) time is money, so I scoured the web for one and I found a couple out there and none really lived up to my expectations, one was particularly good, but didn't really suit my needs. Like I said, I liked Codeigniter because of its flexibility, so I decided to bite the built and create my own CRUD generator for Codeigniter. Yeah, sure it was going to take a little bit of development time, but the time saved will definitely outweigh the initial outlay and it does, plus as my CRUD tool was my own, I could tweak and make changes very easily. Now, when creating large projects, creating new sections is not the chore it once was and now leaves me more time to make the other, more unique features, just right.

The main point that many people raise when they compare the two frameworks is the way that Codeigniter is not truly object oriented, whilst Yii is much more pure in its implementation. I suppose this is true, but when I create applications that are large, I need to know that I can hack away at them very easily and tune them to my specific needs and it is for this reason above all else that Codeigniter remains my PHP framework of choice.

When I first set out developing websites using PHP, I thought this was the language I would use forever when it came developing websites. I also felt like I would never, ever use a framework as how could using some else's ideas and code be of any benefit to me, when I have wrote my own application. Not only is the code battle ready as it has been through countless improvements through being used in the community, it also opens up your mind to new ways of thinking. I learnt to use Codeigniter first and Yii second, but there are things used in Yii, that I will and have ported over in to Codeigniter, the way Yii authenticates users for example, is a great way of accomplishing this task.

It's like I have mentioned before in other posts, do not do what other people tell you should do. Sure take on board what other people have, but stick to what you are comfortable with using as it is you that is creating the application and not them.

總的來說 Yii 很炫,會選 CodeIgniter 的主要理由就是彈性。沒有十項全能的東西,功能再怎麼完備,總是不夠的。那彈性呢,為了彈性,就是要多付出一些努力。

我想最好的例子就是 ASP.NET,剛推出來時,的確很吸引人,但我曾維護過一陣子,那真是痛苦,層層包裹,雜亂的 code,每頁都要重複的東西。所以,微軟才會推出 ASP MVC。可是看起來,那複雜度也是挺嚇人的。

CodeIgniter,真是輕薄短小,又兼具彈性。至少,因為它的彈性,我才能很快的把用 Smarty 開發的程式轉成 MVC。


201201301141選擇 CodeIgniter 還是 Yii 好呢

CodeIgniter 是我正在使用中的 MVC 框架,但看到 Yii 號稱具有模組化、OO... 等諸多優點,頗為心動,該不該換跑道呢???!!

首先,這是四平八穩的介紹。

CodeIgniter 是一个简单快速的PHP MVC 框架。EllisLab 的工作人员发布了 CodeIgniter。许多企业尝试体验过所有 PHP MVC 框架之后,CodeIgniter 都成为赢家,主要是由于它为组织提供了足够的自由支持,允许开发人员更迅速地工作。

自由意味着使用 CodeIgniter 时,您不必以某种方式命名数据库表,也不必根据表命名模型。这使 CodeIgniter 成为重构遗留 PHP 应用程序的理想选择,在此类遗留应用程序中,可能存在需要移植的所有奇怪的结构。

CodeIgniter 不需要大量代码(1.6.2 版本仅为 2.8 MB,其中的 1.3 MB 是可以删除的用户文档),也不会要求您插入类似于 PEAR 的庞大的库。它在 PHP 4 和 PHP 5 中表现同样良好,允许您创建可移植的应用程序。最后,您不必使用模板引擎来创建视图 — 只需沿用旧式的 HTML 和 PHP 即可。


以下是某位大陸網友的想法,應該頗符合我的想法。

http://codeigniter.org.cn/forums/thread-7104-1-7.html

CI和YII的對比

最近要自己一個人做一個網站,於是在CI和YII中選擇。
由於Ci之前看過,所以簡單的看了下號稱速度最快的Yii的官方文檔,也下載了一個官方例子運行。
發現Yii功能挺強大的,在功能方面和我以前看過的Python的 django 框架很相似。
但是Yii的缺點也很明顯,所以如果有在兩者之間猶豫的同學可以藉鑑一下的思路。
第一、Yii的OO很純粹
裡面各種接口、類、繼承、擴展,顯得很龐大,所以不適合對OO不是太理解的同學。當然如果你想以學習OO為目的,可以使用Yii;如果是實際生產,注重開發效率還是CI好。加之我之前一直使用的asp.net,所以我個人對OO不怎麼感冒
第二、Yii的功能很强大
功能強大是好事,也是壞事。我一直認為,框架雖然幫你做了很多,但是沒有萬能的框架,框架功能越多,符合實際需求預期效果的功能相對就越少,花費時間學習的成本就越高。這一點我在ASP.net上是深有體會。
總結:Yii自我標榜easy,其實完整的學下來並不簡單,至少他需要你掌握OO的知識。所以我認為,Yii適合業務邏輯相對複雜​​的業務系統開發,比如項目管理,OA之類的,因為很多組件已經集成,不用你自己東拼西湊再花時間去找;CI更適合做業務邏輯相對簡單的互聯網應用,簡單高效,自己動手。
所以最後還是決定使用CI,一點愚見,歡迎拍磚。



2012.10.13 記
還是必須說一下自己的想法。使用CI也超過一年了,下面這段話也許可以做個註解。
「Having said all of these. I believe Yii is more suitable for the enterprise like project where you need standard functionality and interface first and that gives you a head start. In other words Yii gives you readymade controllers, model, CRUD, breadcrumb, pagination, Layout ; CI lacks these.
     But If I were to build an application like twitter, I would hardly need these standard features, so using Yii would be like using a Truck without enough payload on it.
     Moral of the story : Go with CI for your twitter like project !」

Yii 可以很快的建立一些常用的功能,就像 ASP.NET 吸引人的也是這個。但反觀 CI,除了把 MVC 拆開,幾乎一切都要自己來,可真累。
Yii 我沒用過,ASP.NET 我用過一陣子,但沒喜歡過它。我要表達的是,現實世界沒有所謂的standard 的東西,不論它們提供的功能多完備,沒有那個需求是可以完全靠著它們所提供的來完成。而要在它們限制的架構下,完成一些特定要求時,就像上文提到的類似 twitter 的功能,那會是很痛苦的。像我所維護的 ASP.NET 程式,幾乎每一項功能都必須 override,那真的不如不用。也許,開此先端的是 Java 吧,印象中,要寫 Java 的程式,沒有所謂的簡單這件事。
使用 CI,它只是恰如其分的,把 MVC 拆開,其他的,靠自己。雖然,開發時,要多投入一些精力,但它保持了最大的彈性,也兼具維護性。
咦,寫此後記時,並未看前面的舊文,再回頭瞄了一下,竟然說的還是同一件事。所以,問題,轉一圈回來,還是問題。

此外,開頭說的,「自由意味着使用 CodeIgniter 时,您不必以某种方式命名数据库表,也不必根据表命名模型。这使 CodeIgniter 成为重构遗留 PHP 应用程序的理想选择,在此类遗留应用程序中,可能存在需要移植的所有奇怪的结构。」,真的是沒錯,這尤其是值得強調的一項特點。
要把 asp 和 php 的程式 porting 到 CI 時,只需建一個 Controller,然後建立對應的 method,其中只要有一行,像這樣

 public function index() {
    include('../user/index.php');
 }

就完成初步的 porting 了,很快吧。

2011年12月7日 星期三

臺大開放式課程

 2011-12-07 20:15


網址是 https://ocw.aca.ntu.edu.tw

是一個不錯的開放式課程的網頁,雖然開發不久,但有一些精采的課程,可以前去看一下。
無緣當台大的學生,也無法千里迢迢到台大旁聽精采的課程,就透過方便的網路,看一下台大的教授的精采講演吧!
後記 (2025-12-02),這是我自己負責的一個頗感有些成就的系統,最終還是朝向外包的模式,版面已和原來的大為不同。

2011年9月12日 星期一

上手 CodeIgniter

 2011-09-12 15:01

最近又重回 PHP語言的世界。之前因為工作的環境因素,都用ASP。
寫了很久的麵條式的程式,想找個好一點的方式來工作。另外,因為剛接手的程式用到 Smarty 的樣版引擎,巿面上只有一本中文翻譯的書,沒有更多的相關資料,就上網去找,在一堆互相關聯的網頁中,無意中發現 CodeIgniter 這個 PHP 的 framework,好像這比單純的樣版引擎好用呢。

然後又在網路上搜尋了相關的比較,認為還是 CI 比較適合單打獨鬥的個人開發模式,也相對的較成熟與穩定。

雖然,在網路上有許多快速簡短的實例,但終究不如找本書來看比較具體。沒有中文的書,只好到重慶南路找原文書,找到一本 Wrox 出版的 ,要一千多元,還真有點捨不得,不過買回來看了之後,覺得物有所值。 不只是介紹如何使用CI,還介紹小型網頁系統的開發過程,提及 Agile方法,從與客戶接洽開始直到網頁前台與後台的開發。覺得若能出版中文本,將會對使用PHP寫網頁的新朋友有很大的幫助,還毛遂自薦寫 mail 給碁峰要翻中文本,說這本書值得出中文書,應該會受歡迎,只是他們不領情,至今仍無音訊。

大約瀏覽一遍 ,就一個字一個字的把書中的範例敲進電腦做測試。可能有人會覺得下載程式範例,不是比較省事嗎。我只是覺得自己敲比較有感覺。

在測試範例的過程中,也注意到網路上有人提及其他的PHP framework,如 Fuel及 Kohana,真的 CI 就是不怎麼 OO,也有點考慮是否棄 CI 而就其他兩者。但仔細思考,CI其實已經不錯了,而且成熟穩定也是考慮的重點。

大概再等一陣子,手邊的事情忙得差不多了,就會動手把 Smarty 換成 CI 了。


2011年7月26日 星期二

安裝 Quartus 9.1 for Linux

 2011-07-26 16:11

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 住。

網誌存檔