剛剛因為學弟send給我關於FON賺錢相關的文章,勾起了我對FON的回憶。
之前曾經google過FON可以怎麼改裝,而查到下面這個網址:
http://www.lefinnois.net/wpen/index.php/2007/05/13/i2c-bus-for-la-fonera/
當然還有其他類似的網站,原則上以「FON i2c」來搜尋就能找到了。
很多人都會問,FON要怎麼改裝?能夠變成怎樣?能不能當電話?能不能跑BT?
但大部份都還侷限在軟體相關的服務,通常把它和無線基地台或IP分享器劃上等號,然後查詢或試想能做什麼。
但其實~FON它還有個很棒的地方,就是它是個超小且支援802.11g的嵌入式開發板,它上面同樣有I/O可以使用。
這時候我們終於介紹到上述網站的內容了。
在國外瘋狂的FON hacker的努力下,FON已經被完全且深入的瞭解了。
FON內建的I/O並不多,經過「處理」後(以4根GPIO模擬2組I2C介面),FON可以拉出「2組I2C」介面,這是FON僅能利用的I/O介面,但對於電子相關科系的同學們來說,這已經足以讓我們開始各種惡搞計畫。
I2C是近年熱門的介面,它有幾種表示方式,IIC、I2C,其中的2其實是平方,因為打字的關係,通常連著打。
在電子相關科系中,大部分同學可能還沒聽過它,但它被用的很多了。
I2C其實和RS-232(UART)差不多,同樣是串列傳輸埠,但它只需要2條線就能動作了,I2C因為只有2條線,又只是high/low的表示,因此在遇到沒有內建I2C的時候,可以用2根標準IO來模擬出I2C的動作,而目前一些單晶片像是部份AVR就有內建I2C介面。
既然FON有I2C可以操作,而且還有2組,我們就能夠透過I2C將FON和AVR之類的單晶片進行連接,由FON對AVR下指令,再由AVR實際動作,開發上其實和PC<->RS232<->8051差不多。
有了類似AVR這樣的單晶片,我們就能夠用AVR開發各類電子專題,像是常見的自走車、警報器...等。
AVR+FON,我們就能夠開發802.11g的遙控自走車。
人家說沒圖沒真相,事實上國外已經有不少人以FON開發出自走車,原理不外乎就是FON+單晶片組合而成,影片如下:
http://www.youtube.com/watch?v=7qqthHWTheA
http://www.youtube.com/watch?v=2hBb3F27Tsc
http://www.youtube.com/watch?v=A4wdrhiMO0s
而關於FON的I2C介面如何拉出來,下面的blog有不錯的教學:
i2c bus for La Fonera
另外,下面這個網頁雖然不是拉出I2C,拉出來的是SPI介面,但用的I/O腳相同,同樣可以參考:
Fonera SD Card Hack
2009年3月26日
該用64bit Linux嗎?(新測試已逆轉)
剛剛朋友問我,它們公司在考慮新環境是否該改用64bit Linux,問我是否適合換成64 bit,換了有什麼好處?效能表現差異多大?
我曾經在摩托學園詢問過Intel 64 bit 在 Debian 上要怎麼設定?,另外也搜尋到大家的 x86-64 CPU 都跑 amd64 還是 i386 呢?,看起來大部分都還是建議用32bit Linux。
而一般來說,64 bit Linux的效能應該會比較好,那以效能表現來說,64 bit Linux效能能好多少?是否以效能為考量的Linux Server用64 bit會比較好呢?
於是我用「32bit 64bit linux performance」為關鍵字在Google搜尋,找到下面2篇:
AMD Phenom 32-bit vs. 64-bit Performance
Ubuntu: 32-bit v. 64-bit Performance
這邊要特別注意,Ubuntu: 32-bit v. 64-bit Performance這篇是2006年的測試。
從上述2個網頁中,作者針對32bit和64bit的Linux的比較,我發現到幾個事情:
1. 在遊戲相關的效能中比較,64 bit Linux幾乎都比32 bit Linux差,而且差不少
2. 在I/O相關的行為上,包括RAM的讀寫...等,32 bit Linux和64 bit Linux表現差不多,32 bit Linux略快
3. 針對CPU處理頻繁的工作,包括kernel make(gcc compiler)、MP3轉檔(lame)、檔案壓縮(gzip)上,64 bit Linux的表現要比32 bit Linux好
4. 可能是因為硬體不同,也可能是新版有針對64 bit做最佳化,2006年的那份測試和2008年的測試,gzip的表現反應差異較大,lame的表現差距幅度也有差異
整體來說,我認為64 bit Linux應該只有在CPU關聯性大的工作會有較突出的效能表現,其他部份「效能不一定比較好」,此外,在摩托學園的討論中看得出來,目前64 bit Linux還是有不少應用程式不支援。
所以我認為,目前還不是全面使用64 bit Linux的時候,除非對於CPU效能極度要求的情況下,那麼我個人的建議是,先瞭解該Linux Server要運作的應用程式或服務,目前對64 bit Linux的支援狀況(包括相容性、是否針對64 bit指令集EM64T最佳化...等),全部確定後,一切ok再上路。
如果是個人PC或桌面系統,那麼正如上面說的,我認為目前還不是使用64 bit Linux的時候。
感謝回覆留言的匿名網友,從最新的測試中可以發現,現在64 bit Linux在64 bit平台上效能已經超越32 bit,而且超越很多,上述評估已經不正確了。
我曾經在摩托學園詢問過Intel 64 bit 在 Debian 上要怎麼設定?,另外也搜尋到大家的 x86-64 CPU 都跑 amd64 還是 i386 呢?,看起來大部分都還是建議用32bit Linux。
而一般來說,64 bit Linux的效能應該會比較好,那以效能表現來說,64 bit Linux效能能好多少?是否以效能為考量的Linux Server用64 bit會比較好呢?
AMD Phenom 32-bit vs. 64-bit Performance
Ubuntu: 32-bit v. 64-bit Performance
這邊要特別注意,Ubuntu: 32-bit v. 64-bit Performance這篇是2006年的測試。
從上述2個網頁中,作者針對32bit和64bit的Linux的比較,我發現到幾個事情:
1. 在遊戲相關的效能中比較,64 bit Linux幾乎都比32 bit Linux差,而且差不少
2. 在I/O相關的行為上,包括RAM的讀寫...等,32 bit Linux和64 bit Linux表現差不多,32 bit Linux略快
3. 針對CPU處理頻繁的工作,包括kernel make(gcc compiler)、MP3轉檔(lame)、檔案壓縮(gzip)上,64 bit Linux的表現要比32 bit Linux好
4. 可能是因為硬體不同,也可能是新版有針對64 bit做最佳化,2006年的那份測試和2008年的測試,gzip的表現反應差異較大,lame的表現差距幅度也有差異
整體來說,我認為64 bit Linux應該只有在CPU關聯性大的工作會有較突出的效能表現,其他部份「效能不一定比較好」,此外,在摩托學園的討論中看得出來,目前64 bit Linux還是有不少應用程式不支援。
所以我認為,目前還不是全面使用64 bit Linux的時候,除非對於CPU效能極度要求的情況下,那麼我個人的建議是,先瞭解該Linux Server要運作的應用程式或服務,目前對64 bit Linux的支援狀況(包括相容性、是否針對64 bit指令集EM64T最佳化...等),全部確定後,一切ok再上路。
如果是個人PC或桌面系統,那麼正如上面說的,我認為目前還不是使用64 bit Linux的時候。
感謝回覆留言的匿名網友,從最新的測試中可以發現,現在64 bit Linux在64 bit平台上效能已經超越32 bit,而且超越很多,上述評估已經不正確了。
2009年3月24日
詐騙電話
剛剛又接到詐騙電話了~
可能因為上次耍了他,這次打來一接就掛斷~
因此上網搜尋後,下面列出搜尋到的詐騙電話,未來會持續更新:
0913925523
0927344966
0927429858
0938822315
0938822531
0989041218
0989041220
0989041385
0989382037
0989385003
0989385004
0989385031
0989385032
0989385033
0989385034(我剛剛接到這隻)
0989385037
0989385039
0989385040
(以上來源:http://www.wretch.cc/blog/hsueh925/10138374)
0989677972
(以上來源:http://www.wretch.cc/blog/may931107/20411495)
0989565193
0989506753
(以上來源:http://blog.yam.com/speed777/article/14211587)
0982649297
0982752752
0923790350
(以上來源:http://blog.sina.com.tw/t_mango/article.php?comment_page=19&pbgid=1523&entryid=16674)
0980486012
(以上來源:http://www.mobile01.com/topicdetail.php?f=37&t=791387&p=7)
0980149288
(以上來源:網友留)
最後寫下防堵的辦法
如果使用新款的智慧型手機(高階手機),可以針對不同手機作業系統來找「來電黑名單(也叫來電警衛...等類似名稱)」軟體並安裝,輸入上述電話號碼後即可幫你自動過濾,未來有新的,再持續更新。
如果像我一樣使用舊款手機,我記得Sony手機有黑名單功能,之前的T68記得有看過,而我正在用的Nokia 6230沒有黑名單功能,不過Nokia手機可以設定「號碼分組」,目前設定一個「黑名單分組」,把上述號碼全部加入,接著錄製一段無聲鈴聲並設為分組鈴聲即可。
可能因為上次耍了他,這次打來一接就掛斷~
因此上網搜尋後,下面列出搜尋到的詐騙電話,未來會持續更新:
0913925523
0927344966
0927429858
0938822315
0938822531
0989041218
0989041220
0989041385
0989382037
0989385003
0989385004
0989385031
0989385032
0989385033
0989385034(我剛剛接到這隻)
0989385037
0989385039
0989385040
(以上來源:http://www.wretch.cc/blog/hsueh925/10138374)
0989677972
(以上來源:http://www.wretch.cc/blog/may931107/20411495)
0989565193
0989506753
(以上來源:http://blog.yam.com/speed777/article/14211587)
0982649297
0982752752
0923790350
(以上來源:http://blog.sina.com.tw/t_mango/article.php?comment_page=19&pbgid=1523&entryid=16674)
0980486012
(以上來源:http://www.mobile01.com/topicdetail.php?f=37&t=791387&p=7)
0980149288
(以上來源:網友留)
最後寫下防堵的辦法
如果使用新款的智慧型手機(高階手機),可以針對不同手機作業系統來找「來電黑名單(也叫來電警衛...等類似名稱)」軟體並安裝,輸入上述電話號碼後即可幫你自動過濾,未來有新的,再持續更新。
如果像我一樣使用舊款手機,我記得Sony手機有黑名單功能,之前的T68記得有看過,而我正在用的Nokia 6230沒有黑名單功能,不過Nokia手機可以設定「號碼分組」,目前設定一個「黑名單分組」,把上述號碼全部加入,接著錄製一段無聲鈴聲並設為分組鈴聲即可。
2009年3月21日
建置1080p Media Center事項
最近家裡要換客廳電視,目前我是看好SONY 32S4000,雖然它只有32吋,又雖然它只支援到1366x768,但沒辦法~目前1080p的LCD TV都還很貴,老爸缺錢又要換電視的現在,只能選擇32吋了~
我的想法是,反正目前都還是看有線電視,高畫質有線電視目前還不普及,就算有了也不能保證一定是1920x1080的解析度,至於數位電視,那個就更不用說了~所以我認為,3年內要讓1920x1980普及應該是有難度的,與其買台用不到這麼高解析度的,不如買台SONY 32吋高品質的LCD TV,看起來應該會爽很多。
關於電視最後提一下,SONY 32吋系列,S和V根據Mobile01魔人的深入分析,兩者雖然差價3000元,但內容相同,此外,SONY 32吋系列再次根據Mobile01的魔人檢查,發現裡面的面板用的是奇美的,在這經濟艱困的時期,別懷疑~買SONY也是愛台灣啦~
雖然電視沒辦法用到1080p,但Media Center播放的高畫質電影檔情況稍稍不同,Media Center是電腦,它在播放影片時,並不會因為輸出的解析度比較差,就因此能夠節省CPU使用率或系統資源,因此,為了能夠播放所有影片,包括高畫質影片,Media Center需要升級,來應付720p以上畫質的影片檔,所以,最近開始尋覓目前針對高畫質影片的電腦建置。
我在之前的Media Center中應該提到過,我家目前的Media Center是P4-2.4G的CPU,主機板的整合式晶片組是Sis 630,因此顯示卡部份也是Sis的晶片。
P4-2.4G看起來很新,但事實上對於720p以上的影片,它是不足的。
目前我實際使用的經驗是,以網路上下載的720p日劇,播放時CPU使用率大約75%~100%,中間的Range是關係到影片播放當時的影片狀況,通常較細膩的片段就會lag,此時就是100%,因此網路上通常有人會說,720p影片P4-2.4G可以看,那是不精確的,測試的人八成只是把影片拿來開開看,看CPU使用率只有80%上下,就認為ok,這實際上是錯誤的結論。
此外,有一類720p的影片P4-2.4G CPU也是不夠力的,那就是下載的高畫質電影常使用的H264編碼,就算這部H264編碼的片子只是720p,P4-2.4G還是不夠力的,情況會比前面的日劇更糟(720p日劇編碼通常是DivX 6)。
高畫質影片往往需要更大的儲存空間,為了盡可能的減少儲存所需的空間,因此都會壓縮,而傳統的影片壓縮格式像是MPEG-1、MPEG-2、MPEG-4、DivX...等,壓縮率已經不足以應付FullHD(1920x1080)的影片,因此H264被提出並成為了FullHD影片的標準壓縮格式之一。
H264能讓高畫質影片儲存空間更小,但所付出的代價就是運算量,因此對CPU的負擔非常大。
很不幸的,如果要以軟體解碼的方式來處理,目前要能夠處理包括H264在內高畫質影片的CPU,至少需要中階以上的CPU才能應付,而中階以上CPU的價位並不很親民。
可能是因為上述的原因,最近幾年Nvidia和ATi(AMD)的顯示卡都內建了高畫質影片的硬體解碼晶片,而且具備這樣能力的顯示卡並不貴,大概NT $2000上下就能買到了,因此最近配Media Center的電腦,幾乎都會額外添購一張能夠支援FullHD的顯示卡,而挑選這樣的顯示卡,就變成了一個新的學問了。
在1080p Media Center建置的事項中,我們可以分為硬體和軟體兩類:
硬體:
要能夠處理1080p的影片,硬體上有2種解決方式,1種是買強力的CPU用軟體解碼來解決,另一種是買張新的顯示卡用硬體解碼來解決。
1. 使用CPU來解決
用CPU來解決問題其實不錯,後續問題可以少很多,但CPU很貴,要能夠處理到1080p影片的中階CPU價格通常需要NT $4000以上,如果錢不是問題,那直接買顆高速高貴的CPU統統都能搞定。
但這邊要注意一點,高速CPU通常很燙,高畫質影片軟體解碼時CPU使用率通常不會只有10%~20%,至少也有30%~50%,它會較耗電也會較熱,如何選擇高效能的散熱器又可以減少噪音,會是一個大問題。
2. 使用顯示卡來解決
以目前(2009-03-21)來說,目前NVIDIA主流的顯示卡大致有8000系列和9000系列兩種,網路上許多人會說這時候買8000系列的中階顯示卡最划算,因為8000系列是NVIDIA的舊晶片組,它的中階卡在之前都是NT $5000、NT $6000,現在只要NT $2000、NT $3000即可買到了,可以說是物超所值,但是,我在這邊要提出完全不同的結論。
如果以Media Center為用途,專門用來播放高解析度影片,那麼~買9000系列低階顯示卡會比8000系列中階顯示卡更合適,2者價格差不多~9000系列低階卡稍微低一點。
原因有2個:
1. 溫度
9000系列使用新的晶片,它的低階顯示卡溫度較低,8000的中階顯示卡通常都需要很大的散熱片和風扇,對Media Center來說,噪音是非常難搞的,沒有人會希望看電影的同時旁邊有個嗡嗡嗡的聲音,因此就溫度來說,9000系列更合適。
2. 硬體解碼的支援
NVIDIA在8000系列的顯示卡中就已經支援高畫質影片的硬體解碼(稱為PureVideo)了,但是8000全系列都只支援3種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264
而9000系列使用的新晶片,內建則支援4種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264
d. VC-1
關鍵在新出現的VC-1,VC-1乍看之下很陌生,但其實被應用的地方不少,VC-1是Microsoft提出的wmv中使用的編碼。
Microsoft在高畫質影片中一樣插了一腳,以類似H264的演算法來設計,並使用在wmv當中,Microsoft稱之為VC-1。
如果使用NVIDIA 8000系列的顯示卡,不論是低階、中階或是高階,全部都沒有包含VC-1的硬體解碼,換句話說,未來如果看到wmv的影片,就算使用的是8000系列中最高級的顯示卡,同樣都必須用CPU來運算,CPU不夠力,就是lag。
軟體:
如果使用CPU來做軟體解碼,基本上軟體的設定沒什麼問題,按照傳統的作法把codec安裝上去即可。
但如果是使用顯示卡來進行硬體解碼,軟體的配置就需要注意了。
接下來我會以NVIDIA來說,ATi的不清楚。
在Windows上,首先NVIDIA的顯示卡驅動程式是「一定要安裝」的,不安裝不可能支援硬體解碼,而且要安裝到最新版本的驅動程式。
安裝好驅動程式是不夠的,目前在Windows上,幾乎所有的codec都是軟體解碼,支援硬體解碼的codec很少,根據這陣子在網路上看到的,大概只有CyberLink PowerDVD提供的CyberLink Decoder和CoreAVC的Decoder可以支援顯示卡的硬體加速(使用硬體解碼)。
因此在設定上,必須要指定特定的檔案給特定的decoder才能使用到顯示卡的硬體加速。
而這部份,需要在各個播放程式裡面單獨的定義,像是KMPlayer可以設定,Media Player Classic目前我還不清楚。
在Linux上,為了讓Linux也能使用顯示卡的PureVideo(硬體解碼)功能,NVIDIA提出了VDPAU (Video Decode and Presentation API for Unix)。
VDPAU是專門針對NVIDIA顯示卡PureVideo(硬體解碼)功能的API,透過這組API程式設計師就能夠應用NVIDIA顯示卡上硬體解碼的晶片。
因為Linux上不同的文化和錯綜複雜的歷史因素,所以Linux上的播放軟體都直接內建decoder,所以目前要在Linux上支援VDPAU,必須針對播放軟體進行patch,讓播放軟體能夠支援VDPAU,才能夠使用硬體解碼。
目前在Linux上,確實有提供patch檔的播放軟體只有mplayer,而vlc、xine對VDPAU的支援都還在開發中。
比較讓人高興的是,Linux上的編解碼器軟體ffmpeg,已經有提供VDPAU的patch,所以是不是可以直接用vlc或xine呼叫ffmpeg來使用VDPAU,是之後使用時可以注意的部份。
整體來說,為了要處理1080p,我認為代價是很高的,以顯示卡的硬體解碼來處理1080p目前看來是不錯的選擇,但軟體設定很麻煩,而且硬體解碼只支援到1920x1080,未來更高解析度的影片它沒辦法處理(這邊指的沒辦法處理不是速度不夠快,而是顯示卡不能動作,有更高解析度的影片,顯示卡並不能支援,到時候完全只能用CPU來處理)。
我的想法是,反正目前都還是看有線電視,高畫質有線電視目前還不普及,就算有了也不能保證一定是1920x1080的解析度,至於數位電視,那個就更不用說了~所以我認為,3年內要讓1920x1980普及應該是有難度的,與其買台用不到這麼高解析度的,不如買台SONY 32吋高品質的LCD TV,看起來應該會爽很多。
關於電視最後提一下,SONY 32吋系列,S和V根據Mobile01魔人的深入分析,兩者雖然差價3000元,但內容相同,此外,SONY 32吋系列再次根據Mobile01的魔人檢查,發現裡面的面板用的是奇美的,在這經濟艱困的時期,別懷疑~買SONY也是愛台灣啦~
雖然電視沒辦法用到1080p,但Media Center播放的高畫質電影檔情況稍稍不同,Media Center是電腦,它在播放影片時,並不會因為輸出的解析度比較差,就因此能夠節省CPU使用率或系統資源,因此,為了能夠播放所有影片,包括高畫質影片,Media Center需要升級,來應付720p以上畫質的影片檔,所以,最近開始尋覓目前針對高畫質影片的電腦建置。
我在之前的Media Center中應該提到過,我家目前的Media Center是P4-2.4G的CPU,主機板的整合式晶片組是Sis 630,因此顯示卡部份也是Sis的晶片。
P4-2.4G看起來很新,但事實上對於720p以上的影片,它是不足的。
目前我實際使用的經驗是,以網路上下載的720p日劇,播放時CPU使用率大約75%~100%,中間的Range是關係到影片播放當時的影片狀況,通常較細膩的片段就會lag,此時就是100%,因此網路上通常有人會說,720p影片P4-2.4G可以看,那是不精確的,測試的人八成只是把影片拿來開開看,看CPU使用率只有80%上下,就認為ok,這實際上是錯誤的結論。
此外,有一類720p的影片P4-2.4G CPU也是不夠力的,那就是下載的高畫質電影常使用的H264編碼,就算這部H264編碼的片子只是720p,P4-2.4G還是不夠力的,情況會比前面的日劇更糟(720p日劇編碼通常是DivX 6)。
高畫質影片往往需要更大的儲存空間,為了盡可能的減少儲存所需的空間,因此都會壓縮,而傳統的影片壓縮格式像是MPEG-1、MPEG-2、MPEG-4、DivX...等,壓縮率已經不足以應付FullHD(1920x1080)的影片,因此H264被提出並成為了FullHD影片的標準壓縮格式之一。
H264能讓高畫質影片儲存空間更小,但所付出的代價就是運算量,因此對CPU的負擔非常大。
很不幸的,如果要以軟體解碼的方式來處理,目前要能夠處理包括H264在內高畫質影片的CPU,至少需要中階以上的CPU才能應付,而中階以上CPU的價位並不很親民。
可能是因為上述的原因,最近幾年Nvidia和ATi(AMD)的顯示卡都內建了高畫質影片的硬體解碼晶片,而且具備這樣能力的顯示卡並不貴,大概NT $2000上下就能買到了,因此最近配Media Center的電腦,幾乎都會額外添購一張能夠支援FullHD的顯示卡,而挑選這樣的顯示卡,就變成了一個新的學問了。
在1080p Media Center建置的事項中,我們可以分為硬體和軟體兩類:
硬體:
要能夠處理1080p的影片,硬體上有2種解決方式,1種是買強力的CPU用軟體解碼來解決,另一種是買張新的顯示卡用硬體解碼來解決。
1. 使用CPU來解決
用CPU來解決問題其實不錯,後續問題可以少很多,但CPU很貴,要能夠處理到1080p影片的中階CPU價格通常需要NT $4000以上,如果錢不是問題,那直接買顆高速高貴的CPU統統都能搞定。
但這邊要注意一點,高速CPU通常很燙,高畫質影片軟體解碼時CPU使用率通常不會只有10%~20%,至少也有30%~50%,它會較耗電也會較熱,如何選擇高效能的散熱器又可以減少噪音,會是一個大問題。
2. 使用顯示卡來解決
以目前(2009-03-21)來說,目前NVIDIA主流的顯示卡大致有8000系列和9000系列兩種,網路上許多人會說這時候買8000系列的中階顯示卡最划算,因為8000系列是NVIDIA的舊晶片組,它的中階卡在之前都是NT $5000、NT $6000,現在只要NT $2000、NT $3000即可買到了,可以說是物超所值,但是,我在這邊要提出完全不同的結論。
如果以Media Center為用途,專門用來播放高解析度影片,那麼~買9000系列低階顯示卡會比8000系列中階顯示卡更合適,2者價格差不多~9000系列低階卡稍微低一點。
原因有2個:
1. 溫度
9000系列使用新的晶片,它的低階顯示卡溫度較低,8000的中階顯示卡通常都需要很大的散熱片和風扇,對Media Center來說,噪音是非常難搞的,沒有人會希望看電影的同時旁邊有個嗡嗡嗡的聲音,因此就溫度來說,9000系列更合適。
2. 硬體解碼的支援
NVIDIA在8000系列的顯示卡中就已經支援高畫質影片的硬體解碼(稱為PureVideo)了,但是8000全系列都只支援3種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264
而9000系列使用的新晶片,內建則支援4種格式的硬體解碼,包括:
a. MPEG-1
b. MPEG-2
c. H264
d. VC-1
關鍵在新出現的VC-1,VC-1乍看之下很陌生,但其實被應用的地方不少,VC-1是Microsoft提出的wmv中使用的編碼。
Microsoft在高畫質影片中一樣插了一腳,以類似H264的演算法來設計,並使用在wmv當中,Microsoft稱之為VC-1。
如果使用NVIDIA 8000系列的顯示卡,不論是低階、中階或是高階,全部都沒有包含VC-1的硬體解碼,換句話說,未來如果看到wmv的影片,就算使用的是8000系列中最高級的顯示卡,同樣都必須用CPU來運算,CPU不夠力,就是lag。
軟體:
如果使用CPU來做軟體解碼,基本上軟體的設定沒什麼問題,按照傳統的作法把codec安裝上去即可。
但如果是使用顯示卡來進行硬體解碼,軟體的配置就需要注意了。
接下來我會以NVIDIA來說,ATi的不清楚。
在Windows上,首先NVIDIA的顯示卡驅動程式是「一定要安裝」的,不安裝不可能支援硬體解碼,而且要安裝到最新版本的驅動程式。
安裝好驅動程式是不夠的,目前在Windows上,幾乎所有的codec都是軟體解碼,支援硬體解碼的codec很少,根據這陣子在網路上看到的,大概只有CyberLink PowerDVD提供的CyberLink Decoder和CoreAVC的Decoder可以支援顯示卡的硬體加速(使用硬體解碼)。
因此在設定上,必須要指定特定的檔案給特定的decoder才能使用到顯示卡的硬體加速。
而這部份,需要在各個播放程式裡面單獨的定義,像是KMPlayer可以設定,Media Player Classic目前我還不清楚。
在Linux上,為了讓Linux也能使用顯示卡的PureVideo(硬體解碼)功能,NVIDIA提出了VDPAU (Video Decode and Presentation API for Unix)。
VDPAU是專門針對NVIDIA顯示卡PureVideo(硬體解碼)功能的API,透過這組API程式設計師就能夠應用NVIDIA顯示卡上硬體解碼的晶片。
因為Linux上不同的文化和錯綜複雜的歷史因素,所以Linux上的播放軟體都直接內建decoder,所以目前要在Linux上支援VDPAU,必須針對播放軟體進行patch,讓播放軟體能夠支援VDPAU,才能夠使用硬體解碼。
目前在Linux上,確實有提供patch檔的播放軟體只有mplayer,而vlc、xine對VDPAU的支援都還在開發中。
比較讓人高興的是,Linux上的編解碼器軟體ffmpeg,已經有提供VDPAU的patch,所以是不是可以直接用vlc或xine呼叫ffmpeg來使用VDPAU,是之後使用時可以注意的部份。
整體來說,為了要處理1080p,我認為代價是很高的,以顯示卡的硬體解碼來處理1080p目前看來是不錯的選擇,但軟體設定很麻煩,而且硬體解碼只支援到1920x1080,未來更高解析度的影片它沒辦法處理(這邊指的沒辦法處理不是速度不夠快,而是顯示卡不能動作,有更高解析度的影片,顯示卡並不能支援,到時候完全只能用CPU來處理)。
2009年2月12日
Media Center Linux升級
(本文同步回覆在Linux Media Center設置心得(使用DiGiMatrix搭配Debian使用MythTV或Freevo))
在今年過年的連假,將Media Center改灌成Mythbuntu了(又一台電腦被Ubuntu佔領啦~)。
整個安裝的確方便快速很多,以往lirc需要自己重新編譯相對應的kernel module或kernel,現在已經完全不需要了,在安裝時直接可以用選單選擇,選好、安裝完畢後即可使用。
由於Ubuntu和Debian系出同源,所有原先Debian上的設定全部都可沿用,整個移機重灌的過程中,雖然沒有完全無痛~但頂多也只是小痛~非常推薦Mythbuntu。
如果是完全沒裝過Media Center,希望以Linux作為Media Center的話,強烈推薦Mythbuntu,幾乎所有以前需要辛苦的設定,Mythbuntu都只需要簡單的選單選項即可完成,不需要花費功夫處理。
關於diskless的部份,目前已經處理完畢了,這部份是整個移機過程中最痛的部份,因為Mythbuntu預設的kernel initramfs是硬碟開機,因此無法直接diskless安裝,我是先用硬碟裝好,然後複製到NFS Server上的。
而設定上,大部分參照Booting On PXE And On A Customized Debian System的設定即可,
比較不一樣需要處理的,是要修改
確定以下幾個參數:
首先最關鍵的是 BOOT=nfs,不設這項,則開機後會出現「/dev/nfs does not exist」,反過來如果設了,則會無法硬碟開機。
接著是 DEVICE=eth0,這裡要設定相對應的網路裝置,沒設對則開機後會造成在網路卡的位置死掉!
再來是 MODULES=most,這項可以改成 netboot,改成 most 則所有 module 都會載入。
存檔後執行
完成後即可用diskless的系統開機了。
在今年過年的連假,將Media Center改灌成Mythbuntu了(又一台電腦被Ubuntu佔領啦~)。
整個安裝的確方便快速很多,以往lirc需要自己重新編譯相對應的kernel module或kernel,現在已經完全不需要了,在安裝時直接可以用選單選擇,選好、安裝完畢後即可使用。
由於Ubuntu和Debian系出同源,所有原先Debian上的設定全部都可沿用,整個移機重灌的過程中,雖然沒有完全無痛~但頂多也只是小痛~非常推薦Mythbuntu。
如果是完全沒裝過Media Center,希望以Linux作為Media Center的話,強烈推薦Mythbuntu,幾乎所有以前需要辛苦的設定,Mythbuntu都只需要簡單的選單選項即可完成,不需要花費功夫處理。
關於diskless的部份,目前已經處理完畢了,這部份是整個移機過程中最痛的部份,因為Mythbuntu預設的kernel initramfs是硬碟開機,因此無法直接diskless安裝,我是先用硬碟裝好,然後複製到NFS Server上的。
而設定上,大部分參照Booting On PXE And On A Customized Debian System的設定即可,
比較不一樣需要處理的,是要修改
/etc/initramfs-tools/initramfs.conf確定以下幾個參數:
BOOT=nfs
DEVICE=eth0
MODULES=most首先最關鍵的是 BOOT=nfs,不設這項,則開機後會出現「/dev/nfs does not exist」,反過來如果設了,則會無法硬碟開機。
接著是 DEVICE=eth0,這裡要設定相對應的網路裝置,沒設對則開機後會造成在網路卡的位置死掉!
再來是 MODULES=most,這項可以改成 netboot,改成 most 則所有 module 都會載入。
存檔後執行
update-initramfs -u完成後即可用diskless的系統開機了。
2009年2月3日
關於「有趣的預言&先知」
因應原網站作者早先留言,該文已於1月初即已收編,
未來該文將不再登載,原文連結將永久無效,
在此公告。
原作者留言如下:
============================
您所說的都不是根據事實
雖然發表個人文章實屬言論自由
但由於您的部分發言已經涉及到刑法上之
[譭謗罪][造謠罪][人身攻擊]
並讓該廟負責人及信眾深感不悅
本網已拍照存證
望君一個月之內拿下此篇文章
不然我們將偕同網警採取法律途徑
感謝您的合作
============================
未來該文將不再登載,原文連結將永久無效,
在此公告。
原作者留言如下:
============================
您所說的都不是根據事實
雖然發表個人文章實屬言論自由
但由於您的部分發言已經涉及到刑法上之
[譭謗罪][造謠罪][人身攻擊]
並讓該廟負責人及信眾深感不悅
本網已拍照存證
望君一個月之內拿下此篇文章
不然我們將偕同網警採取法律途徑
感謝您的合作
============================
2009年2月2日
自力開發的Java FTP Server
去年年底忙完國科會計劃書之後,就開始發瘋的用Java寫FTP Server,過年期間同樣沒有懈怠,持續發瘋中~
既然是發瘋的成果,自然成果驚人。
我寫的FTP Server取名叫做「MyFTPBox」。
和其他自己寫得程式一樣,在開發時有注意使用的套件授權。
目前MyFTPBox使用的第三方套件只有SQLiteJDBC,這個SQLite的Java API授權是BSD,非常自由。
因此目前來說,產權沒有任何問題。
MyFTPBox目前已經支援下面功能:
1. 完全支援 UTF8,啟動時偵測系統的檔案編碼,並以此作為預設編碼,FTP Client登入後,可以使用OPTS UTF8 ON支援UTF8(Linux下由於預設都已經是UTF8編碼,因此FTP Server預設編碼直接是UTF8)
2. 經過簡單的測試,看起來能夠正常支援MODE Z,MODE Z是一種壓縮技術,使用zlib作為壓縮的演算法,它會在資料傳輸過程中自動壓縮,不需要額外設定,但FTP Client同樣需要支援MODE Z,目前用CuteFTP Pro、SmartFTP測試,在使用MODE Z後,CuteFTP Pro、SmartFTP仍舊能夠正常的顯示出檔案列表,證明應該是work的
3. 流量控制,每個使用者能夠設定流量限制,但目前只能對每個連線限制流量,例如我限制10k,當同時下載2個檔案時,2個檔案都是10k
4. 極端混亂且可能有問題的虛擬檔案系統,我仿照ZFTP Server的模式設定,可以新增虛擬目錄,也可以把實體目錄對應到虛擬目錄下,但目前還有些bug(混亂原因在於,ZFTP那應該是用linklist寫的,我是用SQL寫的,SQL上資料都是平面的,而且因為欄位的關係,目前我處理目錄的方式很笨,寫得也亂)
5. 帳號管理、虛擬檔案系統均使用SQLite管理,因為都使用SQL code,因此未來很容易可以移植到mysql、M$ SQL Server,甚至M$ Access中,至於Server的設定,由於要可以指定使用的SQL Server和帳號密碼等,目前傾向另外用xml來儲存,用xml儲存的設定應該會包括Server Port、Admin Port、SQL、系統編碼
6. 簡易的Telnet管理介面,目前有實做了管理用Telnet Admin Server,目前可以用telnet的方式連入進行帳號、虛擬檔案系統的管理,未來畫出GUI的管理程式後,就可以有類似ZFTP Administraotr Interface那樣的管理程式來操作了。
7. 其他比較值得提到的,大概就是PASV/PORT mode,正式一點的FTP Server原則上都支援了,只有那種超小型的FTP Server半成品才不支援PASV mode,我的Java FTP Server能夠正常的支援PASV/PORT mode;此外,大概就是檔案列表吧~目前我的Java FTP Server支援UNIX Style檔案列表和MLSD/MLST Style檔案列表,這也是比較正式的FTP Server原則上都支援的(UNIX上的FTP Server有可能只支援UNIX Style)
整體來說,基於老王賣瓜的心裡,我認為這FTP Server還不錯,不過還需要花很多時間繼續加功能和修程式,但以功能性來說,目前Windows上主流FTP Server有的幾個功能都有支援了,不過都不夠完善就是了。
那最容易被問到的就是,既然都有了,那寫它幹嘛?它作用是?
首先,它就基本的FTP Server來說算是完成度很高的,它再加入SSH Tunnel的功能後,可以寫成類似Tunnelier這樣的SSH Tunnel程式,並且和Tunnelier一樣可以作到FTP-SFTP-Bridge的功能。
而目前Java的SSH Tunnel API很多,而且幾乎都是BSD、LGPL的,要開發Java版的SSH Tunnel並不難。
除了可以延伸寫成支援FTP-SFTP-Bridge的SSH Tunnel外,它算是我第一個檔案傳輸伺服器的程式,基本樣式完成了,未來要改成影像串流或其他檔案傳輸用的Custom Server都可以節省伺服器開發的功夫。
而這套Java FTP Server本身可能的賣點是,雖然在Windows上FTP Server選擇很多,像ZFTP Server、FileZilla Server、G6都是常見的選擇,我也是以它們為範本開發的,但首先,ZFTP Server在3.0之前都還不支援UTF8,G6要錢,FileZilla Server的管理介面非常難用。
其次,我們把場景放到Linux上,Linux上的FTP Server幾乎都強調高效能、高穩定性,但是很少可以像ZFTP Server、FileZilla Server這樣有虛擬檔案系統可以讓我們自己拉目錄,使用者管理又幾乎都跟系統帳戶綁在一起,不用系統帳戶,就要透過複雜的步驟讓FTP Server支援mysql。
對大部分人來說,僅僅希望在Linux上安裝個FTP站台,專門放mp3、動畫這樣簡單的需求,卻要搞得好像要開ftp.ntu.edu.tw這樣的大型站台。
然而對於一般性的需求,像是頻寬限制,帳戶登入時間管制之類的,卻要辛苦的k 使用手冊,找設定找半天才能作到,如果以這樣的角度來看,我認為我這套Java FTP Server是有賣點在的,因為它跨平台,又以Windows FTP Server為範本,用在Linux上反而能凸顯出它的特殊性,像MODE Z,Linux上有多少FTP Server支援它?應該很少吧~
PS:
最後附註一下,一直以來Java都號稱對網路程式開發可以很容易的設計,我一直都對此疑惑,但這次寫FTP Server,我發現Java在開發FTP Server時,其實滿容易的,Java本身幾乎支援FTP Server所需的所有功能,像MODE Z的核心zlib,Java直接就有InputStream、OutputStream可以套用,套上去就有了,像UTF8也是,直接套個InputStreamReader加個編碼就搞定了,同樣是開發FTP Server,我相信用gcc和glibc應該會複雜很多,光要把zlib library套進socket stream應該就有點麻煩了,再處理UTF8和non-UTF8應該也不是輕鬆的事。
既然是發瘋的成果,自然成果驚人。
我寫的FTP Server取名叫做「MyFTPBox」。
和其他自己寫得程式一樣,在開發時有注意使用的套件授權。
目前MyFTPBox使用的第三方套件只有SQLiteJDBC,這個SQLite的Java API授權是BSD,非常自由。
因此目前來說,產權沒有任何問題。
MyFTPBox目前已經支援下面功能:
1. 完全支援 UTF8,啟動時偵測系統的檔案編碼,並以此作為預設編碼,FTP Client登入後,可以使用OPTS UTF8 ON支援UTF8(Linux下由於預設都已經是UTF8編碼,因此FTP Server預設編碼直接是UTF8)
2. 經過簡單的測試,看起來能夠正常支援MODE Z,MODE Z是一種壓縮技術,使用zlib作為壓縮的演算法,它會在資料傳輸過程中自動壓縮,不需要額外設定,但FTP Client同樣需要支援MODE Z,目前用CuteFTP Pro、SmartFTP測試,在使用MODE Z後,CuteFTP Pro、SmartFTP仍舊能夠正常的顯示出檔案列表,證明應該是work的
3. 流量控制,每個使用者能夠設定流量限制,但目前只能對每個連線限制流量,例如我限制10k,當同時下載2個檔案時,2個檔案都是10k
4. 極端混亂且可能有問題的虛擬檔案系統,我仿照ZFTP Server的模式設定,可以新增虛擬目錄,也可以把實體目錄對應到虛擬目錄下,但目前還有些bug(混亂原因在於,ZFTP那應該是用linklist寫的,我是用SQL寫的,SQL上資料都是平面的,而且因為欄位的關係,目前我處理目錄的方式很笨,寫得也亂)
5. 帳號管理、虛擬檔案系統均使用SQLite管理,因為都使用SQL code,因此未來很容易可以移植到mysql、M$ SQL Server,甚至M$ Access中,至於Server的設定,由於要可以指定使用的SQL Server和帳號密碼等,目前傾向另外用xml來儲存,用xml儲存的設定應該會包括Server Port、Admin Port、SQL、系統編碼
6. 簡易的Telnet管理介面,目前有實做了管理用Telnet Admin Server,目前可以用telnet的方式連入進行帳號、虛擬檔案系統的管理,未來畫出GUI的管理程式後,就可以有類似ZFTP Administraotr Interface那樣的管理程式來操作了。
7. 其他比較值得提到的,大概就是PASV/PORT mode,正式一點的FTP Server原則上都支援了,只有那種超小型的FTP Server半成品才不支援PASV mode,我的Java FTP Server能夠正常的支援PASV/PORT mode;此外,大概就是檔案列表吧~目前我的Java FTP Server支援UNIX Style檔案列表和MLSD/MLST Style檔案列表,這也是比較正式的FTP Server原則上都支援的(UNIX上的FTP Server有可能只支援UNIX Style)
整體來說,基於老王賣瓜的心裡,我認為這FTP Server還不錯,不過還需要花很多時間繼續加功能和修程式,但以功能性來說,目前Windows上主流FTP Server有的幾個功能都有支援了,不過都不夠完善就是了。
那最容易被問到的就是,既然都有了,那寫它幹嘛?它作用是?
首先,它就基本的FTP Server來說算是完成度很高的,它再加入SSH Tunnel的功能後,可以寫成類似Tunnelier這樣的SSH Tunnel程式,並且和Tunnelier一樣可以作到FTP-SFTP-Bridge的功能。
而目前Java的SSH Tunnel API很多,而且幾乎都是BSD、LGPL的,要開發Java版的SSH Tunnel並不難。
除了可以延伸寫成支援FTP-SFTP-Bridge的SSH Tunnel外,它算是我第一個檔案傳輸伺服器的程式,基本樣式完成了,未來要改成影像串流或其他檔案傳輸用的Custom Server都可以節省伺服器開發的功夫。
而這套Java FTP Server本身可能的賣點是,雖然在Windows上FTP Server選擇很多,像ZFTP Server、FileZilla Server、G6都是常見的選擇,我也是以它們為範本開發的,但首先,ZFTP Server在3.0之前都還不支援UTF8,G6要錢,FileZilla Server的管理介面非常難用。
其次,我們把場景放到Linux上,Linux上的FTP Server幾乎都強調高效能、高穩定性,但是很少可以像ZFTP Server、FileZilla Server這樣有虛擬檔案系統可以讓我們自己拉目錄,使用者管理又幾乎都跟系統帳戶綁在一起,不用系統帳戶,就要透過複雜的步驟讓FTP Server支援mysql。
對大部分人來說,僅僅希望在Linux上安裝個FTP站台,專門放mp3、動畫這樣簡單的需求,卻要搞得好像要開ftp.ntu.edu.tw這樣的大型站台。
然而對於一般性的需求,像是頻寬限制,帳戶登入時間管制之類的,卻要辛苦的k 使用手冊,找設定找半天才能作到,如果以這樣的角度來看,我認為我這套Java FTP Server是有賣點在的,因為它跨平台,又以Windows FTP Server為範本,用在Linux上反而能凸顯出它的特殊性,像MODE Z,Linux上有多少FTP Server支援它?應該很少吧~
PS:
最後附註一下,一直以來Java都號稱對網路程式開發可以很容易的設計,我一直都對此疑惑,但這次寫FTP Server,我發現Java在開發FTP Server時,其實滿容易的,Java本身幾乎支援FTP Server所需的所有功能,像MODE Z的核心zlib,Java直接就有InputStream、OutputStream可以套用,套上去就有了,像UTF8也是,直接套個InputStreamReader加個編碼就搞定了,同樣是開發FTP Server,我相信用gcc和glibc應該會複雜很多,光要把zlib library套進socket stream應該就有點麻煩了,再處理UTF8和non-UTF8應該也不是輕鬆的事。
Office 2007專用的2003選單外掛
最近把家裡自己的桌機改安裝成WinXP Pro,也許會納悶~是「XP Pro」嗎?
是的~我自己的桌機之前一直都是Win2000 & Ubuntu雙系統。
前陣子Ubuntu用比較多,這陣子Windows用比較多,兩個系統適應的都不錯。
由於Win2000沒有終端機服務,MSN又只能用可憐的7.5,加上這台電腦CPU是P4-2.4HT,卻因為Win2000對HT支援並不好,始終有個疙瘩在,因此這次過年就把他更新成XP Pro了。
因為更新成XP Pro,C碟有了很大很大的空間,所以也一併把Office從2003升級成2007。
眾所皆知的,M$不知道發甚麼神經病,把Office2007的選單介面換了,更神經的是,它竟然不提供2003選單樣式,強迫可憐的芸芸眾生只能一邊幹一邊接受(XP至少都還提供所謂的「Windows Classic Theme」)。
不過沒關係,我們廣大的網際網路,萬能的Google給了我們選擇其他選擇。
用Google以「office 2007 classic」進行搜尋會發現,大概有2~3套的國外套裝軟體提供了這樣的功能,只要安裝它並輸入序號,就能夠變身成原來2003的樣式。
如果有人跟我一樣對正版軟體有奇怪的執著,沒關係,這裡提供了一個免費的選擇,和其他自由軟體、免費軟體一樣,要好好感謝開發的作者。
Excel Add-ins這個網站作者特別針對Office2007的Word、Excel、PowerPoint、Access開發了增益集外掛,只需要下載並直接點選執行它,它就會彈出視窗問你,是否要啟用這個「看起來很危險的增益集」,二話不說,啟用它~
重新開啟程式後就會看到選單多了一項叫做「增益集」,點它之後就會看到下面出現一排熟悉的選單。
我個人覺得相當不錯,讓我很方便的就能夠適應Office2007的操作。
至於XP Pro和Office2007怎麼來的?
相信許多人都知道去年M$有提供Office2007的學生方案(話說~這應該是因為Office2007銷售太差,普及率太低的原因才提出的吧...),身為對正版軟體、免費軟體有奇怪執著的我,就以自己和老妹的名義各買一套。
至於XP Pro,最近因為M$好像要淘汰XP了,XP Pro教育版價格跟之前隨機版、升級版一樣,而隨機版、升級版都不見了,擔心未來買不到XP,因此砸錢買了一套。
至於身為Linux/FreeBSD愛好者兼免費軟體愛好者的我為啥要花錢贊助M$?
相信我,目前的XP(Win2000)、M$ Office還是有非常大的必要性,OpenOffice我不是沒在用,但因為一堆原因,它跟M$ Office就是無法完全相容,可我老闆、國科會範本、學校論文範例,都是用Word格式,在這個看老闆看學校吃飯的環境下,我也只能低頭了。
至於Linux上的wine?相信我,它對M$ Office的支援只是「不錯」,並不是「非常好」,原因包括:
1. 像我有在使用Zotero管理參考文獻,WINE的M$ Office沒辦法支援
2. WINE的M$ Office甚至不能按「ctrl + s」進行存檔動作
3. 因為WINE的中文需要額外設定,也因為額外設定的關係,M$ Office顯示的字型會和一般Windows上的Office不大一樣(設定會有些差別),讓文件看起來就不同會不一致
PS:
我會因為遠端桌面而改用XP也許看來有點可笑,不過我有原因。
目前在Windows上,效能最好、支援性最好、各平台都有Client程式的,只有俗稱遠端桌面的終端機服務
有跨平台能力的,多半直接想到VNC,我之前win2000時的確都是用VNC,不過我相信任何用過遠端桌面的人,只要用一次VNC,就會直接移除了。
VNC底層不是用DirectX寫的,因此無法像終端機服務可以遠端直接看影片,VNC也不支援音效功能,沒辦法遠端聽音樂,在棒球8搶3轉播時,我不少同學用遠端桌面直接連到宿舍,用電視棒看轉播,邊看還會邊說,影像有點lag,但這在VNC上,是完全辦不到的。
VNC檔案傳輸能力很弱,到現在~只有Windows上的VNC可以傳檔案,而且是一個檔案一個檔案傳,還要用類似FTP那種選單來傳輸,遠端桌面整合網路芳鄰,非常方便,離譜的是,Linux上的遠端桌面client(rdesktop)也支援這能力,可以把Linux的「/」對應到遠端桌面上。
此外,不知道是不是VNC protocol不好,幾乎所有用VNC核心的遠端遙控,感覺效率都不好,反應鈍鈍的,吃頻寬又兇,而且解析度差、畫面常常不會更新
至於其他的遠端遙控程式,多半都還是小眾市場,大多只提供Windows的client,Linux上無法操控。
而以遠端遙控軟體來比較,不論Windows、Linux,M$的終端機服務整體來說,相當的優秀,它吃使用的頻寬小,因為使用圖示快取,畫面品質很不錯,加上前面提到的它直接用DirectX,影像、聲音都能通,而且品質非常好,它甚至能把遠端的Printer Port、Serial Port對應過來,要達成這些條件的遠端遙控軟體真的不多,在Linux上,我認為只有NX最接近,但NX目前還無法處理影像,聲音部份會lag大約3秒。
補圖:
Word 2007

Excel 2007

PowerPoint 2007
是的~我自己的桌機之前一直都是Win2000 & Ubuntu雙系統。
前陣子Ubuntu用比較多,這陣子Windows用比較多,兩個系統適應的都不錯。
由於Win2000沒有終端機服務,MSN又只能用可憐的7.5,加上這台電腦CPU是P4-2.4HT,卻因為Win2000對HT支援並不好,始終有個疙瘩在,因此這次過年就把他更新成XP Pro了。
因為更新成XP Pro,C碟有了很大很大的空間,所以也一併把Office從2003升級成2007。
眾所皆知的,M$不知道發甚麼神經病,把Office2007的選單介面換了,更神經的是,它竟然不提供2003選單樣式,強迫可憐的芸芸眾生只能一邊幹一邊接受(XP至少都還提供所謂的「Windows Classic Theme」)。
不過沒關係,我們廣大的網際網路,萬能的Google給了我們選擇其他選擇。
用Google以「office 2007 classic」進行搜尋會發現,大概有2~3套的國外套裝軟體提供了這樣的功能,只要安裝它並輸入序號,就能夠變身成原來2003的樣式。
如果有人跟我一樣對正版軟體有奇怪的執著,沒關係,這裡提供了一個免費的選擇,和其他自由軟體、免費軟體一樣,要好好感謝開發的作者。
Excel Add-ins這個網站作者特別針對Office2007的Word、Excel、PowerPoint、Access開發了增益集外掛,只需要下載並直接點選執行它,它就會彈出視窗問你,是否要啟用這個「看起來很危險的增益集」,二話不說,啟用它~
重新開啟程式後就會看到選單多了一項叫做「增益集」,點它之後就會看到下面出現一排熟悉的選單。
我個人覺得相當不錯,讓我很方便的就能夠適應Office2007的操作。
至於XP Pro和Office2007怎麼來的?
相信許多人都知道去年M$有提供Office2007的學生方案(話說~這應該是因為Office2007銷售太差,普及率太低的原因才提出的吧...),身為對正版軟體、免費軟體有奇怪執著的我,就以自己和老妹的名義各買一套。
至於XP Pro,最近因為M$好像要淘汰XP了,XP Pro教育版價格跟之前隨機版、升級版一樣,而隨機版、升級版都不見了,擔心未來買不到XP,因此砸錢買了一套。
至於身為Linux/FreeBSD愛好者兼免費軟體愛好者的我為啥要花錢贊助M$?
相信我,目前的XP(Win2000)、M$ Office還是有非常大的必要性,OpenOffice我不是沒在用,但因為一堆原因,它跟M$ Office就是無法完全相容,可我老闆、國科會範本、學校論文範例,都是用Word格式,在這個看老闆看學校吃飯的環境下,我也只能低頭了。
至於Linux上的wine?相信我,它對M$ Office的支援只是「不錯」,並不是「非常好」,原因包括:
1. 像我有在使用Zotero管理參考文獻,WINE的M$ Office沒辦法支援
2. WINE的M$ Office甚至不能按「ctrl + s」進行存檔動作
3. 因為WINE的中文需要額外設定,也因為額外設定的關係,M$ Office顯示的字型會和一般Windows上的Office不大一樣(設定會有些差別),讓文件看起來就不同會不一致
PS:
我會因為遠端桌面而改用XP也許看來有點可笑,不過我有原因。
目前在Windows上,效能最好、支援性最好、各平台都有Client程式的,只有俗稱遠端桌面的終端機服務
有跨平台能力的,多半直接想到VNC,我之前win2000時的確都是用VNC,不過我相信任何用過遠端桌面的人,只要用一次VNC,就會直接移除了。
VNC底層不是用DirectX寫的,因此無法像終端機服務可以遠端直接看影片,VNC也不支援音效功能,沒辦法遠端聽音樂,在棒球8搶3轉播時,我不少同學用遠端桌面直接連到宿舍,用電視棒看轉播,邊看還會邊說,影像有點lag,但這在VNC上,是完全辦不到的。
VNC檔案傳輸能力很弱,到現在~只有Windows上的VNC可以傳檔案,而且是一個檔案一個檔案傳,還要用類似FTP那種選單來傳輸,遠端桌面整合網路芳鄰,非常方便,離譜的是,Linux上的遠端桌面client(rdesktop)也支援這能力,可以把Linux的「/」對應到遠端桌面上。
此外,不知道是不是VNC protocol不好,幾乎所有用VNC核心的遠端遙控,感覺效率都不好,反應鈍鈍的,吃頻寬又兇,而且解析度差、畫面常常不會更新
至於其他的遠端遙控程式,多半都還是小眾市場,大多只提供Windows的client,Linux上無法操控。
而以遠端遙控軟體來比較,不論Windows、Linux,M$的終端機服務整體來說,相當的優秀,它吃使用的頻寬小,因為使用圖示快取,畫面品質很不錯,加上前面提到的它直接用DirectX,影像、聲音都能通,而且品質非常好,它甚至能把遠端的Printer Port、Serial Port對應過來,要達成這些條件的遠端遙控軟體真的不多,在Linux上,我認為只有NX最接近,但NX目前還無法處理影像,聲音部份會lag大約3秒。
補圖:
Word 2007

Excel 2007

PowerPoint 2007
2009年1月7日
台南永康正金宮新回信
感謝「台南永康正金宮」的意見與指教。
新回信內容如下:
=================================
[正金宮][最後通牒]
---------------------------
您好:
我們將於近日內按鈴控告
請您注意一下我們律師所寄發給您的存證信函
以及台南地方法院的傳票
非常感謝您的合作
永康正金宮
=================================
新回信內容如下:
=================================
[正金宮][最後通牒]
---------------------------
您好:
我們將於近日內按鈴控告
請您注意一下我們律師所寄發給您的存證信函
以及台南地方法院的傳票
非常感謝您的合作
永康正金宮
=================================
2009年1月2日
馬英九說到「正體中文」
今天元旦各新聞台都在介紹馬英九帶頭大家寫書法,我只有在國小時寫過,很久很久沒碰過了~不過這不是重點~
他提到了「正體中文」是很重要的,應該要ooxx.....
這是我第一次聽到政治人物說出「正體中文」四個字阿!
看到新聞轉述「正體中文」,有種「繁體中文」終於被正名的感覺阿!!
我認為,與其說什麼獨立、台灣國,去中國化~
還不如正視「正體字」、「Big5」...等,像現在,一群人一直說台灣國、說獨立,說不要被大陸如何如何....可是看看我們的電腦,Big5到現在還是沒有簡體、日文、韓文,人家日文系統、韓文系統可都有「正體字」的,現在主流的簡體編碼GBK也都是「正體」、簡體、日文、韓文都有。
試問以後中文電腦要使用編碼系統,會偏好GBK還是Big5?
那一直說的獨立在哪?嘴巴嗎?
要喊獨立好歹先把正體編碼弄好吧~現在全世界用正體的地區(國家)不多了,看來看去編碼只有Big5是針對正體中文,Big5都弄不好,光電腦系統都會被統一,其他還有什麼好說的?
他提到了「正體中文」是很重要的,應該要ooxx.....
這是我第一次聽到政治人物說出「正體中文」四個字阿!
看到新聞轉述「正體中文」,有種「繁體中文」終於被正名的感覺阿!!
我認為,與其說什麼獨立、台灣國,去中國化~
還不如正視「正體字」、「Big5」...等,像現在,一群人一直說台灣國、說獨立,說不要被大陸如何如何....可是看看我們的電腦,Big5到現在還是沒有簡體、日文、韓文,人家日文系統、韓文系統可都有「正體字」的,現在主流的簡體編碼GBK也都是「正體」、簡體、日文、韓文都有。
試問以後中文電腦要使用編碼系統,會偏好GBK還是Big5?
那一直說的獨立在哪?嘴巴嗎?
要喊獨立好歹先把正體編碼弄好吧~現在全世界用正體的地區(國家)不多了,看來看去編碼只有Big5是針對正體中文,Big5都弄不好,光電腦系統都會被統一,其他還有什麼好說的?
2008年12月30日
台南永康正金宮回信
感謝「台南永康正金宮」的意見與指教。
回信內容如下:
=====================================
阿呆站長您好:
由於您一篇文章涉及到對本宮的傷害
http://ycfunet.blogspot.com/2008/01/blog-post.html
故本宮上下決議將對您提出法律程序上的訴訟
先來此函跟您知會一聲,也希望您能將您的個人資料回信過來
以便我們查察
因為若閣下不願意提供資料
我們必須在經由律師調請台北市刑九隊網路犯罪小組
再經過您所屬的Blogger網站調閱您的個人ip位址
這樣的稽查費用往返就要台幣6千多元
由於全案一但是閣下敗訴
我們告發人這裡的所有訴訟費用以及律師費用
都將由閣下來支付
也相信您不希望多出這麼多麻煩吧!
之後不過一個月
您將會收到本宮所發出的法院存證信函
或許您對於本宮及預言網存有很多誤解
但您所說的很多都不是事實
所以我們必須在法院上對您澄清
也希望您能配合後方司法的調查
非常感謝
小弟 金源
=====================================
首先,金源兄您好,自稱小弟實在太折煞我了。
我的blog如此之小都還可以被您找到,真的讓我萬分榮幸,讓我知道原來我的東西還有人在看,而且是本人,讓我看了真的非常感動。
如果您對本站blog的文章有疑慮,通知一聲我刪掉就算了,反正也不是第一次,之前有人反應我對SSD的描述有問題,我看了自知了解不足直接就刪了。
但是您直接寄了這樣一封信給我,信件內容我看得莫名其妙,既像是不滿要我拿掉,又像是要告我,也像是勒索我,還像是要詐騙我,我真的看的一頭霧水。
是不滿要我拿掉,整封信都沒提到要我拿掉?
是要告我,卻問我個人資料?
是要勒索我或詐騙我,又沒提到要多少和解金?
最後,我沒聽過刑九隊,只聽過偵九隊,我也從來不知道他們會隨意透漏個人資料給別人,況且文章中既沒有商業行為,也沒有任何不法勾當,更沒有張貼情色文章,相信管犯罪的「刑事警察局」不會沒事無聊來找我。
您提到的應該是屬於民事管轄的範圍,民事訴訟不至於要透過刑事警察來處理。
此外,我提的內容,都是您網站上自己打的,沒有多加字、也沒有少加字,其他僅是個人意見,硬要說的話,頂多侵犯個人著作,我道歉~主動拿掉~這我前面提到了,我是很樂意的!(您不也把奇摩新聞網整個網頁抓圖貼在你網站,人家最下面還註明,版權所有屬Yahoo!奇摩哩!)
最後的最後,我是個窮學生,你知道窮學生的特色是啥嗎?
1. 沒錢~我一天花費不過150,吃住在學校,死宅男一個~跟我要錢,我還希望你施捨我一點香油錢讓我生活勒!神?肚子都快餓死了~神也要救濟我阿!
2. 時間多~同樣的,身為死宅男的我,平常沒啥娛樂,不是上網看新聞、上ptt看八卦就是看日劇或台劇,你喜歡一直花錢請律師,就為了跟我耗時間,我實在也不能說什麼~
3. 到處找人求救~居士您是著名宮廟的廟主,我相信您是公平正義的化生,代表的是鏟奸除惡的神明,並不會有任何詐騙、逃漏稅、詐財、勒索的行為。如果真的有,那麼可能就是所謂的神棍,我相信刑事警察會更喜歡這樣的人
目前我的決定是,正如前面提到的,還有您以匿名方式在文章中回應的,我基於尊重您網站上的著作,畢竟那都是你寫的,原作者有意見,要求一個月內刪除,我會將該篇文章刪除,但是會照您的要求,在一個月刪掉。
不過我會把這篇永久保留,畢竟這也算是特殊的回憶阿~
回信內容如下:
=====================================
阿呆站長您好:
由於您一篇文章涉及到對本宮的傷害
http://ycfunet.blogspot.com/2008/01/blog-post.html
故本宮上下決議將對您提出法律程序上的訴訟
先來此函跟您知會一聲,也希望您能將您的個人資料回信過來
以便我們查察
因為若閣下不願意提供資料
我們必須在經由律師調請台北市刑九隊網路犯罪小組
再經過您所屬的Blogger網站調閱您的個人ip位址
這樣的稽查費用往返就要台幣6千多元
由於全案一但是閣下敗訴
我們告發人這裡的所有訴訟費用以及律師費用
都將由閣下來支付
也相信您不希望多出這麼多麻煩吧!
之後不過一個月
您將會收到本宮所發出的法院存證信函
或許您對於本宮及預言網存有很多誤解
但您所說的很多都不是事實
所以我們必須在法院上對您澄清
也希望您能配合後方司法的調查
非常感謝
小弟 金源
=====================================
首先,金源兄您好,自稱小弟實在太折煞我了。
我的blog如此之小都還可以被您找到,真的讓我萬分榮幸,讓我知道原來我的東西還有人在看,而且是本人,讓我看了真的非常感動。
如果您對本站blog的文章有疑慮,通知一聲我刪掉就算了,反正也不是第一次,之前有人反應我對SSD的描述有問題,我看了自知了解不足直接就刪了。
但是您直接寄了這樣一封信給我,信件內容我看得莫名其妙,既像是不滿要我拿掉,又像是要告我,也像是勒索我,還像是要詐騙我,我真的看的一頭霧水。
是不滿要我拿掉,整封信都沒提到要我拿掉?
是要告我,卻問我個人資料?
是要勒索我或詐騙我,又沒提到要多少和解金?
最後,我沒聽過刑九隊,只聽過偵九隊,我也從來不知道他們會隨意透漏個人資料給別人,況且文章中既沒有商業行為,也沒有任何不法勾當,更沒有張貼情色文章,相信管犯罪的「刑事警察局」不會沒事無聊來找我。
您提到的應該是屬於民事管轄的範圍,民事訴訟不至於要透過刑事警察來處理。
此外,我提的內容,都是您網站上自己打的,沒有多加字、也沒有少加字,其他僅是個人意見,硬要說的話,頂多侵犯個人著作,我道歉~主動拿掉~這我前面提到了,我是很樂意的!(您不也把奇摩新聞網整個網頁抓圖貼在你網站,人家最下面還註明,版權所有屬Yahoo!奇摩哩!)
最後的最後,我是個窮學生,你知道窮學生的特色是啥嗎?
1. 沒錢~我一天花費不過150,吃住在學校,死宅男一個~跟我要錢,我還希望你施捨我一點香油錢讓我生活勒!神?肚子都快餓死了~神也要救濟我阿!
2. 時間多~同樣的,身為死宅男的我,平常沒啥娛樂,不是上網看新聞、上ptt看八卦就是看日劇或台劇,你喜歡一直花錢請律師,就為了跟我耗時間,我實在也不能說什麼~
3. 到處找人求救~居士您是著名宮廟的廟主,我相信您是公平正義的化生,代表的是鏟奸除惡的神明,並不會有任何詐騙、逃漏稅、詐財、勒索的行為。如果真的有,那麼可能就是所謂的神棍,我相信刑事警察會更喜歡這樣的人
目前我的決定是,正如前面提到的,還有您以匿名方式在文章中回應的,我基於尊重您網站上的著作,畢竟那都是你寫的,原作者有意見,要求一個月內刪除,我會將該篇文章刪除,但是會照您的要求,在一個月刪掉。
不過我會把這篇永久保留,畢竟這也算是特殊的回憶阿~
2008年12月14日
免費Floppy Image軟體
現在時間都快2009年了,從我很小時候玩286時候,就已經有軟碟機(1.2MB大片、1.44MB小片)了,甚至更小時候玩Apple II時,大片的磁碟片、磁碟機(當時還不是1.2MB)就已經在用了,然而到了現在,有時候還是需要軟碟片、軟碟映像檔來開機。
在Floppy Image的工具中,名氣最響亮的就是WinImage了,可惜的是,它要花錢使用,當然,如果是偶爾需要,下載試用版用下還是很方便的。
那除了WinImage外,有沒有免費的方案呢?
我找了許久之後,找到了「Virtual Floppy Drive」,我認為這應該是免費中相當不錯的軟體了。
Virtual Floppy Drive的核心使用的是VMWare的API,透過它,我們就能夠建立、讀取、寫入映像檔,而它就是一個呼叫VMWare API的介面程式。
它的使用非常簡單,下載後,全部解壓縮到C:\VFD,然後點選vfdwin.exe並執行。
透過vfdwin.exe,我們可以建立出虛擬的A:、B:,然後透過介面將image掛載到A:、B:上,此外,它也提供格式化功能,可以方便快速的將image格式化。
除了一般的功能之外,它也提供了2.88MB的軟碟Image格式,讓我們建立出這種較特殊的Floppy Image。
這個程式可以說簡單、方便、好用。
除了Virtual Floppy Drive之外,另一個可以搭配的好用工具是Floppy Image。
Floppy Image可以讓我們方便的把上面建立好的image檔案,透過它輕鬆轉換成.exe執行檔,以後要使用,只要直接執行該檔案,就會提示插入磁碟,並且將Image寫入軟碟片,如此一來,就不用擔心別的電腦上沒有Floppy Image的軟體了。
Floppy Image現在是商業軟體,不過既然這邊提出來,自然有好康。
Floppy Image在1.5.2版之前都是freeware,可以免費使用,不過公司網站已經不提供下載了,雖然如此,我們還是可以利用偉大的google大神幫我們找到它。
Last Freeware Version提供了許多免費版變商業版的最後一版免費軟體,其中這裡就有提供Floppy Image 1.5.2的下載。
如果有在使用VMWare、VirtualBox...等VM軟體,或者系統要重灌,又或者要自製開機光碟、開機軟碟、開機USB,需要建立開機片或操作Floppy Image,上述2個軟體絕對有幫助。
在Floppy Image的工具中,名氣最響亮的就是WinImage了,可惜的是,它要花錢使用,當然,如果是偶爾需要,下載試用版用下還是很方便的。
那除了WinImage外,有沒有免費的方案呢?
我找了許久之後,找到了「Virtual Floppy Drive」,我認為這應該是免費中相當不錯的軟體了。
Virtual Floppy Drive的核心使用的是VMWare的API,透過它,我們就能夠建立、讀取、寫入映像檔,而它就是一個呼叫VMWare API的介面程式。
它的使用非常簡單,下載後,全部解壓縮到C:\VFD,然後點選vfdwin.exe並執行。
透過vfdwin.exe,我們可以建立出虛擬的A:、B:,然後透過介面將image掛載到A:、B:上,此外,它也提供格式化功能,可以方便快速的將image格式化。
除了一般的功能之外,它也提供了2.88MB的軟碟Image格式,讓我們建立出這種較特殊的Floppy Image。
這個程式可以說簡單、方便、好用。
除了Virtual Floppy Drive之外,另一個可以搭配的好用工具是Floppy Image。
Floppy Image可以讓我們方便的把上面建立好的image檔案,透過它輕鬆轉換成.exe執行檔,以後要使用,只要直接執行該檔案,就會提示插入磁碟,並且將Image寫入軟碟片,如此一來,就不用擔心別的電腦上沒有Floppy Image的軟體了。
Floppy Image現在是商業軟體,不過既然這邊提出來,自然有好康。
Floppy Image在1.5.2版之前都是freeware,可以免費使用,不過公司網站已經不提供下載了,雖然如此,我們還是可以利用偉大的google大神幫我們找到它。
Last Freeware Version提供了許多免費版變商業版的最後一版免費軟體,其中這裡就有提供Floppy Image 1.5.2的下載。
如果有在使用VMWare、VirtualBox...等VM軟體,或者系統要重灌,又或者要自製開機光碟、開機軟碟、開機USB,需要建立開機片或操作Floppy Image,上述2個軟體絕對有幫助。
2008年11月30日
EeePC新拍檔(EeePC專用轉換器)
我的EeePC就不在多做解釋了,之前提過了。
有EeePC的人不知道有沒有個困擾,就是它的變壓器沒辦法和一般NB共用,因此EeePC通常都會另外帶一顆小小看起來很可愛的變壓器,不可否認,這顆變壓器真的很小、很可愛,攜帶起來比一般NB變壓器要輕便很多,但是還是很不方便。
EeePC儘管優點很多,但是他的變壓器,和一般NB是沒辦法相容的,主要原因就是變壓器的供電電壓,一般NB的電壓是19V,而EeePC的則是12V,既然電壓不同,我們能不能做個小變壓器,讓他的電壓相同呢?
還記得之前做過電池轉5V的ARM開發板用變壓器電路,也做過19V轉5V的ARM開發板用變壓器,它的元件並不多,同樣的元件,要把19V轉12V並不難,因此我在EeePC買來沒多久就想做一個,但可惜的是,一直沒時間弄它。
上週週末和這周週末,我特別把這個電路弄出來了。
下面我們就來看圖說故事,看看成品吧!
首先看看第一張,這張是成品,也是經過遮掩後看起來最正常的一張:
接著我們慢慢越來越深入的看它,首先看它輸入的部份,它輸入部份就是一個一般的DC插頭,基本上我用的是2.5mm的插頭,一般NB變壓器通常都能插入,像台製的變壓器還能更換,那更是沒問題,至於塑膠殼的孔,我是用美工刀割的,所以並不好看:
看完了輸入端,我們看看輸出端,輸出端則是用電鑽磨出來的小開口,讓電線能夠有個出口,同樣並不很好看,但相信已經比輸入端要好的多了:
接著我們把它打開,看看它的廬山真面目,首先看看電路板的正面,看得出來元件並不多,而且我並沒有做任何處理,我使用的是LM2576-ADJ,這顆變壓IC是目前最容易取得的Switching Power IC:
再來我們看看電路板的背面,我必須說,我的銲接技術從高職到現在,始終沒有太大的進步:
接著我們看看塑膠殼的底板,這裡有點玄機,因為我的銲接中,一些地方是直接用銲錫拉的,因此比較厚,溫度也高,造成了塑膠殼底板其實會稍微燒融掉,這其實滿危險的,畢竟誰知道啥時會走火呢?
因此我在底板貼上一層鐵佛龍膠帶,沒錯~就是被大家用來貼滑鼠的鐵佛龍膠帶,我最近剛買了一卷使用... :p
鐵佛龍膠帶除了很滑(摩擦係數很低)外,他其實也可以耐高溫(可耐200度C以下)、防水、絕緣(導電係數低),因此它其實很好用,可以用在陽台、電路板、室外...等各式場合,如果你四周圍有人買了鐵佛龍膠帶,卻只是用來貼滑鼠,強烈建議跟他要一卷放著,很快就會注意到他好用的地方了。
接著,來個醜陋大集合,電路板背面和塑膠殼打洞處的合照:
最後,讓我們看看實際運作時的樣子,這張照片我們實際的把NB用的變壓器接上它,然後將它接到EeePC,EeePC就會顯示目前正在充電中,除了系統的顯示外,也可以注意到電池的燈號,它顯示橘燈,並且持續亮著,表示電池充電中:
以上就是這次EeePC新拍檔的介紹,當然,不可免俗的,來列出它的成本吧。
LM2576-ADJ NT $20(不大確定,有點忘了,約NT20~25元)
線繞電感 NT $20(工型電感比較便宜,效果相同)
精密電阻 NT $1 x 2
SMD電容 NT $25(不大確定,有點忘了,約NT20多元)
日製電容 NT $18(不大確定,有點忘了,約NT15~25元)
塑膠盒 NT $40(不大確定,有點忘了,約NT40元)
DC IN接頭 NT $5(不大確定,有點忘了,約NT5元)
DC OUT線 NT $30
總成本約 NT $150左右,比買一顆EeePC專用變壓器便宜,而且因為我之前在玩ARM開發板的變壓器時,買了上面這些零件,所以這次實際上並沒有買很多元件,只有買DC OUT線、電阻,其他都是現成的,這對現在不景氣的環境來說,可以說是非常不錯的,一方面好玩、一方面實用、一方面也省錢,可以說一石三鳥。
電子零件細節:
LM2576-ADJ
用的穩壓IC是LM2576-ADJ,LM2576是switching power的穩壓IC,它的輸入電壓可以吃8V~40V,有固定輸出版本和可調整輸出的版本,-ADJ是可調整的版本,這顆的轉換效率大概80~85%左右。
線繞電感
根據LM2576的datasheet,使用100uH的電感,電感建議用線繞電感,網路上關於電感的建議是,線繞電感比較適合Power這類功率用途,而工型電感適合在通訊類用途,不過這最後要看買得到什麼......
精密電阻
因為是用可調式的LM2576,因此需要用電阻來控制輸出電壓,專業的說法叫做分壓,為了輸出電壓的穩定性,我們不希望輸出電壓的變化太大,所以我們希望電阻的誤差小一點,因此買精密電阻,精密電阻的誤差在1%,一般的則是10%。
輸出電壓的算法是(一樣,datasheet寫的):
R2 = R1 x ( ( 輸出電壓(這邊是12V) / 1.23 ) - 1 )
根據上述算法,我使用的電阻是:
1.37k
12k
電容
LM2576需要2顆電容,一顆在輸入端,一顆在輸出端,datasheet建議用鋁製電容。
不過我去光華商場,只有看到SMD電容看起來像是鋁製電容,價格也像鋁製電容,因此輸入端我就用SMD的電容。
輸出端我找不到鋁製的電容或SMD電容,所以我買比較高級的日製電容,反正奇摩拍賣上也有人在賣日製電容,給人換在顯示卡上,我想品質應該ok。
datasheet對電容的要求是:
1. 輸入端為 100uF,輸出端為 1000uF
2. 電容的電壓規定是,電容的電壓必須比電壓(輸入端看輸入電壓,輸出端看輸出電壓)大,建議大1.5倍,datasheet解釋,這是避免突波的發生。
我使用的是:
SMD電容 100uF 50V
日製電容 1000uF 25V
這樣的規格,輸入端上到40V應該都ok,輸出12V沒問題。
二極體(上面漏掉了)
二極體要求要用蕭特基二極體,電流要求能耐3A。
耐3A的原因是,LM2576的最大輸出電流是3A,因此要能耐3A。
用蕭特基的原因是,switching power因為切換速度很快,因此二極體反應要夠快,蕭特基二極體能夠符合需要。
塑膠盒
隨意即可,不裝也ok
DC IN接頭
NB電源插的上去即可。
DC OUT線
我去國際電子廣場,拿著EeePC的變壓器對店員問,它就給我線了.... = =
datasheet的網址:
http://datasheet.eeworld.com.cn/pdf/164979_MOTOROLA_LM2576-15.html
有EeePC的人不知道有沒有個困擾,就是它的變壓器沒辦法和一般NB共用,因此EeePC通常都會另外帶一顆小小看起來很可愛的變壓器,不可否認,這顆變壓器真的很小、很可愛,攜帶起來比一般NB變壓器要輕便很多,但是還是很不方便。
EeePC儘管優點很多,但是他的變壓器,和一般NB是沒辦法相容的,主要原因就是變壓器的供電電壓,一般NB的電壓是19V,而EeePC的則是12V,既然電壓不同,我們能不能做個小變壓器,讓他的電壓相同呢?
還記得之前做過電池轉5V的ARM開發板用變壓器電路,也做過19V轉5V的ARM開發板用變壓器,它的元件並不多,同樣的元件,要把19V轉12V並不難,因此我在EeePC買來沒多久就想做一個,但可惜的是,一直沒時間弄它。
上週週末和這周週末,我特別把這個電路弄出來了。
下面我們就來看圖說故事,看看成品吧!
首先看看第一張,這張是成品,也是經過遮掩後看起來最正常的一張:
| 寄件者 EeePC變壓器電路 |
接著我們慢慢越來越深入的看它,首先看它輸入的部份,它輸入部份就是一個一般的DC插頭,基本上我用的是2.5mm的插頭,一般NB變壓器通常都能插入,像台製的變壓器還能更換,那更是沒問題,至於塑膠殼的孔,我是用美工刀割的,所以並不好看:
| 寄件者 EeePC變壓器電路 |
看完了輸入端,我們看看輸出端,輸出端則是用電鑽磨出來的小開口,讓電線能夠有個出口,同樣並不很好看,但相信已經比輸入端要好的多了:
| 寄件者 EeePC變壓器電路 |
接著我們把它打開,看看它的廬山真面目,首先看看電路板的正面,看得出來元件並不多,而且我並沒有做任何處理,我使用的是LM2576-ADJ,這顆變壓IC是目前最容易取得的Switching Power IC:
| 寄件者 EeePC變壓器電路 |
再來我們看看電路板的背面,我必須說,我的銲接技術從高職到現在,始終沒有太大的進步:
| 寄件者 EeePC變壓器電路 |
接著我們看看塑膠殼的底板,這裡有點玄機,因為我的銲接中,一些地方是直接用銲錫拉的,因此比較厚,溫度也高,造成了塑膠殼底板其實會稍微燒融掉,這其實滿危險的,畢竟誰知道啥時會走火呢?
因此我在底板貼上一層鐵佛龍膠帶,沒錯~就是被大家用來貼滑鼠的鐵佛龍膠帶,我最近剛買了一卷使用... :p
鐵佛龍膠帶除了很滑(摩擦係數很低)外,他其實也可以耐高溫(可耐200度C以下)、防水、絕緣(導電係數低),因此它其實很好用,可以用在陽台、電路板、室外...等各式場合,如果你四周圍有人買了鐵佛龍膠帶,卻只是用來貼滑鼠,強烈建議跟他要一卷放著,很快就會注意到他好用的地方了。
| 寄件者 EeePC變壓器電路 |
接著,來個醜陋大集合,電路板背面和塑膠殼打洞處的合照:
| 寄件者 EeePC變壓器電路 |
最後,讓我們看看實際運作時的樣子,這張照片我們實際的把NB用的變壓器接上它,然後將它接到EeePC,EeePC就會顯示目前正在充電中,除了系統的顯示外,也可以注意到電池的燈號,它顯示橘燈,並且持續亮著,表示電池充電中:
| 寄件者 EeePC變壓器電路 |
以上就是這次EeePC新拍檔的介紹,當然,不可免俗的,來列出它的成本吧。
LM2576-ADJ NT $20(不大確定,有點忘了,約NT20~25元)
線繞電感 NT $20(工型電感比較便宜,效果相同)
精密電阻 NT $1 x 2
SMD電容 NT $25(不大確定,有點忘了,約NT20多元)
日製電容 NT $18(不大確定,有點忘了,約NT15~25元)
塑膠盒 NT $40(不大確定,有點忘了,約NT40元)
DC IN接頭 NT $5(不大確定,有點忘了,約NT5元)
DC OUT線 NT $30
總成本約 NT $150左右,比買一顆EeePC專用變壓器便宜,而且因為我之前在玩ARM開發板的變壓器時,買了上面這些零件,所以這次實際上並沒有買很多元件,只有買DC OUT線、電阻,其他都是現成的,這對現在不景氣的環境來說,可以說是非常不錯的,一方面好玩、一方面實用、一方面也省錢,可以說一石三鳥。
電子零件細節:
LM2576-ADJ
用的穩壓IC是LM2576-ADJ,LM2576是switching power的穩壓IC,它的輸入電壓可以吃8V~40V,有固定輸出版本和可調整輸出的版本,-ADJ是可調整的版本,這顆的轉換效率大概80~85%左右。
線繞電感
根據LM2576的datasheet,使用100uH的電感,電感建議用線繞電感,網路上關於電感的建議是,線繞電感比較適合Power這類功率用途,而工型電感適合在通訊類用途,不過這最後要看買得到什麼......
精密電阻
因為是用可調式的LM2576,因此需要用電阻來控制輸出電壓,專業的說法叫做分壓,為了輸出電壓的穩定性,我們不希望輸出電壓的變化太大,所以我們希望電阻的誤差小一點,因此買精密電阻,精密電阻的誤差在1%,一般的則是10%。
輸出電壓的算法是(一樣,datasheet寫的):
R2 = R1 x ( ( 輸出電壓(這邊是12V) / 1.23 ) - 1 )
根據上述算法,我使用的電阻是:
1.37k
12k
電容
LM2576需要2顆電容,一顆在輸入端,一顆在輸出端,datasheet建議用鋁製電容。
不過我去光華商場,只有看到SMD電容看起來像是鋁製電容,價格也像鋁製電容,因此輸入端我就用SMD的電容。
輸出端我找不到鋁製的電容或SMD電容,所以我買比較高級的日製電容,反正奇摩拍賣上也有人在賣日製電容,給人換在顯示卡上,我想品質應該ok。
datasheet對電容的要求是:
1. 輸入端為 100uF,輸出端為 1000uF
2. 電容的電壓規定是,電容的電壓必須比電壓(輸入端看輸入電壓,輸出端看輸出電壓)大,建議大1.5倍,datasheet解釋,這是避免突波的發生。
我使用的是:
SMD電容 100uF 50V
日製電容 1000uF 25V
這樣的規格,輸入端上到40V應該都ok,輸出12V沒問題。
二極體(上面漏掉了)
二極體要求要用蕭特基二極體,電流要求能耐3A。
耐3A的原因是,LM2576的最大輸出電流是3A,因此要能耐3A。
用蕭特基的原因是,switching power因為切換速度很快,因此二極體反應要夠快,蕭特基二極體能夠符合需要。
塑膠盒
隨意即可,不裝也ok
DC IN接頭
NB電源插的上去即可。
DC OUT線
我去國際電子廣場,拿著EeePC的變壓器對店員問,它就給我線了.... = =
datasheet的網址:
http://datasheet.eeworld.com.cn/pdf/164979_MOTOROLA_LM2576-15.html
2008年11月24日
HPLIP掃描功能終於支援HP Color LaserJet CM1015
今年年初和年中,台灣HP的彩色雷射印表機都有優惠,因此我在年中就參加了。
優惠方案原則上就是用比較便宜的價格買彩色雷射印表機,不過要寫個心得報告。
便宜多少呢?以我買的HP CM1015來說,我當時砸了NT13000左右(真的是很用力的砸下去了,我的24' LCD因此飛走了),基本上便宜個NT4000元。
家裏的印表機目前都由File Server在管理,File Server是Linux(Debian),因此使用上就有很大的限制,目前上面接了3台印表機,分別是:
Epson Photo 790
HP PSC 1315
HP Color LaserJet CM1015
由於Epson的惡習,因此目前已經停用了,而自從CM1015來了之後,主軸就幾乎都放在它身上。
在這邊我不得不說,HP印表機、掃描器、事務機對Linux的支援真的「比較好」(尤其是事務機),儘管它的支援和Windows相比,大概是天和地的分別,但已經比其他廠牌要好得多,而比較少聽過的品牌,很多都沒辦法在Linux上使用。
HP印表機、掃描器、事務機在Linux上的支援,基本上是透過一個稱之為HPLIP的OpenSource專案(HP Linux Imaging and Printing (HPLIP)),它和HP的密切程度之高,我基本上認為它應該是HP公司在維護和開發的。
透過HPLIP,在Linux上我們能夠比較方便的設定印表機、掃描器、事務機,大致來說只需要執行:
一問一答之間,就完成設定了,而能用的功能就是能用,不能用的功能,大概也沒機會可以用到了,真的是很方便。
CM1015有2個型號,分別在於有沒有網路的功能,價格大約差NT3000元,而這台專案機,原則上沒的挑,就是沒有網路。
不過這對我不是問題,我也不希望它有網路,畢竟接上File Server後,透過網路就能夠列印、掃描,加上File Server上數據機的傳真功能,這3000元實在沒有花的必要。
從買來的第一天開始,我就在關注HPLIP對CM1015的支援性,我本來以為這台機器不新,加上HP對Linux的支援性,應該都ok了,沒想到我還是高估了。
HPLIP一直以來,對CM1015都只支援列印功能,不支援掃描,這讓我很不舒服,畢竟花了這麼多錢,還要靠PSC 1315來掃描,那CM1015上的掃描器只是好看而已嗎.... :(
終於~HPLIP在2.8.10將CM1015的掃描功能加入了,我剛剛試用了,的確可以正常工作,這讓人非常興奮,CM1015終於正式變成事務機了。
最後提一下目前關於家中掃描、列印、傳真的整個配置:
列印部份:
使用CUPS進行列印的處理,這問題不大,設定很常見,在Windows、Linux上都能順利工作,網路列印也ok。
掃描部份:
Linux上的掃描器主要靠SANE,SANE是一個非常老牌的Linux掃描器系統,因為掃描器的硬體混亂,因此SANE本身分成前端、後端:
SANE前端:
SANE前端提供一些SANE的掃描軟體呼叫,對掃描器進行操作,在Linux上問題不大,基本上直接用xsane即可,在Windows上比較麻煩,Windows要透過TWAIN介面,而目前在Windows上TWAIN和SANE的溝通,主要是SaneTwain和XSANE,我個人認為,SaneTwain比較好用,而且順道一說,它目前的中文介面,是我幫忙翻譯的。
SANE前端要能夠讓Windows透過網路來溝通,必須要啟動saned這個daemon,只要run起來,就能夠讓其他SANE的掃描軟體透過網路和SANE前端溝通。
SANE後端:
SANE後端主要就是掃描器的驅動程式介面,各種掃描器驅動程式都可以透過SANE後端的介面,讓SANE可以支援,前面提到的HPLIP,它就是提供了SANE後端的介面,讓SANE後端可以連結HPLIP來對掃描器進行操作。
所以Linux的掃描功能,基本上只要SANE能夠搞定,一切都沒問題,要網路掃描,SANE也能做到,整體來說我是相當滿意的。
傳真部份:
我在Linux上的傳真,使用HylaFax這套傳真軟體,HylaFax分成Server和Client,File Server上安裝的自然就是HylaFax Server,而各個Client(包括Windows、Linux)都需要安裝HylaFax Client才能夠透過網路來傳真。
Linux上問題不大,GFax就支援HylaFax傳真,最慘下指令也能傳真,Windows上比較麻煩,我個人推薦Winprint HylaFAX,這套軟體能夠簡單的傳真,並且容易操作,缺點是,它無法取消傳真,也無法看目前收到的傳真。
為此,我的解決方案有2個:
1. 在File Server上另外建立一個資源分享,目錄指定到/var/spool/hylafax/recvq,這樣一來,透過網路芳鄰,就能夠簡單的瀏覽、刪除已收到的傳真。
2. 除了Winprint HylaFAX之外,另外搭配WHFC Windows HylaFAX client使用,這套軟體介面不好看,而且久久沒更新,但還算堪用。
有了上述的幾個部份互相搭配,只要在家裏,我可以透過有線網路、無線網路在任何地方直接列印、掃描、傳真任何資料,那麼~誰還需要多花NT3000元購買有網路功能的事務機呢?誰又需要購買列印伺服器呢?
優惠方案原則上就是用比較便宜的價格買彩色雷射印表機,不過要寫個心得報告。
便宜多少呢?以我買的HP CM1015來說,我當時砸了NT13000左右(真的是很用力的砸下去了,我的24' LCD因此飛走了),基本上便宜個NT4000元。
家裏的印表機目前都由File Server在管理,File Server是Linux(Debian),因此使用上就有很大的限制,目前上面接了3台印表機,分別是:
Epson Photo 790
HP PSC 1315
HP Color LaserJet CM1015
由於Epson的惡習,因此目前已經停用了,而自從CM1015來了之後,主軸就幾乎都放在它身上。
在這邊我不得不說,HP印表機、掃描器、事務機對Linux的支援真的「比較好」(尤其是事務機),儘管它的支援和Windows相比,大概是天和地的分別,但已經比其他廠牌要好得多,而比較少聽過的品牌,很多都沒辦法在Linux上使用。
HP印表機、掃描器、事務機在Linux上的支援,基本上是透過一個稱之為HPLIP的OpenSource專案(HP Linux Imaging and Printing (HPLIP)),它和HP的密切程度之高,我基本上認為它應該是HP公司在維護和開發的。
透過HPLIP,在Linux上我們能夠比較方便的設定印表機、掃描器、事務機,大致來說只需要執行:
hp-setup一問一答之間,就完成設定了,而能用的功能就是能用,不能用的功能,大概也沒機會可以用到了,真的是很方便。
CM1015有2個型號,分別在於有沒有網路的功能,價格大約差NT3000元,而這台專案機,原則上沒的挑,就是沒有網路。
不過這對我不是問題,我也不希望它有網路,畢竟接上File Server後,透過網路就能夠列印、掃描,加上File Server上數據機的傳真功能,這3000元實在沒有花的必要。
從買來的第一天開始,我就在關注HPLIP對CM1015的支援性,我本來以為這台機器不新,加上HP對Linux的支援性,應該都ok了,沒想到我還是高估了。
HPLIP一直以來,對CM1015都只支援列印功能,不支援掃描,這讓我很不舒服,畢竟花了這麼多錢,還要靠PSC 1315來掃描,那CM1015上的掃描器只是好看而已嗎.... :(
終於~HPLIP在2.8.10將CM1015的掃描功能加入了,我剛剛試用了,的確可以正常工作,這讓人非常興奮,CM1015終於正式變成事務機了。
最後提一下目前關於家中掃描、列印、傳真的整個配置:
列印部份:
使用CUPS進行列印的處理,這問題不大,設定很常見,在Windows、Linux上都能順利工作,網路列印也ok。
掃描部份:
Linux上的掃描器主要靠SANE,SANE是一個非常老牌的Linux掃描器系統,因為掃描器的硬體混亂,因此SANE本身分成前端、後端:
SANE前端:
SANE前端提供一些SANE的掃描軟體呼叫,對掃描器進行操作,在Linux上問題不大,基本上直接用xsane即可,在Windows上比較麻煩,Windows要透過TWAIN介面,而目前在Windows上TWAIN和SANE的溝通,主要是SaneTwain和XSANE,我個人認為,SaneTwain比較好用,而且順道一說,它目前的中文介面,是我幫忙翻譯的。
SANE前端要能夠讓Windows透過網路來溝通,必須要啟動saned這個daemon,只要run起來,就能夠讓其他SANE的掃描軟體透過網路和SANE前端溝通。
SANE後端:
SANE後端主要就是掃描器的驅動程式介面,各種掃描器驅動程式都可以透過SANE後端的介面,讓SANE可以支援,前面提到的HPLIP,它就是提供了SANE後端的介面,讓SANE後端可以連結HPLIP來對掃描器進行操作。
所以Linux的掃描功能,基本上只要SANE能夠搞定,一切都沒問題,要網路掃描,SANE也能做到,整體來說我是相當滿意的。
傳真部份:
我在Linux上的傳真,使用HylaFax這套傳真軟體,HylaFax分成Server和Client,File Server上安裝的自然就是HylaFax Server,而各個Client(包括Windows、Linux)都需要安裝HylaFax Client才能夠透過網路來傳真。
Linux上問題不大,GFax就支援HylaFax傳真,最慘下指令也能傳真,Windows上比較麻煩,我個人推薦Winprint HylaFAX,這套軟體能夠簡單的傳真,並且容易操作,缺點是,它無法取消傳真,也無法看目前收到的傳真。
為此,我的解決方案有2個:
1. 在File Server上另外建立一個資源分享,目錄指定到/var/spool/hylafax/recvq,這樣一來,透過網路芳鄰,就能夠簡單的瀏覽、刪除已收到的傳真。
2. 除了Winprint HylaFAX之外,另外搭配WHFC Windows HylaFAX client使用,這套軟體介面不好看,而且久久沒更新,但還算堪用。
有了上述的幾個部份互相搭配,只要在家裏,我可以透過有線網路、無線網路在任何地方直接列印、掃描、傳真任何資料,那麼~誰還需要多花NT3000元購買有網路功能的事務機呢?誰又需要購買列印伺服器呢?
2008年11月23日
我所知道的嵌入式系統
嵌入式系統是我近6年來不斷嘗試要摸索的東西,但是一直到現在,我都還沒有學會嵌入式系統。
blog一直到現在,好像也從來沒有寫過嵌入式系統相關的東西,因此就發一篇來說說我所知道的嵌入式系統。
早在8年前,我在讀二專時,當時我曾經有個疑惑,到底IP分享器是怎麼做的?
同樣是微電腦系統,IP分享器一台不過NT2000元,硬體應該跟8051差不多,那8051可以作成IP分享器?可以有網路功能?可以寫Visual C++程式嗎?
二專畢業後,我當兵去當替代役,在當時買了生平第一台,也是目前唯一一台的PDA~iPAQ 3970,當時我從網路知道,它是嵌入式系統,一些人用它來搞嵌入式的實驗和開發,因此我就買了,也嘗試灌Linux上去,還因此燒掛過2次機板,其中一次還是自費6000元換的。
當完兵回去念二技,在當時專題老師說有塊ARM的板子可以玩,我就自告奮勇,很興奮的接下來玩,在當時,我知道ARM是嵌入式系統,但不瞭解它們間的關係。
在當時,為了能夠瞭解嵌入式系統、ARM的開發,死k那厚厚的說明文件,還有參加嵌入式系統的研討會,不過對嵌入式系統一直瞭解得很模糊,直到一場在中國技術學院辦的研討會,其中一個主講者的一句話,我終於瞭解了,這也是我到現在對嵌入式系統的理解。
所謂的嵌入式系統,其實可以這樣解釋,就是「嵌入式作業系統」,它的本質,實際上就是把作業系統嵌入到某個硬體平台上,就叫做嵌入式系統。
但因為作業系統的定義其實有模糊地帶,所以嵌入式系統也被泛指各種微電腦系統,原因在於,所謂的作業系統,它可能很單純,但也可以很複雜,我們用個
裡面包入幾份工作,輪流的執行,這廣義的來說就算是作業系統。
因此很多微電腦系統都號稱是嵌入式系統,說起來也不完全是錯的。
而事實上,目前大部分指的嵌入式系統,多半是指32位元處理器形成的微電腦系統,並且在上面執行Linux、BSD、WinCE、WinXP這類的作業系統,這類客制化硬體 + 流行、功能強大的作業系統,是目前多半描述的嵌入式系統。
不過事實上,現在有些8051開發板,上面搭配了網路晶片、USB晶片,甚至音效晶片,並且在上面執行8051可以執行的簡易作業系統,這其實也是嵌入式系統的成員之一。
我們可以從上面我對嵌入式系統的名詞解釋(個人的理解),我們可以發現到,嵌入式系統包含了硬體、軟體、軔體(有時也稱驅動程式),因此嵌入式系統的門檻真的很高,我認為,一個嵌入式系統的工程師,至少需要具備一部分電子能力、一部分作業系統的瞭解、還程式開發的能力,我自認目前我還不具備上述所有的能力,至少每個部份我都還欠缺很多。
但同時,我認為35歲以下的年輕人(包括快30的我),要同時具備所有能力,應該很有難度,除非25歲就進入公司,並且被公司磨練了10年才有辦法。
而我認為,嵌入式系統要入門,有人帶的情況下,至少需要3年的時間,才能瞭解這些東西。
我在研究所至今,我必須說,我很不幸的遇到了很糟的老闆,以至於我唸了第四年,能不能畢業都還很難說,但最慘的是,我因此浪費了至少2年的嵌入式學習機會,儘管我老闆號稱做嵌入式系統,但其實他幾乎不瞭解嵌入式系統,我曾經聽他說過,他說「uC/OS這樣的作業系統,根本不能稱之為作業系統」,他也不懂硬體,看到電路、組合語言就完全畏懼,但很不幸的,我認為要搞嵌入式系統,這些是必要的。
因為正如我前面說過的,uC/OS和Linux相比,是一套小作業系統,但我們要開發商品或硬體,很多時候因為各種因素的限制(成本、體積、散熱、耗電...等),我們沒辦法使用32位元處理器,沒辦法有MB級的Flash,沒辦法有鋰電池電源,但是我們需要OS,這樣的系統它還是嵌入式系統,但沒辦法使用Linux、WinCE,因此uC/OS這類小型作業系統成了必要的選項。
此外,搞嵌入式系統,寫應用程式應該已經是非常幸福的了,因為沒有莫名其妙的問題,但既然是搞嵌入式系統,相信寫應用程式的應該是少數,就算是寫應用程式,也應該是受限制的嚴重,像是沒有加密函式庫,而像是.NET?我想應該很難看到他的身影,否則公司何必一個月NT40000請你呢?外包出去可能20000一週就能搞定了。
因此搞到軔體、驅動程式的機會其實很大,那麼在一個客制化硬體中寫軔體、驅動程式,不會碰到硬體IO、不會看到組合語言的機會有多大?我個人悲觀的認為並不大,因此,我會認為我老闆只是號稱做嵌入式系統,他其實對嵌入式系統並不瞭解。
我注意到這兩年嵌入式系統已經不像4,5年前那麼神秘了,被老闆綁越久,其實越難過,因為我很早就知道要走這條路,也很早就努力在摸索,但這兩年不但沒辦法進一步研究,還被綁著沒辦法出去,我估計再過2,3年,嵌入式系統的發展會更成熟,到時候人力需求會更少,相關的人才會更多(這兩年已經有這樣的傾向了)。
我認為,嵌入式系統在2年前甚至4年前,還是一團混亂,我認為這樣的情況會越來越少,我認為嵌入式系統在未來的發展,可能有幾個方向:
1. 開發走向標準化開發,會出現統一的開發方式,統一的函式庫
2. 會出現一些認證,因為目前嵌入式的工程師,程度差異性太大,像我老闆這樣「號稱」的人很多,因此認證變得有需要
3. 各層開發能夠分離,應用程式歸應用程式,作業系統歸作業系統,硬體歸硬體,能夠更有效的分散
4. 導入軟體工程,目前的嵌入式系統很亂,經常連開發時程都不好算,能不能開發出來都很難說,但軟體開發始終需要有計劃,否則對公司來說,漫無目的的砸錢並不是辦法,如何導入軟體工程,我相信目前還算是趨勢,套我之前學長說的,軟體工程中,說到itest這類測試工具,能夠有效的對程式開發時,錯誤的問題進行處理,但在嵌入式系統,三不五時就crash,不要說程式除錯,系統都死了怎麼除?顯然,軟工在這部分還有可以著墨的地方。
5. 硬體的相容性會越來越好,很難想像,嵌入式系統從8年前到現在,光OS的porting,就幾乎是非常大的問題,就算到現在,隨便一顆處理器的微電腦系統,要找到能用的作業系統都很難,要自己porting,還是只能看天,至於公司,除了求助硬體廠商之外,少不了至少3個工程師,花上2個月的時間進行porting,完畢後可能還需要2周,1個月進行測試,除了一堆bug後,工程師才會說「應該ok了」,所以我相信,這問題會逐步改善。
其實上述的問題,儘管我不喜歡M$,但不得不說,M$在嵌入式系統的發展上,很有計畫,而且做的很不錯。
1. M$把硬體相容性用驅動程式的概念來推行,在網頁直接列出某個版本的WinCE支援哪些硬體,並且新的WinCE都能支援舊的硬體,且不斷增加。
2. M$不得不說,對OS的Support至少是還ok的,讓硬體或軔體(驅動程式)廠商在開發WinCE時,不像Linux這麼無助。
3. M$把IE、Windows Media Player...等直接移植到WinCE,這讓開發多媒體、網路的廠商,可以不用辛苦的知道mplayer怎麼porting、mozilla怎麼porting就能直接開發多媒體、網路的產品。
4. M$直接提供 .NET CF...等函式庫,它知道開發嵌入式系統時,混亂的函式庫環境造成了多大的開發麻煩。
5. M$的共享程式碼計畫和龐大的WinCE架構(WinCE的一堆API),能夠讓嵌入式開發分層化,儘管因為架構很大很亂,分層起來還是很難搞,但至少有一堆interface,讓開發上能夠輕鬆些,Linux不得不說,這方面還是很亂,其他OS就更不用說了。
基於上述這些理由,還有M$對嵌入式的行銷,不得不說M$在嵌入式的市場真的是玩真的,而且這快10年的發展,真的讓M$在嵌入式的市場搶下很大的份額,至少手機、PDA部份,它吃掉了很大一塊,M$最近的新聞是,他要搞車用電腦。
blog一直到現在,好像也從來沒有寫過嵌入式系統相關的東西,因此就發一篇來說說我所知道的嵌入式系統。
早在8年前,我在讀二專時,當時我曾經有個疑惑,到底IP分享器是怎麼做的?
同樣是微電腦系統,IP分享器一台不過NT2000元,硬體應該跟8051差不多,那8051可以作成IP分享器?可以有網路功能?可以寫Visual C++程式嗎?
二專畢業後,我當兵去當替代役,在當時買了生平第一台,也是目前唯一一台的PDA~iPAQ 3970,當時我從網路知道,它是嵌入式系統,一些人用它來搞嵌入式的實驗和開發,因此我就買了,也嘗試灌Linux上去,還因此燒掛過2次機板,其中一次還是自費6000元換的。
當完兵回去念二技,在當時專題老師說有塊ARM的板子可以玩,我就自告奮勇,很興奮的接下來玩,在當時,我知道ARM是嵌入式系統,但不瞭解它們間的關係。
在當時,為了能夠瞭解嵌入式系統、ARM的開發,死k那厚厚的說明文件,還有參加嵌入式系統的研討會,不過對嵌入式系統一直瞭解得很模糊,直到一場在中國技術學院辦的研討會,其中一個主講者的一句話,我終於瞭解了,這也是我到現在對嵌入式系統的理解。
所謂的嵌入式系統,其實可以這樣解釋,就是「嵌入式作業系統」,它的本質,實際上就是把作業系統嵌入到某個硬體平台上,就叫做嵌入式系統。
但因為作業系統的定義其實有模糊地帶,所以嵌入式系統也被泛指各種微電腦系統,原因在於,所謂的作業系統,它可能很單純,但也可以很複雜,我們用個
while(1) {}裡面包入幾份工作,輪流的執行,這廣義的來說就算是作業系統。
因此很多微電腦系統都號稱是嵌入式系統,說起來也不完全是錯的。
而事實上,目前大部分指的嵌入式系統,多半是指32位元處理器形成的微電腦系統,並且在上面執行Linux、BSD、WinCE、WinXP這類的作業系統,這類客制化硬體 + 流行、功能強大的作業系統,是目前多半描述的嵌入式系統。
不過事實上,現在有些8051開發板,上面搭配了網路晶片、USB晶片,甚至音效晶片,並且在上面執行8051可以執行的簡易作業系統,這其實也是嵌入式系統的成員之一。
我們可以從上面我對嵌入式系統的名詞解釋(個人的理解),我們可以發現到,嵌入式系統包含了硬體、軟體、軔體(有時也稱驅動程式),因此嵌入式系統的門檻真的很高,我認為,一個嵌入式系統的工程師,至少需要具備一部分電子能力、一部分作業系統的瞭解、還程式開發的能力,我自認目前我還不具備上述所有的能力,至少每個部份我都還欠缺很多。
但同時,我認為35歲以下的年輕人(包括快30的我),要同時具備所有能力,應該很有難度,除非25歲就進入公司,並且被公司磨練了10年才有辦法。
而我認為,嵌入式系統要入門,有人帶的情況下,至少需要3年的時間,才能瞭解這些東西。
我在研究所至今,我必須說,我很不幸的遇到了很糟的老闆,以至於我唸了第四年,能不能畢業都還很難說,但最慘的是,我因此浪費了至少2年的嵌入式學習機會,儘管我老闆號稱做嵌入式系統,但其實他幾乎不瞭解嵌入式系統,我曾經聽他說過,他說「uC/OS這樣的作業系統,根本不能稱之為作業系統」,他也不懂硬體,看到電路、組合語言就完全畏懼,但很不幸的,我認為要搞嵌入式系統,這些是必要的。
因為正如我前面說過的,uC/OS和Linux相比,是一套小作業系統,但我們要開發商品或硬體,很多時候因為各種因素的限制(成本、體積、散熱、耗電...等),我們沒辦法使用32位元處理器,沒辦法有MB級的Flash,沒辦法有鋰電池電源,但是我們需要OS,這樣的系統它還是嵌入式系統,但沒辦法使用Linux、WinCE,因此uC/OS這類小型作業系統成了必要的選項。
此外,搞嵌入式系統,寫應用程式應該已經是非常幸福的了,因為沒有莫名其妙的問題,但既然是搞嵌入式系統,相信寫應用程式的應該是少數,就算是寫應用程式,也應該是受限制的嚴重,像是沒有加密函式庫,而像是.NET?我想應該很難看到他的身影,否則公司何必一個月NT40000請你呢?外包出去可能20000一週就能搞定了。
因此搞到軔體、驅動程式的機會其實很大,那麼在一個客制化硬體中寫軔體、驅動程式,不會碰到硬體IO、不會看到組合語言的機會有多大?我個人悲觀的認為並不大,因此,我會認為我老闆只是號稱做嵌入式系統,他其實對嵌入式系統並不瞭解。
我注意到這兩年嵌入式系統已經不像4,5年前那麼神秘了,被老闆綁越久,其實越難過,因為我很早就知道要走這條路,也很早就努力在摸索,但這兩年不但沒辦法進一步研究,還被綁著沒辦法出去,我估計再過2,3年,嵌入式系統的發展會更成熟,到時候人力需求會更少,相關的人才會更多(這兩年已經有這樣的傾向了)。
我認為,嵌入式系統在2年前甚至4年前,還是一團混亂,我認為這樣的情況會越來越少,我認為嵌入式系統在未來的發展,可能有幾個方向:
1. 開發走向標準化開發,會出現統一的開發方式,統一的函式庫
2. 會出現一些認證,因為目前嵌入式的工程師,程度差異性太大,像我老闆這樣「號稱」的人很多,因此認證變得有需要
3. 各層開發能夠分離,應用程式歸應用程式,作業系統歸作業系統,硬體歸硬體,能夠更有效的分散
4. 導入軟體工程,目前的嵌入式系統很亂,經常連開發時程都不好算,能不能開發出來都很難說,但軟體開發始終需要有計劃,否則對公司來說,漫無目的的砸錢並不是辦法,如何導入軟體工程,我相信目前還算是趨勢,套我之前學長說的,軟體工程中,說到itest這類測試工具,能夠有效的對程式開發時,錯誤的問題進行處理,但在嵌入式系統,三不五時就crash,不要說程式除錯,系統都死了怎麼除?顯然,軟工在這部分還有可以著墨的地方。
5. 硬體的相容性會越來越好,很難想像,嵌入式系統從8年前到現在,光OS的porting,就幾乎是非常大的問題,就算到現在,隨便一顆處理器的微電腦系統,要找到能用的作業系統都很難,要自己porting,還是只能看天,至於公司,除了求助硬體廠商之外,少不了至少3個工程師,花上2個月的時間進行porting,完畢後可能還需要2周,1個月進行測試,除了一堆bug後,工程師才會說「應該ok了」,所以我相信,這問題會逐步改善。
其實上述的問題,儘管我不喜歡M$,但不得不說,M$在嵌入式系統的發展上,很有計畫,而且做的很不錯。
1. M$把硬體相容性用驅動程式的概念來推行,在網頁直接列出某個版本的WinCE支援哪些硬體,並且新的WinCE都能支援舊的硬體,且不斷增加。
2. M$不得不說,對OS的Support至少是還ok的,讓硬體或軔體(驅動程式)廠商在開發WinCE時,不像Linux這麼無助。
3. M$把IE、Windows Media Player...等直接移植到WinCE,這讓開發多媒體、網路的廠商,可以不用辛苦的知道mplayer怎麼porting、mozilla怎麼porting就能直接開發多媒體、網路的產品。
4. M$直接提供 .NET CF...等函式庫,它知道開發嵌入式系統時,混亂的函式庫環境造成了多大的開發麻煩。
5. M$的共享程式碼計畫和龐大的WinCE架構(WinCE的一堆API),能夠讓嵌入式開發分層化,儘管因為架構很大很亂,分層起來還是很難搞,但至少有一堆interface,讓開發上能夠輕鬆些,Linux不得不說,這方面還是很亂,其他OS就更不用說了。
基於上述這些理由,還有M$對嵌入式的行銷,不得不說M$在嵌入式的市場真的是玩真的,而且這快10年的發展,真的讓M$在嵌入式的市場搶下很大的份額,至少手機、PDA部份,它吃掉了很大一塊,M$最近的新聞是,他要搞車用電腦。
2008年9月30日
FreeBSD NFS Client 與 not responding
長久以來,我家的NAT都是用FreeBSD,這在之前文章提過了。
因為系統精簡化,因此FreeBSD上面,現在只用CFtoIDE + 2G CF(創見266x)。
在原本的計畫中,我希望用的是1G CF,無奈266x的世界中,已經是2G起跳了.... :(
有用FreeBSD的人這時可能會問:「那port和src放哪?這兩個傢伙可是很肥的耶~」
我用NFS,把它們丟到File Server(Debian)上了。
ok...重點出現了~
在上次更新完畢之後,我的NAT就一直無法連上File Server的NFS,它可以連,建立檔案或目錄有時候也正常,但只要傳輸大檔案或者持續的改寫檔案(cvsup),就會出現.....
not responding
not responding
not responding
.....
這非常麻煩,不但檔案無法繼續傳輸,還會讓整個系統當掉。
以至於我的NAT有半年以上沒有make world和更新port了,非常不舒服~
上網路找資料發現,not responding很多人問,問的人多,但回答的少,不然就是跟我情況不同。
在經過了長久的嘗試之後,我終於發現問題所在了。
現在我在fstab中NFS的options改成如下設定:
192.168.1.6:/usr/freebsd_dir/src /usr/src nfs rw,nfsv3,tcp,noauto 0 0
簡單的說,我設定FreeBSD使用NFSv3,並且使用TCP protocol,問題就全部解決了。
由解答倒推問題原因,我認為FreeBSD的NFS預設應該是用UDP,可能我這邊網路環境並不大穩定,或者Debian上網路不大穩定(我這台Debian,網路卡是用atl1的driver,會有
atl1 0000:01:00.0: tx busy
的問題),因此NFS會有問題,改用TCP後就能夠解決了。
如果有其他人也有類似的問題,也許可以試試看~
因為系統精簡化,因此FreeBSD上面,現在只用CFtoIDE + 2G CF(創見266x)。
在原本的計畫中,我希望用的是1G CF,無奈266x的世界中,已經是2G起跳了.... :(
有用FreeBSD的人這時可能會問:「那port和src放哪?這兩個傢伙可是很肥的耶~」
我用NFS,把它們丟到File Server(Debian)上了。
ok...重點出現了~
在上次更新完畢之後,我的NAT就一直無法連上File Server的NFS,它可以連,建立檔案或目錄有時候也正常,但只要傳輸大檔案或者持續的改寫檔案(cvsup),就會出現.....
not responding
not responding
not responding
.....
這非常麻煩,不但檔案無法繼續傳輸,還會讓整個系統當掉。
以至於我的NAT有半年以上沒有make world和更新port了,非常不舒服~
上網路找資料發現,not responding很多人問,問的人多,但回答的少,不然就是跟我情況不同。
在經過了長久的嘗試之後,我終於發現問題所在了。
現在我在fstab中NFS的options改成如下設定:
192.168.1.6:/usr/freebsd_dir/src /usr/src nfs rw,nfsv3,tcp,noauto 0 0
簡單的說,我設定FreeBSD使用NFSv3,並且使用TCP protocol,問題就全部解決了。
由解答倒推問題原因,我認為FreeBSD的NFS預設應該是用UDP,可能我這邊網路環境並不大穩定,或者Debian上網路不大穩定(我這台Debian,網路卡是用atl1的driver,會有
atl1 0000:01:00.0: tx busy
的問題),因此NFS會有問題,改用TCP後就能夠解決了。
如果有其他人也有類似的問題,也許可以試試看~
2008年9月2日
VirtualBox小發現~電池電量顯示
2008年8月31日
NX Server 3.x 的新功能 (Linux上的遠端桌面)
這篇算是繼NX使用心得、新NX使用心得後,的小小新介紹。
NX細節就不說了,在目前 Linux 環境中,它算是相當優異的 遠端控制 軟體。
NX Server 2.x 甚至 1.x 有個功能,我們一直希望能提供,那就是類似 XP遠端桌面,或者 VNC 那樣(像 x11vnc那樣),可以直接操作目前 Linux 本機的畫面(在GNOME環境下,就是vino這套VNC Server提供的能力)。
這樣的功能其實在 NX Server 3.x 就已經支援了,算起來也提供了有半年以上了,不過本來一直沒注意,最近心血來潮才發現(這裡要抱怨一下,NX 的說明文件寫的真的是...,設定的部份帶個圖片就很清楚了,硬是讓我看了半天才看懂)。
那就直接進入主題了。
首先我們要先確定 NX Server 是 3.x 版,如下:

接下來我們要確定 NX Client 也是 3.x 版,如下:

NX Server 3.x 預設的設定,就能夠支援遠端桌面這樣的功能了。
接下來很容易,直接在設定部份設定如下:

使用時的連線則會顯示如下:

連線後畫面如下,而本機的螢幕畫面會更著變動:

完成。
相關設定的細節可以參考:
NX Server Administrator's Guide
NX細節就不說了,在目前 Linux 環境中,它算是相當優異的 遠端控制 軟體。
NX Server 2.x 甚至 1.x 有個功能,我們一直希望能提供,那就是類似 XP遠端桌面,或者 VNC 那樣(像 x11vnc那樣),可以直接操作目前 Linux 本機的畫面(在GNOME環境下,就是vino這套VNC Server提供的能力)。
這樣的功能其實在 NX Server 3.x 就已經支援了,算起來也提供了有半年以上了,不過本來一直沒注意,最近心血來潮才發現(這裡要抱怨一下,NX 的說明文件寫的真的是...,設定的部份帶個圖片就很清楚了,硬是讓我看了半天才看懂)。
那就直接進入主題了。
首先我們要先確定 NX Server 是 3.x 版,如下:

接下來我們要確定 NX Client 也是 3.x 版,如下:

NX Server 3.x 預設的設定,就能夠支援遠端桌面這樣的功能了。
接下來很容易,直接在設定部份設定如下:

使用時的連線則會顯示如下:

連線後畫面如下,而本機的螢幕畫面會更著變動:

完成。
相關設定的細節可以參考:
NX Server Administrator's Guide
2008年8月27日
EeePC 901在Ubuntu上得wireless、wired支援
正如前兩篇寫的,ITE後來送了我一台EeePC,意外的是,ITE是直接在PCHOME訂購的,所以直接就是PCHOME送來,當時送來的是EeePC 701(含webcam、白色)版本,後來經過了一番努力之後,它終於找到新主人,本來還擔心它新主人知不知道它的習性,後來面交時有詢問過,我也因此放心了,不然還擔心它會不會被遺棄或再換主人。
後來經過一番考慮後,我決定購買EeePC 901,考量因素有幾個:
1. Aspire One的SSD只有8G,而且是MLC,買SD是必要的,可是SD一張差不多就要1000,2000元
2. 除了SSD外,Aspire One的wireless只有802.11 b/g,沒有藍牙、802.11 n的支援
3. Aspire One的webcam是30萬像素,901是130萬像素
4. Aspire One的電池容量和901容量差很多
這些差異,價格差距卻在3000元,因此就決定買901了。
以上介紹完畢,正式進入這次的主題。
本篇文章同步po在mobile01的回覆中。
=================================
EeePC 在安裝 Ubuntu 時常見的問題主要是目前 Ubuntu 8.04 中的 Kernel 還不支援 EeePC 上有線、無線的網路卡,需要另外編譯 Kernel,不過.....
針對 Eee PC 的 Ubuntu Linux Kernel 已經有了,現在已經不需要辛苦的自己編譯 ralink module。
Kernel 的下載網址在Array.org EeePC Ubuntu Repository - Custom Linux Kernel,作者針對 Eee PC(包括901/1000/1000H) 製作了 Ubuntu 客制化的 Kernel Image 和 Module,並且持續提供更新。
目前它提供的 Kernel 包括下列部份:
1. Wired ethernet support (via atl1e module from Asus) (提供 EeePC 有線網路卡的 module 支援)
2. Wireless ethernet support (via rt2860sta module from Ralink) (提供 EeePC 無線網路卡的 module 支援)
3. Complete WEP and WPA wireless encryption support (via unreleased Ralink patch) (無線網路卡的 module 已經 patch 過,可以直接支援 WEP 和 WPA 無線網路模式)
4. Complete sound card support (via unreleased AlsaProject code) (完整音效卡支援)
5. ACPI with Bluetooth support (via patched eeepc-acpi module) (EeePC 內的 ACPI 能夠支援藍牙)
6. SMP enabled (for hyperthreading your Intel Atom CPU) (能支援 EeePC 中 ATOM CPU 的 HT 功能)
7. Simplified Persistent USB support (via an "always-on" patch) (USB 不知道什麼碗糕的 patch )
此外,根據網頁介紹,這個針對 EeePC 客制化的 Kernel,能讓開機時間快上 20~30 秒。
原文:Along with routine upstream updates, additional benefits include faster boot times (20-23 seconds), and pre-compiled eeepc & madwifi modules.
我的經驗是,使用它的 kernel 之後,有線網路直接就能看到,wireless 的部份還不太會開,需要 patch 讓 wireless 的功能鍵能夠動作。
設定 wireless 功能鍵,我是參考EeeUser ASUS Eee PC Forum / [HELP NEEDED] Ubuntu-Support-Script for EeePC 901/1000/1000H的這個設定。
設定方法就按照它作法即可。
這時候也許會問,我 EeePC 現在裝好 Ubuntu 8.04 就是沒網路,那這些要怎麼搞?
可以準備一個 SD,容量不拘,大概只需要 128MB 就夠了。
把前面提到的 Kernel、Module 和 wireless 功能鍵 的 patch 檔案放進 SD,連結分別是:
ACPI_scripts-EeePC_901_1000.tar.gz
Linux Kernel(linux-image-2.6.24-21-eeepc_2.6.24-21.39eeepc1_i386.deb)
Linux Module(linux-ubuntu-modules-2.6.24-21-eeepc_2.6.24-21.30eeepc3_i386.deb)
把 SD 插入 EeePC 當中,Ubuntu 就能自動找到並掛載了。
接著打開終端機,並按照下列動作操作:
目前我所感覺到還需要 patch 的部份,大概就是 wireless 功能鍵,上述的 patch 似乎只有 wireless 的開關,沒有 wireless開 / 藍牙開 / wireless+藍牙 開 / 全關 這樣的切換,看起來需要在翻些資料來修改它的內容,不過目前我都還沒用到 藍牙,因此這對我還不是個問題。
最後一點,以上動作我都操作過沒問題,我的環境是 EeePC 901。
後來經過一番考慮後,我決定購買EeePC 901,考量因素有幾個:
1. Aspire One的SSD只有8G,而且是MLC,買SD是必要的,可是SD一張差不多就要1000,2000元
2. 除了SSD外,Aspire One的wireless只有802.11 b/g,沒有藍牙、802.11 n的支援
3. Aspire One的webcam是30萬像素,901是130萬像素
4. Aspire One的電池容量和901容量差很多
這些差異,價格差距卻在3000元,因此就決定買901了。
以上介紹完畢,正式進入這次的主題。
本篇文章同步po在mobile01的回覆中。
=================================
EeePC 在安裝 Ubuntu 時常見的問題主要是目前 Ubuntu 8.04 中的 Kernel 還不支援 EeePC 上有線、無線的網路卡,需要另外編譯 Kernel,不過.....
針對 Eee PC 的 Ubuntu Linux Kernel 已經有了,現在已經不需要辛苦的自己編譯 ralink module。
Kernel 的下載網址在Array.org EeePC Ubuntu Repository - Custom Linux Kernel,作者針對 Eee PC(包括901/1000/1000H) 製作了 Ubuntu 客制化的 Kernel Image 和 Module,並且持續提供更新。
目前它提供的 Kernel 包括下列部份:
1. Wired ethernet support (via atl1e module from Asus) (提供 EeePC 有線網路卡的 module 支援)
2. Wireless ethernet support (via rt2860sta module from Ralink) (提供 EeePC 無線網路卡的 module 支援)
3. Complete WEP and WPA wireless encryption support (via unreleased Ralink patch) (無線網路卡的 module 已經 patch 過,可以直接支援 WEP 和 WPA 無線網路模式)
4. Complete sound card support (via unreleased AlsaProject code) (完整音效卡支援)
5. ACPI with Bluetooth support (via patched eeepc-acpi module) (EeePC 內的 ACPI 能夠支援藍牙)
6. SMP enabled (for hyperthreading your Intel Atom CPU) (能支援 EeePC 中 ATOM CPU 的 HT 功能)
7. Simplified Persistent USB support (via an "always-on" patch) (USB 不知道什麼碗糕的 patch )
此外,根據網頁介紹,這個針對 EeePC 客制化的 Kernel,能讓開機時間快上 20~30 秒。
原文:Along with routine upstream updates, additional benefits include faster boot times (20-23 seconds), and pre-compiled eeepc & madwifi modules.
我的經驗是,使用它的 kernel 之後,有線網路直接就能看到,wireless 的部份還不太會開,需要 patch 讓 wireless 的功能鍵能夠動作。
設定 wireless 功能鍵,我是參考EeeUser ASUS Eee PC Forum / [HELP NEEDED] Ubuntu-Support-Script for EeePC 901/1000/1000H的這個設定。
設定方法就按照它作法即可。
這時候也許會問,我 EeePC 現在裝好 Ubuntu 8.04 就是沒網路,那這些要怎麼搞?
可以準備一個 SD,容量不拘,大概只需要 128MB 就夠了。
把前面提到的 Kernel、Module 和 wireless 功能鍵 的 patch 檔案放進 SD,連結分別是:
ACPI_scripts-EeePC_901_1000.tar.gz
Linux Kernel(linux-image-2.6.24-21-eeepc_2.6.24-21.39eeepc1_i386.deb)
Linux Module(linux-ubuntu-modules-2.6.24-21-eeepc_2.6.24-21.30eeepc3_i386.deb)
把 SD 插入 EeePC 當中,Ubuntu 就能自動找到並掛載了。
接著打開終端機,並按照下列動作操作:
| 1. 切換到 SD 的路徑 cd /media/disk 2. 安裝 Linux Kernel 和 Module sudo dpkg -i linux-image*.deb linux-ubuntu-modules*.deb 3. 切換到 暫存區 路徑 cd /tmp 4. 將 wireless 功能鍵 patch 壓縮檔解開 tar zxvf /media/disk/Ubuntu_ACPI_scripts-EeePC_901_1000.tar.gz 5. 安裝 wireless 功能鍵 patch cd Ubuntu_ACPI_scripts-EeePC_901_1000/ chmod +x install.sh sudo ./install.sh 6. 重新開機,並享用 EeePC 上的 Ubuntu reboot |
目前我所感覺到還需要 patch 的部份,大概就是 wireless 功能鍵,上述的 patch 似乎只有 wireless 的開關,沒有 wireless開 / 藍牙開 / wireless+藍牙 開 / 全關 這樣的切換,看起來需要在翻些資料來修改它的內容,不過目前我都還沒用到 藍牙,因此這對我還不是個問題。
最後一點,以上動作我都操作過沒問題,我的環境是 EeePC 901。
2008年8月26日
Linux的RAM Disk(資料不消失版)
RAM Disk是一個非常方便的東西,尤其現在DDR2的RAM很便宜時,善用RAM Disk可以有很大的效能改善。
雖然RAM Disk已經不是什麼新鮮的東西了,但是這次我針對Linux上的RAM Disk Script加入了開/關機備份/還原的功能,應該就很少見了。
我個人認為Linux上的RAM Disk比Windows和FreeBSD來得方便好用,Linux的shm(Share Memory)實在太強大了。
在Windows上,RAM Disk的軟體不少,但多半都是切割一塊RAM當磁碟,舊版的FreeBSD上也是(FreeBSD的tmpfs實做在FreeBSD 7.0開始提供~),在Linux上,因為tmpfs技術的關係,能夠直接使用Share Memory當成檔案系統來使用,因此能讓檔案系統上的資料能複製到Share Memory當中,和其他process共用Memory。這樣的優點是,系統記憶體和RAM Disk是共用的,RAM Disk不需要額外割一塊出來,舉個例子:
假設RAM有1024MB(1G),我要512MB的RAM Disk
在Windows、FreeBSD上,系統記憶體就只剩下512MB,另外512MB變成一個RAM Disk。
而在Linux上,系統記憶體還是1024MB(1G),假如我在RAM Disk上吃掉了100MB的空間,則系統記憶體會變成924MB,而RAM Disk(Share Memory)的上限是多少?1024MB嗎?
這可以自己設定,系統預設是RAM的一半,以這例子來說,Linux預設的RAM Disk(Share Memory)就是512MB。
RAM Disk速度很快,尤其是拿來compile kernel時特別明顯,可以明顯感受到,花費的時間比較短,這要歸功於Linux Kernel Source Code很大,所以感受得出來。
另一個重要的場合大概就是Eee PC這類輕巧筆電了,輕巧筆電因為「輕巧」、「價格」...等因素,往往硬碟很小,而且硬碟經常速度很慢(EeePC 900、901的第二顆Flash,Aspire one 110的8G Flash),在無法擴充或是擴充價格很誇張時,加大RAM並善用它變得很重要,因此在輕巧筆電上設定RAM Disk,幾乎是「必要的設定」(不論是XP或Linux)。
RAM Disk的致命傷就是重開機資料就消失,稍微搜尋後可以發現,Windows上已經有不少人提供備份、還原的script,搭配XP Pro的系統原則就可以在關機時備份RAM Disk的資料,那Linux呢?就在這裡啦~~
首先,我RAM Disk的建立,是使用[閒聊]有趣的 tmpfs最後的script版本,並不是寫在/etc/fstab當中。
RAM Disk(tmpfs)的詳細介紹可以參考Tsung's Blog的拿 RAM 當硬碟來用(RAM Disk),作者把所有的tmpfs建立方法全部敘述了,內容清楚明確,非常值得參考,我使用的屬於方法一。
簡單敘述建立RAM Disk的方法:
1. 把下列script內容編輯,並存檔為/etc/init.d/mounttmpfs.sh
2. 執行
3. 重新開機
4. 複製個檔案 (cp /boot/* /tmp/) 到 /tmp 執行 df,查看 /dev/shm 的使用空間有沒有變化,有變化就是成功了。
接下來,我們進一步來玩Backup/Restore的部份,如下:
1. 把下列script存檔為/etc/init.d/backuptmpfs.sh
2. 把下列script存檔為/etc/init.d/restoretmpfs.sh
3. 執行下列指令:
4. 執行下列指令建立排除檔案列表
5.完成
上述程式說明:
簡單的說,我改了2個script,一個用在關機時備份RAM Disk,一個用在開機時還原RAM Disk。
關機時備份RAM Disk的叫做backuptmpfs.sh,它會在inittab狀態為0和6時執行(放到rc0.d和rc6.d),0和6分別是關機狀態和重新開機狀態。
開機時還原RAM Disk的叫做restoretmpfs.sh,「它必須在 mounttmpfs.sh 之後執行」,它會在開機時,建立RAM Disk之後,將RAM Disk資料還原回去。
為什麼不整合到mounttmpfs.sh之中呢?
我試過了,它似乎會和mount --bind衝突,可能需要delay一點時間吧。
由於RAM Disk中,通常會放置Firefox的暫存目錄,我們不希望所有東西都備份,因此我們要設定個排除檔案名單,將特定的目錄或檔案排除。
排除名單放在/etc/non-list,只需要把不要備份的名稱加入即可
以Firefox的暫存目錄來說,Firefox會自動建立暫存目錄/tmp/Cache,我們只需要在/etc/non-list中寫上:
如果我們希望排除多個檔案或目錄,例如檔案「EEE」和目錄「Cache」,則在/etc/non-list中寫上:
備份的檔案會存在哪裡?檔名是什麼呢?
備份的檔案會存為/RAMDISK_bak.tar,會在還原後自動刪除。
此外,為了安全性的考量,/RAMDISK_bak.tar的權限會設為600。
最後,因為這是第一版,所以我並沒有將上面提到的參數設為變數,不過這幾個script並不複雜,相信稍微看一下,就能夠看懂並修改,歡迎大家修改使用,改過後記得再貼出來造福更多人。
雖然RAM Disk已經不是什麼新鮮的東西了,但是這次我針對Linux上的RAM Disk Script加入了開/關機備份/還原的功能,應該就很少見了。
我個人認為Linux上的RAM Disk比Windows和FreeBSD來得方便好用,Linux的shm(Share Memory)實在太強大了。
在Windows上,RAM Disk的軟體不少,但多半都是切割一塊RAM當磁碟,舊版的FreeBSD上也是(FreeBSD的tmpfs實做在FreeBSD 7.0開始提供~),在Linux上,因為tmpfs技術的關係,能夠直接使用Share Memory當成檔案系統來使用,因此能讓檔案系統上的資料能複製到Share Memory當中,和其他process共用Memory。這樣的優點是,系統記憶體和RAM Disk是共用的,RAM Disk不需要額外割一塊出來,舉個例子:
假設RAM有1024MB(1G),我要512MB的RAM Disk
在Windows、FreeBSD上,系統記憶體就只剩下512MB,另外512MB變成一個RAM Disk。
而在Linux上,系統記憶體還是1024MB(1G),假如我在RAM Disk上吃掉了100MB的空間,則系統記憶體會變成924MB,而RAM Disk(Share Memory)的上限是多少?1024MB嗎?
這可以自己設定,系統預設是RAM的一半,以這例子來說,Linux預設的RAM Disk(Share Memory)就是512MB。
RAM Disk速度很快,尤其是拿來compile kernel時特別明顯,可以明顯感受到,花費的時間比較短,這要歸功於Linux Kernel Source Code很大,所以感受得出來。
另一個重要的場合大概就是Eee PC這類輕巧筆電了,輕巧筆電因為「輕巧」、「價格」...等因素,往往硬碟很小,而且硬碟經常速度很慢(EeePC 900、901的第二顆Flash,Aspire one 110的8G Flash),在無法擴充或是擴充價格很誇張時,加大RAM並善用它變得很重要,因此在輕巧筆電上設定RAM Disk,幾乎是「必要的設定」(不論是XP或Linux)。
RAM Disk的致命傷就是重開機資料就消失,稍微搜尋後可以發現,Windows上已經有不少人提供備份、還原的script,搭配XP Pro的系統原則就可以在關機時備份RAM Disk的資料,那Linux呢?就在這裡啦~~
首先,我RAM Disk的建立,是使用[閒聊]有趣的 tmpfs最後的script版本,並不是寫在/etc/fstab當中。
RAM Disk(tmpfs)的詳細介紹可以參考Tsung's Blog的拿 RAM 當硬碟來用(RAM Disk),作者把所有的tmpfs建立方法全部敘述了,內容清楚明確,非常值得參考,我使用的屬於方法一。
簡單敘述建立RAM Disk的方法:
1. 把下列script內容編輯,並存檔為/etc/init.d/mounttmpfs.sh
#!/bin/sh
#
# mounttmpdir Mount /tmp after mounvirtfs exec-ed
#
# Version: @(#)mounttmpdir 0.01 24-Dec-2004 antony shen
# 參考網址:http://moto.debian.org.tw/viewtopic.php?t=4100&highlight=shm
# 執行指令:update-rc.d mounttmpfs.sh start 37 S .
#
# Script needs to be robust and continue when parts fail,
# so we're not setting the "-e" flag.
#set -e
PATH=/lib/init:/bin:/sbin
if [ -d /dev/shm ]
then
if [ ! -d /dev/shm/tmp ]
then
echo -n "Mounting tmpfs(/tmp,/var/tmp) under /dev/shm..."
mkdir /dev/shm/tmp
mkdir /dev/shm/vtmp
chmod 1777 /dev/shm/tmp
chmod 1777 /dev/shm/vtmp
mount --bind /dev/shm/tmp /tmp
mount --bind /dev/shm/vtmp /var/tmp
echo "OK."
fi
else
echo "Failed to find /dev/shm, unable to link /tmp under it!"
fi2. 執行
update-rc.d mounttmpfs.sh start 37 S .3. 重新開機
4. 複製個檔案 (cp /boot/* /tmp/) 到 /tmp 執行 df,查看 /dev/shm 的使用空間有沒有變化,有變化就是成功了。
接下來,我們進一步來玩Backup/Restore的部份,如下:
1. 把下列script存檔為/etc/init.d/backuptmpfs.sh
#!/bin/sh
#
# 參考 mounttmpfs.sh 修改而成
#
# Version: @(#)backuptmpfs.sh 0.01 2008-08-26 YCFu
# 執行指令:update-rc.d backuptmpfs.sh stop 1 0 6 .
#
# Script needs to be robust and continue when parts fail,
# so we're not setting the "-e" flag.
#set -e
PATH=/lib/init:/bin:/sbin
if [ -d /dev/shm ]
then
if [ -d /dev/shm/tmp ]
then
echo -n "Backup tmpfs(/tmp) to /RAMDISK_bak.tar..."
tar -X /etc/non-list -C /tmp -cf /RAMDISK_bak.tar .
chmod 600 /RAMDISK_bak.tar
echo "OK."
fi
else
echo "Backup Fail!"
fi2. 把下列script存檔為/etc/init.d/restoretmpfs.sh
#!/bin/sh
#
# 參考 backuptmpfs.sh 修改而成
#
# Version: @(#)backuptmpfs.sh 0.01 2008-08-26 YCFu
# 執行指令:update-rc.d restoretmpfs.sh start 38 S .
#
# Script needs to be robust and continue when parts fail,
# so we're not setting the "-e" flag.
#set -e
PATH=/lib/init:/bin:/sbin
if [ -f /RAMDISK_bak.tar ]
then
echo -n "Restore tmpfs(/tmp) from /RAMDISK_bak.tar..."
tar -C /tmp -xf /RAMDISK_bak.tar
rm /RAMDISK_bak.tar
echo "OK."
fi
3. 執行下列指令:
update-rc.d restoretmpfs.sh start 38 S .
update-rc.d backuptmpfs.sh stop 1 0 6 .4. 執行下列指令建立排除檔案列表
touch /etc/non-list5.完成
上述程式說明:
簡單的說,我改了2個script,一個用在關機時備份RAM Disk,一個用在開機時還原RAM Disk。
關機時備份RAM Disk的叫做backuptmpfs.sh,它會在inittab狀態為0和6時執行(放到rc0.d和rc6.d),0和6分別是關機狀態和重新開機狀態。
開機時還原RAM Disk的叫做restoretmpfs.sh,「它必須在 mounttmpfs.sh 之後執行」,它會在開機時,建立RAM Disk之後,將RAM Disk資料還原回去。
為什麼不整合到mounttmpfs.sh之中呢?
我試過了,它似乎會和mount --bind衝突,可能需要delay一點時間吧。
由於RAM Disk中,通常會放置Firefox的暫存目錄,我們不希望所有東西都備份,因此我們要設定個排除檔案名單,將特定的目錄或檔案排除。
排除名單放在/etc/non-list,只需要把不要備份的名稱加入即可
以Firefox的暫存目錄來說,Firefox會自動建立暫存目錄/tmp/Cache,我們只需要在/etc/non-list中寫上:
Cache如果我們希望排除多個檔案或目錄,例如檔案「EEE」和目錄「Cache」,則在/etc/non-list中寫上:
Cache
EEE備份的檔案會存在哪裡?檔名是什麼呢?
備份的檔案會存為/RAMDISK_bak.tar,會在還原後自動刪除。
此外,為了安全性的考量,/RAMDISK_bak.tar的權限會設為600。
最後,因為這是第一版,所以我並沒有將上面提到的參數設為變數,不過這幾個script並不複雜,相信稍微看一下,就能夠看懂並修改,歡迎大家修改使用,改過後記得再貼出來造福更多人。
訂閱:
文章 (Atom)

