« CQW-MRB2: シリアルポート接続 | トップページ | CQW-MRB2: ファーム更新失敗と復旧 »

2013年1月21日 (月)

CQW-MRB2: ファームウェア改造手順メモ

わすれないうちにメモしておくことにしよっと。

  1. Fedora8をインストール
  2. General 1.00ファームウェアのビルド
  3. PCIオリジナル 1.02ファームウェアからromfsを取り出す
  4. イメージファイルの作成
  5. ファーム書き込み

Fedora8をインストール

これはいいでしょう、割愛。

General 1.00ファームウェアのビルド

Edimax 3G6218Nのホームページへ行き、GPL Source Codeをダウンロードします。

ファイルを解凍後、General 1.00ファームウェアをビルドします。


# cd /home
# unzip 3G-6218n_RTL8196C_3G_GPL_20110121.zip
# tar xzvf 3G-6218n_RTL8196C_3G_GPL_20110121.tgz
# cd RTL8196C_GPL
# ./BUILD_3G6218GN.sh

ちょっと時間がかかります。2つbinファイルが作られたというメッセージが出れば完了です。

PCIオリジナル 1.02ファームウェアからromfsを取り出す

以前も書いたので手順だけ記載します。

ファームウェアの分割

# dd if=cqw-mrb2_v1.02.bin of=header.img bs=1114112 count=1
# dd if=cqw-mrb2_v1.02.bin of=body.img skip=1114112 bs=1 count=3526656
# dd if=cqw-mrb2_v1.02.bin of=footer.img skip=4640768 bs=1 count=2

以下ディレクトリへ移動してunsquashfsします。

# cd /home/RTL8196C_GPL/AP/mkimg
# /home/RTL8196C_GPL/AP/mkimg/squashfs4.0/squashfs-tools/unsquashfs body.img

squashfs-rootが作成され、その下にv1.02のファイルシステムが展開されます。

イメージファイルの作成

上記で作成したディレクトリ配下のシェル、プログラムをお好きなように修正します。
/home/RTL8196C_GPL/AP/mkimg/squashfs-root

定義ファイルを修正します。モード(MODE)をGeneralからPCIに変更します。
# cd /home/RTL8196C_GPL/
# vi define/SCRIPT_DEFINED

_VERSION_="1.02w"
_MODEL_="3G6218GN"
_MODE_="PCI"
_PLATFORM_="RTL8196C_2300"
_HW_USB_CTL_="4"
_HW_LED_INTERNET_="16"
_HW_LOW_BATTERY_="10"
_HW_LED_WIRELESS_="2"
_HW_BUTTON_RESET_="5"
_HW_BUTTON_WPS_="1"
_HW_LED_POWER_="6"
_HW_BUTTON_SWITCH_="3"
_WIRELESS_IGMPSNOOP_="y"
_SPECIAL_CHAR_FILTER_IN_SCRIPT_="y"
_WPS_NO_BROADCAST_="y"
_UPNP_LIB_VERSION2_="y"
_WIRELESS_DRIVER_VERSION_="19"
_KERNEL_VERSION_26_="y"
_WIFI_11N_STANDARD_="y"
_REALTEK_URLFILTER_="y"
_RFTYPE_="1T1R"
_IS_GATEWAY_="y"
_WAN3G_="y"
_MEMBUS_="16"
_MEMSIZE_="32"
_L2TPD_="y"
_QOS_GUARANTEE_="y"
_FLASH8M_SUPPORT_="y"
_PPTP_PASSSTHROUGH_="y"
_LAN_WAN_SEL_="y"
_NBTSCAN2_="y"
_MINIUPNP_="y"
_USB_PWR_CTL_="y"
_PPPOB_="y"
_IPHONE_SUPPORT_="y"
_FOMAIL_="y"
_AUTO_DETECT_APN_LIST_="y"
_ISP_LIST_="y"

ビルド用のスクリプトを作成します。組み込むファイルシステムをromfsからsquashfs-rootへ変更します。
# vi BUILD.sh

#!/bin/sh
set -e

#Copy Default Path
echo "********************************************************************************"
echo "* Generate PATH *"
echo "********************************************************************************"

ROOTDIR=`pwd`
APPDIR=${ROOTDIR}/AP
CROSSDIR=${ROOTDIR}/toolchain/rsdk-1.3.6-4181-EB-2.6.30-0.9.30/bin
CROSS_PATH=${ROOTDIR}/toolchain/rsdk-1.3.6-4181-EB-2.6.30-0.9.30/

echo "CROSSDIR="${CROSSDIR} > ./define/PATH
echo "CROSS_COMPILE="${CROSSDIR}"/rsdk-linux-" >> ./define/PATH
echo "" >> ./define/PATH
echo "ROOTDIR="${ROOTDIR} >> ./define/PATH
echo " LINUXDIR="${ROOTDIR}"/linux-2.6.30_2300" >> ./define/PATH
echo " IMAGEDIR="${ROOTDIR}"/image" >> ./define/PATH
echo " APPDIR="${ROOTDIR}"/AP" >> ./define/PATH
echo " MODDIR="${APPDIR}"/module/" >> ./define/PATH
echo " ROMFSDIR="${APPDIR}"/mkimg/squashfs-root" >> ./define/PATH
echo " GOAHEADDIR="${APPDIR}"/goahead-2.1.1" >> ./define/PATH
echo " APPLIB="${APPDIR}"/Lib" >> ./define/PATH

. ./define/FUNCTION_SCRIPT
. ./define/PATH
LANG=eng
STR_DATE1=`date`

rm -f ${IMAGEDIR}/appimg
${ROOTDIR}/AP/mkimg/squashfs4.0/squashfs-tools/mksquashfs ${ROMFSDIR} ${IMAGEDIR}/appimg -comp lzma -always-use-fragments
#${APPDIR}/goahead-2.1.1/LINUX/cvimg root ${IMAGEDIR}/appimg ${IMAGEDIR}/appimg 2E0000 0x120000

size -A -x --target=binary ${IMAGEDIR}/appimg
chmod +r ${IMAGEDIR}/appimg
ls -l ${IMAGEDIR}/appimg

echo -e "\033[33;1m"
echo "********************************************************************************"
echo "* Building Image *"
echo "********************************************************************************"
echo -e "\033[0m"

cd ${IMAGEDIR}
./DoImage.sh
if [ $? != 0 ];then
exit 1
fi

STR_DATE2=`date`
echo "Start Time -->"${STR_DATE1}
echo "End Time -->"${STR_DATE2}

ビルドします。
# ./BUILD.sh

********************************************************************************
* Generate PATH *
********************************************************************************
Parallel mksquashfs: Using 1 processor
Creating 4.0 filesystem on /home/RTL8196C_GPL/image/appimg, block size 131072.
・・・中略・・・
Generate kernel image successfully, length=3526658 (0x0035d002), checksum=0x804
Generate kernel image successfully, length=4640754 (0x0046cff2), checksum=0x8d0c
-rwxrwxrwx 1 root root 8388608 Jan 21 00:40 ./3G6218GN/PCI/Factory/3G6218GN_PCI_1.02w_mp.bin
-rwxr-xr-x 1 root root 4640770 Jan 21 00:40 ./3G6218GN/PCI/Tester/3G6218GN_PCI_1.02w_upg.bin
Start Time -->Mon Jan 21 00:40:08 JST 2013
End Time -->Mon Jan 21 00:40:31 JST 2013

Tester/3G6218GN_PCI_1.02w_upg.bin が新しいファームウェアです。

ファーム書き込み

これもいいでしょう、割愛。

以上

« CQW-MRB2: シリアルポート接続 | トップページ | CQW-MRB2: ファーム更新失敗と復旧 »

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/143173/56589239

この記事へのトラックバック一覧です: CQW-MRB2: ファームウェア改造手順メモ:

« CQW-MRB2: シリアルポート接続 | トップページ | CQW-MRB2: ファーム更新失敗と復旧 »

最近のトラックバック

2017年4月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            
フォト
無料ブログはココログ