2015年1月27日火曜日

FON2405E カスタムファーム導入(ようやく成功2/2)


前回、menuconfigまで行けることを確認したので、
先駆者と全く同じではつまらないので、少しだけいじってみることした。
GPIOをいじってみたいので、その部分を有効に。
(しなくてもできるのかもしれないけどね)
Ralink Linux SDK Configuration
Main Menu->Ralink Proprietary Applications->[]GPIOを選択しておく。
以下の動画2:30ぐらいのところ
そして、make V=99でファームを作成する!

 出来上がったファームが2MB以下であれば、書き込みを行う。
書き込み方法は他でも紹介されているとおり。
リセットボタンを押しながら電源ON

ファームの書き換えが成功したら、ブラウザで10.10.10.254にアクセスして管理画面が表示される。そして、telnetもできる。
さて、お目当てのGPIOは、gpioというコマンドで制御できそう。

gpioの説明を見ると
The GPIO testing user application is named gpio.

gpio w: writing test (output)
gpio r: reading test (input)
gpio i (<gpio>): interrupt test for gpio number
gpio l <gpio> <on> <off> <blinks> <rests> <times>:
set led on <gpio>(0~24) on/off interval, no. of blinking/resting cycles, blinking time

とのこと。よくわからん。

とりあえず試してみると 
gpio l 14 1 0 0 0 0
でWPSランプが点灯した。
 
gpio l 14 0 1 0 0 0
でWPSランプが消灯した。
この番号を総当りしたところ、
LANランプ(真ん中のやつ)は11
NETランプ(左のやつ)は12
であることがわかった。
NETランプだけ、点灯の論理が逆だった。
他の方の情報(https://awaitingstock.wordpress.com/2013/01/)だと、
電源緑 9
電源橙 12
無線 14
LAN 11
リセット 10
らしい。もしかしたら電源(NETランプ)はオレンジ色にも光るかもしれない。
これは楽しみ。
この3つのLEDでLチカしてみた。
あとは何をしようかな。

2015年1月24日土曜日

FON2405E カスタムファーム導入(ようやく成功1/2)



やっとカスタムファームを作成して書き込むことができた。
方法は、他の人がやっているようにRalink SDKを使ったのだけれど、
今まで失敗していたので、考え方を変えて、ファームを作成するPCの環境(linuxのバージョン)を
このSDKと同じくらいの時期に出たものにすることにした。
仮想PCを用意すればものの10分で準備が終わる。便利なものだ。
用意したのは、
VirtualBox
MandrivaLinux2008linux 2.6.22) 
である。
ディストリビューションについては、どれでもいいと思うが、Mandrake→Mandriva→Mageiaと使ってきたので、思い出に浸るために選択。
実際の作業は、皆さんと同じ。今までの苦労は何だったんだ!というくらいに快適。
まずはmake menuconfig まで行けることの確認。


ここまで、5分くらいか。今までの苦労ななんだったんだ・・・。

さて、次はファーム作成して書き込むところをやってみる!

2015年1月18日日曜日

FON2405E カスタムファーム導入に挑戦!

年明けはいろいろと忙しく、なかなか更新ができなかった。
   
入手したFON2405Eにカスタムファームを導入するべく、いろいろ調査した。

FON2405E
OS  OpenWRT(Linux2.6)
CPU  RT3050 320MHz
Memory  32MB
Flash  2MB

まず、有名な「Hot Tuna Labs 」さんが公開しているカスタムファームを導入してみた。

これは手順どおりでいけた。ただし、bootメニューに入るのが苦労した。
10回挑戦して2回程度の成功率・・・。

このカスタムファームでGPIOを操作してみたかったのだが、
/dev/class/gpioがなくよくわからなかった。
/dev/gpioはあったのだが、
mkmodでなにかやるんか???

仕方がないので、カスタムファームを作成する方法を調査した。
(結果今のところ成功はしていない。。。Orz

 
1.Ralink SDK

Ralin SDK
Ralink_ApSoC_SDK_3600_20110715.tar.bz2
Ralink_ApSoC_SDK_3301.tar.bz2
の2つで試してみる

1-1.Ralink_ApSoC_SDK_3600_20110715.tar.bz2
tar xvjf Ralink_ApSoC_SDK_3600.tar.bz2
cd RT288x_SDK/toolchain/
tar xvjf buildroot-gcc342.tar.bz2
mv buildroot-gcc342 /opt/.
cd mksquash_lzma-3.2/
make

ここまでは、うまく行ったが、
/usr/bin/ld: mksquashfs.o: シンボル 'log10@@GLIBC_2.0' への未定義参照です
/lib/libm.so.6: error adding symbols: DSO missing from command line
collect2: エラー: ld はステータス 1 で終了しました

Makefile-lmが無いことが原因らしい
squashfs3.2-r2/squashfs-tools/Makefile
10行目
LDLIBS += -lz -L${LzmaAlone} -L${LzmaC}
LDLIBS += -lz -lm -L${LzmaAlone} -L${LzmaC}

mkdir /opt/buildroot-gdb
mkdir /opt/buildroot-gdb/bin
make install

つぎに目的のsourceをと思ったが、
source内にMakefileがない。。。困った。

1-2.Ralink_ApSoC_SDK_3301.tar.bz2
3600と同じように
tar xvjf Ralink_ApSoC_SDK_3301.tar.bz2
cd RT288x_SDK/toolchain/
tar xvjf buildroot-gcc342.tar.bz2
mv buildroot-gcc342 /opt/.
cd mksquash_lzma-3.2/
make

そして同じように
/usr/bin/ld: mksquashfs.o: シンボル 'log10@@GLIBC_2.0' への未定義参照です
/lib/libm.so.6: error adding symbols: DSO missing from command line
collect2: エラー: ld はステータス 1 で終了しました
<builtin>: recipe for target 'mksquashfs' failed
make[1]: *** [mksquashfs] Error 1

squashfs3.2-r2/squashfs-tools/Makefile
10行目
LDLIBS += -lz -L${LzmaAlone} -L${LzmaC}
LDLIBS += -lz -lm -L${LzmaAlone} -L${LzmaC}

mkdir /opt/buildroot-gdb
mkdir /opt/buildroot-gdb/bin
make install
これで、buildツールの準備ができたかな。
そして本体。
make V=99
Makefile:319: *** 暗黙ルールと通常ルールが混ざりました. 中止.

Makefile319を書き換え
linux linux%_only:
linux:

リトライ!!
make[3]: Entering directory '/home/adeno/fon/sdk3301/RT288x_SDK/source/user/busybox'
Makefile:1262: *** 暗黙ルールと通常ルールが混ざりました. 中止.

中止!!
再度書き換え
vi user/busybox/Makefile
/ %/: prepare scripts FORCE
/: prepare scripts FORCE

リトライ!!!
make[1]: Entering directory '/home/adeno/fon/sdk3301/RT288x_SDK/source/vendors'
Makefile:28: *** 暗黙ルールと通常ルールが混ざりました. 中止.
vi vendors/Makefile
all image clean romfs romfs.post vendor_%:
all image clean romfs romfs.post:

まだぁ?
make[1]: Entering directory '/home/adeno/fon/sdk3301/RT288x_SDK/source/linux-2.6.21.x'
Makefile:1443: *** 暗黙ルールと通常ルールが混ざりました. 中止.
vi linux-2.6.21.x/Makefile
/ %/: prepare scripts FORCE
/: prepare scripts FORCE

リトライしていくと…。
---
/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/mkimage: invalid entry point -n
/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052/./Makefile:80: recipe for target 'image' failed
make[2]: *** [image] Error 1
make[2]: Leaving directory
'/Ralink/3301/sdk3301/RT288x_SDK/source/vendors/Ralink/RT3052'
Makefile:29: recipe for target 'image' failed
make[1]: *** [image] Error 2
make[1]: Leaving directory '/Ralink/3301/sdk3301/RT288x_SDK/source/vendors'
Makefile:297: recipe for target 'image' failed
make: *** [image] Error 2
---
がぼー なんでかなぁ・・・・。

2.Openwrt(Image Builder)

make image PROFILE=Default

しばし待つと…
makeが終了したのだが、

2490372 118 12:45 bin/ramips/openwrt-ramips-rt305x-rt-g32-b1-squashfs-sysupgrade.bin*
2.5MB 2MBにおさまってないやんOrz

3.Openwrt(Buildroot)

git clone git://git.openwrt.org/openwrt.git
cd openwrt
./scripts/feeds update -a
./scripts/feeds install -a
make defconfig
make prereq
make menuconfig


Target System Ralink RT288x/RT3xxx
Subtarget RT3x5x/RT5350 based boards
を選択してmakeした
3~4時間待つと
2883588 118 14:21 bin/ramips/openwrt-ramips-rt305x-esr-9753-squashfs-sysupgrade.bin
2.9MB 2MBにおさまってないやんOrz
--

うーん。 なかなか難しいね。
この1週間での進捗はこんな感じ。

2015年1月7日水曜日

お正月休暇中にいろいろと入手

お正月中は、時間が取れたのでいろいろと遊べそうなものを入手できた。
一部遊び始めたものもあるのだが、まだ成果にはなっていない・・・。

La fonera SIMPLE(FON2405e) 新品で800円
以前は500円くらいだった思ったけど、値上がりしたのかな。
近所のハードオフにはあと5個ぐらいあった。
改造事例がまとまっているので、比較的遊べそう!
http://fon-wiki.maniado.com/index.php?La%20fonera%20SIMPLE%20Hacking


AtermWL54SU 11aの無線LAN子機 ジャンク扱いで300円
Atherosのar5523を使用しているみたい。
Windows7非対応だった。linuxのドライバーはどうしようか。
いまのところ、linux-firmwareでもndiswrapperでも動かなかった。
https://wikidevi.com/wiki/NEC_Aterm_WL54SU

http://wireless.kernel.org/en/users/Drivers/ar5523


GW-SC150N 無線LANコンバーター 新品で800円
まだ未開封。。

BDZ-EW510 ブルーレイレコーダー 新品で32,000円
ついに我が家もブルーレイ

こんな感じで2015年もはじまりました。
今年はよい年になるようにがんばろう。。。
さてこれから仕事です。