星期四, 2月 24, 2011

網樂通改機

PTT NextTV 版上的文章,
這邊也備份一下,要討論建議去 PTT NextTV 版

[0. 序言]

從年底壹電視大量發送網樂通機上盒後,
相信應該不少人手中都有這台機上盒,
在過年期間把這台玩具好好的玩了一下,
在這邊記錄下個人的一些小小心得,
同時我也把改機的成果放上來讓其他人可以節省些改機的時間,
本文分五個部分:
0. 序言(你正在看的這個部分)
1. 如何進入網樂通後台的 Console
2. 如何安裝改機的更新檔
3. 改機後的使用說明
4. 其他

目前所增加的功能
1. telnet 登入
2. FTP Server
3. Transmission BT下載程式
4. MPlayer 多媒體播放程式(影片播放效率太差不推薦)
5. UNFS3 Server
6. 支援 USB 音效卡

要準備的工具:
(不一定需要除非你無法透過
[1. 如何進入網樂通的 Console - A] 進入 Console)
1. USB to TTL
去露天或是yahoo搜尋一下應該有
2. Console 線
連接網樂通和 USB to TTL 的線,
網樂通那端是 4pin 莫氏端子, USB TTL 一般是杜邦線頭,
這個比較麻煩要自己改線,或是都用杜邦線頭(不過網樂通那端會太鬆)

使用到的軟體:
1. putty/pputty
如果是 Windows XP 也可以在命令提示字元輸入 telnet 取代
http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
2. tera term
如果是 Windows XP 可以使用內建的超級終端機取代
http://en.sourceforge.jp/projects/ttssh2/releases/

免責聲明:
本人不對本篇文章負任何責任,也不提供改機服務,
改機有一定的風險存在, 改機會破壞保固造成損毀最高須賠償 3000 元給網樂通,
私自關閉網樂程式或限流也可能觸犯網樂通服務條款

[1. 如何進入網樂通的 Console - A]
1. 網樂通 reset, 使用 telnet/putty 進入網樂通
telnet [網樂通ip]
2. 掛載 /dev/sda1 到 /mnt/app
mount /dev/sda1 /mnt/app
3. 修改 /mnt/app/etc/init.d/rcSBB 在檔案尾巴加入 udhcpc, telnet
echo "/usr/sbin/udhcpc&" >> /mnt/app/etc/init.d/rcSBB
echo "/usr/sbin/telnetd -l /bin/sh" >> /mnt/app/etc/init.d/rcSBB
4. 卸載 /dev/sda1
umount /dev/sda1
5. 更新網樂通韌體到最新
6. 把隨身碟接到網樂通 reset, 等個 3~5 分鐘就可以進 telnet 了


[1. 如何進入網樂通的 Console - B]
除非你無法透過 [1. 如何進入網樂通的 Console - A] 進入 Console 才要看這部份,
拆開外殼後會發現有個很明顯的白色 UART TTL 連接孔,
共有四個接腳,
從AV端子那側由上往下分邊是 GND RX TX VDD
接上改機的 Console 線並連接到 usb to ttl,
要注意的是網樂通的 rx 要接到
usb to ttl 的 tx,
要注意的是網樂通的 tx 要接到 usb to ttl 的 rx,
usb to ttl 接到電腦開啟 tera term 或是超級終端機,
設定對應的 com port,
電腦端連線的傳輸速率選擇 115200 就可以連接,
和電腦連接好後接上電源就可以看到 uboot 載入 kernel 的畫面,
在 uboot 畫面按任意鍵可以中止自動載入 kernel 然後用自己的 kernel 載入,
不過很不幸的在新版的韌體中系統載入到最後會被播放器程式拿走 console 的控制權,
所以會沒辦法下命令,
要能夠正常使用 console 的話就要先按住 reset 開機回覆到出廠版本,
不過我發現只要你拿個隨身碟然後接上網樂通的usb孔,
然後按住 reset 鍵並接上電源,
他就會進入韌體更新模式,
但是因為隨身碟上沒有更新程式所以他就會離開更新程式然後回到 console,
這樣就有 console 可以用了,
進去玩了下發現是使用 stlinux 的系統版本是 2.3

rextsai@ptt 大大有提供新的進 console 的方法不需要用到隨身碟:
開機時在 uboot 中斷,設定 bootargs,改成 init=/bin/sh
拿到 shell 之後,手動更改 /etc/inittabBB,開 ttyAS0::respawn:/bin/sh

PDK7105> setenv bootargs console=ttyAS0,115200 root=8:2 rootfstype=ext3 \
rw rootflags=data=journal nwhwconf=device:eth0,hwaddr:10:08:E2:XX:XX:XX \
phyaddr:0,watchdog:5000 mem=120M bigphysarea=2048 init=/bin/sh
PDK7105> boot

::sysinit: /etc/init.d/rc 3
ttyAS0::respawn:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init

[2. 如何安裝改機的更新檔]
1. 下載下面的 target.tgz 後放到隨身碟的根目錄(不要解開)
http://www.megaupload.com/?d=46WHMRKT

2. 先依照前面的說明先進入 console, 然後將隨身碟接到網樂通後面的 USB 孔
3. 在 Console 中輸入下面的指令掛載隨身碟
mount /dev/sdb1 /mnt/usb
4. 在 Console 中輸入下面的指令掛載系統分割區
mount /dev/sda2 /mnt/app
5. 在 Console 中輸入下面的指令解開更新檔到系統分割區
tar -C /mnt/app/ -zxvf /mnt/usb/target.tgz
6. 在 Console 中輸入下面的指令卸載系統分割區
umount /dev/sda2
7. 在 Console 中輸入下面的指令卸載隨身碟
umount /dev/sdb1
8. 把網樂通電源拔除再接上
9. 等個三到五分鐘當網樂通開機好後在命令提示字元輸入下面的命令就可以用 telnet
登入網樂通了

(x.x.x.x 為網樂通的 IP, 登入帳號為 root 不需要輸入密碼)
telnet x.x.x.x

[3. 改機後的使用說明]
改機後預設只開啟 telnet server 功能,
想要開啟 FTP Server 可以透過下面的命令開啟:
pure-ftpd -l puredb:/etc/pureftpd.pdb &
也可以輸入效果一樣
/root/startftp&
這樣就可以透過 ftp 存取網樂通了,
預設帳號密碼是(gb620/gb620)

想要下載 BT,
可以在 Console 中輸入:
transmission-daemon
然後用瀏覽器開啟(x.x.x.x 為網樂通的 IP)
http://x.x.x.x:9091/
就可以上傳種子和管理下載的檔案了,
預設下載目錄是 /root/Downloads
由於種子動砸數十GB所以網樂通的空間肯定是不夠放的,
所以可以在 USB 孔接上 USB 隨身硬碟或是隨身碟,
然後輸入下面的指令把隨身碟掛載到 /root/Downloads
mount -o iocharset=utf8 /dev/sdb1 /root/Downloads
這樣就有足夠的空間下載了,
下載完可以透過 FTP 傳到電腦或是乾脆直接拔隨身碟到電腦用

MPlayer 的部分播放大部分的影片幾乎都會 Lag,
播放音樂倒是還好一些,
對於聲音的撥放一直沒找到怎麼直接透過網樂通撥放音樂,
最後只好在 USB 孔外接 USB 音效卡來播放,
如果要撥放影片的話可以透過下面的指令撥放影片或是音樂,
1. 關閉網樂通 IP TV
killall fdtv
2. 載入 USB 音效卡驅動程式
/root/USBSound/load.sh
3. 播放影片(/root/USBSound/test_sound.avi 為影片路徑)
mplayer -vo fbdev -ao oss -menu -fs /root/USBSound/test_sound.avi
播放影片時可以按下網樂通遙控器上面的音量大小鍵,
搭配[確認],[取消]更改撥放影片和設定
測試結果發現撥放效率不佳,
因為都是全靠 cpu 解碼沒使用到硬體解碼晶片的緣故,
大概也只有撥些 mpeg 格式的影片勉強還可以

[4. 其他]
網樂通內建的usb共分成四個分割區,
/dev/sda1 這個是 recovery 的分割區(按住 reset 開機就會進來這區) T7080SAX
/dev/sda2 這個是系統正常開機在用的分割區 7HIDX6CB
/dev/sda3 用來放系統更新檔及備份的分割區 4EX194MP
/dev/sda4 似乎是拿來放 p2p 暫存檔用的
另外除了大家都知道的 reset 還原機制外,
如果下載更新檔速度太慢無法下載回來的話也可以用下面的方式更新,
韌體更新檔是由 XXX.pkg(更新檔實體) 和 XXX.chk(更新檔描述及檔案驗證資訊) 組成的
所以你要先下載
http://203.69.109.14/UPDATE/FD/fdtv_update_0000093_v1399.pkg
http://203.69.109.14/UPDATE/FD/fdtv_update_0000093_v1399.chk
這兩個檔案才是完整的 93 版的韌體更新檔,
有兩種方法可以餵網樂通吃新的韌體一種就是透過網路更新,
另一種是透過 USB 更新,
要透過 USB 更新需要把檔案重新命名,
把下載回來的
fdtv_update_0000093_v1399.pkg => target.enc
fdtv_update_0000093_v1399.chk => GB620.svf
然後放到隨身碟根目錄(點開隨身碟的第一層目錄)
隨身碟的系統檔案格式要是 FAT32, NTFS 可能會不認識,
接上網通樂然後按住 reset 鍵,並接上電源等個五秒放開 reset 鍵,
就會進入韌體更新模式,
上面的韌體是 0093 版的韌體, 更新完就是 0093 的韌體了,
會透過 /root/bin/loader.exe 解開成為 target.tgz 進行更新

怎麼知道上面韌體的網址呢?
http://203.69.109.14/UPDATE/FD/FD_group32.xml
網樂通開機時會去上面的網址檢查是否有更新檔,
有的話就下載回來更新,
有趣的是可以更改上面的32的數字改成,
可以發現不同版本的韌體,
有些版本似乎是測試版所以不熟悉的話還是不要隨便更新為妙,
估計網樂通把使用者分成許多群組,
所以韌體更新的速度也不一樣,
所以才會常聽到別人已經更新到 XX 版結果自己還停留在某個版本

該韌體更新檔目前知道的 bug
1. 之前包的更新檔沒有 /home/gb620 這個資料夾所以要自己建
可以透過下面的指令建立,
mkdir /home/gb620
順便更改目錄的擁有者這樣寫入才會正常,
chown gb620.user /home/gb620
2. transmission 找不到網頁
transmission 網頁的路徑錯誤, 透過下面的指令搬移到正去的位置
mv
/share/transmission/ /usr/share/

rextsai 大大提供的資訊:
* 基本軟硬體資訊
https://gist.github.com/753181
* NextVOD update console message
https://gist.github.com/9f2e360a82fadf394a96
* Debian on NextVOD STB
https://gist.github.com/754972
* LIRC commands of nextvod remote controller
https://gist.github.com/831517
* DBus APIs for nextvod
https://gist.github.com/831520
* NextVOD firmware images (some missed)
https://gist.github.com/831522

stevennick 大大的編譯 kernel 教學
http://stevennick.pixnet.net/blog/post/33956113
stevennick 大大的安裝 rt73 無線網卡的教學
http://www.ptt.cc/bbs/NextTV/M.1298301199.A.4AC.html

A688 安裝自製韌體的步驟

網誌中的很多文章都過時了, 寫篇新的


1. 更新到官方 2.1
如果已經升到 2.1 後有自己安裝些軟體建議先用 Mybackup 或是 Titanium 備份你的軟體和設定然後選擇恢復出廠設定比較不會出現問題
可以透過 [Hang Up] + [Camera] + [Power] 進行 master reset 恢復出廠設定

2. 透過安裝 Univeral Root 或 z4root 取得 root 權限
http://blog.23corner.com/2010/08/30/universal-androot-1-6-2-beta-5/

PS. 如果你的韌體是 2.2 以上請用 Superoneclick 進行 root
http://forum.xda-developers.com/showthread.php?t=803682

3. 安裝 rom manager
http://www.mobile01.com/topicdetail.php?f=423&t=1710834&last=21740590

4. 先用 rom manager 備份好你的 rom

5. 用 rom manager 刷 clockwork mod recovery (恢復模式)
(刷 recovery 時他會要你選手機型號, 請選擇 Commtiva Z71)

6. 用 rom manager刷 cyanogenmod 自製的 rom
(手機型號請選擇 Commtiva Z71)

7. 刷完就是 2.3 內建 APP2SD 可以把應用程式搬到 SDCard 上面了,
(不用另外分割磁區)
如果你希望的是連應用程式的暫存資料一起搬到 SD Card 上面的話(即 APP2SD+),
可以考慮安裝 Link2SD 這個程式,
http://gphonefans.net/thread-21543-1-1.html

另外刷了 Cyanogenmod 的 rom 有時後會遇到無法開機的情況,
(會停在開機畫面等三四分鐘都沒辦法進到系統)
實際發生的原因仍然不明,
有可能是應用程式的 cache 資料不正確導致,
遇到這種情況可以先進到 recovery 模式中選擇
Advanced => Wipe dalvik Cache => Yes - Wipe Dalvik Cache
把應用程式的暫存檔案清掉就可以開機了

如果很不幸把手機刷掛了無法進 Recovery mode 那就要用到 fastboot mode,
[掛電話] + [音量下] + [電源]
用手機連接電腦然後在電腦開啟執行 A688Tools 內的 dos.bat
(就是執行 dos 視窗)
連結
fastboot flash boot boot.img
fastboot flash system sytem.img
應該就能夠開機
上面的 boot.img 和 system.img 可以從
手機記憶卡上面的 clockworkmod/backup/[備份日期]/boot.img 取得
手機要超頻的話需要刷 800Mhz 版本的 boot.img
首先要找到 800Mhz 的 boot.img 然後用上面的指令刷上去,
這樣安裝 setcpu 後就能夠超頻到 800Mhz
http://soez.twgogo.org/archives/171

如何刷回官方版本
簡單說就是要先刷回官方版的 recovery 然後才能用 SUT 刷回去
http://bbs.apanda.com.cn/thread-29308-1-1.html