搬家換了新的第四台系統業者,安裝時無意看到供裝人員拿了台 STB,一問之下才知道原來是傳說中政府大力推動的有線電視數位化政策,政府與業者「達成共識」免費提供第一台機頂盒給用戶。不過這系統業者非常被動,雖然帶了機器來,卻要等我詢問才願意安裝。

系統業者拿給我的是 Cisco (Scientific Atlanta) DHCP Explorer Z67DVB,支援 DVB-C (EN 300 429),看規格說是可以支援 MPEG-2 (ISO/IEC 13818-2) 與 MPEG-1 (ISO/IEC 11172-2) 影像、MPEG-1 layers 1 與 MPEG 2 (ISO/IEC 11172-3) 音效輸出。

根據 Z60 的規格,輸出支援是 PAL 到 576i/p (720×576),但手上這台 Z67 的輸出應該是只有 480i/p (720×480) 而已才是。而且我只接用了 AV 端子,因此也完全算不上甚麼畫質享受,且數位節目的功能更尚未啟用,更由於沒有再添購額外節目,STB 對我的好處就是多了 EPG 與幾台音樂頻道而已。

雖說產業界對政府的政策措施一直有不同的意見,但是消費者比較期待的是有料的服務吧。若 CATV 業者一直不積極提供高畫質的節目或更好的功能,怎麼能夠怪政府干預太深或客戶不想接受新的技術。

Christian Schaller (uraeus) 說 Linux 上已經可以用 Technotrend TT-Connect C-1200 搭配 Totem+GStreamer 來收 DVB-C 看數位電視。

但台灣市場目前似乎還沒有類似的硬體產品出現阿,這到底是要算市場還是產業本身的問題呢?

若你對 Debian GNU/kFreeBSD 的開發狀態感興趣,Aurelien Jarno 最近公佈了新的進展報告

簡單講,Debian GNU/kFreeBSD 目前核心基於 FreeBSD 7.0 stable release (February 2008),支援 i386/x86 與 amd64 兩個硬體架構,已有可以拿來作軟體移植的 toolchain, 並有約 80% 的 Debian 套件已經移植到 Debian GNU/kFreeBSD。

不過 Debian GNU/kFreeBSD 目前的開發狀態尚無法在即將發行的 Lenny 版次中推出,主要原因是套件移植涵蓋率應該達 95%,而且目前 Debian GNU/kFreeBSD 尚未整合到 d-i 中。

咦,這樣算是誰「扳倒」誰 ? 😉 在你發問/叫罵之前,不妨參考 Debian Wiki 多了解一點 Debian GNU/kFreeBSD (FAQ) 的好處與用意

話說前陣子搬家後,因為跨了原本 Cable Modem 的服務區域,因此換了一家新的小地區第四台業者,為了省麻煩也一併跟同一家業者申請了纜線寬頻網路 (Cable Modem)。

申請 Cable Modem 是因為只需要養養動物,可以滿足基本上網的需求而已。一般工作或開發還是利用公司申裝的 Hinet 固定制 ADSL,試過存取幾個國外的服務,像是 git.kernel.org 還是得靠中華電信的網路才拉的下來。所以你若需要時常存取國外的資料,還是不建議使用相對小眾的 Cable Modem ISP.

申裝後,供裝人員倒是很快的取來了一台 Motorola SB5100 (Motorola SURFboard® Cable Modem SB5101),剛裝好測速或連線都頗正常。但過了幾個小時候,Cable Modem 變開始不時斷線,有時還會離線好幾小時,但偶爾又會正常。

很不幸的,第一次報修,工程人員來的時候,設備與網路是正常的。他且非常認真的確認大樓的電信箱的配線,並連到 SB5100 的 Configuration Manager (http://192.168.100.1) 確認了幾次訊號強度。最後安了一個 High-pass filter,然後一臉嚴肅的說 「如果這樣還不行,那事情就大條了」。 :-/

不過這樣一點用都沒有。所幸 SB5100 是 DOCSIS-compliant cable modem,且開了 SNMP。於是只好自己找了台機器裝了 CactiDOCSIS Stats 來紀錄 Cable Modem 狀態。果然觀察一陣子後,發現訊號數據其差無比。

根據 Cable modem signal levels 一文,

  • Downstream SNR 應該大於 30, 若低於 30 則代表有問題
  • Downstream Power 應該介於 -15 to 15 dB, 最佳是 -8 to 8 dB
  • Upstream SNR 應該高於 29
  • Upstream Power, 應該低於 55dB. 越低越好

於是很快的再報修一次,讓工程人員讀了一下數據,且用儀器測了一番,決議大概是新裝潢的暗管中的線材受損,造成訊號不佳。於是另外拉了一條新的線直接接到數據機上,接下來使用一個月都沒有任何問題了。

若你的 Cable Modem 並未提供網頁介面供查看數據,但你知道他也提供 SNMP,且不想安裝 Cacti,不妨使用 DocsDiag 來取出相關數據。若你對 SB5100 的硬體感興趣,SB5100 的主晶片是 Broadcom BCM3348,板子上有 JTagSerial Port 可使用。

Since the Slashdot (The website for nerds) lunched a new AJAX-style comment filtering system, it’s much easier to read the high-score-interesting-and-Insightful comments for stories.

If you look closer, you will find an arrow in the comments list of a story. The arrow is keyboard shortcuts indication just like gmail, which help you read the messages by using the keyboard.

But the keybindings are different with Gmail or other forum discussion system. You can learn the keybindings in Slashdot’s FAQ.

/* keys
prev comment: A, H
next comment: D, L
prev thread: W, J
next thread: S, K
prev comm chrono: Q
next comm chrono: E
next unread comm: F
reply to current comment: R
parent of current comment: P
history (modlog) of current comment: M
hide history: X
skip to end (last): V
skip to top (first): T
get more comments: G
lower top threshold: [
raise top threshold: ]
lower bottom threshold: ,
raise bottom threshold: .
toggle d2 widget: /
*/

前幾篇文章提到硬體廠商在做產品出貨前,可以檢閱 GPL 軟體授權適法訣竅 中的 Tips,確保自己沒有違反授權。但授權適法訣竅中的綱要非常精簡,若你在出貨時才驚覺 GPL 的授權問題,想從訣竅中找到保全的方法,大概也已經來不及趕在出貨前重新檢查所有的細節。

比較好的作法,就是在日常產品開發中,就將 GPL 相關授權問題納入公司執行規章中,如此便可避免相關的法律問題。

若你的公司才剛開始注意到 GPL 相關事宜,不妨參考 Software Freedom Law CenterGPL 遵守實務。這份文件中廣泛的說明一些容易造成授權問題的公司體制,例如允許大神級的工程師 (Build Guru) 製作最後的出貨版本,而非定義一個出貨程序。文件中也說明了違反授權的類型、收到律師函的因應措施以及其他的類似授權所產生的問題。值得參考。

若你照著前幾篇文章,不小心真的把 WL-700gE 刷成 OpenWrt。一時後悔想換回來的話,這裡是一些技巧與方法。不過既然刷成功了,能夠享用更多的「自由」,何必後悔
😉

首先,機器上的 Reset 鈕是沒有用的。請不要浪費時間照的手冊試圖 “Reset” 你的機器。凡是透過 tftp 上傳軔體到 CFE 上,你就已經蓋掉官方軔體。既然都已經覆蓋了,就沒有 Reset 的可能性。

要復原軔體最簡單的作法莫過於直接使用 ASUS 所提供的 Firmware Restoration Tool 來重裝所有的軔體。

但是 Firmware Restoration Tool 只能在 Windows 上使用,若你像我一樣只使用 Linux,以下是復原的程序。

WL-700gE 的軔體分成兩個部份,一部分是給 flash 所使用的核心與基本的開機設定工具,一部分則是存在 IDE 硬碟的應用軟體與檔案系統。你在官方網站所下載的軔體都會包含這兩部份。

首先,你該做的是先 flash 部份的軔體從下載的 NAS 軔體檔案中抽出。你需要 nasunpack (uasunpack.exe) 或社群所開發的 AsusTrxExtract (AsusTrxExtract_1.0.0.1.zip),這些工具可以讓你將軔體解出。其中 AsusTrxExtract 是使用 C# 所開發,作者尚提供了原始碼,你可以於網路上搜尋下載。而 nasunacpk 則內含於 ASUS 所提供下載的 GPL 檔案中。

nasunacpk 使用方式很簡單,除了用 nasunpack 解開外,你尚必須去除檔案中的標頭,最後取出的檔案才是我們所需的原始檔

$ nasunpack --sections WL700gE_1.0.7.8.nas
section headers ---
00: type = 0x15 (BRCM_NAS_SECTION_TYPE_TAG  ), length =      126 bytes
01: type = 0x12 (BRCM_NAS_SECTION_TYPE_FLASH), length =  1691648 bytes
02: type = 0x13 (BRCM_NAS_SECTION_TYPE_DISK ), length = 16560128 bytes
$ nasunpack --extract=0,tag WL700gE_1.0.7.8.nas
dumping section 0 into tag...
$ cat tag
BroadNAS System Software
Version: 2.2.1
unknown
Build date: 三  7月 25 15:30:01 CST 2007
Build by: [email protected]
$ nasunpack --extract=1,flash WL700gE_1.0.7.8.nas
dumping section 1 into flash...
$ dd if=flash of=piggy.gz bs=1 skip=28
1691620+0 records in
1691620+0 records out
1691620 bytes (1.7 MB) copied, 8.40643 seconds, 201 kB/s
$ file piggy.gz
piggy.gz: gzip compressed data, was "piggy", from Unix, last modified: Wed Jun 27 21:42:29 2007, max compression
$ nasunpack --extract=2,disk WL700gE_1.0.7.8.nas
dumping section 2 into disk...
$ dd if=disk of=crom bs=1 skip=28
16560100+0 records in
16560100+0 records out
16560100 bytes (17 MB) copied, 81.0496 seconds, 204 kB/s
$ file crom
crom: Linux Compressed ROM File System data, little endian size 65536 CRC 0x911b22f7, edition -1278167390, 138541296 blocks, 1226466058 files

其中 crom 是 WL-700gE 會安裝於 disk 上得應用軟體,若你想研究內含的軟體,可以用 mount -o loop 將檔案掛載起來查看。而 piggy.gz 就是我們所需的 Linux kernel 核心檔案,接下來可以利用重新開機並按下 “Ez Button” 的方式,透過 CFE 重新燒錄舊版軔體。細節請參考 Wl-700gE Reflash HowTo

燒錄好原本的核心後,另外一個麻煩的是要重建原本存在 IDE 硬碟的應用軟體。若你沒有手賤的去亂刪除 /dev/mtdblock/2 的資料,核心應該在重新開機後會載入存於 /dev/mtdblock/2 (/dev/mtdblock/2 只是另外一個 MTD block) 的基本工具,其中包含了復原與重新格式化硬碟的機制。

第二個階段是比較妙的,由於 WL-700gE 在接受第二階段的 disk image 上傳時,會作檢驗,系統必須接受某種 UDP 的認證協定後,才會接受新的 disk image. 因此你沒辦法單純的用 tftp 上傳,這時可以用 nasload (一樣內含於 ASUS 所提供下載的 GPL 檔案中) 使用檔案進行上傳。

用法如下

$ nasload /U /P /a /1 /f WL700gE_1.0.7.8.nas

如此就可以將 WL-700gE 完全復原到出廠的狀態了!