星期三, 十一月 30, 2005

filckr 的photo link 備份

因為我是窮人,沒有pro的帳號,只有200張的link可以用。所以只好自己把link記起來...
advsetdialnonewmodempasswordselectadvsetselectcomportInkscapesiteopenworkbenchsiteaxd_config_selecttargetaxd_config_target_addAXD_SelectimgAXD_loadimgAXD_OpenSourceAXD_ViewSourcephone-dryergoogleOSgoogleOS_2picint_structRS232SampleSearchThisBlogBlogSearchThinkFreeOnline_folderThinkFreeOnline_wordlighttpd6flavorseafoodBBQChickenNewoleanChickenpizzahutaddress050918 002050918 017050918 018050918 020050918 022050918 023050918 025050918 026050918 036050918 038050918 046RX_NOWORKtreo700typhonpathmoonlakeGpsdrivemapserver051001 006051001 007051001 008051001 013051001 017051001 027051001 032051001 033051001 035051001 036051001 043051001 044051001 047051001 050051001 051051001 053051001 054051001 055051001 056051001 058051001 061051001 064051001 069051001 072051001 073051001 076051001 078051001 081051001 082051001 083051001 084051001 086051001 087googlereaderTheHitchikersGuideTotheGalaxycollagecollage1collage2collage3collage4collage5DSC00461DSC00462AUD00064_1Mbaddylistcollage6DSC00467DSC00468collage7DSC00477DSC00497DSC00498DSC00498DSC00499DSC00500DSC00501DSC00504DSC00505DSC00506DSC00507DSC00508DSC00510DSC00512DSC00515DSC00515DSC00518DSC00520DSC00521

wavecom - test

安裝VC6,再安裝OA跟OA dev tool。
裝OA時會自動偵測是否已經安裝Cygwin。
如果沒有,他會幫你裝。但是因為他的Cygwin Setup版本太舊,安裝會不成功。
所以自己到Cygwin 網站去run setup。

說明寫要將所有的Cygwin都裝進去(約700 M的source...),太大。所以我裝Default。
裝完Cygwin後再裝OA , OA dev tool。他發現我已經有Cygwin了,所以就沒叫我再裝一次。就直接copy arm-gcc。
安裝順利...

Test...
New一個project,出現找不到xsltproc..這應該是Cygwin沒裝到的部份。
再到Cygwin網站執行install,在 devel 下有libxslt,選擇Install,他會同時install一些xml的東西。

安裝完後再new一個project。已經OK。也可以build.

The Definic Guide to GCC - 筆記 I

p.70
Build Source的步驟分為: 1.Preprocess 2.Compile 3.Assemble 4.Link
這四步驟GCC都可以自動工作。他是依照目標的副檔名來決定要作那一個動作:
1. .c, .C, .cc, .cpp, .cxx  : preprocess
2. .i, .ii : compile
3. .m : object C source code
4. .h : header
5. .s : assemble
6. .S : need preprocess assemble source
也 可以用 -x lang 指令指定類型。lang就是檔案類型,可以是:
c, object-c, c++, c-header, cpp-output,  c++-cpp-output,  assembler,  assembler-with-cpp.
另外,以下是用來控制compile process的選項:
 -c  : Link前終止。(compile only)
-E : preprocess後終止
-o file : 把輸出寫在 file 中
-S : 產生assembly後終止
-x lang : 其後所有檔案的語言都視為 lang
-x none: 取消上一個 -x lang的設定
GCC在處理後會用default的檔名和副檔名,例如 -c option作compile動作後產生objec檔,會以 .0 為副檔名。
用 -E 選項後會將結果輸出到standard out。所以要存檔的話,要用管線扶符號 " > " 重導到檔案。
用 -S 選項後會產生preprocess

星期二, 十一月 29, 2005

LinuxBIOS - workrecord

因為board是82845G,但是現有LinuxBIOS沒有支援,所以找找看有沒有相近的:
src/northbridge/intel中有i855pm。其他都是server用的chipset。所以就以這個為reference。
找到mainboard是digitallogic/adl855pc

找LinuxBIOSv1的northbridge,有82860, 82830, 82815ep.
82815ep是SDRAM,所以可能差異比較大。
v1的build process和v2差異很大......所以還是ref i855pm好了....

LinuxBIOSv1的HOWTO說明還需要去download kernel source code,加上pacth後才能使用v1的Makefile來build。
但是LinuxBIOSv3的HOWTO已經沒看到要download kernel source了。難道已經boundle在LinuxBIOSv2的distribution中了? Trace一下build process..

Make的動作是由target下的board開始,/targets/intel/xe7501devkit/xe7501devkit/Makefile..
all: ./linuxbios.rom
normal/linuxbios.rom: cd normal make linuxbios.rom
到board下可以看到normal folder。就是這裡的Makefile...這個Makefile就直接的加入各個.c module。...ldscript的位置,crt0.s....etc。所以這個大概就是root Makefile。

這個Makefile看到crt0S是由CRT0_INCLUDE組合而成?
CRT0_INCLUDE又是由一堆include依序組合?
因為這個makefile也是generate出來的,所以猜CRT0_INCLUDE-->crto.S-->crt0.s 應該是一種assembly的code-gen動作(猜的)

在normal下有Makefile,Makefile.settings。這兩個都是auato-generate出來的。
Makefile.settings中定義了Makefile中使用到的變數,比較重要的有:
CRT0:=$(TOP)/src/arch/$(ARCH)/init/crt0.S.lb
在make時snap output,配合normal/Makefile和Makefile.settings可以看到整個build process
$ make 2 >&1  tee outputfile
Makefile Generator : 從buildtarget script看到,script是在util/newconfig下的python script

Linux 的internet proxy server

是用apt-file search proxy 然後一個一個google package name得到的:

tinyproxy

Lightweight HTTP proxy,好像著重在管理,不在cache,因為lightweight,所以很快,也很適合修改source code,做出符合自己需要的版本。

tidy-proxy

用perl 寫的proxy,?詳細不太了解。

transproxy

好像不是proxy,是要和iptable, squid一起使用,會自動intercept package,re-direct to correct proxy server。

Filterproxy

一般的http proxy,可以用來filter任何使用http的data。project重點在filter,可以自己寫filter rule,對data內容作修改(strip image,, etc)

ftpproxy

FTP gateway,application level。在client和server間forward符合RFC 959的protocol。

Webcleaner

比較像http filter,會辨識HTML tag,javascript,stripe不需要的資料。

這一邊有一堆http proxy

很 清楚的list。
試裝了tinyproxy:
#aptitude install tinyproxy
和一般debian的package一樣,在/etc/init.d/下會有tinyproxy 這個start/stop script。
設定檔在/etc/tinyproxy/tinyproxy.conf。
修 改tinyproxy.conf。其中...
Listen  192.168.0.1
要改成對內的ip。
Allow 127.0.0.1
要把client的ip也加進去..
Allow 127.0.0.1
Allow 10.3.5.0/25
25是mask,代表25個bit。也就是。
修改好後,和一般server一樣
# /etc/init.d/tinyproxy start
在log file : /var/log/tiny.log可以看到起動的message。
Browser的設定:
就是將http proxy設在tinyproxy對內的ip,port 8888就可以。
連線後可以在log中看到連線資料
測試firefox 連線OK,MSN OK。IE OK。
但是FTP不OK。查看log : /var/log/tinyproxy.log。出現
Request CONNECT 10.3.2.199:8888 HTTP/1.1
Refused CONNECT method on port 8888
Not sending client message to remote machine
猜測是CONNECT method受到限制。
check /etc/tinyproxy.conf。有:
ConnectPort 443
ConnectPort 563
comment是說這是限制CONNECT command能夠使用的port,default只有開啟SSL使用的port。
所以ftp的port 21就不能用CONNECT command了。
修改...(把這兩行comment掉,就是allow all port)。
再試一次。OK
FTP一樣要設proxy, port和passive mode。

星期一, 十一月 28, 2005

Winbond W78E58B : 華邦的9051變種MCU

spec在Winbond網站可以downlaod (http://www.winbond-usa.com/products/winbond_products/pdfs/8-bit/W78E58Bg.pdf)
核心是8052,另外增加:
32K ROM
4K AUX ROM - ISP loader code
512 RAM (其中256是AUX RAM)
4 個IO Port.

RAM

00H-7FH: 直接/間接定址
80H-FFH: 間接定址
AUX 00H-FFH: 間接定址,使用MOVX指令
AUX RAM rese 後是disabled,要將CHPCON的bit 4 設定後,才會將這個RAM開啟。
因為這是從CPU Core修改的功能,所有MOVX @R0/1的動作都會對應到AUX RAM,而不會影響到外部。同時,也不會影響P0/P2的動作(一般MOVX 指令會使用P0/P2作為bus line)。

In System Programming (ISP) Mode

利用另外提供的4K ROM,可以作ISP的動作。
對read-only的CHPCON register寫入87H,59H後會開啟CHPCON的write mode,對CHPCON的bit更動,可以讓MCU進行(wakeup後執行4K ROM的program,MCU reset..等動作)。
programming相關的SFR:
SFRAH,SFRAL:燒寫的高/低位址
SFRFD:燒寫的資料
SFRCN:control byte of on-chip ROM progamming mode

SFRCN.6 (WFWIN) : 0 - 燒錄32K ROM
1 - 燒錄 4K ROM區域(AUX ROM)

W78E58B_SFCNspec 後附ISP的sample code。

使 用祥曦的P-ICE來作模擬時....

要使用到AUX RAM的功能(ISP就不用想了,一定是不可能模擬,除了jtag, embedded trace cell type的cpu外,沒有看過可以模擬ISP功能的MCU)。要follow deemax網站討論區的這一篇: 為甚麼P-ICE無法模擬W78E65Pㄋ
其實也不是甚麼密技,只是deemax的人不把他寫在Help中,所以如果不到討論區去問一下,應該沒有人會知道,要把JUMP設成BUS,然後又不能完全follow help的內容。要把P2設成IO。

所以說這些作tools的人很奇怪,既然是賣tool,有寫明有支援W78E58B,實際上也可以支援,但是在操作手冊中就是不說。讓人try了大半天,罵了大半天候,耐著性子到討論區去問,才給回答。
....但是這時候........已經對deemax沒甚麼好感了。

但是偉大的是,你問他為什麼不在手冊中寫清楚呢?(要不然就在W78E58B中註明限制)。
還有人會還回答說: ..其實這一家已經算很好了,問問題還會回答,像XXX和OOO,問題就像是石沉大海...
....所以?是在比誰比較爛就是了?

抱怨這麼多,設定還是要寫一下:
  1. 將target POD的X1,X3,X9 Close (P0/P2 as BUS)
  2. 將cpu的EA 接到High (disable EA)
  3. 將WUIT的P2ASIO enable起來
  4. 注意: Target POD上的CPU要有on-chip XData。WUIT emulate targt也要選有的
  5. Code : 在使用pdata前要enable:
    sfr CHPENR = 0xF6;
    sfr CHPCON = 0xBF;
    ......
    CHPENR = 0x87; // enable CHPCON write
    CHPENR = 0x59;
    CHPCON = CHPCON | 0x10; // write to CHPCON, enable AUX-RAM
    CHPENR = 0x00; // back to normal CHPCON write-disable
    ...

星期五, 十一月 25, 2005

Keil 51 Compiler的memory model and Optimize

Memory Model

Keil C 51的Memory有三種:
Small  :  variable in DATA
Compact: variable in PDATA
Large : variable in XDATA
其中variable的意思是指 宣告在function中的local variable。
雖然依照一般C的implementation,function的local variable應該要從stack中allocate,但是可能是為了防止Stack過深,超過51的限制(51的stack是在idata)。所以 compiler會自動作function間的dependency checking,採用共用變數的方式,將local variable放在 _DATA_GROUP_。
Compiler的選項:Small,Compact,Large的設置就是決定這個segment存放的記憶體位置。
Small   : variable in  DATA,會將所有local variable放在 DATA,segment name叫_DATA_GROUP.
Compact : variable in PDATA,會將所有local variable放在PDATA,segment name叫_PDATA_GROUP_.
Large : variable in XDATA,會將所有local variable放在XDATA,segment name叫_XDATA_GROUP_.

PDATA,XDATA都在外部,但是PDATA是在位址256以內,所以使用R0/R1 就可以index到,不需要用DPTR。
但是PDATA的size也被限制在256。
複習一下51的memory architeture,51內部有記憶體,但是也可以外加記憶體,使用外加的記憶體時,同時可以使用內不的記憶體。
用兩個不同的指令來區分對內部和外的memory動作:
MOV  : 對內
MOVX : 對外
對外的操作一定要用間接定址,index register可以用dptr或是R0/1。
對 內的操作,因為受到51是8bit cpu的影響,一個instruction只有8 bit,所以只能直接address到1/2 byte的位址空間(128 byte),在128 byte以內,可以用直接和間接定址,128到256之間一定要用間接定址。
其他的問題:Keil採用Compiler決定 function depenency,使用function pointer時怎麼辦?

Optimize Level


51 雖然有一般用途的stack和stack pointer,但是Keil C51並沒有真的像標準的C compiler一樣,將function local variable 放在stack中,反而是將local variable都自行allocate在RAM中固定位置,另外利用Compiler作function dependency tree。決定function間共用variable的時機。
這要enable optimize : 2 - Data Overlaying,才會啟動。否則Keil C不會check function dependency而共用local variable。

所以enable optimize 2以上,對RAM用量影響很大。

另外一個影響RAM用量的optimize的level是 4 : register variable。會在容許的時候,使用register作為local variable。這樣也可以節省ram的使用。但是register 的local variable在debug時無法顯示出來。必須要自己去找出register才行。

Intel 82845G GMCH Overview 筆記

從intel 網站download的datasheet : http://www.intel.com/design/chipsets/datashts/290746.htm.
首先要知道現在mainboard的架構:MCH,ICH,FWH。
這顆是MCH (+Graphice)。

支援32bit host addressing.

Host的IO cycle會解碼到chip的AGP/PCI_B,hub interface , GMCH的configuration space.
Host的mem cycle會解碼到chip的AGP/PCI_B,hub interface和system memory。

host解碼到AGP所屬的address range時,會經由AGP translation table轉換。
device request 解碼到 none-cacheable memory不會真正access到host bus。
device用PCI semantics發出memory access requset會真正access到host bus。

Hub interface

Hub interface是GMCH和ICH連接專用。

預計的步驟

  1. 安裝linux在機器上
    1. 找Monitor,Keyboard
    2. distribution: Debian ? LiveCD ?
  2. 用linux檢查使用的chipset
    1. lspci

Google又有新服務: Google Base

有人說是Google的分類網站,有人說是資料庫,
進去看了,不知道如何使用。
現在已經有很多網站介紹了,我覺得 這一篇(Jacky'sBlog) 說得最清楚,還有範例說明。

從Jacky的說明可以看出是比較接近資料錄庫了,
實際試用後也覺得如此,當拍賣網站的話缺了出價/比價功能。

很 不錯喔,要是也公佈Web API後,應該會有很大的應用吧。
不過item一定會有expire day (max: 31 day),expire後進入inactive,不曉得inactive item會不會還是public (google搜尋得到)。
跟資料庫一樣,可以create一個資料庫,建立attribute,但是不是關聯式資料庫,也就是說attrib不能link到另一個資料庫的item。
所以作為一個標準(基本)功能的資料庫來說,還不夠。
大概就是他的expire day和contack to owner功能,很像是拍賣網站吧。
應該說是個人商店比較適合,每個人可以用Google Base公佈自己要賣的商品,可以分類,設定expire day。
buyer可以用google base搜尋到自己想要的物品,並且向賣家聯絡。

星期四, 十一月 24, 2005

VOIP的奇妙網站

有一些教人用簡單的電路接到PC撥IP phone (很低階)。
還有一些簡單說明使用IP PBX撥打電話的方法,很適合一般使用者。

12 小時與24小時制

24小時制是 0 - 23
12小時制是1-12,但是實際上應該是12.1.2.3.4.5.6.7.8.9.10.11 (12進入另一個半天)

如果要coding轉換這兩者。也就是說內部變數使用24小時制,顯示使用12 小時制加上AM/PM。
就要把顯示分開處理,因為12 hr制的數值是不連續的:
AM 12. 1. 2. 3. 4. 5. 6. 7. 8. 9.10.11  PM 12. 1. 2. 3. 4. 5. 6. 7. 8. 9.10.11

AM11轉PM 12還好,對應PM12是24小時制的13,PM 1是24小時制的的14。
但是AM12對應的是0,就不能用了。
所以最好的方法是顯示時分開。

...這一篇不知道在講甚麼,我自己都看不懂,我要講的是要針對 0, 12作轉換。所以if - then -else會多一層
if (h23>=12) {
h12flag= ISPM;
if(h23==12) // 針對12 作特別處理
h12=12;
else
h12=h23-12;
}else{
h12flag=ISAM;
if(h23==0) // 針對0 特別處理
h12=12;
else
h12=h23;
}
很醜,有兩個特別處理,查表可能比較漂亮。
不知道那一個比較省code。

有趣的照片 - 動物園

這是 張大魯的色攝情布拉格
可以看到真實的一面喔。

應該要去看看:)

星期三, 十一月 23, 2005

ZFS : amazing file system ,oh.. this is not its full name.

ZFS是Sun的OpenSolaris中的一個file system,是CDDL license (不知道是怎樣)。
從Link (http://opensolaris.org/os/community/zfs/demos/basics/)的flash demo來看。
可以有Raid (Mirror),自由增加space,自由改變mount point,可以在其中create file system。
看來真的是Sun所說:The last word in filesystem.

這裡(http://tw.sun.com/press/report/20040914.html)是中文的說明(Sun的廣告文宣)

可惜License不是GPL...

星期二, 十一月 22, 2005

案子報價 成本估算

Tsung's Blog 看到的...co 一下
看板 php
作者 duan (上邪)
標題 Re: 請教案子
時間 Fri Sep 16 02:17:07 2005

看了大家的想法, 弟也來說一些自己小小的心得.

在報價時, 常常會忽略一些無形或不容易考慮的成本:

1. 溝通.
尤其在規格不明確的狀況下, 溝通的成本甚至會高於開發的成本, 或者說讓開發
的成本大幅提高 (修改規格) . 不過很不幸的, 國內相當多的案子, 客戶是不會
自己提規格的 (或者說是相當粗糙的規格) . 所以光是要確認規格, 就需要相當
的成本. 當然, 如果有人喜歡邊做邊確認規格也可以, 風險自負 :)

2. 所得稅.
中華民國萬萬稅, 這個不用說了吧. 十萬元的案子假設以 13% 的稅來算, 實拿
才八萬七. 報價時如果沒講清楚, 不要希望客戶會幫您補上稅金差額的.

3. 時間.
這點除了和上面第 1點息息相關, 也和自己的生活習慣有關. 往往都會把時間估
的太樂觀, 結果客戶溝通不良, 自己時間又沒分配好, 整個生活品質就都沒了,
陷入趕案子的惡夢中.


除了這些會疏忽的成本外, 也要考慮一些其它的事項:

1. 沒有明確的規格以前, 報價要保留一定的彈性.
像討論區這麼常見的需求, 但簡繁的差別可能讓報價翻上好幾倍. 不要預設以為
自己想的規格對方一定可以接受, 也不要認為現成看起來很好用的套件就一定可
以滿足對方.
即使現成的套件可以滿足對方的規格了, 但也不代表就沒有其它的成本. 例如要
用 phpbb2 , 但是會員的部份要和其它的套件整合在一起, 總不可能討論區要一
組會員, 聊天室又一組會員, 這種整合的需求就是成本.

像前面引言保留的那幾項, 都是很常見的需求, 但是規格往往差異也很大. 以會
員制度來說, 幾乎不會有可以完全現成可套用的情況, 客制化的程度或多或少的
差別而已.

2. 系統環境.
雖然說 php 算是跨平台的語言, 但是不同平台還是有一定的差異. 在別的地方
看到有人認為使用虛擬主機成本更低, 因為不用自己架環境. 其實這是不一定的.
如果對方申請的虛擬主機硬是少裝了某些套件, 而自己又權限不夠無法安裝的話,
就知道成本是高還是低了.

3. 美編.
不要認為自己做的網頁介面一定可以滿足對方. 而有時候對方可能會有美編人員
和您配合, 但這也不一定是好事, 有時候不懂事的美編足以讓有備份習慣的人也
只能哭天喊地的想辦法把資料弄回來. 如果有自己習慣搭配的美編當然是最好的,
不過不要忘了, 這樣就是兩個人的成本了


雖然網頁的技術已經好幾年了, 看起來很成熟了, 不過並非那麼美好. 很多人以
為只是拿現成的套件搭一搭配一配, 就可以拿去賣錢了, 至少很多老闆是這樣想
的, 但是拜託, 身為工程師的人千萬不要這樣想.

寫程式的, 尤其是寫 web 的, 鮮少有不需要客制化的部份. 如果您真的非常利
害, 把所有可能的需求都寫成元件, 可以組一組就拿去賣, 那就是您的本事. 您
要以量制價, 那絕對沒問題. 但如果不是, 請記得做生意是將本求利. 如果您的
時間不值錢, 大可以把價格往下壓, 這也沒什麼不道德的, 做生意本來就是競爭.
如果有人願意花半年溝通及開發的成本來賺兩萬元, 那沒接到案子的人自然就摸
摸鼻子認了.

當然, 如果做一半覺得划不來就一翻兩瞪眼走人的, 導致這塊市場越做越爛, 那
又是另一回事了.

弟自認報的價格一向是算低的了, 不過上面提到的需求, 說實在的, 報的價格
range 還在五萬以上. 畢竟上面的規格都只是 feature 而不是 spec , 如果
客戶要砍價錢, 那就提出要壓低規格的地方, 如討論區等.

還記得在約莫兩年多前, 曾有一位客戶輾轉透過朋友認識, 提出一個架構相當龐
大的案子, 包含面對面的聊天室, 條碼圖書定閱之類的約十幾項. 對方用聽說不
到五十萬的價格標下來這個案子, 等到要轉包出來給別人做時, 發現沒人要接.
等到剩不到兩個月要結案了, 他們想不賺錢包出去給別人做, 都還是沒人敢接.

弟正好也是不敢接的人之一, 以他們列的十來項規格中, 挑了一半認為可以做的
來單獨報價, 也超過三十萬了. 剩下不敢做的項目, 成本只會比三十萬更高, 客
戶當然是不敢分開來外包來做. 最後如何了不知道, 不過結不了案的機會大概很
高吧 (一笑) .

Etherboot

是一個software package,用來create可以由網路開機的 rom image (燒錄在bios flash裏)。
一般的用法是利用NIC上的bootrom (現在幾乎都沒有了),將etherboot create的room燒到NIC上。讓bios找到。

etherboot開機比用hard disk還快,因為經由網路傳輸kernal image比HD用機械式的方法還快。

Etherboot需要:
  • bootstrap loader,一般會是在ROM中,如果是測試用,也可以用floppy的bootstrap loader來load Etherboot。
  • DHCP 或bootp server,Etherboot需要用他來得到image server的資料
  • tftp server,將kernel image送給etherboot,Etherboot也可以規劃用NFS mount開機。
  • Linux或FreeBSD kernel
  • kernel 開機的RAM disk
  • download,build and debug Ethertool的tool (這有點像是廢話)
並不是所有的hardware都可以用Etherboot,Etherboot只支援部份的NIC(很大一部分)。
有人已經作好一個 web-interface的rom generator,到web page去選NIC type,target boot media,甚至可以作一些細項設定。之後按下Generate,就會自動產生ROM image出來,download就可以 http://rom-o-matic.net/5.4.1/

LinuxBIOS HOWTO : EPIA-M-howto

新checkout的LinuxBIOSv2(revision 2090)增加了HOWTO部份,裡面只有EPIA-M-howto。以下是筆記:
LinuxBIOS 從第一個serial port送出debugging output。 115200 8-N-1。
使用LinuxBIOS,還需要一個 "payload",LinuxBIOS執行完後,將控制權交給"payload",payload會去作"載入OS"的動作。一般LinuxBIOS配合的payload程式有
VGABIOS,LinuxBIOS使用原有的VGABIOS,所以要從mainboard上取得,首先要使用原有的BIOS執行Linux,然後以下命 令:
dd if=/dev/mem of=/video.bios.bin bs=1 count=65536 skip=790528
將VGA Bios讀入video.bios.bin檔

Getting Going


  1. 安裝Linux在要使用LinuxBIOSv2的系統
    這一步是為了取得該系統的BIOS資料。
  2. 取得LinuxBIOSv2的source code
    LinuxBIOSv2目錄下,會有:
    src: 所有source code所在目錄
    targets: 各platform相關的設定(config)檔所在,會在此進行build的動作
    util: build和debug所需要的工具。
  3. 這一步說明燒錄bios flash的動作與注意事項(建議使用bios savior - 去哪買?)
  4. FILO
    到http://felixx.tsn.or.jp/~ts1/filo下載filo,解開後先make一次, 修改config檔
    AUTOBOOT_FILE "hda1/vmlinuz root=/dev/hda2 console=ttyS0,115200"
    意思是:在IDE 1的partition 1找到vmlinuz作為kernel image,boot kernel時,傳入參數: "root=/dev/hda2 console=ttyS0, 115200"
    修改完後再make一次,產生filo.elf。這就是LinuxBIOS的payload。
    當 然還要準備好要boot的linux kernel image。
  5. build LinuxBIOSv2 : EPIA-M
    到LinuxBIOSv2目錄下
    cd tagrets
    ./buildtarget via/epia-m
    會產生target/via/epia-m/epia-m目錄
    buildtarget 是依照target/via/epia-m/Config.lb產生這些makefile和設定檔。如果需要不一樣的設置,就需要對config.lb作 修改,例如:filo.elf要改在其他位置....
    修改完後要執行./buildtarget一次重新產生make file。
    這 個config檔設定產生196608 byte的LinuxBIOS rom image,比epia-m flash的256k少了64k,這64k是要給VGA BIOS用的,將makefile的
    cat fallback/linuxbios.rom > linuxbios.rom
    改為
    cat /video.bios.bin  fallback/linuxbios.rom > linuxbios.rom
    這樣就會將VGABIOS和LinuxBIOS合成一個image。
    再make 一次,linuxbios.rom產生。檢查一下size
    創作者介紹

    koko

checko 發表在 痞客邦 PIXNET 留言(0) 人氣()