【FON2305e/2405e のカスタムファームウェアのカーネルコンパイル】 [OpenWRT/DD-WRT]
FON2305e/2405e は Ralink SoC(system on a chip) を搭載している。
FON2305e/2405e には,Hot tuna さんがRalink AP SoC SDK から生成したカスタムファームウェア等を公開しているが,当方でも Ralink AP SoC SDK をダウンロードしてカーネルソースをコンパイルした。
AP client モードで,NAT を disable にした場合,起動時に brctl addif br0 apcli0 が自動実行される様にしている。
クロスコンパイルは,Ubuntu ベースの BackTrack 5 R1 (VMware版)で行った。BackTrack はrootで使うのが基本になっている。
Ralink AP SDK のダウンロード(約300MB)http://uploading.com/files/62e69177/Ralink_ApSoC_SDK_3301.tar.bz2/
tar xvjf Ralink_ApSoC_SDK_3301.tar.bz2
クロスコンパイラのインストール(rt305x用)
cd sdk3301/RT288x_SDK/toolchain/
tar xvjf buildroot-gcc342.tar.bz2
mv buildroot-gcc342 /opt/.
squashfs と lzma圧縮ツールのインストール
cd mksquash_lzma-3.2
make
make install
デフォルトのままカーネルソースコンパイル
cd sdk3301/RT288x_SDK/source
make V=99
カーネルのコンフィグレーション
make menuconfig
Select the product you wish… はデフォルトの RT3052, 2M/16M(AP)
Kernel/Library/Defaults… は,下の様に選択して,Exit,Exit
Customize kernel setting –> Machine selection
DRAM Size 32M, Flash Type は SPI を選択する。
RootFS_in_RAM (デフォルト)選択。
Ralink Module では,AP-Client Support を選択する。
customize busybox setting –> Editor で vi を選択。オプション
customize busybox setting –> Linux module でinsmod,rmmod などを選択。オプション
その他,Network App で wireless-tools iwconfig iwlist を選択。
enable GreenAP support を選択。(オプション)
ralink_spi.c を以下の様に書き換えた。
source/linux-2.6.21.x/drivers/mtd/ralink/ralink_spi.c
32-65行
32 static struct mtd_partition rt2880_partitions[] = {
33 /* Put your own partition definitions here */
34 {
35 name: "Bootloader",
36 size: 0x10000,
37 offset: 0,
38 }, {
39 name: "Config",
40 size: 0x10000,
41 offset: 0x1f0000
42 }, {
43 name: "Factory",
44 size: 0x10000,
45 offset: 0x10000
46 #ifdef CONFIG_RT2880_ROOTFS_IN_FLASH
:
55 #else //CONFIG_RT2880_ROOTFS_IN_RAM
56 }, {
57 name: "Kernel",
58 size: 0x1d0000,
59 offset: 0x20000,
フラッシュのパーティション設定を誤ると,ブートローダーを壊して起動不可になったり,ボードコンフィグを壊してボード情報を失ってしまう。
この変更で,bootloader,config,factory,kernel の4パーティションになる。
Creating 4 MTD partitions on "raspi":
0x00000000-0x00010000 : "Bootloader"
0x001f0000-0x00200000 : "Config"
0x00010000-0x00020000 : "Factory"
0x00020000-0x001f0000 : "Kernel"
それから,source/user/rt2880_app/scripts/internet.sh を書き換えて,apcli0 をブリッジ br0 に追加した。
592 wan.sh
593 lan.sh
594 nat.sh
595 if [ "$nat_en" != "1" ]; then
596 brctl addif br0 apcli0
597 fi
再度 make V=99 でコンパイル。コンパイルが成功すると,source/images/root_uImage が生成されるので,ra.img 等にリネームする。
後は,FON2405e はこちら,2305e はこちらの方法でファームウェアを書き換える。
http://royalwin.blog.so-net.ne.jp/2011-12-01
http://royalwin.blog.so-net.ne.jp/2011-12-20
カスタムファームの AP Client モードで,Fon を有線無線コンバーターや,無線レピータ―にできる。
MegaUPLoadが・・・
死んでおりまする
もしよろしければUPしていただけると助かります。
by raiti (2012-12-09 22:57)
記事の上方のYahoo!Box ra20120103.imgが同じファイルだったと思います。
by atc-500 (2012-12-12 20:25)
ありがとうございます
ためしてみます~
by raiti (2012-12-24 21:57)
初めまして。
2405e対応のPPTPサーバが入ったファームを探してるのですが、ROM 2MBの機種でそんな都合のいいファームはありませんよね?
外出先からAndroidでVPN(PPTP)に参加して、ひかり電話のSIPサーバに接続できたらなぁ・・・と考えているのです。
by axe (2013-01-27 17:34)
ralink ap soc sdk のマニュアルを見ると、pptp-client はあります。pptp serverはないようです。
http://tagashira.sakura.ne.jp/sblo_files/tagashira/image/Ralink%20AP%20SDK3.3.0.0%20User's%20Manual_20090116.pdf
by atc-500 (2013-01-28 22:58)
androidから家のひかり電話で電話をかけて、電話代を安くできるみたいですね。
by atc-500 (2013-01-28 23:16)
はじめまして。
ralink_apsoc_sdk_4.2.1.0というものが手に入ったので、コンパイルというものをやってみようかと思っとります。
atc-500さんが公開されている、ra20130103.imgではUPnPの項目が見当たらないのですが、今回のファーム作成で追加しようと思うとどの項目をいじればよいでしょうか?
by tetra (2015-04-04 21:12)
ralink_apsoc_sdk_4.2.1.0を持ってるなんてすばらしいですね。
クロスコンパイル環境はもう消しちゃったのでちょっと分からないのですが,マニュアルにはwsc upnp の記述があり,wps用みたいです。http://tagashira.sakura.ne.jp/sblo_files/tagashira/image/Ralink%20AP%20SDK3.3.0.0%20User's%20Manual_20090116.pdf
by atc-500 (2015-04-04 23:24)
make menuconfigが実行できるところまでは行き着いたのですが、Customize kernel setting –> Machine selection のようなオプションが出てこないのはなにか忘れているのでしょうか?ご享受ください;;
by tetra (2015-04-06 11:01)