I-O データ AV-LS500LE ファームウェア - Part 4 [アイオー AV-LS500LE]
AV-LS500LE にカスタムファームウェアで,USBドングルの無線LANが動作した。
WLI-UC-GN
usbid_cmp:551, FOUND: vid: 0x0411, pid: 0x015d
create_wlan_drv[418] VendorID:[0411], ProductID:[015d]
wireless_dongle_insert:589, New module detected!!
command: /sbin/insmod -f /lib/modules/rt3070sta.ko
set_wlan_ifname:439, cnt1(2) == cnt2(3)
wireless_driver_rt3070_insert:30, wlan->wlan_name=ra0
カスタムファームウェアでは,USBハブが使用できるので,USB無線LAN とUSBメモリを同時に利用できるようだ。
(AV-LS500LEの通常ファームは無線LANやUSB HUBに対応してない)
カスタムファームウェアではAV-LS500LE付属のリモコンが使えないが,この無線LAN接続でAndroidアプリをリモコン代わりに利用できればと思う。
I-O データ AV-LS500LE ファームウェアハック -- Part 3 [アイオー AV-LS500LE]
前の記事の方法の応用で,このEM7075用カスタムファームウェアをAV-LS500LEのフラッシュに書き込んだ。
EM7075 homebrew
ただし付属のリモコンは使えない。
irkernel.ko というモジュールがリモコンに関係あるようだが,リモコンをどう処理しているのかが分からない。
telnet接続で,以下のコマンドを入力すると画面の操作ができる。
echo u > /tmp/ir_injection (上へ)
echo d > /tmp/ir_injection (下へ)
echo l > /tmp/ir_injection (左へ)
echo r > /tmp/ir_injection (右へ)
:
これを利用して作られたWindows用のリモコンアプリがある。
WDTV Live - Remote Controller and More Web Site
このアプリでは,リモコンボタンのクリックの他,PCの矢印キーやエンターキーも操作に使える。
Androidでも同様のアプリがあるので,AndroidもAV-LSのリモコン代わりにもできると思う。
一方,カスタムファームでの起動で,付属のリモコンを使えるようしたいが,仕組みが分からない。
irkenel.ko というモジュールがリモコンに関係ありそうなので,カスタムファームとAV-LSのファームの irkernel.ko をcmpコマンドで比較したら同じだった。
リモコンレシーバーがEM7075とは異なるのかもしれない。
AV-LSファームでの起動メッセージにはSMP86XX ir driver loaded という出力がある。
AV-LS
firmware reload succesful
ir: cannot get major number
insmod: cannot insert '/lib/modules/irkernel.ko': Device or resource busy
SMP86xx ir (253:0): driver loaded (wait_period = 30ms, buffer_size = 2)
Tango3 frequency scaling module installed, (standby mode supported).
sh: f1f1: unknown operand
sh: sisi: unknown operand
EM7075
firmware reload succesful
modprobe: module r8169 not found
modprobe: failed to load module r8169
insmod: cannot insert '/lib/modules/irkernel.ko': Device or resource busy
insmod: cannot insert '/lib/modules/llad.ko': File exists
I-O データ AV-LS500LE ファームウェアハック -- Part 2 [アイオー AV-LS500LE]
パソコンはAVLSとLANケーブルで直結して,IP設定は 192.168.1.1/24とした。
avlsにIPアドレスを割り当てるためDHCPサーバも起動する。
http://www.eminent-online.com/hdmedia-stream-hd-media-player.html
unzip EM7075-2.00.15.zip
mount –o loop em7075.fff /mnt
cd /mnt
cd dev
cp sigmblockd.bin /tftpboot
sigmblockd.binがブータルなカーネルファイル
file sigmblockd.bin
sigmblockd.bin: romfs filesystem, version 1 2596896 bytes, named MIPSLINUX_XLOAD
atftpd の起動
atftpd –daemon /tftpboot
minicom でavlsにシリアル接続する。
セットアップは/dev/ttyUSB0,115200,8N1
電源投入後 0を押し続けると,YAMON ROM Monitor のプロンプトになる。
DHCPでLAN接続して,sigmblockd.bin をtftpでメモリにロードする。それからフラッシュに書き込む。
YAMON> net init 1
Ethernet driver for EM86XX (v1.0)
(MAC 00:a0:b0:a0:fe:52)
em86xx_eth1 - Full-duplex mode
em86xx_eth1 - 100 Mbit/s
em86xx_eth1 ethernet start
DHCP was successfully configured.
ipaddr: 192.168.1.2
subnetmask: 255.255.255.0
gateway: 192.168.1.1
YAMON> load -b tftp://192.168.1.1/sigmblockd.bin 0x84000000
About to load tftp://192.168.1.1/sigmblockd.bin
Press Ctrl-C to break
................................................................
............
Start = 0x84000000, range = (0x84000000,0x842637ff), format = BINARY Length = 0x263800 (2504704)
Checksum = 0x6373a2c0 (10'1668522688)
YAMON> nflash write 0x000c0000 0x84000000 0x263800 0
リカバリモードにするため,ファームウェアサインの”OKOK”を書き換える。
YAMON> nflash write 0x3c7e000 0xa7000000 0x2000 0
USBメモリに em7075.bin em7075.verを入れてAVLSのUSBに付けてから起動すると,em7075.binの中のrootfsがフラッシュに書き込まれる。
YAMON> reboot
Reboot immediately
…
Execute final at 0x84438000 ..
Linux version 2.6.22.19-19-4 (eddie_chuang@SVN-server) (gcc version 4.3.2 (Sour0
Physical map 0xc0000000 to 0x04000000, max remap/kernel size: 0x0c000000/0x1800.
Configured for SMP865x, detected SMP8654 (revision unknown).
Detected CPU/System/DSP Frequencies: 499.50/333.00/333.00MHz
…
これで em7075 のファームウェアに置き換わるが,リモコンが使えない。
avlsのファームウェアに戻すには,上記と同様に avls500lek.fff から sigmblockd.bin を取り出してフラッシュに書き込み,USBメモリに avls500lek.bin,.ver を入れてリカバリする。
ファームウェアは以下からダウンロード
AV-LS500LE ファームウェア リカバリー手順
参考にしたページ
EM7075 - Eminent Opensource
Eminent & Ewent forum • View topic - RS232 recovery procedure
Gerald Naveen: WDTV Live -- Firmware Hacking Series ...
Brick - WikiDLXTV - WDLXTV wiki