2009年10月27日星期二

eCos 開發相關資源

安裝
http://ecos.sourceware.org/getstart.html

取得cvs更新
http://ecos.sourceware.org/anoncvs.html

eCos 文件
http://ecos.sourceware.org/docs-3.0/user-guide/ecos-user-guide.html

RedBoot使用手冊
http://ecos.sourceware.org/docs-3.0/redboot-guide/redboot-guide.html

討論區
http://ecos.sourceware.org/ml/ecos-discuss/

使用技巧;
這兩天嘗試的結果,發現直接從GUI的configtool創立專案,很容易有編譯錯誤,
像是多重定義這種東西
如果改用ecosconfig直接從命令列創造專案,反而容易許多

2009年10月25日星期日

用Ubuntu打造多媒體平台(未完成)

認真想想其實自己家裡的桌機
每天在用的功能也只有抓檔案(emule)、看影片(Kmplayer)、上網(Chromeplus)、聽音樂(TTPlayer)
何不用親切又免費的Ubuntu來打造了,於是開始今天的計畫

1 下載Ubuntu 9.10 RC光碟:採用9.10的原因是新的init非常迅速,可以在十秒內開到桌面,雖然還有一週才要轉正式版,不過就直接裝這一版吧!

2 安裝Ubuntu:這個不多說,就給他裝完就好

3 跑一次系統更新

4 中文化:如果安裝的時候語系直接選擇繁體中文,那介面的語言問題就解決了
再來是輸入法的部分,請參考這一篇

5.0 抓Libstdc+5: Ubuntu預設是Libstdc++6但是w32codec需要舊版的
所以請到這裡下載deb自行手動安裝

5 解碼器:跟Windows平台一樣,要開啟多媒體檔案一樣要裝解碼器,
Linux版本的叫做w32codec,安裝過程請參考這一篇

6.0 修正音效問題
如果你沒有遇到音效問題,請跳過這一段
ubuntu8開始加入pulse的支援,加上本來的alsa變成兩套聲音管理套件
這次安裝就遇到打架的問題,聲音會變速播放
解決方法如這篇文章

6 裝播放器: 我採用的是Mplayer,安裝方式如上文章所示
要不要重新編譯就看個人

7 撥放器設定技巧:Linux預設是UTF-8,直接拿Windows的過來會變成亂碼
要再偏好設定裡面把編碼換成BIG5

8 Wine:這套程式可以模擬Windows的環境,補足Linux不足的部分
安裝方法請參考這篇

9 鬼打牆之ttf-mscorefonts-installer
或許會或許不會遇到這個問題,就是在裝WIne的過程中會順便帶入Windows的字體套件ttf-mscorefonts-installer
但是好死不死的是ttf-mscorefonts-installer常常會下載失敗,很可能就困在這邊幾個小時<<我就是
後來找到解決的辦法了,雖然有點複雜 @@"
首先是手動到這裡,把the fonts的檔案全部下載
重新編譯DEB檔案, 重新編譯的方法可以參考這篇
不過不需要照他的改法,因為改了還是得碰運氣
>>>另外,如果遇到dh_helper找不到的問題
>>>請再執行 sudo apt-get install debhelper
我的改法是這樣子
把所有檔案複製到/tmp下面去
然後在安裝時讓它自己去複製
再參考上文把deb包做出來,安裝就可以了

emule(待續)

2009年10月22日星期四

isolinux, syslinux unetbookin小筆記

標題下的有點糟糕,不是很能表達我的意思,各位不小心進來的客倌就加減看吧!

會研究這個題目是因為最近用了很多prebuild的Linux Live CD
總不能整天一直燒CD,不環保又浪費時間
這時候用USB大拇哥替代就是很好的選擇

但是要怎麼把映像檔弄到大拇哥上面呢?
只要使用unetbootin這套程式,指定來源ISO跟目的大拇哥
幾個按鍵就可以弄一支可以開機的USB出來了
不過怎麼做到就是另外一回事,後面再聊

接著深入研究使用CD跟USB載入Linux這個題目
發現主流採用的套件有syslinux跟isolinux
前者用於用一般硬碟開機,後者用於光碟開機
至於unetbootin不在此列,因為它像是syslinux的前端GUI介面
實際上做出來的東西也是把syslinux塞進去

要搞懂syslinuxisolinux的原理不難
都是把啟動碼塞到開機磁區,然後設定cfg設定檔就好
不過讓我比較疑惑的是unetbooin這套程式
它有提供自動下載跟載入ISO的功能,
如果是Linux安裝或者Live光碟就沒什麼疑問
直接把光碟中isolinux的設定檔更名成為syslinux的設定檔即可

那~~如果是其他的ISO像是Windows PE或者是他不認識的系統,
不知道它是怎麼做的?還是單純的不支援?
TBD

2009年10月19日星期一

Grub 2 小筆記

Ubuntu 9.10 開始採用了新的開機管理系統GRUB 2,支援高解析度跟多國語言等
意思就是要多學一套軟體,不然不能開機槓龜就完蛋了

跟舊版的grub不一 樣的是menu.lst已經不復存在了
取而代之的是類似sys v init的目錄式設定檔
相關檔案位置如下:
/etc/defaut/grub    存放通用參數
/etc/grub.d/.....      存放分散式的開機選項
修改之後再呼叫update-grub(實際上是執行grub-mkconfig)來產生grub2需要的/boot/grub/grub.conf
下次開機就會看到不一樣的結果了

2009年10月16日星期五

Mercurial 版本管理系統簡介 v.s. Google Code 線上備份Server

前言:
今天意外看到Google Code這個由Google 提供的免費線上備份程式碼服務
重新燃起應用SVM(原始碼版本管理)軟體管理專案的念頭
google一下之後(還是逃不出google的制約)
進入google code的首頁申請了我的第一個google code project
也展開一連串的嘗試過程
以下是精簡版

一 申請google code
進入http://code.google.com/intl/zh-TW/首頁
選取左中的"專案托管"
在這邊理應開始創建專案,不過似乎沒有馬上創建的按鈕,輾轉從Contribute找到"Create Project"的連結
點進去填妥基本資料之後,專案也創建完畢

二 取得網址跟密碼
Goole Code提供的無非是備份的空間,這是廢話,所以其他眼花撩亂的額外功能可以不予理會
直接點取上方的Source Tab, 就會顯示本專案的下載網址
以我的測試網站為例,就是  http://code.google.com/hosting/createProject
這邊還有另外一件工作,就是取得上傳用的使用者名稱跟密碼
使用者名稱就是google的登入帳號,密碼請按下"googlecode.com password."就可以看到
以上完成Server端的準備工作


三 使用Mercurial SVM軟體
三點一 下載客戶端軟體
請到Mercurial的官網下載
三點二 SVM 概念
這一節其實是最重要的,不過既然是紀錄文就讓它跟安裝平起平坐吧!
以下都以Mercurial介紹,SVN那套中央集權的SVM請自行嘗試
三點二點一 從新開始一個新專案
簡單的流程如下:
 => mkdir建目錄:這不用多講了吧
=> hg init 初使化 : 產生控制用的.hg目錄
=> ***加入並編輯第一版的程式碼***
=> hg status 觀察修改狀況: 這裡會看到一堆問號跟檔名,他們就是即將被送進資料庫的檔案
=> hg add: 確認這次新增的檔案
=> hg commit:真正執行上傳的動作,不過注意在此例中資料庫初始化是在本地做的,意思就是東西只會存在本地,網路更新後面才會提到

三點二點二 clone直接複製既有專案
簡單的流程如下:
hg clone *******網址*****: 下載原始碼資料庫

> ***加入,編輯,刪除,修改程式碼***
=> hg status 觀察修改狀況: 這裡會看到一堆問號跟檔名,他們就是即將被送進資料庫的檔案
=> hg add: 確認這次新增的檔案
=> hg remove: 確認這次要移除的檔案,這兩個動作也可以一起做,指令是 hg addremove
=> hg commit:真正執行上傳的動作,同樣沒有送到遠端,只是更動本地資料


三點二點三 分散式編輯 集中式合併
這部份官方文件寫的很清楚,就不贅述了

三點二點四 PUSH
這裡其實是我最疑惑的一段,也是最想提的一段
在之前應用SVN的經驗,執行完commit之後,所有的更動就會自動送到遠端去了
不過顯然Mercurial不是這麼一回事,對他們來說commit到本地目錄存檔就算記錄下來了
等要合併時才一次送出去,指令就是PUSH
hg push http://*username*:*password*@*url*
這樣才是真正完成上傳動作,我們也可以在google code的頁面看到更新的訊息

四 終結專案
完成專案階段性任務的時候,請到google code的右上Administer => Advanced裡面按下自爆按鈕
專案正式的終結,不過請注意檔案不會馬上刪除,過一陣子google會自行清理
如果不想東西見光的,要注意這個地方,
刪除可能是幾天或者幾年或者他們覺得硬碟空間多到用不完,永遠都會在也不一定
不過既然採用了google code就不會不知道這邊是專門提供給Open Source的備份Server
放上來就要有被看光光的準備,就醬

2009年10月14日星期三

Ubuntu 9.10 vs Ralink 3090 Wireless Driver

在Ubuntu 9.10版本中使用的kernel 是 2.6.31
這一Kernel版本對於網路的driver有一項重大更動
就是對於傳統的net_device結構中的open/stop/ioctl/xmit/等op的向後相容性取消了
以Ralink 3090 Wireless Network Driver為例,須手動修改rt_linux.c才能順利編譯
詳情請看這個PATCH

2009年10月12日星期一

Ubuntu Live CD install inside boot options

版本:
Ubuntu 9.04 Desktop CD

Safe Graphic Mode:  xforcevesa

OEM Install: oem-config/enable=true