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週間での進捗はこんな感じ。

0 件のコメント:

コメントを投稿