2012年12月1日 星期六

網樂通改機 NextVOD Hacking to NextPBX (IP PBX)

這是把已經停播的小藍 box 再利用之一, 因為它其實也是類似 Raspberry Pi 的 ARM 版子
所以有相關資料後 有嵌入式系統經驗的人就能拿來再利用

但我這篇是要講 注意事項

詳細教學基本上就是直接看 NextVOD unit Hacking - 網樂通改機

文中沒寫到的很重點部分就是 隨身碟格式 會影響你是否 hack 成功與否! 及可能成為半磚狀態

因為第一次我用錯格式了~ 就成了半磚!! 只能拆機 接 TTL~ 才能救回..
拆機也很簡單~ 後面四顆腳下翻開(雙面膠) 裡面有螺絲 轉下後就可以開蓋了
拆了後發現其實它裡面是有一支 8G USB DOM .. 只是沒一般 USB A頭(A-type plug).. 把 4-Pin 杜邦接頭用個連接線轉接到一般電腦 USB 的話它就只是個無殼隨身碟
* 網樂通_機上盒 改BT脫機下載 <-- 裡面有照片

也因此小摸熟了整個流程

結論 FAT16 FAT32 跟 EXT3 三種格式的隨身碟會有三種結果..一開始用那一支是 FAT16 所以並不會發生教學中的
 4. 的 畫面會停在: "更新失敗" 而是會直接就跑完救援模式的還原 就直接 reboot 了~
這篇安裝教學隨身碟是 only FAT32.. 其餘不可用



用 TTL 接著看開機訊息如下
正常開機模式
開機中機子為藍燈閃爍
完成開機藍燈恆亮
Board: STx7105-PDK  [32-bit mode]


U-Boot 1.3.1 (Nov 10 2010 - 10:23:47) - stm23_0045

DRAM:  256 MiB
SPI: ST M25P80 (1MiB) device (page=256,erase=4096)
In:    serial
Out:   serial
Err:   serial
Svn Version: 5804
[uboot_gb620]:update flag = 1
[uboot_gb620]:P/N flag = 2
[uboot_gb620]:NTSC...
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Hit any key to stop autoboot:  0
.....略....


使用 ext3 格式隨身碟進救援模式時
機子為藍燈閃爍

Board: STx7105-PDK  [32-bit mode]


U-Boot 1.3.1 (Nov 10 2010 - 10:23:47) - stm23_0045

DRAM:  256 MiB
SPI: ST M25P80 (1MiB) device (page=256,erase=4096)
In:    serial
Out:   serial
Err:   serial
Svn Version: 5804
[uboot_gb620]:update flag = 1
[uboot_gb620]:P/N flag = 2
[uboot_gb620]:NTSC...
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
[uboot_iptv]:Can not find directory. **
[error]:FileSystem not found /root ...卡住不動了


使用 fat16 格式隨身碟進救援模式時
機子為藍燈閃爍

Board: STx7105-PDK  [32-bit mode]


U-Boot 1.3.1 (Nov 10 2010 - 10:23:47) - stm23_0045

DRAM:  256 MiB
SPI: ST M25P80 (1MiB) device (page=256,erase=4096)
In:    serial
Out:   serial
Err:   serial
Svn Version: 5804
[uboot_gb620]:update flag = 1
[uboot_gb620]:P/N flag = 2
[uboot_gb620]:NTSC...
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
** Partition 1 not valid on device 0 **

** Unable to use usb 0:1 for fatload **
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found

Hit any key to stop autoboot:  0
....略...就是不會停的直接還原完成後就 reboot 回正常模式


使用 fat32 格式隨身碟進救援模式時
機子為紅燈閃爍

Board: STx7105-PDK  [32-bit mode]


U-Boot 1.3.1 (Nov 10 2010 - 10:23:47) - stm23_0045

DRAM:  256 MiB
SPI: ST M25P80 (1MiB) device (page=256,erase=4096)
In:    serial
Out:   serial
Err:   serial
Svn Version: 5804
[uboot_gb620]:update flag = 1
[uboot_gb620]:P/N flag = 2
[uboot_gb620]:NTSC...
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Failed to mount ext2 filesystem...
reading iptvubootupdate.bin

** Unable to read "iptvubootupdate.bin" from usb 0:1 **
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found

Hit any key to stop autoboot:  0
....
...................................................................................
...................................................................................
.....................................................................

2459189 bytes read
## Booting image at 80000000 ...
   Image Name:   Linux 2.6
   Image Type:   SuperH Linux Kernel Image (gzip compressed)
   Data Size:    2459125 Bytes =   2.3 MiB
   Load Address: 80800000
   Entry Point:  80801000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
CMDLen=169
There is  "hwaddr" keywords! Position=95
Read MacAddr=24cf21b0cbe8

[iptv_kernel]:Starting kernel console=ttyAS0,115200 root=8:1  rootfstype=ext3 rw rootflags=data=journal nwhwconf=device:eth0,hwaddr:24:cf:21:b0:cb:e8 phyaddr:0,watchdog:5000 mem=120M bigphysarea=2048 - 0x00000000 - 0 ...

Linux version 2.6.23.17_stm23_A18B-PDK7105-32BITS-A18B (wgzhu@server.smit) (gcc version 4.2.4 (snapshot) (STMicroelectronics/Linux Base 4.2.4-48)) #3 PREEMPT Thu Aug 12 10:08:23 CST 2010
Booting machvec: pdk7105
Node 0: start_pfn = 0x40000, low = 0x47800
Zone PFN ranges:
  Normal     262144 ->   292864
Movable zone start PFN for each node
early_node_map[1] active PFN ranges
    0:   262144 ->   292864
STMicroelectronics PDK7105-SDK board initialisation

<<<< Current Kernel SVN version is 5272 >>>>

This kernel is for GB620 IPTV !!!

STx7105 version 3.x
.....略....最後會停在
Reading flag successfully

spi_flag = 2

User mode
loader.c: 676: File exists
Open /mnt_ext_usb/GB620.svf failed
GB620.svf does not exist

/mnt_e
spi25pxx write 1 bytes to 0x090000

xt_usb/target.enc is error

Update files do not exist or error

Update failed


另外補充 OSSLab 上 安裝 STLinux Cross-Compile Enviroment(交叉編譯環境) 至 Ubuntu
如果照這篇的安裝方法 會沒辦法在 Ubuntu 12.04 上安裝上... 要直接由 STLinux 官網教學 直接裝 STLinux 2.4

以下是第一次用錯格格式研究後發現的
-
有最重要的關鍵點在於那個救援模式(/dev/sda1)的 loader.exe <-- 就是他跑整個還原機制 把分割區二(/dev/sda2)格式化後 mount 到 /mnt_system 然後把 /target.tgz 解開到 /mnt_system 就是第二分割區 /dev/sda2 跟 最後修改 u-boot 的 bootcmd bootargs 改回由 /dev/sda2 boot 然後 reboot

重點在於 loader.exe 跑到最後的 reboot
依照這得安裝教學應該要出現 "更新失敗"
但實際上我的機器會直接就自動 reboot, 所以根本無法完成把 tar xzf /mnt/usb/target_IPPBX_xxxxx.tgz -C /mnt/app 做完的動作.. 動作快一點的人可能剛好解到一半 機器就直接 reboot 了
慢的人可能來不及做到 tar xzf /mnt/usb/target_IPPBX_xxxxx.tgz -C /mnt/app 就已經又還原完成 reboot 了

我嘗試直接 去把 loader.exe 做到一半的 tar xzf /target.tgz -C /mnt/system 這動作直接 kill 就會出現 "更新失敗" 但因為 沒跑完~
所以 /dev/sda2 會缺檔案無法正常 boot
u-boot 也沒改回去由 /dev/sda2 就會一直的在 /dev/sda1 boot
呈現半磚狀態...
到最後還是得靠 拆機 TTL 接進去做 最一勞永逸

最後補充一些相關資料
網樂通改成 Linux 2012/10/25
UBUNTU 12.10, 網樂通 JTAG 學習最徹底的改機 2012/10/12
網樂通改機進度 2012/10/02