RMR9000-技術情報

以下の手順に沿って、お手元のLinux PCにSDKをダウンロードし、開発環境を準備下さい。

Step0: RMR9000 development SDKのダウンロード

Step1: ソースツリーのBuild

註:処理の中でインターネットにアクセスしソースをダウンロードしますのでPCからインターネットへのアクセスが可能な環境で実行ください。

tar zxvf tt-openwrt-sdk-stable-3.1.7.tar.gz
cd tt-openwrt-sdk
cd openwrt-tt
cp default-config-rsp .config
make V=99   (Build完了までに暫く時間かかります)
  • 参考: makeコマンドがエラーで終了した場合は、以下のパッケージが手元のPCに導入済みか確認ください。導入手順は以下のとおりです。(ubuntuの場合)
    sudo apt-get install build-essential flex gawk gettext libncurses5-dev zlib1g-dev git-core subversion  (上記mnakeを実行前に必要な場合があります)
    sudo apt-get install gcc-multilib   (you need to install 32bit gcc,if you use 64bit system )
  • 参考: make処理の途中でソフトウェアソースコードをThinktube公開サーバよりダウンロードします。もし対象のパッケージが当該サーバーに存在しない場合は、クラウド上のソースコード提供サイトよりダウンロードを試みます。以下コマンドを実行するとまず最初にダウンロードを試みるサイトを確認いただくことができます。
    execute "make menuconfig" 
    go to [Advanced configuration options (for developers)->local mirror for source packages]
    remove "220.110.201.21/openwrt/stable/sources/"
    save and exit 

Step2: 独自ソフトウェアのBuild

以下の例では、 my-packages というディレクトリを作成し、その下にパッケージごとにサブディレクトリを作成します。 

cd ~/tt-openwrt-sdk
mkdir my-packages
mkdir helloWorld
cd helloWorld
edit Makefile     (以下参照)
mkdir src
edit src/Makefile   (以下参照) 
edit src/helloWorld.c (以下参照) 
cd ~/tt-openwrt-sdk
edit feeds.conf.default     (以下参照)
./scripts/feeds update -a
./scripts/feeds install -a
make menuconfig  --> select "M" for Samples/helloWorld、 "save"で終了
make packages/feeds/my-packages/helloWorld/compile V=99
make packages/feeds/my-packages/helloWorld/install V=99 
make packages/index V=99
  • helloWorld/Makefileの例
    参照 http://wiki.openwrt.org/doc/devel/packages
    include $(TOPDIR)/rules.mk
    
    PKG_NAME:=helloWorld
    PKG_RELEASE:=1
    PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
    
    include $(INCLUDE_DIR)/package.mk
    
    define Package/helloWorld
      CATEGORY:=Samples
      MAINTAINER:=Takayuki Kaiso <tkaiso@thinktube.com>
      TITLE:=Thinktube sample application
    endef
    
    define Package/helloWorld/description
     Sample application to learn how to make a package.
    endef
    
    define Build/Prepare
    	mkdir -p $(PKG_BUILD_DIR)
    	$(CP) ./src/* $(PKG_BUILD_DIR)/
    endef
    
    define Package/helloWorld/install
    	$(INSTALL_DIR) $(1)/usr/bin
    	$(INSTALL_BIN) $(PKG_BUILD_DIR)/helloWorld $(1)/usr/bin/
    endef
    
    $(eval $(call BuildPackage,helloWorld))
  • helloWorld/src/Makefile の例
    TARGET = helloWorld
    OBJS = helloWorld.o
    
    all: $(TARGET)
    
    $(TARGET): $(OBJS)
    	$(CC) -o $(TARGET) $(OBJS)
    
    clean:
    	rm -f *.o *~ $(TARGET)
  • helloWorld/src/helloWorld.cの例
    int main()
    {
    	printf("hello world \n");
    
        return 0;
    }
  • tt-openwrt-sdk/feeds.conf.default の編集
    src-link openwrt ../../packages-openwrt
    #src-link thinktube ../../packages-thinktube  --> comment out or remove
    src-link luci ../../luci/contrib/package
    src-link my_packages ../../my-packages      -->  add this line !

Step3: BuildしたパッケージをRMR9000へ導入

  • PCにてWebサーバーを起動、WebサーバーがBuildパッケージへアクセスできるようにアクセスパスを設定
    sudo ln -s  ~/tt-openwrt-sdk/openwrt-tt/ /var/www/tt-openwrt-sdk  (ubuntu & apacheの場合)
    
  • PCからRMR9000のWebサーバへアクセス
  • 「システム」->「ソフトウェア」をクリック
  • 「パッケージリストとインストールターゲットの編集」をクリックし、1行目のWebサーバ(この場合はBuildを行ったPC)のアドレスとパスを設定変更し保存
    #src/gz snapshots http://220.110.201.21/openwrt/stable/ar71xx/packages
    src/gz snapshots http://192.168.1.1/tt-openwrt-sdk/bin/ar71xx/packages
  • 「システム」->「ソフトウェア」へ戻る
    • 画面上部の「パッケージリストの更新」をクリック
    • 画面下部の「インストール可能なパッケージ」に以下が表示されていることを確認し、「インストール」をクリック
      インストール helloWorld  1 Sample application to learn how to make a package.
       

注意点

  • Step1のBuildによりtt-openwrt-sdk/openwrt-tt/bin/ar71xxにファームウェア・イメージ・ファイルが作成されますが、
    こちらにはMeshCruzerなどのThinktube提供するパッケージは含まれていませんので、このファイルを使用して
    RMR9000のファームウェア更新は行わないでください。
    あくまでも当SDKは、個別パッケージのBuildならびに追加実装の目的でご利用ください。
  • ファームウェア全体の更新を行うときは、Thinktube公開サーバーhttp://220.110.201.21/openwrt/stable/ にある
    最新版ファームウェアをダウンロードして更新を行ってください。
 
 

トラブルシューティング

References


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-10-31 (木) 19:57:16 (1479d)