ジャンル不定の日記です。

もう一個前の無線LANルーター

前に使っていた無線LANルーターCorega WLR-300GNHを、シリアル通信で中覗いて改造できないかと考えているが、
さらにもう一個前に使っていたルーターをゴミをあさって探した。


昔買った機器のケーブルとか基板とかが大量にあって目的の無線LANルーターがなかなか見つからないんでゴミ整理とかして、
今でも使い道がありそうな拡張カードとか単体動作する機器なんかは回収したんだが、
シグマリオンIIが出てきた。
とりあえず、通電してWinCEが問題なく起動した。
これLinux入れて動かせないか?
って考えて調べたりしたんだが、
CE上からLinux動作させてる人は居るんようなんだが、ちょっと調べた感じだとブートローダーからLinux起動させてる人の記事は見つからなかった。
スペック確認したが、メモリが32MBでストレージが16MB?
今の感覚だと、GUIのOSが動くスペックに思えないんだがwww
GUI端末としてまともに使うには、ガワだけ再利用して中身入れ替える感じのほうが良さそうだ。
液晶を再利用する技術があれば中身入れ替え出来そうだが、まあ自分には難しい。

他には、シグマリオンに使ってたのか?CFカードの無線LANアダプタとか、PCI接続の無線LANアダプタ。
USB接続のフロッピードライブ、IDE接続の3.5インチPCカードリーダ(メモリカードリーダー)、おもちゃデジカメ、MP3プレーヤーとか回収しといた。

USB接続のフロッピードライブはUSB繋いで普通に使えた。
まあ使うことはないと思うが、Win98SE以前のWindowsのインストールとかに必要になった時のために持ってたほうが良いかなと思う。

PCカードリーダは、PCカード用のCFアダプタとCFカード用のメモリリーダーがセットになった製品で、パラレルIDE接続なんで、ストレージ以外のものは利用できないと思われる。
いつもPCにSDカード挿す時100円ショップで買ったUSB接続メモリカードリーダー使ってるが、3.5インチに内蔵できるならそっちの方がいいか?
とも考えたが、パラレルIDE接続だとホットスワップが無理なような・・・
あと、内蔵ってもメディアそのものが取り外して使うものだし、USBでいいなw
というわけで、試してない。ゴミだなこれは。

デジカメは、CASIO LV-20って30万画素のおもちゃで、電池入れたら動いたんだが、
miniUSBでPCと繋いで、USBメモリのように簡単に扱えるものと思ったんだが、専用ドライバ使う系の製品みたい。
lsusbでは認識してるが、Linux用のドライバとかツールも見つからなかったんでゴミかな?


ちなみに、当初探していた無線LANルーターも見つかって、PLANEX BLW-03って製品だった。
ネジ外して中覗こうとしたが、硬すぎて回らないw
探す前から記憶でそうだと思っていたが、この製品、無線LANはPCカードになってて取り外して普通に無線LANアダプタとして使える。
だから、このルーターは無線LAN機能を搭載した端末として再利用するよりも無線LANアダプタを回収しちゃったほうが良い気がする。
というわけで、硬いネジ開けるのは諦めた。

USB接続のシリアル通信ケーブルポチった

市販ルーターがどの製品も頻繁に落ち過ぎで、ルーター自作熱が高まっている今日このごろだが、
以前使っていて不安定だから使わなくなった、Corega WLR-300GNHって市販ルーターがあるんで、シリアル通信で中には入れたりしないかな?
と思って開けて内部見てみた。

シリアル用の端子があってもピンとか出てなくて使うにはハンダが必要と思ったんだが、内部に4本だけ剥き出しでピンが出てる。
これ見るからにシリアル用の端子じゃんw
端子の1本の箇所に●印がついてるんで、そこがVCCで反対側がGNDと見たんでテスター当ててみたが、3.3V。
市販製品でシリアル通信とかしたこと無いし、シリアルケーブルとか持ってないが、ケーブルがあれば簡単に中覗けそう。

というわけで、ルーターとのシリアル通信について調べて、ケーブル欲しいと思ったんだが、
ググるとFT232RLってチップの載ったモジュールやケーブルを秋月電子などで購入して使っている人が多いようなんだが、1000円前後する。
もっと安いのないかと探してたが、
Amazonのマーケットプレイスで、

289円+送料150円でCP2102ってチップのモジュール売ってるっショップ見っけた。
Amazonのレビュー見ても普通に使えそうだし、CP2102について調べても、FT232RLと同じようにシリアル通信に使えそう。
ピン用のケーブルまでついてるから別途ケーブルを用意する必要もない。

さらに、「この商品を買った人はこんな商品も買っています」のところに、

Raspberry Pi用と称してPL2303HXってチップがコネクタ部に内蔵されているケーブルが260円+送料150円で同じショップが売ってた。
基板がコネクタ内に隠れてて直接ピンケーブルが出てるこっちの方が形状的に良いね。
レビュー見ても普通に使えそう。

貧乏だし、使える確信ないし、使えたとしても機器を使いこなせる自信もないんで、あまりお金はかけられないが、
ケーブル1本あれば他の端末にも利用する機会あるかもだし、ここまで安いなら即買いだわ。
というわけでPL2303HXのケーブルをポチった。
中国発送で到着まで2週間くらい見といたほうが良さそう。

有線LAN搭載のAndroidスティックって良いかもしれんね

市販でもLinux等での自作でもいいから、良いルーターが欲しいと思う今日このごろだが、



↑みたいなUSBスティックのAndroid端末良いかもしれんね。
中華AndroidスティックのGSG-TB06って製品。あまり出回ってないぽい。

USBスティックAndroid端はいくつも製品が存在するが、有線LANコネクタ搭載の製品ってのはほぼ無いみたいだね。
ちょっと探しただけだが、有線LAN搭載のスティックは上の製品以外は発見できてない。
通常のAndroidスティックはHDMI端子がついてるが、この製品はHDMI端子は無しで代わりに有線LANがある感じ。
無線LAN機能はついてるし、有線LANがあればルーターとして使えそう。
HDMI端子が無いあたり、そのつもりで作られた製品だろうね。

LANケーブルを繋ぐのだから、USB子機側は直結でなくて、PLANEXのちびファイみたいにUSBもケーブル接続でもいいと思うが、
ルーターはUSB給電で有線LANコネクタのある小型端末が理想的な感じしてきた。
厚み的に有線LAN対応なわけだから、欲を言うと2ポート以上欲しいのと、ちびファイみたいにUSB接続する母艦側からLANアダプタとして認識する機能が欲しい。
上級者ならデータ転送があってファームカスタマイズができちゃえばLANアダプタはソフトで実装できちゃうもんかな?

ファルコン9の次回打ち上げは3月1日

ファルコン9の次回打ち上げは3月1日ぽいですね。
たまにSpaceX社のサイト見に行ってるが、次回の予定が記載されているページがちょっとわかりにくいね。
UPDATES → Launch Manifest
のページの下の方に画像で書かれる感じなのかな。

前々回から着陸実験しながらの打ち上げになってるから打ち上げ中継見てるが、
前々回は母艦に命中して大破(母艦は小破)
前回は荒天のため着陸せずに着水で、成功と言ってる
というわけで、まだ着陸回収に成功していないわけだが、楽しみ。
日本がH2Aを1発100億円かけて打ち上げているのが、同程度の性能のロケットが1発2400万円で打ち上げられれば人類の活動圏が地球を離れる大革命が起きる。
まあ、1発2400万円には2段目ロケットの回収も必要なんで、今は1段目だけだからまだ先だが、それでもかなり打ち上げしやすくなる。


あと、3月6日にNASAの探査機ドーンがケレスに到着とのことで、既にかなり鮮明な画像が送られてきているが、
表面に水の氷が露出していないか?興味ありますね。
アポロの月面着陸から40年以上経って人類がいまだに地球外天体にたどり着けていないのは、最大の原因はロケットの打ち上げ費用だと思うが、
それ以外に土木工事の難易度があると思ってる。
金星とか地球並みにデカイ星に降りたら脱出不能になるから、地球よりも小型天体を目指すしか無いと思うが、
掘削等の土木工事をするのに、重力が小さいとその分重機の重量が必要になるはず。月で地球と同じ作業するなら6倍の重機が必要と思う。
現地で土木工事が出来ないと、大規模な資源貯蔵や放射線を防ぐための施設が作れない。
だが、表面に水の氷があって常温で解けないなら、掘削せずに熱で容易に加工できる。
大気がないと液体にはならず溶かした時点で気化するからは液体の廃棄も不要。
まあ、沸点がかなり低くなるから人間が住むにはコーティングして断熱する必要があるが、融点は冷凍庫よりは高い温度になるし構造物が先に出来ちゃえばコーティングは簡単と思う。
今は人類の目標天体は月と火星が主流だと思うが、ケレスの表面に水の氷があるならケレスが目標になると思う。

SheevaPlugのNANDにArch Linux入れた

昨日SDブートでSheevaPlugにArch Linux入れて、NANDブートも余裕だと思ってたんだが、すごいハマった・・・
うまく行かなかったのは、ubifsのrootfs作成方法に問題あったかubootの設定に問題があるんだと思ってたんだが、uImageをSDブート中のArchの/boot/uImageをnandwriteしたのがまずかったような。
uImageを再度nandwriteしたらすんなり行った。

前回SDブートの環境作る際はSheevaPlugのインストーラーでubootの設定をしたが、
インストーラーはubootの再インストールと設定だけなんで、設定変更だけならインストーラーでuboot書きこまないほうが安全と思ったんで当初自分で設定してたが、
うまく行かなくて試行錯誤していて、最終的にインストーラーをnandで使ったんで、uboot設定はインストーラー通りのもの。


SDカードの時は、パーティションを2つに分けて、1番目がuImageで2番目がrootfsでファイルを置くだけなので母艦で作ればよかったが、
NANDは端末から外せないので、SDブートの環境から書き込んだ。

NANDのパーティションを確認
cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00400000 00020000 "uImage"
mtd2: 1fb00000 00020000 "root"
と/proc/mtdを見てNANDのパーティションを確認する。
/dev/mtd1がuImageで/dev/mtd2がrootfsだとわかった。
SheevaPlugインストーラーは、sdにすると1番目のパーティションがu-bootになるが、nandにインストールするとu-boot領域はOSに見せない設定になる。
何故違うのかわからないが、誤ってu-boot領域壊しちゃったらまずいから、u-boot領域は見えない方が良いね。

uImageの書き込み
flash_eraseall /dev/mtd1
nandwrite -pm /dev/mtd1 uImage
flash_eraseallでnandパーティションを全消し。
nandwriteでuImageを書き込むが、-pオプションは余りを埋め。-mオプションは破損領域をマーク。らしい。
uImageは、母艦でapacheが使えるようになってるんで、apacheに置いてwgetで取得した。

rootfsの作成
pacman -S mtd-utils
ubiformat /dev/mtd2
ubiattach -p /dev/mtd2
ubimkvol /dev/ubi0 -m -N rootfs
mkdir /mnt/mtd2
mount -t ubifs /dev/ubi0_0 /mnt/mtd2
tar zxfvp ArchLinuxARM-kirkwood-latest.tar.gz -C /mnt/mtd2
ファイルシステムはインストーラーの説明書にも書かれているubifsにした。
組み込み機器等のnandによく使われるファイルシステムにはjffs2ってのもあって、途中うまくいかなくてubifsが原因かと思ってjffs2の方も試したんだが、
jffs2はブロックデバイスではなく普通にmountできず、使うとしても起動時に全部読み込む必要があるのでubifs使ったほうが良さそう。
nand用のファイルシステムじゃないとウェアレベリングしてくれずに寿命が縮んだりする。
使用する各コマンドは、Arch Linuxだとmtd-utilsパッケージでまとまってるのでpacmanでインストール。
ubifsでは、/dev/ubi0デバイスを作成して/dev/ubi0_0パーティションを作成する感じだが、ボリューム名の設定が必須ぽい。
ubiformatでubifs用にnandパーティションを初期化。
ubiattachでubi0デバイスを作成。
ubimkvolでボリューム名の設定。(-mオプションは最大サイズ)
作成した/dev/ubi0_0をmountしてrootfsを展開だが、これも母艦のapacheに置いてwgetした。


これでu-bootをnandブート用に設定すればnandのArchが起動する。
u-bootの設定は試行錯誤した結果インストーラーでやっちゃったが、
bootargs_root ubi.mtd=1 root=ubi0:rootfs rootfstype=ubifs
mtdpartitions mtdparts=orion_nand:0x400000@0x100000(uImage),0x1fb00000@0x500000(rootfs)
bootcmd setenv bootargs $(bootargs_console) $(mtdpartitions) $(bootargs_root); nand read.e 0x00800000 0x00100000 0x00400000; bootm 0x00800000
って感じで設定されてるね。
SDブートのは「ext2load mmc 0:1 0x800000 /uImage」でuImageがロードされるが、「nand read.e」でロード。
u-bootでubiデバイスを作成しないといけない?のでパーティションを切ってubiデバイスを作成って感じぽい。

起動しなくなった時はSDブートしたいと思うが、
setenv bootargs_root root=/dev/mmcblk0p2 rootdelay=5
setenv bootargs $(bootargs_console) $(bootargs_root); mmcinit; ext2load mmc 0:1 0x800000 /uImage; bootm 0x00800000
でSD起動すると思う。


起動後の初期設定とアップデート
timedatectl set-timezone Asia/Tokyo
pacman -Syu
SDの時と同じだが、rootの初期パスワードは「root」
タイムゾーンの設定コマンドは初めて知った(最近出来たコマンド?)が、わかりやいね。
PCだとタイムゾーン以外に言語設定とキーボード設定が必要だが、
言語はGUI使わないなら要らないね。
キーボードはシリアルコンソール経由だから?普通に日本語配列で使えてるから要らなそう。

DHCPの有効化
systemctl start dhcpcd@eth0
systemctl enable dhcpcd@eth0
初回起動時は最初からDHCPでネットワークが使えるんだが、システムアップデートするとDHCPが無効化されるぽくて繋がらないので、
dhcpcdの起動と有効化をする必要がある。
SDの時に同じことやってたんで、今回はすぐわかった。

あとpacmanのmirrorを速いところに設定した方が良いかもだが、メイン機でもないし標準でいいかな。

SheevaPlugに良い使い道が欲しいが、
アイドル時でも発熱するから、ルーター用途だと市販品より不安定になっちゃいそうな気がする。
Linuxで使えるワンセグチューナーがあればワンセグTVサーバー用途に良さそうなんだが・・・

SheevaPlugにArch Linux(SDブート)入れてみた

先日SheevaPlugでArch Linuxが動くことを知ったんで、眠ってたSheevaPlugを有効活用できないかと思ってとりあえず入れてみた。

SSHとかが動く状況下ならLANでPCから操作してもいいが、U-BOOTの操作とかはSSHじゃ無理なのでUSBケーブルで繋いでシリアルコンソールで操作する。
まず、以前使ってた時の記事を参考にしてシリアルコンソールの使い方。

以前はUbuntuが母艦だったと思うが、今はArch Linuxが母艦。
シリアルコンソールは以前と同じscreenが公式リポジトリから入れれた。
sudo pacman -S screen
先日までメインPCのroot権限はsuしてから使っていたが、Android関連でroot権限の操作が多くてめんどかったんでsudo導入した。

USBシリアルのデバイスは、SheevaPlugをUSB接続していない状況と接続した状況で、
ls /dev
して確認。
/dev/ttyUSB0
がSheevaPlugなことが判明。

sudo screen /dev/ttyUSB0 115200
でシリアルコンソールで操作できる。
screenの終了の仕方は、「Ctrl+a」押して「k」押して「y/n」の選択が出るから「 y」で終了。

SheevaPlugに入ってるOSは標準のUbuntuだと思うが、標準のrootパスワードは「nosoup4u」

Arch LinuxはSheevaPlugの内蔵NANDに入れようと思ったんだが、端末のNAND書き換えるのにSDブートのOSが必要かな?
というわけで、SheevaPlug標準のUbuntuを取ってきてSDに入れようとした。
http://www.plugcomputer.org/downloads/plug-basic/
から、「Sheeva Plug Installer」を取ってくる。

README.txtを読むと、インストーラーの使い方は、
  1. FAT16かFAT32でフォーマットされたUSBメモリを用意
  2. sheevaplug-installerのtar.gzを母艦の作業用ディレクトリに展開
  3. uboot/uboot-env/uboot-xxx-custom.txtを開いてMACアドレスを修正する
  4. installerディレクトリの下のファイル全てをUSBメモリのルートにコピーする(README.txtだとsudo cp -aしてるんで、その通りにやった方が良さそう?)
  5. 母艦からUSBメモリを外して、母艦とSheevaPlugをケーブルで繋ぐ
  6. 母艦でrunme.phpの場所に移動してroot権限で実行する
らしい。
README.txtではinstaller/uboot-custom.txtとなっているが、そんなファイルは無く、uboot/uboot-env/uboot-xxx-custom.txtにmmc用とnand用の2ファイルがある。
MACアドレスは動作中のSheevaPlugで確認してもいいが、SheevaPlug裏面のシールに記載されている。

runme.phpは引数に「mmc」か「nand」を与えて実行し、U-BOOTを初期化+設定して、OSまで入れてくれるぽい。簡単そう。
と思ったんだが、
まず、READMEだと母艦Linuxにphp-cliをインストールしろと書いてあるが、Archにはphp-cliはないのでphpを入れた。
runme.phpは1行目が「<?」となっているが、「<?php」にしないと動かなかった。
43行目と44行目のroot確認の箇所で突破できなかったんで、そこコメントアウト。
コマンドラインツールなんだからphpじゃなくてperlにしてほしいわ・・・

さらに、libftdi.so.1がないとエラー。
同梱のopenocdを使うようになっているが、Archのリポジトリにあったのでopenocd入れて119行目の「openocd/openocd」を「openocd」に変更してpacmanで入れたopenocdを使うようにしてみたが、
今度は、インストーラーの設定ファイルで使っている機能がダメみたいで無理だった。
pacmanでopenocd入れたらlibftdi.so.1は入ってたんで、runme.phpを元に戻してみたが、やっぱダメ。
pacmanで入れたlibftdi.so.1は64bitのはずだが、インストーラー同梱のopenocdは32bitだろうね・・・
32bitのlibftdi.so.1拾ってきて試してみたが、それもダメ。

ArchのメインPCからインストーラーを使うのは諦めて、Windows用のインストーラーも同梱されてるんでWindows使ってインストールすることにした。
Windowsのインストーラーを使うにはUSBシリアルのドライバを入れる必要がある。
http://sourceforge.net/projects/libusb/
↑ここからLibUSB-Win32というデバイスドライバを取ってきてインストール。
名前が「Win32」とかなってるけど、64bit版も入っててXPの64bitでもインストール可。
bin\inf-wizard.exeを実行するとUSBデバイスの選択画面が出るので、対象のUSBシリアルぽいのを選択して進むとファイルが展開されて、そのままインストールできる。
それっぽいデバイスが2個出てきたんで2回入れた。

コマンドプロンプトから、インストーラーの「runme.exe」を実行するとU-BOOTが再インストールされて設定される。
で、止まる・・・
README.txtを読むと、U-BOOTのインストールが終わったら止まるのが正しい動作で、Ctrl+Cで強制終了するぽい。

SDかNANDにインストーラーがOSインストールしてくれるものと思ってたんだが、U-BOOT関連だけで終わったし、
runme.phpのコード読んでもU-BOOTだけ初期化してOSインストールするコードが無いような・・・


そんなわけで、U-BOOTの再インストールと設定はできたんだが、OSインストールは別の方法で入れることにした。
作業は再びメイン機のArchからscreenでだが、
インストーラーで設定されたboot処理を見ると、SDの1番目のパーティションのuImageがkernel、2番目のパーティションがrootfsになるぽい。
1番目のパーティションはext2にする必要があるようだが、kernelもrootfsもSDのパーティション上にファイルを置くだけでいいぽい。
2番目のパーティションはkernelが対応していれば何でも良い気がするが、インストーラーではext3になってたんで、
32GBのSDを1番目をext2で512MB、2番目をext3で残り全部にすることにした。

で、当初SDにUbuntu入れて、SDブートでNANDにArchを入れようと思ってたが、kernelもrootfsをSD上に置くだけなら、SDもArchにしちゃえば良いね。
http://archlinuxarm.org/platforms/armv5/sheevaplug
↑から「Arch Linux ARM (Latest)」を拾ってくる。
展開はファイルの所有者を維持して行う必要がありそうなんで、
sudo tar zxfvp ArchLinuxARM-kirkwood-latest.tar.gz -C SDカードの2番目のパーティション
としてpオプションをつけてtarでSDの2番目のパーティションに展開。
tarコマンドはpオプションでファイル所有者が維持されるぽい。
cp -a SDカードの2番目のパーティション/boot/* SDカードの1番目のパーティション
で1番目のパーティションにkernelだけコピーした。


SDカードをSheevaPlugに挿してresetしたらArchが起動した。
rootの初期パスワードは「root」になってる。
ネットワークも最初から使えて、
pacman -Syu
でArchアップデートしたんだが、ネットワークが落ちたぽくて途中で死んだ。
熱暴走かな?


市販ルーターがどれも糞すぎるから落ちないルーターをSheevaで自作出来ないかと考えてるが、Sheevaも糞だからダメだねw
ルーター以外の使い道は、USBが1ポートあるから、ワンセグチューナー使えればTVサーバーにしたいな・・・と
前はSDをデータ用ストレージにしてNAS用途にしてたが、SDじゃ遅すぎてダメ。

当初は最終的にNANDにArch入れようと思ってたが、SDでも良いかな?
とも考えてるが、別の用途でSD使う必要がでた時にSheevaの方をNANDブートに切り替えるのも面倒だし、後でやっとくかな。
SDブートでOSが起動できればNANDにインストールするのも簡単と思ってる。

ちびファイ2って無線LANルーター良いかも

SheevaPlugってARMv6を搭載した小型端末を以前NAS的な用途で使ってたので持ってるんだが、
Raspberry Pi(旧型)がARMv6でArch Linux入れれることを知って、同じARMv6のSheevaPlugでもArch Linuxが動作することを知った。

そういうわけで、SheevaPlugにArch Linux入れて何か使い道ないか考えてたんだが、
市販の無線LANルーターが今まで良品にあたったことがなくてLinuxで自作したいと前から考えてて、SheevaPlugをルーター化する方法考えてみたんだが、
拡張コネクタが、LAN1ポートでUSBも1ポートだけ。
フレッツの終端装置にLAN1ポートつなぐとUSB1ポートしか残らないから、
  1. USBLANアダプタを用意して無線LANルータを繋ぐ。(これじゃ結局糞ルータ使うことにw)
  2. USBハブを繋いでその先に無線LANアダプタと有線LANアダプタを繋ぐ。(高くなりますね・・・)
あまり良い方法が無さそう・・・




そんな時にPLANEXの「ちびファイ2」って無線LANルーターを知ったんだが、
今回の目的に使えるかは非常に怪しいんだが、無理だとしてもこの製品結構良いかもしれない。
この製品、USB給電で、USBをPCに繋げばUSB-LANアダプタとして機能するので別途電源ケーブルが要らない。
「ちびファイ2 ac」という製品もあるんだが、こちらはUSB-LANアダプタとしては機能しないらしい。

今の家のネット環境が、
終端装置
|
|
|
無線LANルーター  -----  メインPC(有線)
|               |
|               ---  サブPC(有線)
無線子機
って感じなんだが、
今の構成でサブPCを無線化しちゃえば「ちびファイ2」で対応できる。
違いは、サブPC用に無線LANアダプタが必要になるが、電源ケーブルとサブ機につないでいたLANケーブルが消えてスッキリする。
メインPCが有線ならサブ機は無線でも良いかなと思ってる。

ここまでがこの製品の普通の使い方ぽいんだが、
逆にUSB接続するPCの方をPPPoeでフレッツに接続させて、有線1ポート+無線のスイッチングHUBとして機能させられないか?
もしそれができるなら、SheevaPlugみたいなLANx1,USBx1しかコネクタがない機器を、
LANを終端装置に繋いでPPPoe接続。USBを有線PCに接続。無線も使える。
と出来そうなんだが・・・

あと、これ書いてて気づいたが、
今までLinuxでLANドライバに困ったことはあまりないが、USBのLANアダプタだとLinux用ドライバがあるか不安だね。


SheevaPlugの使い道は、
ルーター用途以外に、USBでワンセグとか使えたらTVサーバーとして使えるなと思った。
Linuxでワンセグ見れないかなー

DS-DT305BKってワンセグチューナー持ってるんだが・・・

先日、TVチューナー付きPCが壊れたためB-CASカードを貰ったんで、PT3導入したいなと思ってたんだが、
手持ちのDS-DT305BKにのってるRTL2832Uってチューナー用のLinuxドライバが標準で入ってることを知った。
録画じゃなくて視聴がしたいし、ニュース以外は見ないからフルセグじゃなくてワンセグで良いんで、これ使えれば・・・
ということで挿してみた。

認識したけど、視聴の仕方わからなかった・・・
RTL2832Uはワンセグ視聴じゃなくて無線の傍受かなんかにマニアが使ってるみたいで、そっち系の情報ばっか出てくる。

アナログ放送終わってからテレビを見る権利が奪われたままだが、権利回復したい・・・

fastbootもダメ

awimageに正常なイメージを出力してくれてないのが原因と思うんだが、LiveSuit用のROMをカスタマイズしてvi10改造ってのは失敗した。
32bitならawimageが正常に動いたりとかあるのかな・・・

というわけなんだが、やりたいのはONDA vi10のFirefox OS化なんだが、
Firefox OSの公式なやり方だと、ROM焼きはfastbootコマンドを使ってパーティション単位で焼く感じぽいんでfastbootでのROM焼きも試してみた。

fastbootは本来、
adb reboot fastboot
とすればfastbootモードで端末が再起動するようなんだが、Allwinnerの端末はこれではfastbootモードにならずに普通に起動してしまう。
adb shell
echo -n boot-fastboot | busybox dd of=/dev/block/nandf count=1 conv=sync; sync; reboot
とadbで中に入ってroot権限でいじるとfastbootで起動できることはわかった。
fastboot devices
で母艦から確認できてfastbootコマンドで端末が操作できた。
fastboot reboot
とすれば通常モードで再起動になる。

だが、bootイメージやこうとすると「remote: data too large, larger than buffer」言われて送れない・・・


awimageで作ったROMが正常に焼けないのは外人も報告してるぽいから、awimageの改善に期待かなあ・・・
とりあえず、今の時点ではvi10のFirefox OS化は諦める。

vi10のROMカスタマイズうまく行かないー

vi10のROMを変更せずにunpack・repackを試したが、LiveSuitで焼く時にエラー発生する・・・
Arch LinuxのLiveSuitはイメージの読み込みが成功しなかったんで、LiveSuitは結局Windows使った。
UbuntuでLiveSuitはうまく行くようなんだが、VirtualboxだとUSBシリアル?の認識が無理ぽかった


やった手順は、

展開・マウント領域の作成
mkdir mnt
mkdir mnt/system
mkdir mnt/root
userdataもいじりたかったが、生のfexファイルが存在しないような・・・。

LiveSuit用イメージファイルの展開
./awimage -r Vi10_JB_v0.4rc1.img fex
fexディレクトリに.fexファイル等にバラされる。
awimageはawutilsをmakeしたらできあがった。

system.fexをマウント可能にしてマウント → そして戻す
simg2img fex/system.fex system.img
sudo mount -o loop system.img mnt/system
sudo make_ext4fs -s -l 1048576000 system.fex mnt/system
system.fexは生imageでは無いようで、v719のROMと同じくsimg2imgを使うとマウント可能になった。
simg2imgはv719の時にAURから入れたが、PKGBUILDがARM専用になってるのでmakepkgの前に母艦用に変更する必要があった。
make_ext4fsのオプションは、-lでsimg2img後のsystem.imgと同じサイズを指定するが、-sをつけると空き領域分圧縮される。

boot.fexをバラしてrootfsを展開 → そして戻す
unmkbootimg /fex/boot.fex
initramfs.cpio.gz
zImage
cd mnt/root
sudo gunzip -c ../../initramfs.cpio.gz | cpio -i
sudo find . | cpio -o -H newc | gzip > ../../initramfs.cpio.gz.new
sudo ./mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz.new --base 0x40000000 --cmdline 'console=ttyS0,115200 rw init=/init loglevel=5' -o boot.fex
unmkbootimgは新たにAURから入れた。
mkbootimgはv719の時に使ってたんで流用した。
zImageがkernelと思うんで、kernelの取り出しは可能ぽいね。
unmkbootimgするとmkbootimgコマンドのオプション教えてくれるので、ファイル名以外はその通りに使った。

元の.imgに戻す
cp -r fex new
cp boot.fex new
cp system.fex new
export MALLOC_CHECK_=0
./awimage -r new new.img
環境変数MALLOC_CHECK_を設定しないとawimageでのrepackでエラーが出る。
これでnew.imgにLiveSuit用のイメージファイルができると思ったんだが、ROM焼きの際にエラーで止まる。
ROM焼き始まってから途中でエラーするからたちが悪い。
ROM焼き失敗するとLiveSuitでの焼き直しの際になかなかUSB接続を認識しないようなんだが、何度もやってると認識して公式ファームで焼き直せるぽい。


boot.fexとsystem.fexは元と同じサイズになってるんだが、
完成した.imgが元のサイズと微妙に違う。
awimagでのrepackに問題があるのかなあ・・・