2007-05-04

更新 Asus WL-500g 的系統 C Library: uClibc

其實 Hack 完 WL-500g 後,玩了一陣子發現會影響網路效能(甚至當機),後來還是回歸自然,讓它單純只做網路設備的工作,系統就很穩定地在運作中。不過不定期還是會看一看 Oleg 大大是不是又釋出新版 Firmware、又加了什麼新功能、解了什麼 bug,有空忍不住還還是會想去更新一下。適逢 1.9.2.7g於四月份釋出,我又打算「升級」之際,撇見一位匿名的熱心網友提醒,原來核心使用的 C Library 有了新版,而且號稱支援更多的軟體服務、能讓系統更穩定,趁著這次更新韌體,我就一併把這個 C Library 安裝和更新吧!

由於這個 Library 相當底層,所以如果你不是重裝系統,官方網頁建議你安裝完 uClibc 之後應該 re-install 你所有安裝過的服務(這樣,不會有問題吧),才能確保所有應用程式的穩定程度。對我來說這種「升級」的動作問題通常都很多,算了,我還是一整個重來吧(反正我有 Hack 文件整理在這個 Blog 上)。其實,安裝 Library 的動作對未來要裝其他應用程式在動作上沒有影響,不過在順序上,一定要在安裝任何應用程式之前,所以我整理過的文章會影響的部分,只有這篇:「基本環境的設定 - ipkg & post-boot」,因為我要用「更新版」的 ipkg、並且更改未來其他安裝軟體下載的 ipkg 網址,這樣才能確保未來安裝的應用程式都是用到新的 uClibc Library。變更的部分,從安裝 ipkg 開始,本來是執行:

ipkg.sh update
ipkg.sh install ipkg

改(記得前幾個步驟暫存目錄還是要建立)!我們手動下載比 Oleg 1.9.2.7g 更新版的 ipkg (0.99.149-2 -> 0.99.163-9),並且安裝:

wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/ipkg-opt_0.99.163-9_mipsel.ipk
ipkg.sh install ipkg-opt_0.99.163-9_mipsel.ipk

後面那個安裝的步驟會有一些錯誤訊息,可以忽略它。接下來手動下載 uClibc (uClibc-opt 0.9.28-12),並且安裝:

wget http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable/uclibc-opt_0.9.28-12_mipsel.ipk
ipkg.sh install uclibc-opt_0.9.28-12_mipsel.ipk

同樣的,安裝過程會有錯誤訊息,一樣不用管它。原則上這樣就都裝好了,有了新版 ipkg 和 Library,系統應該就是升級完成,但是,我怎麼確保未來下載安裝的 package 都是支援 uClibc 的軟體和服務呢?這個時候,應該更改 ipkg 去更新、下載軟體的預設網址囉!要修改設定檔,這時候系統應該沒有像樣的編輯器,所以不得以還是先更新一下 package list:

ipkg update

然後安裝 nano 這個編輯器 (2.0.4-1,會一併被安裝 ncurses 5.6-1):

ipkg install nano

好,有了編輯器,我們才能去編輯 ipkg 的設定檔:

nano /opt/etc/ipkg.conf

找到裡面有一行:src/gz native http://ipkg.nslu2-linux.org/feeds/optware/oleg/native/stable,remark 這一行(在這行最前面加一個 #),然後補下面這一行:

src/gz optware http://ipkg.nslu2-linux.org/feeds/optware/oleg/cross/stable

意思就是請到這個目錄下檢查和下載可以用(for uClibc)的應用程式,並確定最後一行是:

dest root /

存檔離開,然後記得再更新 (ipkg update) 一次 package list,確保抓回來的 List 是最後版本就好了。到此裝好了 ipkg, uClibc 和 nano,請繼續這篇文章從建立/修改開機設定檔 (/usr/local/sbin/post-boot) 這個步驟做下去、設定完防火牆 (/usr/local/sbin/post-firewall)、更新 flash 重新開機,不但就完成了基本環境的設定,也一併安裝了最新的 C Library 囉!後面其他軟體和應用程式的安裝設定基本上都沒有影響,可以 follow 我其他 Asus WL-500g 的 Hack 文章繼續做下去~至於系統有沒有比較穩、應用程式有沒有比較多,我就懶得實際去測試和比較了,實際又遇到什麼狀況我再更新吧!

參考文章:
(我自己的) 基本環境的設定 - ipkg & post-boot
Optware-uClibcBuild

回應: 8

oldhan 提到...

請問一下當我 nano /opt/etc/ipkg.conf 之後出現
Error opening terminal: xterm. 的訊息並無法編輯, 爬文有人說要設定 TERM 為 vt100, 但是照作之後變成 Error opening terminal: vt100, 請問這是何原因?

Abin 提到...

To oldhan: 我從沒碰過你遇到的問題,也不知道原因,不過看訊息,會不會是你登入系統用的軟體有問題?我自己都是用這裡的 PieTTY,你可以試試。如果還是不行,我建議你可以用其他的編輯器,像是 vi,或是另外裝 Joe,這些也都是不錯常見的 editor。

匿名 提到...

abin 你好:
OLEG 的韌之外, 還有DD-WRT WL-500G也可以使用.
但是DD-WRT的套件以及說明並沒有OLEG那麼完備.
有空的話請你看看
http://www.dd-wrt.com/
http://svn.dd-wrt.com:8000/dd-wrt/timeline

正體中文一直有問題

謝謝!

Abin 提到...

除了 DD-WRT 之外,我知道 macsat 也還有 OpenWRT
選擇 OLEG 的韌體,因為它是由原廠韌體改的,保留所有原廠 Web 管理的功能,還增加了改機的彈性。至於其他獨立的 OS,也許功能更強大,卻難度更高、某種程度上也越不成熟普遍,再說 WL-500G 的硬體也都跑不動,所以我就沒有力氣再去試囉!
您可以參考 macsat 的 OpenWRT,文件也相當完整。

二號仔 提到...

To: oldhan
我今日也遇到了這個問題... 在尋找了一輪答案後, 我發現是因為我沒有update ncurses.

Aven 提到...

我也曾遇到過更新後nano無法使用的問題,解決方法可以參考這裡 http://neture.homeip.net/digiland/viewtopic.php?id=83

Abin 提到...

謝謝 Aven 提供的資訊。

比利 提到...

很不幸我也遇到 nano 的問題
也是裝好 C Library 跑 nano 會出現 "Error opening terminal: linux." 的訊息而無法使用 nano

曾經參考過 Aven 提過的 "保證藥到病除" 方法,就是移除 nano 及 ncurses 再重裝,依然無法解決問題,病還是除不了

最後無奈之下只好用 vi 做編輯工具了

不過,有一次在偶然的情況下,不知做什麼下錯了指令,原本想下 ipkg update,卻打錯了 ipkg upgrade,這時看到 nano 及 ncurses 在做 upgrade 的工作,完成後 nano 竟然復活了,哈哈...

張貼留言

歡迎留言或發表意見,不過要理性不做人身攻擊。匿名的朋友得到回應的速度會比較慢喔~
發問相關的禮貌和規矩請先參考這篇文章,不當留言、和本文無關的回應可能會被直接刪除無視喔!