2016年2月26日金曜日

OpenELECをSambaからアップデートしてみた。

Orange Pi用のOpenELECが結構更新しまくってて、その都度SDにイメージを上書きすると設定画面どうなのでSamba鯖を使ったアップデートを試してみた。

ただし、U-Bootの更新が含まれるバージョンだとこの方法でアップデートするとU-Bootまで更新されないっぽいので注意かも。(U-Bootはめったに更新されないと思うけど)

意外とこの方法が簡単で、OpenELECの設定でSambaが有効になってる場合(デフォで有効)、OpenELECの共有フォルダが見えるはず。

その中のUpdateフォルダにアップデート用のファイルを突っ込めばいいというわけ。

フォーラムのOpenELECではmicroSD用のimgファイルとアップデート用のtarファイルが一緒にアップデートされてるので、拡張子にimgがついてない方のファイルをDLしてそのUpdateフォルダに入れてOrange Piを再起動するだけ!
アップデータの方は、フォーラムのLatest prebuilt imagesに常に最新版のリンクが貼られるようになってるっぽいのでこちら参照。

tarファイル突っ込んで再起動したら何回か再起動するので待つ。
起動したらSystem Infoからコンパイル日を見ればアップデートされたかどうかがわかる!
設定がそのままなので赤外線リモコンが使えた。赤外線リモコンの設定は面倒なのでこれは便利。


ちなみに今回は20160224版に更新してみたんだけども、何故かCMAのバグ再来でCPUのどれか1コアの使用率が100%に張り付いてる。メモリも全体のメモリが見えるようになってるし。CMAを再度有効にしたのかな?

もしかしたらU-Bootの更新があったのかもしれないのでmicroSDにimgファイル上書きで更新してみることに。
ただし、再設定が面倒なので、OpenELECの共有フォルダにあるConfigfilesのバックアップをとってから、imgファイルをddで上書きしてアップデートしてからConfigfilesを戻してみた。

するとCMAのバグが治ってる!これでビデオメモリが自動的に割り当てられるようになってるのか…効率的だ…
たしかにOrange Pi PCはメモリ1GBあるから余裕だけど、Orange Pi ONEのように512MBだとこの方法は有効かもしれない。

2016年2月20日土曜日

LAN-W300N/DRを分解してみた。

LogitecのLAN-W300N/DRをジャンクで入手したので分解してみた。
USBデバイス共有機能がついてる無線LANルーターで11nの300Mbpsに対応している。
USBポートが付いてるけどUSB over Ethernet専用な感じで、FTPサーバとかSMBサーバを立ててNASみたいに使うことはできないらしい。

シリアルナンバーを見るとB無しのバージョンだった。今回もACアダプタが付属してなかったんだけど、調べたらLA-10W5S-09という5V 2A出力のACアダプタらしい。コネクタはPSPと同じく4.0x1.7なので試しにPSPの充電器で動かしてみた。

一応起動するけどなんか不安定。何回か再起動すると無線LANに接続できて設定画面も開けたり。繋がらないときは接続中のまま…
とりあえずリセットボタンを電源LEDが高速点滅するまで長押しして離すと工場出荷状態に初期化できるっぽいのでやってみたらつながるようになった。
ファームウェアは1.08だったので最新の1.14までアップデートしてみた。

早速分解してみた。
LAN-W300N/DR
分解方法はLAN-W300N/Rと全く一緒だった。アンテナがどっちもPCBアンテナになっていた。
CPUには銅板が接着されていて剥がせそうになかった。なんのCPUかわからないじゃん…
Flash ROMはMacronix 29LV320DBTI-70Gで4MBだった。
LAN-W300N/DR
裏面にはRAMが2つ乗っていた。Zentel A3V28S40ETP-G6(16MB)x2で32MB

CPUがわからないのでシリアルコンソールを試してみることに。

表面のJP2ってところに2.54ピッチのピンヘッダをハンダできそうなところがあるのでそこが怪しい感じ。JP2って書いてあるところを1番として順番に3.3V出力、RX、GND、TXっぽい感じだった。
市販のUSB→TTL変換アダプタを使う場合は3.3Vは接続しなくても良さそう。(電源が衝突してしまう)

とりあえずCooltermでBaudrateを色々試してみたところ57600bpsで通信できた。
U-Boot 1.1.3 (Aug 12 2009 - 13:57:22)

Board: Ralink APSoC DRAM:  32 MB
relocate_code Pointer at: 81fa8000
****************************
Init GPIO Pin****************************
flash_protect ON: from 0xBFC00000 to 0xBFC262D3
protect on 0
protect on 1
protect on 2
protect on 3
protect on 4
protect on 5
protect on 6
protect on 7
protect on 8
protect on 9
flash_protect ON: from 0xBFC30000 to 0xBFC3FFFF
protect on 10
*** Warning - bad CRC, using default environment

============================================ 
Ralink UBoot Version: 3.1
-------------------------------------------- 
ASIC 3052_MP1 (MAC to GigaMAC Mode)
DRAM COMPONENT: 256Mbits 
DRAM BUS: 32BIT 
Total memory: 64 MBytes
Flash: 4 MBytes
Date:Aug 12 2009  Time:13:57:22
起動時にモニタしてるとこんな感じで出てきたのでCPUはRalink RT3052Fっぽい。
Logitecのルーターで脆弱性で騒がれてたけど実はシリアルナンバーにB無しはRalinkでB付きはRealtekなのかな。B無しはアップデートの必要なしって書いてあったし…。

Ralink RT3052FなのでOpenWRTみたいな改造ファームウェアも使えそうな気がする。USB付いてるのでOpenWRTが入れられればNAS化もできそうだし。しかしCFIのROMなので剥がしてバックアップ取れないし、JTAGがついてないので書き換えミスったら怖いな…
構成的にはBuffaloのWHR-G300Nとほぼ同じなのでGPIOだけ変更してビルドすれば同じようなファームが動かせたりするかも?WHR-G300N v1はDD-WRTもあったような…

マルチSSIDをオフにして、セキュリティーをWPA2(AES)にしてiPhoneでスピードテストをしてみると最大で55Mbpsぐらい。
倍速モード(40MHz)に設定するとそもそもWiFiに接続できなくなったり、設定画面が超重くなったりするのでデフォルトのチャンネル幅20MHzで使うといいかも。
B付きのLAN-W300N/Rは80Mbps出てたのでRalinkよりもReaktekのほうがiPhone(倍速モード非対応なのでどっちみちチャンネル幅20MHz)とは相性がいいのかな。

USBデバイス共有機能はルーターモードじゃないと使えないって書いてあったけど、APモードでも設定をすれば使える。
APモードにして起動したらPCのIPアドレスを強制的に192.168.2.2に設定して192.168.2.1にブラウザからアクセスすると設定画面が出るので、上位のルーターから割り振られるのと同じセグメントのIPアドレスを手動で設定してやればOK。

でもやっぱりRalinkは熱くなる感じがする。 逆にLAN-W300N/RはB付きでRealtekだったけどすげー安定してるし、速い。発熱もほとんどない感じ。もしかしたらシリアル番号B付きは安定性が改善されてるのかもしれないな。

2016年2月7日日曜日

Orange Pi PCのKodiで赤外線リモコンを使ってみた。その2

前回はOrange PiのOpenELECでNECプロトコルの赤外線リモコンを使えるように設定したんだけども、フォーラムを見ていたらモジュールをアップデートして他のプロトコルにも対応したようなので試してみた。
なお対応してるプロトコルはこちらを見ればわかるかも。

フォーラムに貼ってあるイメージを早速入れてみた。

リモコンの登録方法は前回のNECプロトコルの時と少し違うっぽい。
ちなみにモジュール自体が入れ替えてあるからなのか、このファームに関してはNECプロトコルのリモコンに関してもこの方法じゃないと登録できないっぽい。

今回もSSH経由で設定してみた。
とりあえずKodiを止める。
systemctl stop kodi

irrecord /storage/.config/lircd.conf
でリモコンを登録する。
エンターを2回押してからリモコンのボタンを押しまくる。

リモコンプロトコルの解析が終わったらボタンの登録。
前回同様、割り当てたいボタン名を入力した後に、リモコンのキーを押す。
この時に長押しするとなんか変な動作をするので注意。

登録が終わったらボタン名を入れずにエンターを押して、リモコンのボタンを押すように言われるのでまた押しまくる。
これでリモコンの登録は完了。

次に
nano /storage/.config/lircd.conf
で先ほど作ったコンフィグファイルを開いてNECプロトコルの時と同様に
name /storage/.config/lircd.conf
ってなってる部分を
name devinput
に変更して保存します。

最後に起動スクリプトを作成。
nano /storage/.config/autostart.sh
以下の3行をコピペして保存。
#!/bin/sh
killall lircd
lircd /storage/.config/lircd.conf
そして
chmod +rx /storage/.config/autostart.sh
で起動スクリプトに実行権限を与えて完了。

あとはrebootするとリモコンが使えるようになってるはず。

ちなみにキー名リストはirrecord --list-namespaceで出せるらしいので
ターミナルをもう一枚開いて確認しながらやるといいかも。